天气数据服务器

一个基于Open-Meteo API的天气数据服务器,提供天气预报和历史天气数据查询功能。

  • by darronz
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 darronz/open-meteo-mcp-server

使用说明

气象MCP服务器

一种MCP(模型上下文协议)服务器,用于使用Open-Meteo API检索天气预报和历史天气数据。

特性

  • 获取任何地点的天气预报(最多提前16天)
  • 获取任何过去日期范围的历史天气数据
  • 可定制的天气变量(温度、降水、风速等)
  • 每小时和每天的天气数据
  • 无需API密钥-使用免费的Open-Meteo API
  • 时区支持

先决条件

  • Node.js(v18或更高版本)
  • npm或纱线

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
npm install
  1. 构建项目:
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中

  1. 检查您的路径 claude_desktop_config.json 是绝对路径
  2. 验证Node.js版本是否为18或更高(node --version)
  3. 确保服务器已成功构建(npm run build)
  4. 完全重新启动Claude Desktop(退出并重新打开,而不仅仅是关闭窗口)
  5. 在以下网址查看克劳德桌面日志 ~/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

许可证

麻省理工学院