OpenWeather MCP 服务器
一个使用OpenWeather API提供天气查询工具的模型上下文协议(MCP)服务器。
特点/功能
get_current_temperature获取某城市的当前温度get_weather_forecast获取某城市的天气预报
技术
- Python 3.11+
- FastMCP构建MCP服务器的框架
- 紫外线现代Python包管理器
- OpenWeather API天气数据提供商
部署到铁路(系统/网络)
步骤1:设置存储库
这个项目预配置了:
Dockerfile针对紫外线进行了优化railway.toml带有部署设置- 适当的;合适的
.gitignore
步骤2:在Railway中配置环境变量
在铁路仪表板中,配置以下变量:
要求:
OPENWEATHER_KEY你的OpenWeather API密钥
第三步:部署
- 将您的GitHub仓库连接到Railway
- 铁路(系统/平台)将自动检测Dockerfile
- 配置环境变量
- 自动部署将开始
步骤4:获取URL
部署完成后,铁路部门将为您的MCP服务器提供一个公共URL。
与MCP客户端配合使用
配置您的MCP客户端(如Claude Desktop)以连接到服务器:
{
"mcpServers": {
"openweather": {
"url": "https://your-app.railway.app/mcp",
"transport": "http"
}
}
}重要提示: MCP HTTP客户端必须发送头部信息 Accept: application/json, text/event-stream 在连接到服务器时。
OpenWeather API
获取免费API密钥:
- 参观 OpenWeather(开放天气)
- 创建一个账户
- 生成一个API密钥
故障排除
错误 400 - 错误请求
如果你遇到400错误,很可能是由以下这些问题之一引起的:
- 缺少 Accept 头MCP客户端必须发送
Accept: application/json, text/event-stream - 缺少OPENWEATHER_KEY确保你在Railway中配置了环境变量
- 无效的API密钥请验证您的OpenWeather API密钥是否处于激活状态且有效
测试服务器
你可以使用curl来测试你已部署的服务器:
# Test initialization (replace with your Railway URL)
curl -X POST \
-H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","id":1,"params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test-client","version":"1.0"}}}' \
https://your-app.railway.app/mcp如果服务器运行正常,你应该会看到一个包含服务器信息的JSON响应。
项目结构
railway_openweather_mcp/
├── weather_mcp_server_http.py # Main server code
├── pyproject.toml # Dependencies and configuration
├── uv.lock # UV lock file
├── Dockerfile # Docker configuration
├── railway.toml # Railway configuration
├── .env.example # Example environment variables
├── .gitignore # Git ignored files
├── LICENSE # MIT License
└── README.md # This file许可证
麻省理工学院(MIT)- 见 许可证 文件详情请见附件
