使用说明
气象MCP服务器
模型上下文协议(MCP)服务器,通过Open-Meteo API提供天气数据。该服务器允许AI代理和应用程序使用纬度和经度坐标获取任何位置的当前天气信息。
特性
- 🌤️ 实时天气数据:获取任何位置的当前天气状况
- 📍 基于坐标的查找:使用纬度和经度进行精确定位
- 🔄 异步操作:内置async/await,用于高效的API调用
- 🛡️ 错误处理:稳健的错误处理,优雅的回退
- 📊 综合数据:包括温度、降水、天气代码等
先决条件
- Python 3.13或更高版本
uv包管理器(推荐)或pip
安装
-
克隆或导航到项目目录:
cd weather_mcp_Server -
使用uv安装依赖项:
uv sync或者使用pip:
pip install -r requirements.txt
用法
运行服务器
启动MCP服务器:
python server.py
服务器将启动并通过stdio传输监听MCP协议消息。
可用工具
get_current_weather
获取指定位置的当前天气数据。
参数:
latitude(float):位置的纬度坐标longitude(float):位置的经度坐标
退货:
dict[str, Any]:天气数据包括:- 每小时数据:温度、降水、天气代码
- 每日数据:最高/最低温度、降水量总和
- 时区信息
示例用法:
# Get weather for New York City (40.7128, -74.0060)
weather_data = await get_current_weather(40.7128, -74.0060)
API集成
此服务器与 开放气象API,一个免费天气API,提供:
- 不需要API密钥:免费使用,价格限制合理
- 全球覆盖:全球各地的天气数据
- 多个数据点:温度、降水、风、气压等
- 高精度:基于多种天气模型
使用的API端点
- 预测终点:
https://api.open-meteo.com/v1/forecast - 参数:纬度、经度、小时/日变量、时区
项目结构
weather_mcp_Server/
├── server.py # Main MCP server with tool definitions
├── weather_api_client.py # Open-Meteo API client utilities
├── pyproject.toml # Project dependencies and metadata
├── uv.lock # Lock file for dependency versions
└── README.md # This file
依赖项
- httpx:API请求的异步HTTP客户端
- mcp[cli]:模型上下文协议服务器实现
- Python 3.13+:现代Python特性和类型提示
发展
添加新工具
要添加新的天气相关工具,请执行以下操作:
- 在中创建工具功能
server.py或tools.py - 用…装饰
@mcp.tool() - 为参数和返回值定义适当的类型提示
- 添加全面的文档字符串
例子:
@mcp.tool()
async def get_weather_forecast(latitude: float, longitude: float, days: int = 7) -> dict[str, Any]:
"""Get weather forecast for the next N days."""
# Implementation here
pass
错误处理
服务器包括强大的错误处理功能:
- API超时:API请求超时30秒
- 网络错误:妥善处理连接问题
- 无效数据:对格式错误的数据的回退响应
- 用户代理:正确识别API请求
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
这个项目是开源的。请检查许可证文件以了解详细信息。
支持
对于问题或疑问:
- 检查 Open-Meteo API文档
- 查阅MCP协议文档
- 在项目存储库中打开问题
备注:此服务器旨在与MCP兼容的客户端和代理一起工作。确保您的客户端支持MCP协议,以便正确集成。