OpenMeteo MCP服务器
模型上下文协议(MCP)服务器,通过OpenMeteo API提供对天气数据和预报的访问。该服务器使人工智能助手能够检索当前的天气状况、预报、历史天气数据,并搜索全球各地的位置。
特性
- 当前天气:获取实时天气状况,包括温度、湿度、降水、风和大气压
- 天气预报:检索长达16天的详细天气预报
- 历史天气:访问历史天气数据进行分析和比较
- 位置搜索:查找全球城市和地点的坐标和详细信息
- 免费API:使用免费的OpenMeteo API,不需要API密钥
- 综合数据:包括温度、降水、风、气压、云量和天气描述
- 智能格式化:带有表情符号和清晰组织的人类可读天气报告
安装
选项1:下载预构建二进制文件(推荐)
从GitHub下载最新版本:
- 访问发布页面首选
- 选择您的版本:点击最新版本(或您想要的特定版本)
- 为您的平台下载:在“资产”部分,下载适合您系统的二进制文件:
- macOS(苹果硅): mcp-server-openmeteo-aarch64-apple-darwin - macOS(英特尔): mcp-server-openmeteo-x86_64-apple-darwin - Linux(64位): mcp-server-openmeteo-x86_64-unknown-linux-gnu - Windows(64位): mcp-server-openmeteo-x86_64-pc-windows-msvc.exe
- 使其可执行 (仅限macOS/Linux):
chmod +x mcp-server-openmeteo选项2:从源头构建
如果您更喜欢从源代码构建或需要最新的开发版本:
先决条件
- Rust 1.87或更新版本
- 货物包装经理
构建步骤
git clone https://github.com/gbrigandi/mcp-server-openmeteo
cd mcp-server-openmeteo
cargo build --release编译后的二进制文件将在 target/release/mcp-server-openmeteo.
用法
基本用法
使用默认设置运行服务器:
./target/release/mcp-server-openmeteo环境变量
您可以使用以下命令控制日志记录级别 RUST_LOG 环境变量:
# Enable debug logging
RUST_LOG=debug ./target/release/mcp-server-openmeteo
# Enable info logging (default)
RUST_LOG=info ./target/release/mcp-server-openmeteo
# Disable most logging
RUST_LOG=warn ./target/release/mcp-server-openmeteoMCP客户端配置
克劳德桌面
将此服务器添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"openmeteo": {
"command": "/path/to/mcp-server-openmeteo"
}
}
}添加配置后:
- 保存文件
- 重新启动克劳德桌面
- OpenMeteo天气工具将在您的对话中提供
可用工具
1.get_current_weather
获取特定位置的当前天气状况。返回实时天气数据,包括温度、湿度、降水、风和大气条件。
参数:
latitude(必填):纬度坐标(-90到90)longitude(必填):经度坐标(-180至180)
退货:
- 当前温度和“感觉”温度
- 相对湿度百分比
- 降水量
- 风速、风向和阵风
- 大气压力(平均海平面)
- 云覆盖率
- 天气状况描述
- 日夜指示器
例子:
{
"latitude": 40.7128,
"longitude": -74.0060
}2.获取天气预报
获取特定位置的天气预报。返回长达16天的详细预报数据,包括每日温度、降水、风和天气状况。
参数:
latitude(必填):纬度坐标(-90到90)longitude(必填):经度坐标(-180至180)days(可选):预测天数(1-16,默认值:7)
退货:
- 每日高温和低温
- 天气状况描述
- 降水量
- 最大风速
- 日出和日落时间
- 紫外线指数和日照时间
例子:
{
"latitude": 40.7128,
"longitude": -74.0060,
"days": 5
}3.获取历史天气
获取特定位置和日期范围的历史天气数据。返回每日天气统计数据,包括温度、降水和其他气象数据,以供分析。
参数:
latitude(必填):纬度坐标(-90到90)longitude(必填):经度坐标(-180至180)start_date(必填):开始日期,格式为YYYY-MM-DDend_date(必填):YYYY-MM-DD格式的结束日期
退货:
- 每日温度统计(最低、最高、平均)
- 降水总量和平均值
- 风速和风向数据
- 整个期间的汇总统计
- 前5天的每日数据样本
例子:
{
"latitude": 40.7128,
"longitude": -74.0060,
"start_date": "2024-01-01",
"end_date": "2024-01-31"
}4.搜索位置
按名称搜索位置以获取其坐标和详细信息。使用“城市,国家”格式,其中国家是可选的(例如,“法国巴黎”或只是“东京”)。返回具有坐标和其他地理信息的匹配位置列表。
参数:
query(必填):位置搜索查询,格式为“城市,国家”(国家可选)
- 示例:“法国巴黎”、“东京”、“美国纽约”、“伦敦”
limit(可选):最大结果数(1-100,默认值:10)
退货:
- 城市/地点名称和国家
- 行政区域(州/省)
- 精确坐标(纬度/经度)
- 时区信息
- 人口数据(如有)
例子:
{
"query": "Paris, France",
"limit": 5
}数据源
所有天气数据由 OpenMeteo,一个免费天气API,提供:
- 高质量数据:基于多种天气模型和观测
- 全球覆盖:全球天气数据可用性
- 不需要API密钥:无需注册即可免费访问
- 高可用性:可靠的服务和良好的正常运行时间
- 开源:基于开源天气模型
- 实时更新:定期更新当前状况
- 历史档案:访问历史天气数据
演出
- 请求超时:所有API请求超时30秒
- 高效的请求:仅使用必要参数优化API调用
- 错误恢复:优雅地处理API临时故障
- 坐标验证:输入验证以防止无效的API请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
贡献
欢迎投稿!请随时提交拉取请求。贡献领域:
- 其他天气参数
- 增强的格式选项
- 性能优化
- 附加验证
- 文档改进
支持
对于问题和疑问:
- 检查存储库中的现有问题
- 使用有关问题的详细信息创建新问题
- 包括相关日志和配置详细信息
- 提供导致问题的示例坐标和参数
更新日志
版本0.1.0
- 具有完整MCP服务器功能的初始版本
- 当前天气状况及综合数据
- 天气预报长达16天
- 历史天气数据及统计摘要
- 使用地理编码进行位置搜索
