温度查询工具服务

一个基于Python和FastAPI构建的温度查询工具服务,可部署在Render、Vercel和Railway等云平台上,提供实时温度查询、温度转换和天气预报功能。

  • by KesavaSravan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 KesavaSravan/mcp-temperature-tool

使用说明

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 venv

2.激活它

  • Windows(CMD): venv\Scripts\activate.bat
  • Windows(PowerShell): .\venv\Scripts\Activate.ps1
  • Linux/macOS: source venv/bin/activate

3.安装依赖项

pip install -r requirements.txt

4.配置环境变量 创建一个 .env 文件,并添加您的OpenWeatherMap API密钥:

OWM_API_KEY=your_api_key_here

5.运行服务器

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 httpx

2.运行测试

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"}}}'