使用说明
打开Meteo MCP服务器
模型上下文协议(MCP)服务器的Rust实现,该服务器从Open-Meteo API提供天气数据。
概述
此MCP服务器公开了可供Claude Desktop等AI助手使用的天气数据工具。它提供对地球上任何位置的当前天气状况、每小时预报和地理编码服务的访问。
建筑
该项目遵循模块化的Rust架构:
src/main.rs-入口点src/server/-服务器实现src/api/-API客户端(Open-Meteo)src/tools/-刀具参数定义src/models/-API响应的数据模型
特性
- 当前天气:获取特定位置的当前天气状况
- 逐时预报:获取长达168小时(7天)的每小时天气预报
- 每日预报:获取长达14天的每日天气预报
- 空气质量:获取特定位置的空气质量数据
- 天气历史:获取特定日期范围的历史天气数据
- 地理编码:使用国家代码过滤将城市名称转换为GPS坐标
- 当前时间:获取当前系统时间,以帮助理解时间参考,如“明天”
- STDIO传输:与Claude Desktop和其他MCP客户端兼容
- 结构化数据:以文本和结构化JSON格式返回天气数据
工具
get_current_weather
获取特定位置的当前天气状况。
参数:
latitude(数字,必填):纬度,以十进制为单位longitude(数字,必填):经度,以十进制为单位
例子:
{
"latitude": 40.7128,
"longitude": -74.0060
}
get_hourly_forecast
获取特定位置的每小时天气预报。
参数:
latitude(数字,必填):纬度,以十进制为单位longitude(数字,必填):经度,以十进制为单位hours(整数,可选):要预测的小时数(默认值:24,最小值:1,最大值:168)
例子:
{
"latitude": 40.7128,
"longitude": -74.0060,
"hours": 48
}
geocode_city
将城市名称转换为GPS坐标。
参数:
city(string,必填):要进行地理编码的城市名称count(整数,可选):要返回的结果数(默认值:1,最小值:1;最大值:10)country_code(字符串,可选):用于过滤结果的ISO-3166-1 alpha2国家代码(例如,美国为“US”,德国为“DE”)
例子:
{
"city": "New York",
"count": 3
}
使用国家代码过滤:
{
"city": "Berlin",
"country_code": "US"
}
get_current_time
获取当前系统时间和日期,以帮助理解时间参考,如“明天”。
参数:
utc(布尔值,可选):如果为true,则返回UTC时间而不是本地时间(默认值:false)
例子:
{
"utc": true
}
get_daily_forecast
获取特定地点的每日天气预报。
参数:
latitude(数字,必填):纬度,以十进制为单位longitude(数字,必填):经度,以十进制为单位days(整数,可选):要预测的天数(默认值:7,最小值:1,最大值:14)
例子:
{
"latitude": 40.7128,
"longitude": -74.0060,
"days": 7
}
get_air_quality
获取特定位置的空气质量数据。
参数:
latitude(数字,必填):纬度,以十进制为单位longitude(数字,必填):经度,以十进制为单位hours(整数,可选):空气质量数据的小时数(默认值:24,最小值:1,最大值:168)
例子:
{
"latitude": 40.7128,
"longitude": -74.0060,
"hours": 48
}
get_weather_history
获取特定日期范围的历史天气数据。
参数:
latitude(数字,必填):纬度,以十进制为单位longitude(数字,必填):经度,以十进制为单位start_date(字符串,必填):YYYY-MM-DD格式的开始日期end_date(字符串,必填):YYYY-MM-DD格式的结束日期
例子:
{
"latitude": 40.7128,
"longitude": -74.0060,
"start_date": "2023-01-01",
"end_date": "2023-01-07"
}
安装
-
克隆此存储库:
git clone https://github.com/your-username/open-meteo-mcp.git cd open-meteo-mcp -
构建项目:
cargo build --release -
运行服务器:
cargo run --release
用法
服务器通过STDIO进行通信,使其与Claude Desktop和其他MCP客户端兼容。当与MCP兼容的客户端集成时,您可以使用自然语言询问天气信息。
示例提示:
- “纽约市现在的天气怎么样?”
- “给我一份伦敦48小时的天气预报。”
- “东京的7天天气预报是什么?”
- “今天洛杉矶的空气质量怎么样?”
- “上周巴黎的天气怎么样?”
- “巴黎的GPS坐标是多少?”
- “在美国找到柏林。”
- “现在几点了?我需要知道明天是否到了。”
- “我必须在早上9点前上班,上下班需要30分钟。为了避免下雨,什么时候出门最好?”
API来源
此服务器使用 开放式API,提供对天气数据和地理编码服务的免费访问,而不需要API密钥用于非商业用途。
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。