天气数据服务

一个基于Open-Meteo API的天气数据服务,提供全球范围内的实时天气和天气预报数据。

  • by JeremyMorgan
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 jeremymorgan/weather-mcp-server

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,使用Open-Meteo API提供天气数据。该服务器允许AI助手检索地球上任何位置的当前天气状况和预报。

特性

  • 当前天气:获取实时温度、风速、湿度和天气状况
  • 天气预报:检索长达7天的每小时预测
  • 天气摘要:获取全面的总结,包括当前状况和每日最低/最高温度
  • 全球覆盖:适用于全球任何纬度/经度坐标
  • 不需要API密钥:使用免费的Open-Meteo API

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
    npm install
    

用法

运行服务器

启动MCP服务器:

npm start

对于自动重启的开发:

npm run dev

使用Docker

您可以使用Docker运行此MCP服务器:

使用Docker Compose(推荐)

  1. 确保你已经安装了Docker和Docker Compose
  2. 运行服务器:
    docker-compose up -d
    
  3. 查看日志:
    docker logs weather-mcp-server
    
  4. 停止服务器:
    docker-compose down
    

直接使用Docker

  1. 构建Docker镜像:
    docker build -t weather-mcp-server .
    
  2. 运行容器:
    docker run -d --name weather-mcp-server weather-mcp-server
    

使用Docker Hub镜像

此服务器也可在Docker Hub上使用:

docker pull jeremymorgan/weather-mcp-server
docker run -d --name weather-mcp-server jeremymorgan/weather-mcp-server

可用工具

服务器提供三个主要工具:

1. get_current_weather

获取特定位置的当前天气数据。

参数:

  • latitude (数字):位置的纬度
  • longitude (数字):位置的经度

例子:

{
  "name": "get_current_weather",
  "arguments": {
    "latitude": 52.52,
    "longitude": 13.41
  }
}

2. get_weather_forecast

获取特定位置的每小时天气预报。

参数:

  • latitude (数字):位置的纬度
  • longitude (数字):位置的经度
  • days (数字,可选):要预测的天数(默认值:7)

例子:

{
  "name": "get_weather_forecast",
  "arguments": {
    "latitude": 52.52,
    "longitude": 13.41,
    "days": 3
  }
}

3. get_weather_summary

获取某个地点的当前天气和今天的预报摘要。

参数:

  • latitude (数字):位置的纬度
  • longitude (数字):位置的经度

例子:

{
  "name": "get_weather_summary",
  "arguments": {
    "latitude": 52.52,
    "longitude": 13.41
  }
}

api参考

此服务器使用 开放式API,它提供:

  • 温度:2米温度(摄氏度)
  • 风速:10米风速(km/h)
  • 湿度:相对湿度百分比
  • 天气代码:WMO天气条件代码

天气代码

  • 0:晴朗的天空
  • 1-3:局部多云
  • 45、48:有雾
  • 51-55:小雨
  • 61-65:下雨
  • 71-75:雪
  • 95:雷暴

配置

服务器配置为使用Open-Meteo API基础URL: https://api.open-meteo.com/v1/forecast

不需要API密钥,因为Open-Meteo是一项免费服务。

错误处理

该服务器包括全面的错误处理功能,用于:

  • 缺少必要参数
  • API响应无效
  • 网络连接问题
  • API速率限制

发展

要修改服务器,请执行以下操作:

  1. 编辑 server.js 添加新工具或修改现有工具
  2. 更新中的工具架构 tools/list 处理器
  3. 使用测试您的更改 npm run dev

许可证

CC0 1.0通用版-可根据需要自由使用和修改。

贡献

欢迎投稿!请随时提交问题和拉取请求。