MCP温度工具服务器
使用Python和FastAPI构建的模型上下文协议(MCP)工具服务器,旨在部署在Render、Vercel和Railway等云平台上。
工具详细信息
1. get_temperature
- 描述:获取城市的当前实时温度(必填
OWM_API_KEY). - 输入:JSON
city字符串属性。
2. get_temperature_forecast
- 描述:获取一个城市未来3天的实时温度预报(需要
OWM_API_KEY). - 输入:JSON
city字符串属性。
3. convert_temperature
- 描述:将温度转换为摄氏度(°C)和华氏度(°F)。
- 输入:JSON格式
value(数字),from_unit(字符串:'C'或'F'),以及to_unit(字符串:'C'或'F')。
端点
GET /health-HTTP健康检查端点。POST /-标准MCP JSON-RPC端点。支持的标准有效载荷方法:
- initialize - tools/list - tools/call
本地设置
1.创建虚拟环境
python -m venv venv2.激活它
- Windows(CMD):
venv\Scripts\activate.bat - Windows(PowerShell):
.\venv\Scripts\Activate.ps1 - Linux/macOS:
source venv/bin/activate
3.安装依赖项
pip install -r requirements.txt4.配置环境变量 创建一个 .env 文件,并添加您的OpenWeatherMap API密钥:
OWM_API_KEY=your_api_key_here5.运行服务器
uvicorn main:app --host 0.0.0.0 --port 8000云部署(Vercel、Render、Railway)
此服务器依赖于标准 FastAPI 和 uvicorn,使其与Render、Railway或Vercel等平台原生兼容(通过 vercel.json).
- 渲染/铁路:由于以下原因,这些平台将自动检测Python
requirements.txt您可以使用start命令uvicorn main:app --host 0.0.0.0 --port $PORT(渲染/铁路使用$PORT环境变量)。 - 维塞尔:该项目包括
vercel.json文件。它已预先配置为使用@vercel/python构建器,这意味着您可以将其原生部署到Vercel,而无需任何额外配置。
测试
提供了一个全面的测试套件 test_main.py这将测试FastAPI端点、MCP JSON-RPC协议处理和所有工具执行路径。
1.安装测试依赖项
pip install pytest pytest-asyncio httpx2.运行测试
pytest test_main.py -v示例请求
要使用MCP JSON-RPC端点获取城市的温度:
curl -X POST http://127.0.0.1:8000/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_temperature", "arguments": {"city": "Hyderabad"}}}'