返回市场
天气-mcp

天气-mcp

作者:Zippland7 星标更新:2025-03-17

项目介绍

OpenWeather MCP Server

英文 | 中文版

一个简单的天气预报MCP(模型控制协议)服务器,提供全球天气预报和当前天气状况。

Claude Desktop 使用 MCP 天气服务

Claude Desktop 使用 MCP 天气服务的截图

功能

  • 不需要单独的配置文件;API 密钥可以通过环境变量或参数直接传递
  • 支持查询全球任何地方的天气状况
  • 提供当前天气和未来预报
  • 详细的天气信息包括温度、湿度、风速等
  • 支持不同的时区

安装要求

pip install mcp-server requests pydantic

使用方法

1. 获取 OpenWeatherMap API 密钥

访问 OpenWeatherMap 并注册账户以获取 API 密钥。

2. 运行服务器

有两种方式提供 API 密钥:

方法 1:使用环境变量

# 设置环境变量
export OPENWEATHER_API_KEY="your_api_key"  # Linux/Mac
set OPENWEATHER_API_KEY=your_api_key  # Windows

# 运行服务器
python weather_mcp_server.py

方法 2:调用工具时提供

无需设置环境变量直接运行:

python weather_mcp_server.py

在调用工具时,您需要提供 api_key 参数。

3. 在 MCP 客户端配置中使用

在您的 MCP 支持客户端中添加以下配置:

{
  "weather_forecast": {
    "command": "python",
    "args": [
      "/full_path/weather_mcp_server.py"
    ],
    "env": {
      "OPENWEATHER_API_KEY": "your_openweathermap_key_here"
    },
    "disabled": false,
    "autoApprove": ["get_weather", "get_current_weather"]
  }
}

4. 可用工具

get_weather

获取指定地点的当前天气和预报。

参数:

  • location: 地点名称,例如 "北京", "纽约", "东京"
  • api_key: OpenWeatherMap API 密钥(可选,如果没有提供则从环境变量读取)
  • timezone_offset: 时区偏移量(小时),例如 北京为 8,纽约为 -4。默认值为 0(UTC 时间)

get_current_weather

获取指定地点的当前天气。

参数:

  • location: 地点名称,例如 "北京", "纽约", "东京"
  • api_key: OpenWeatherMap API 密钥(可选,如果没有提供则从环境变量读取)
  • timezone_offset: 时区偏移量(小时),例如 北京为 8,纽约为 -4。默认值为 0(UTC 时间)

使用示例

AI 助手调用示例:

用户:纽约现在的天气怎么样?

AI:让我为您查看纽约的当前天气。
[调用 get_current_weather("New York", timezone_offset=-4)]

纽约当前天气:18°C,部分多云,湿度 65%,风速 3.5m/s。

故障排除

如果您遇到“未提供 API 密钥”的错误,请确保:

  1. 您已在环境变量中设置了 OPENWEATHER_API_KEY,或者
  2. 调用工具时提供了 api_key 参数

如果地点名称不正确,可能会收到“地点未找到”的错误。尝试使用更准确的城市名或添加国家代码,例如 "北京,CN" 或 "巴黎,FR"。