天气预测服务器

一个基于Model Context Protocol (MCP)的服务器,提供美国地区的天气预测和警报服务,可通过HTTP远程访问。

  • by venusgoyal
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 venusgoyal/remoteMCPServer

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,使用美国国家气象局(NWS)API提供天气预报和警报。此服务器使用FastMCP构建,可以部署为远程HTTP服务。

特性

  • 天气预报:使用纬度/经度坐标获取美国任何地点的详细天气预报
  • 天气警报:检索美国任何州的活动天气警报
  • 远程HTTP服务器:可以远程部署并由MCP客户端访问的无状态HTTP服务器
  • Docker支持:带有健康检查的容器化部署
  • 高性能:内置FastMCP,可高效处理请求

可用工具

get_forecast

获取特定地点的详细天气预报。

参数:

  • latitude (浮动):位置的纬度
  • longitude (浮动):位置的经度

退货: 5期天气预报,包括温度、风和详细情况

get_alerts

获取美国某个州的活跃天气警报。

参数:

  • state (string):两个字母的美国州代码(例如,“CA”、“NY”、“TX”)

退货: 活动天气警报列表,包括严重程度、描述和说明

安装

先决条件

地方发展

  1. 克隆存储库:
git clone <repository-url>
cd remoteMCPServer/weather
  1. 安装依赖项:
uv sync
  1. 运行服务器:
uv run weather.py

服务器将于启动 http://localhost:8000 默认情况下。

Docker部署

  1. 构建Docker镜像:
docker build -t weather-mcp-server .
  1. 运行容器:
docker run -p 8000:8000 weather-mcp-server
  1. 服务器将在以下时间可用 http://localhost:8000

配置

可以使用环境变量配置服务器:

  • MCP_HTTP_PORT:运行服务器的端口(默认值:8000)
  • MCP_HTTP_HOST:将服务器绑定到的主机(默认值:127.0.0.1,Docker使用0.0.0.0)

用法示例

与MCP客户端一起使用

服务器运行后,您可以使用任何MCP客户端连接到它。服务器公开了两个工具:

获取天气预报

# Request forecast for San Francisco (37.7749, -122.4194)
result = await client.call_tool("get_forecast", {
    "latitude": 37.7749,
    "longitude": -122.4194
})

获取天气警报

# Get alerts for California
result = await client.call_tool("get_alerts", {
    "state": "CA"
})

HTTP API终结点

服务器公开标准MCP HTTP端点:

  • GET /health -健康检查端点
  • POST /mcp/v1/tools/list -列出可用工具
  • POST /mcp/v1/tools/call -调用特定工具

API数据源

此服务器使用 美国国家气象局(NWS)API,它提供:

  • 美国的高质量天气数据
  • 不需要API密钥
  • 免费公众访问
  • 可靠的政府数据来源

发展

项目结构

weather/
├── weather.py          # Main MCP server implementation
├── main.py            # Alternative entry point
├── pyproject.toml     # Project dependencies
├── Dockerfile         # Container configuration
├── uv.lock           # Locked dependency versions
└── README.md         # This file

依赖项

  • fastmcp>=2.10.1 -用于构建MCP服务器的FastMCP框架
  • httpx>=0.28.1 -API请求的异步HTTP客户端
  • mcp[cli]>=1.10.1 -MCP CLI工具

错误处理

服务器包括强大的错误处理功能:

  • HTTP请求超时(30秒)
  • API不可用时的优雅降级
  • 符合NWS API的正确用户代理标头
  • JSON解析错误处理

健康监测

Docker容器包含一个健康检查,用于验证服务器是否正在响应:

  • 间隔:30秒
  • 超时:10秒
  • 开始时间:5秒
  • 重试:3次尝试

支持

对于问题和疑问: