MCP服务器

一个支持HTTP流式传输的MCP服务器,适用于Railway平台部署,提供实时双向通信和多种工具集成。

  • by Magnazee
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 magnazee/railwaymcp

使用说明

带HTTP流的MCP服务器-铁路部署

该项目演示了如何将支持HTTP流的模型上下文协议(MCP)服务器部署到Railway。服务器使用现代 可流式HTTP传输 其通过单个HTTP端点提供高效的双向通信。

特性

  • ✅ 可流式HTTP传输:具有全双向流的现代MCP传输
  • ✅ HTTP流:支持实时通信和服务器发送的事件
  • ✅ 多种工具:天气API、BMI计算器等
  • ✅ 资源和提示:动态问候和问题生成
  • ✅ 铁路优化:配置为无缝铁路部署

可用工具

  1. get_weather(城市) -获取任何城市的模拟天气数据
  2. calculate_bmi(重量kg,高度m) -根据类别分类计算BMI
  3. 问候语://{{name}} -个性化问候资源
  4. ask_question(主题、风格) -生成关于主题的风格化问题

地方发展

先决条件

  • Python 3.8+
  • pip或uv包管理器

设置

# Clone this repository
git clone <your-repo-url>
cd mcp-railway-server

# Install dependencies
pip install -r requirements.txt
# OR with uv
uv pip install -r requirements.txt

# Run locally
python main.py

服务器将于启动 http://localhost:8000/mcp 使用流式HTTP传输。

测试服务器

您可以使用MCP Inspector或任何支持Streamable HTTP的MCP客户端测试服务器:

# Install MCP CLI tools (if available)
uv tool install mcp

# Test with MCP Inspector
mcp inspect http://localhost:8000/mcp

铁路部署

方法1:从GitHub部署(推荐)

  1. 分叉此存储库 转到您的GitHub帐户

  2. 创建新的铁路项目:

    • 首选 铁路
    • 点击“新建项目”
    • 选择“从GitHub仓库部署”
    • 选择您的分叉存储库
  3. 配置部署:

    • 铁路将自动检测 railway.json 配置
    • 该应用程序将使用Nixpacks构建
    • 不需要额外的环境变量
  4. 生成域:

    • 转到您的服务设置
    • 导航到“网络”选项卡
    • 点击“生成域名”
    • 您的MCP服务器将在以下网址提供: https://your-app-name.railway.app/mcp

方法2:使用Railway CLI进行部署

# Install Railway CLI
npm install -g @railway/cli

# Login to Railway
railway login

# Initialize project
railway init

# Deploy
railway up

方法3:使用Docker进行部署

如果你更喜欢使用Docker:

# Build Docker image
docker build -t mcp-server .

# Run locally (test)
docker run -p 8000:8000 -e PORT=8000 mcp-server

# Deploy to Railway (Railway will handle this automatically if Dockerfile is present)

配置

环境变量

铁路自动设置 PORT 环境变量。基本部署不需要额外的配置。

您可以添加的可选环境变量:

  • MCP_SERVER_NAME:自定义服务器名称(默认:“铁路MCP服务器”)
  • DEBUG:设置为“true”用于调试日志记录

MCP客户端配置

要将MCP客户端连接到部署的服务器,请使用以下配置:

{
  "mcpServers": {
    "railway-mcp": {
      "type": "streamable-http",
      "url": "https://your-app-name.railway.app/mcp"
    }
  }
}

建筑

此服务器使用:

  • FastMCP:高级MCP服务器框架
  • 可流式HTTP传输:现代双向通信协议
  • 月台:具有自动扩展功能的无服务器部署

流式HTTP的主要优点:

  • 所有通信的单一端点(/mcp)
  • 需要时自动连接升级到SSE
  • 性能优于传统的HTTP+SSE方法
  • 全面的双向通信支持

故障排除

常见问题

  1. 本地端口绑定错误:

    # Make sure port 8000 is available
    lsof -i :8000
    
  2. 铁路部署失败:

    • 检查一下 requirements.txt 包含 mcp>=1.8.0
    • 确保 railway.json 具有正确的启动命令
    • 验证Railway是否可以访问您的GitHub存储库
  3. MCP客户端连接问题:

    • 确保客户端支持流式HTTP传输
    • 使用正确的URL格式: https://your-app.railway.app/mcp
    • 检查铁路域是否已生成且可访问

日志和调试

查看铁路日志:

railway logs

通过设置环境变量启用调试模式:

railway variables set DEBUG=true

后续步骤

  1. 添加身份验证:为安全端点实现OAuth 2.1
  2. 添加真实API:用真实天气/数据API替换模拟数据
  3. 数据库集成:使用Railway PostgreSQL添加持久存储
  4. 监控:为生产使用设置日志记录和监控

资源

许可证

MIT许可证-有关详细信息,请参阅许可证文件。