天气预测服务

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

  • by Zippland
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 Zippland/weather-mcp

使用说明

OpenWeather MCP服务器

英语| 中文版

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

使用MCP天气服务的克劳德桌面截图

特性

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

安装要求

pip install mcp-server requests pydantic

用法

1.获取OpenWeatherMap API密钥

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

2.运行服务器

提供API密钥有两种方法:

方法1:使用环境变量

# Set environment variables
export OPENWEATHER_API_KEY="your_api_key"  # Linux/Mac
set OPENWEATHER_API_KEY=your_api_key  # Windows

# Run the server
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天气

获取指定位置的当前天气。

参数:

  • location:地点名称,例如“北京”、“纽约”、“东京”
  • api_key:OpenWeatherMap API键(可选,如果未提供,将从环境变量中读取)
  • timezone_offset:以小时为单位的时区偏移,例如,北京为8,纽约为-4。默认值为0(UTC时间)

用法示例

AI助手呼叫示例:

User: What's the weather like in New York right now?

AI: Let me check the current weather in New York for you.
[Calling get_current_weather("New York", timezone_offset=-4)]

Current weather in New York: 18°C, partly cloudy, humidity 65%, wind speed 3.5m/s.

故障排除

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

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

如果位置名称不正确,您可能会收到“找不到位置”错误。尝试使用更准确的城市名称或添加国家代码,例如“中国北京”或“法国巴黎”。