天气数据服务

Weather MCP Server 是一个基于模型上下文协议(MCP)的服务器,提供天气警报和预报服务,使用美国国家气象局API。

  • by Lowess
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Lowess/mcp-weather

使用说明

气象MCP服务器🌤️

模型上下文协议(MCP)服务器,使用美国国家气象局API提供天气警报和预报。

特性

  • 🚨 天气警报:获取美国任何州的活跃天气警报
  • 🌡️ 天气预报:获取特定坐标的详细预测
  • 📖 交互式文档:Swagger UI和ReDoc端点
  • 🚀 流式HTTP:MCP通信的快速HTTP传输

快速开始使用uvx

运行服务器最简单的方法是使用 uvx:

# Run directly from the current directory
uvx --from . weather-server

# Or run the main module directly
uvx --python 3.10 --from . --spec weather main:main

替代运行方法

直接使用Python

python main.py

使用紫外线(如果您安装了紫外线)

uv run python main.py

API文档

服务器运行后,您可以访问:

  • MCP端点: http://localhost:8080/mcp
  • Swagger用户界面: http://localhost:8080/docs
  • ReDoc: http://localhost:8080/redoc
  • OpenAPI架构: http://localhost:8080/openapi.json

可用工具

get_alerts(状态:str)

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

参数:

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

例子:

await get_alerts("CA")  # Get alerts for California

get_forecast(纬度:float,经度:float)

获取特定坐标的详细天气预报。

参数:

  • latitude:以十进制度数表示的纬度(例如37.7749)
  • longitude:以十进制度数表示的经度(例如-122.4194)

例子:

await get_forecast(37.7749, -122.4194)  # San Francisco forecast

发展

再进行

uv sync

以开发模式运行

uv run python main.py

需求

  • Python 3.10+
  • httpx
  • mcp[cli]
  • fastmcp

所有依赖关系都通过以下方式管理 pyproject.toml 并且可以自动安装 uv 或 uvx.