气象MCP服务器
一种模型上下文协议(MCP)服务器,使用美国国家气象局API提供天气信息。此服务器公开了用于获取美国各地天气预报和警报的工具。
特性
- 🌤️ 天气预报:使用纬度/经度坐标获取美国任何地点的详细天气预报
- 🚨 天气警报:检索美国任何州的活动天气警报
- 🔌 MCP集成:与Claude无缝协作,适用于桌面和其他MCP兼容客户端
- 📡 实时数据:从美国国家气象局API获取实时数据
可用工具
get-forecast
获取特定位置的天气预报。
参数:
latitude(浮动):位置的纬度(-90到90)longitude(浮动):位置的经度(-180到180)
示例用法:
- “旧金山的天气预报是什么?”(克劳德将使用坐标约37.7749,-122.4194)
- “给我纬度47.6062,经度-122.3321的天气预报”(西雅图)
get-alerts
获取美国某个州的活跃天气警报。
参数:
state(string):两个字母的美国州代码(例如,“CA”、“NY”、“TX”)
示例用法:
- “加利福尼亚州的活跃天气警报是什么?”
- “得克萨斯州有天气预警吗?”
先决条件
- Python 3.10或更高版本
uv包管理器- 访问互联网(用于NWS API调用)
安装
- 安装uv (如果尚未安装):
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"- 克隆或导航到项目目录:
cd weather- 安装依赖项:
uv sync运行服务器
独立测试
要直接测试服务器,请执行以下操作:
uv run weather.py服务器将启动并监听标准输入/输出。您可以使用MCP检查器或其他MCP客户端对其进行测试。
Claude桌面版
- 安装桌面版Claude 从 claude.ai/下载
- 为桌面配置Claude 通过编辑配置文件:
macOS/Linux:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json窗户:
code $env:AppData\Claude\claude_desktop_config.json- 添加天气服务器配置:
macOS/Linux:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/YOUR/weather",
"run",
"weather.py"
]
}
}
}窗户:
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"C:\\ABSOLUTE\\PATH\\TO\\YOUR\\weather",
"run",
"weather.py"
]
}
}
}- 重新启动桌面版的Claude 完全
- 验证集成 在Claude for Desktop中查找“搜索和工具”图标
使用示例
一旦配置了Claude for Desktop,您可以提出以下问题:
- “萨克拉门托的天气预报是什么?”
- “给我纽约市的天气预报”
- “佛罗里达州的活跃天气警报是什么?”
- “得克萨斯州有任何恶劣天气预警吗?”
- “坐标40.7128,-74.0060处的天气怎么样?”(纽约市)
API详细信息
此服务器使用美国国家气象局API(API.weither.gov),该API:
- 提供免费访问美国天气数据
- 不需要API密钥
- 以JSON格式返回数据
- 仅覆盖美国地区
项目结构
weather/
├── main.py # Entry point (if needed)
├── weather.py # Main MCP server implementation
├── pyproject.toml # Project configuration and dependencies
├── uv.lock # Dependency lock file
└── README.md # This file故障排除
服务器未在Claude中显示
- 检查配置文件语法 -确保JSON有效
- 验证绝对路径 -使用完整路径,而不是相对路径
- 检查克劳德的日志:
# macOS/Linux
tail -f ~/Library/Logs/Claude/mcp*.log
# Windows
# Check logs in %AppData%\Claude\logs\- 重新启动桌面版的Claude 完全
工具调用失败
- 验证服务器是否独立运行:
uv run weather.py- 检查速率限制 -NWS API有费率限制
- 确保坐标为美国位置 -NWS API仅适用于美国
- 检查互联网连接 -服务器需要访问api.weather.gov
常见错误消息
- “检索网格点数据失败”:通常意味着坐标在美国境外
- “此状态没有活动警报”:不是错误-只是表示没有当前警报
- “无法获取预测数据”:网络问题或坐标无效
发展
添加新工具
要添加新的天气相关工具,请执行以下操作:
- 使用添加工具
@mcp.tool()装饰器 - 使用适当的类型提示实现async函数
- 添加错误处理和验证
- 测试用
uv run weather.py
依赖项
关键依赖关系(由管理 uv):
mcp:模型上下文协议SDKhttpx:API请求的HTTP客户端fastmcp:简化的MCP服务器框架
许可证
该项目是模型上下文协议生态系统的一部分。检查其许可证的各个依赖关系。
贡献
请随时提交问题和拉取请求以改进天气服务器功能。
