带HTTP流的MCP服务器-铁路部署
该项目演示了如何将支持HTTP流的模型上下文协议(MCP)服务器部署到Railway。服务器使用现代 可流式HTTP传输 其通过单个HTTP端点提供高效的双向通信。
特性
- ✅ 可流式HTTP传输:具有全双向流的现代MCP传输
- ✅ HTTP流:支持实时通信和服务器发送的事件
- ✅ 多种工具:天气API、BMI计算器等
- ✅ 资源和提示:动态问候和问题生成
- ✅ 铁路优化:配置为无缝铁路部署
可用工具
- get_weather(城市) -获取任何城市的模拟天气数据
- calculate_bmi(重量kg,高度m) -根据类别分类计算BMI
- 问候语://{{name}} -个性化问候资源
- ask_question(主题、风格) -生成关于主题的风格化问题
地方发展
先决条件
- Python 3.8+
- pip或uv包管理器
设置
# Clone this repository
git clone
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部署(推荐)
- 分叉此存储库 转到您的GitHub帐户
- 创建新的铁路项目:
- 首选 铁路 - 点击“新建项目” - 选择“从GitHub仓库部署” - 选择您的分叉存储库
- 配置部署:
- 铁路将自动检测 railway.json 配置 - 该应用程序将使用Nixpacks构建 - 不需要额外的环境变量
- 生成域:
- 转到您的服务设置 - 导航到“网络”选项卡 - 点击“生成域名” - 您的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方法
- 全面的双向通信支持
故障排除
常见问题
- 本地端口绑定错误:
# Make sure port 8000 is available
lsof -i :8000- 铁路部署失败:
- 检查一下 requirements.txt 包含 mcp>=1.8.0 - 确保 railway.json 具有正确的启动命令 - 验证Railway是否可以访问您的GitHub存储库
- MCP客户端连接问题:
- 确保客户端支持流式HTTP传输 - 使用正确的URL格式: https://your-app.railway.app/mcp - 检查铁路域是否已生成且可访问
日志和调试
查看铁路日志:
railway logs通过设置环境变量启用调试模式:
railway variables set DEBUG=true后续步骤
- 添加身份验证:为安全端点实现OAuth 2.1
- 添加真实API:用真实天气/数据API替换模拟数据
- 数据库集成:使用Railway PostgreSQL添加持久存储
- 监控:为生产使用设置日志记录和监控
资源
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
