MCP气象服务
模型控制协议(MCP)服务器,使用美国国家气象局(NWS)API提供天气相关工具,包括天气警报和预报。
特性
- MCP工具:
- get_alerts:检索美国任何州的天气警报 - get_forecast:按坐标获取详细的天气预报
- MCP集成:
- 采用FastMCP框架构建 - 异步操作支持 - 类型注释接口 - 自我记录工具
截图
入门指南
先决条件
- Python 3.8+
- pip(Python包管理器)
- 互联网连接(用于API访问)
安装
- 克隆存储库:
git clone
cd weather- 创建并激活虚拟环境(推荐):
python -m venv .venv
.venv\Scripts\activate # On Windows- 安装所需的依赖项:
pip install -e .用法
可用命令
- 获取天气警报
from weather import get_alerts
# Get alerts for California
alerts = await get_alerts("CA")
print(alerts)- 获取天气预报
from weather import get_forecast
# Get forecast for New York City
forecast = await get_forecast(40.7128, -74.0060)
print(forecast)api参考
get_alerts(state: str) -> str
获取美国某个州的天气警报。
state:两个字母的美国州代码(例如“CA”、“NY”)
get_forecast(latitude: float, longitude: float) -> str
获取特定坐标的天气预报。
latitude:位置纬度longitude:位置经度
MCP实施
项目结构
weather.py:带有工具定义的主MCP服务器实现main.py:MCP服务器入口点pyproject.toml:具有MCP依赖关系的项目配置
MCP工具
get_alerts(state: str) -> str
获取美国某个州的活跃天气警报。
参数:
state:两个字母的美国州代码(例如“CA”、“NY”)
退货: 包含活动天气警报的格式化字符串
get_forecast(latitude: float, longitude: float) -> str
检索特定坐标的天气预报。
参数:
latitude:位置纬度longitude:位置经度
退货: 格式化天气预报信息
MCP依赖关系
fastmcp:核心MCP服务器实现httpx:API请求的异步HTTP客户端pydantic:用于数据验证和设置管理
