使用说明
气象MCP服务器
一种MCP(模型上下文协议)服务器,用于使用Open-Meteo API检索天气预报和历史天气数据。
特性
- 获取任何地点的天气预报(最多提前16天)
- 获取任何过去日期范围的历史天气数据
- 可定制的天气变量(温度、降水、风速等)
- 每小时和每天的天气数据
- 无需API密钥-使用免费的Open-Meteo API
- 时区支持
先决条件
- Node.js(v18或更高版本)
- npm或纱线
安装
- 克隆或下载此存储库
- 安装依赖项:
npm install
- 构建项目:
npm run build
使用Claude Desktop
将此添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"weather": {
"command": "/absolute/path/to/node",
"args": ["/absolute/path/to/weather-mcp-server/dist/index.js"]
}
}
}
将路径替换为:
- 你的Node.js二进制路径(用
which node在macOS/Linux上) - 该项目的实际路径
dist/index.js文件
带nvm的macOS示例:
{
"mcpServers": {
"weather": {
"command": "/Users/username/.nvm/versions/node/v22.16.0/bin/node",
"args": ["/Users/username/Sites/weather-mcp-server/dist/index.js"]
}
}
}
配置后,完全重新启动Claude Desktop(macOS上的Cmd+Q,然后重新打开)。
可用工具
get_weather_forecast
获取某个地点的天气预报。
参数:
latitude(数字,必填):WGS84格式的纬度坐标longitude(数字,必填):WGS84格式的经度坐标forecast_days(数字,可选):预测天数(1-16,默认值:7)hourly(数组,可选):要包含的每小时天气变量- 违约:
["temperature_2m", "precipitation", "wind_speed_10m"] - 可用:温度2m,降水量10m,风速10m,相对湿度2m,云量覆盖等。
- 违约:
daily(数组,可选):要包含的每日天气变量- 违约:
["temperature_2m_max", "temperature_2m_min", "precipitation_sum"] - 可用:最高温度2m_max、最低温度2m_min、降水量_mum、风速10m_max等。
- 违约:
timezone(字符串,可选):数据的时区(例如,“美国/纽约”、“欧洲/伦敦”、“汽车”)- 默认值:“自动”(使用基于位置的时区)
示例-简单预测:
{
"latitude": 37.7749,
"longitude": -122.4194,
"forecast_days": 5
}
示例-自定义变量:
{
"latitude": 51.5074,
"longitude": -0.1278,
"forecast_days": 3,
"hourly": ["temperature_2m", "precipitation", "wind_speed_10m", "relative_humidity_2m"],
"daily": ["temperature_2m_max", "temperature_2m_min", "precipitation_sum", "wind_speed_10m_max"],
"timezone": "Europe/London"
}
获取历史天气
获取过去日期范围的历史天气数据。
参数:
latitude(数字,必填):WGS84格式的纬度坐标longitude(数字,必填):WGS84格式的经度坐标start_date(字符串,必填):YYYY-MM-DD格式的开始日期(例如“2024-01-01”)end_date(字符串,必填):YYYY-MM-DD格式的结束日期(例如,“2024-01-31”)hourly(数组,可选):要包含的每小时天气变量- 违约:
["temperature_2m", "precipitation", "wind_speed_10m"]
- 违约:
daily(数组,可选):要包含的每日天气变量- 违约:
["temperature_2m_max", "temperature_2m_min", "precipitation_sum"]
- 违约:
timezone(字符串,可选):数据的时区- 默认值:“自动”
示例-上周的天气:
{
"latitude": 40.7128,
"longitude": -74.0060,
"start_date": "2024-11-27",
"end_date": "2024-12-03"
}
示例-月度历史数据:
{
"latitude": 48.8566,
"longitude": 2.3522,
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"daily": ["temperature_2m_max", "temperature_2m_min", "precipitation_sum"],
"timezone": "Europe/Paris"
}
与Claude Desktop一起使用
配置后,您可以向Claude Desktop提出自然语言问题,例如:
- “旧金山的天气预报是什么?”
- “给我东京5天天气预报”
- “上周伦敦的天气怎么样?”
- “显示2024年1月1日至1月31日纽约的历史天气”
克劳德将自动使用适当的工具获取天气数据。
响应格式
这两个工具都以JSON格式返回具有以下结构的天气数据:
{
"latitude": 37.7749,
"longitude": -122.4194,
"timezone": "America/Los_Angeles",
"hourly": {
"time": ["2024-12-04T00:00", "2024-12-04T01:00", ...],
"temperature_2m": [8.3, 7.6, ...],
"precipitation": [0, 0, ...],
"wind_speed_10m": [0.4, 1.1, ...]
},
"daily": {
"time": ["2024-12-04", "2024-12-05", ...],
"temperature_2m_max": [13.4, 16.5, ...],
"temperature_2m_min": [6.5, 7.5, ...],
"precipitation_sum": [0, 0, ...]
}
}
发展
构建项目:
npm run build
直接运行服务器:
npm start
测试服务器:
node test-server.js
测试脚本将验证预报和历史天气工具是否正常工作。
API 文档
此服务器使用免费的Open-Meteo API:
故障排除
服务器未出现在Claude Desktop中
- 检查您的路径
claude_desktop_config.json是绝对路径 - 验证Node.js版本是否为18或更高(
node --version) - 确保服务器已成功构建(
npm run build) - 完全重新启动Claude Desktop(退出并重新打开,而不仅仅是关闭窗口)
- 在以下网址查看克劳德桌面日志
~/Library/Logs/Claude/mcp-server-weather.log(macOS)
服务器超时
如果您使用的是nvm(节点版本管理器),请确保在配置中指定节点二进制文件的完整路径,而不仅仅是 node.
坐标无效
- 纬度必须介于-90和90之间
- 经度必须介于-180和180之间
- 使用WGS84坐标系(标准GPS坐标)
日期格式错误
确保日期采用YYYY-MM-DD格式(例如,“2024-01-15”,而不是“01/15/2024”)
常见地点
以下是一些主要城市的坐标,让你开始:
- 旧金山:37.7749,-122.4194
- 纽约:40.7128,74.0060
- 伦敦:51.5074,-0.1278
- 东京:35.6762139.6503
- 巴黎:48.8566,2.3522
- 悉尼:-33.8688,151.2003
许可证
麻省理工学院