使用说明
气象MCP服务器
模型上下文协议(MCP)服务器,使用美国国家气象局API提供天气预报和警报。
特性
此MCP服务器公开了两个主要工具:
- 获取警报:获取美国任何州的活跃天气警报
- 获取预测:获取任何位置(纬度/经度)的详细天气预报
先决条件
- Python 3.10或更高版本
- uv包管理器(推荐)或pip
- MCP兼容客户端(例如,桌面版的Claude)
安装
1.安装uv(推荐)
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
2.建立项目
导航到天气目录并安装依赖项:
cd weather
uv venv
.venv\Scripts\Activate.ps1 # Windows
# source .venv/bin/activate # macOS/Linux
uv sync
或者,使用pip:
cd weather
pip install -r requirements.txt
运行服务器
独立测试
要直接测试服务器,请执行以下操作:
# Using uv (recommended)
uv run weather.py
# Or using Python directly
python weather.py
服务器将启动并通过STDIO监听MCP请求。
与Claude for Desktop集成
-
安装桌面版Claude 从 claude.ai/下载
-
为桌面配置Claude 通过编辑配置文件:
窗户:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:~/.config/Claude/claude_desktop_config.json -
添加天气服务器配置:
{ "mcpServers": { "weather": { "command": "uv", "args": [ "--directory", "C:\\ABSOLUTE\\PATH\\TO\\YOUR\\weather", "run", "weather.py" ] } } }重要提示: 替换
C:\\ABSOLUTE\\PATH\\TO\\YOUR\\weather带有天气目录的实际绝对路径。如果你没有uv,你可以直接使用Python:
{ "mcpServers": { "weather": { "command": "python", "args": [ "C:\\ABSOLUTE\\PATH\\TO\\YOUR\\weather\\weather.py" ] } } } -
重新启动桌面版的Claude
-
测试集成 通过向克劳德提出以下问题:
- “萨克拉门托的天气预报是什么?”(需要纬度/经度)
- “德克萨斯州的活跃天气警报是什么?”
- “获取加利福尼亚州的天气警报”
使用示例
一旦配置了Claude for Desktop,您就可以使用自然语言与天气工具进行交互:
天气警报
- “佛罗里达州有天气警报吗?”
- “显示德克萨斯州的活动天气警报”
- “加利福尼亚州有哪些天气预警?”
天气预报
- “纬度38.7749,经度-122.4194的预报是什么?”(旧金山)
- “获取坐标40.7128,-74.0060的天气预报”(纽约)
api参考
get_alerts(状态:str)
获取美国某个州的活跃天气警报。
参数:
state:两个字母的美国州代码(例如,“CA”、“NY”、“TX”)
退货: 带有警报详细信息的格式化字符串,包括事件类型、区域、严重性、描述和说明。
get_forecast(纬度:float,经度:float)
获取特定位置的天气预报。
参数:
latitude:纬度坐标(浮动)longitude:经度坐标(浮动)
退货: 带有预测期的格式化字符串,包括温度、风和详细的预测信息。
故障排除
常见问题
-
服务器未在Claude for Desktop中显示:
- 验证配置文件中的绝对路径
- 确保uv在您的PATH中或使用uv.exe的完整路径
- 配置更改后重新启动Claude for Desktop
- 检查配置JSON是否有效
-
“无法获取”错误:
- 确保您有互联网连接
- 美国国家气象局API仅适用于美国地区
- 检查坐标是否有效(纬度:-90到90,经度:-180到180)
-
导入错误:
- 验证是否安装了所有依赖项:
uv sync或pip install httpx mcp[cli] - 确保你使用的是Python 3.10或更高版本
- 验证是否安装了所有依赖项:
日志记录
服务器使用stderr进行日志记录,以避免干扰MCP协议。如果需要调试:
- 添加写入stderr或文件的日志语句
- 从不使用
print()主服务器代码中的语句,因为它们会破坏STDIO传输
发展
服务器是使用以下方式构建的:
- FastMCP:简化的MCP服务器框架
- httpx:API请求的异步HTTP客户端
- 美国国家气象局API:免费天气数据源
要修改或扩展服务器,请执行以下操作:
- 编辑
weather.py - 使用添加新工具
@mcp.tool()装饰器 - 遵循MCP错误处理和响应格式的最佳实践
许可证
这个项目是开源的,可以在MIT许可证下使用。