气象MCP服务器
模型上下文协议(MCP)服务器,使用美国国家气象局(NWS)API提供天气信息和警报。此服务器提供用于检索美国各地天气预报和活动天气警报的工具。
关于本项目
该项目基于 模型上下文协议(MCP)入门教程 对于服务器开发人员来说。本教程为构建MCP服务器并将其与Claude for Desktop等客户端集成提供了全面的指南。
此天气服务器的原始代码示例可以在 MCP快速入门资源库.
特性
- 天气警报:使用两个字母的州代码获取美国任何州的活动天气警报
- 天气预报:检索特定坐标的详细天气预报
- 实时数据:使用官方国家气象局API获取准确、最新的信息
- 易于集成:简单的MCP服务器,可以与任何兼容MCP的客户端集成
安装
先决条件
- Python 3.8或更高版本
uv包管理器(推荐)或pip
设置
- 克隆存储库:
git clone https://github.com/agentventure/mcp_server_python_getting_started.git
cd mcp_server_python_getting_started- 使用安装依赖项
uv:
uv sync或使用 pip:
pip install -r requirements.txt用法
运行服务器
启动MCP服务器:
uv run weather.py服务器将启动并通过stdio进行通信,准备处理来自MCP客户端的请求。
可用工具
1.获取天气警报(get_alerts)
检索美国某个州的活动天气警报。
参数:
state(string):两个字母的美国州代码(例如,“CA”、“NY”、“TX”)
例子:
# Get alerts for California
alerts = await get_alerts("CA")响应格式:
Event: Severe Thunderstorm Warning
Area: Northern California
Severity: Severe
Description: Severe thunderstorm warning in effect...
Instructions: Take shelter immediately...
---
Event: Flood Watch
Area: Central Valley
Severity: Moderate
Description: Flood watch in effect...
Instructions: Monitor weather conditions...2.获取天气预报(get_forecast)
获取特定地点的详细天气预报。
参数:
latitude(float):位置的纬度坐标longitude(float):位置的经度坐标
例子:
# Get forecast for San Francisco (37.7749, -122.4194)
forecast = await get_forecast(37.7749, -122.4194)响应格式:
Tonight:
Temperature: 55°F
Wind: 10 mph NW
Forecast: Clear skies with light winds. Low around 55.
---
Tomorrow:
Temperature: 68°F
Wind: 15 mph W
Forecast: Sunny with increasing clouds in the afternoon. High near 68.
---
Tomorrow Night:
Temperature: 52°F
Wind: 8 mph NW
Forecast: Partly cloudy with light winds. Low around 52.api信息
此服务器使用 美国国家气象局API,它提供:
- 不需要API密钥:免费获取天气数据
- 实时更新:数据全天频繁更新
- 全面覆盖:覆盖美国所有州和地区
- 可靠的服务:政府官方气象服务
数据源
- 警报:来自NWS的活跃天气警报
- 预测:详细的天气预报,包括温度、风和条件
- 地理数据:美国任何地点的基于点的天气信息
错误处理
该服务器包括强大的错误处理功能,用于:
- 网络连接问题
- 坐标或州代码无效
- API服务不可用
- 超时条件
当发生错误时,服务器会返回信息性错误消息以帮助调试。
发展
项目结构
weather/
├── weather.py # Main MCP server implementation
├── main.py # Entry point for running the server
├── pyproject.toml # Project configuration and dependencies
├── README.md # This file
└── .gitignore # Git ignore rules依赖项
mcp:模型上下文协议服务器框架httpx:API请求的异步HTTP客户端fastmcp:FastMCP服务器实施
添加新功能
要添加新的天气相关工具,请执行以下操作:
- 在中创建一个新的异步函数
weather.py - 用
@mcp.tool() - 添加适当的类型提示和文档字符串
- 使用现有的实现错误处理
make_nws_request助手
贡献
欢迎投稿!请随时提交拉取请求。
许可证
这个项目是开源的,可以在MIT许可证下使用。
支持
对于问题或疑问:
- 检查 美国国家气象局API文件
- 查阅MCP文档,网址为 模型上下文协议.io
- 在此存储库中打开问题
______________________________________________________________________
备注:此服务器专为教育和发展目的而设计。对于生产使用,考虑根据您的特定要求实施速率限制和额外的错误处理。
