一个基于Model Context Protocol (MCP)的服务器,提供美国各地的实时天气警报和预报。使用FastMCP构建,并由国家气象服务(NWS)API驱动。
马特乌斯·雷米吉奥
联系:matheus.remido@gmail.com
克隆仓库
git clone https://github.com/msremigio/mcp-server-weather.git
cd mcp_weather
使用uv安装依赖
uv sync
激活虚拟环境
uv shell
uv run weather.py
服务器将启动并通过stdio传输监听MCP协议消息。
在您的MCP客户端配置中添加以下内容(例如,mcp.json):
{
"mcpServers": {
"mcp_weather": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/mcp_weather/project",
"run",
"weather.py"
]
}
}
}
注意:更新--directory路径以匹配您的实际项目位置。
get_alerts)检索特定美国州的当前天气警报。
参数:
state (str): 两个字母的州缩写(例如,“CA”,“NY”,“TX”)返回:
示例响应:
事件:严重雷暴警告
区域:北加州
严重程度:严重
描述:可能产生大冰雹和破坏性风力的强烈雷暴
指令:移动到建筑物底层的内部房间
---
事件:洪水预警
区域:南加州
严重程度:中等
描述:强降雨可能导致突发洪水
指令:监测天气状况并准备采取行动
get_forecast)检索特定坐标的5天天气预报。
参数:
latitude (str): 纬度坐标(十进制度数)longitude (str): 经度坐标(十进制度数)返回:
示例响应:
今晚:
- 温度:45°F
- 风速:5mph 西北风
- 预报:晴朗天空伴有轻风
---
明天:
- 温度:72°F
- 风速:10mph 南西风
- 预报:白天温暖晴朗,下午云量增加
mcp_weather/
├── weather.py # 主MCP服务器实现
├── main.py # 简单入口点(占位符)
├── pyproject.toml # 项目配置和依赖项
├── mcp.json # MCP客户端配置模板
├── README.md # 此文件
├── uv.lock # 依赖锁定文件
├── .python-version # Python版本规范
└── .venv/ # 虚拟环境目录
本项目使用National Weather Service (NWS) API,它提供了:
要添加新的与天气相关的工具:
weather.py中创建一个新的异步函数@mcp.tool()装饰该函数# 在开发模式下运行服务器
uv run weather.py
# 使用MCP客户端工具进行测试
# 服务器将响应MCP协议消息
服务器包括全面的错误处理:
MIT许可证。
对于问题、疑问或贡献:
注意:此服务器需要活动的互联网连接来从NWS API获取天气数据。