天气微服务

一个基于Python的天气微服务,通过FastAPI服务器获取OpenWeatherMap One Call API数据,适用于本地或GCP部署,提供灵活的天气信息访问。

  • by nmsabc
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 nmsabc/weather_mcp_server

使用说明

气象MCP服务器

一个带有MCP包装器的Python天气微服务。它通过FastAPI服务器获取OpenWeatherMap One Call API数据(lat/lon的当前天气),该服务器可由单独的客户端或LLM使用。可配置为本地或GCP部署,可灵活访问天气信息。

快速开始

  1. 安装依赖项:
pip install -r requirements.txt
  1. 配置环境:
cp .env.example .env
# Add your OpenWeatherMap API key to .env
  1. 运行服务器:
python main.py
  1. 通过http运行服务器
python mcp_server_http.py --host 0.0.0.0 --port 8001
  1. 这样调用新服务器
curl -X POST http://localhost:8001/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "get_current_weather",
      "arguments": {"location": "Baden bei Wien"}
    },
    "id": 1
  }' | jq
  1. 从聊天cli调用mcp服务器
cd /Users/seba/GCP/mcp_cli_model_agnostic
workon mcp_cli_model_agnostic
python3 -m mcp_cli.cli chat --mcp-server "python examples/mcp_server.py" --mcp-server "python examples/weather_http_bridge.py"
  1. 或访问API http://localhost:8000

特性

  • 🌤️ 通过OpenWeatherMap One Call API获取的当前天气数据
  • 🚀 FastAPI REST API服务器
  • 🤖 用于LLM集成的MCP包装器
  • 🔧 本地和GCP部署支持
  • 📊 全面的错误处理
  • 🌍 多单元系统和语言

API使用

获取坐标的天气:

curl "http://localhost:8000/weather?latitude=40.7128&longitude=-74.0060&units=metric"

看 DOCS.md 以获取完整的文档。

部署

  • 本地: python main.py
  • 码头工人: docker build -t weather-mcp-server . && docker run -p 8000:8000 --env-file .env weather-mcp-server
  • 谷歌云平台: gcloud app deploy

文档

  • 完整文档: DOCS.md
  • API文件: http://localhost:8000/docs (运行时)