天气数据服务

一个基于模型上下文协议(MCP)的服务器,提供来自美国国家气象局(NWS)API的实时天气数据和警报。

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

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,提供来自美国国家气象局(NWS)API的实时天气数据和警报。

特性

  • 🌤️ 天气预报:使用纬度/经度坐标获取美国任何地点的详细天气预报
  • 🚨 天气警报:检索美国任何州的活动天气警报
  • 🔌 MCP兼容:与Claude Desktop和其他MCP客户端无缝集成

工具

get_forecast

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

参数:

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

退货: 未来5个时期的格式化预测,包括温度、风况和详细描述。

例子:

get_forecast(40.7128, -74.0060)  # New York City

get_alerts

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

参数:

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

退货: 活动天气警报列表,包括事件类型、区域、严重程度、描述和说明。

例子:

get_alerts("CA")  # California alerts

安装

先决条件

  • Python 3.12或更高版本
  • 紫外线 包管理器

设置

  1. 克隆存储库:
git clone https://github.com/Benziela/weather-mcp.git
cd weather-mcp
  1. 安装依赖项:
uv sync

用法

使用克劳德桌面

将此配置添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "weather": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\jonathbenjamin_a\\Learn\\weather-mcp",
        "run",
        "weather"
      ]
    }
  }
}

独立

直接运行服务器:

uv run weather

发展

项目结构:

weather-mcp/
├── weather.py          # Main MCP server implementation
├── main.py            # Entry point
├── pyproject.toml     # Project configuration
├── uv.lock           # Dependency lock file
└── README.md         # This file

API数据源

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

  • 无需API密钥即可免费访问
  • 美国各地的高质量天气数据
  • 实时天气警报和警告
  • 详细的预测期

依赖项

  • httpx -API请求的异步HTTP客户端
  • mcp -支持CLI的模型上下文协议SDK

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。

作者

本齐尔