使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的天气预报服务器,它使用 OpenWeatherMap One Call API 3.0 为 LLM 客户端提供全球范围内的天气信息。该服务器能够提供当前天气状况以及未来 8 天的详细天气预报,包括每小时、每日以及早、中、晚等不同时段的天气数据。

主要功能点

  • 全球天气查询: 支持查询世界任何地点的天气信息。
  • 详细天气预报: 提供当前天气和未来 8 天的详细预报(今天 + 7 天)。
  • 时段数据: 包含未来 48 小时的每小时预报,以及每日的早(9点)、中(15点)、晚(20点)三个时段的数据点。
  • 丰富天气信息: 提供天气概要、降水概率、温度、湿度、风速等详细天气信息。
  • 灵活配置: 无需单独的配置文件,API 密钥可以通过环境变量或参数传递。

安装步骤

  1. 安装 Python 依赖: 推荐使用虚拟环境。
    • 创建并激活虚拟环境(可选):
      python3 -m venv venv
      source venv/bin/activate  # macOS/Linux
      # venv\Scripts\activate  # Windows
    • 安装必要的 Python 包:
      pip3 install mcp-server requests pydantic
  2. 获取 OpenWeatherMap API 密钥:
    • 访问 OpenWeatherMap 注册账号。
    • 订阅 "One Call API 3.0" 计划 (免费版提供 1000 次/天 API 调用)。
    • 等待 API 密钥激活(可能需要几分钟到一小时)。

服务器配置

在 MCP 客户端的配置文件中,添加以下配置信息以连接到每周天气预报 MCP 服务器。请根据实际情况修改 'command' 和 'args' 中的路径,并将 'your_openweathermap_key_here' 替换为您的 OpenWeatherMap API 密钥。

{
  "weather_forecast": {
    "command": "python3",
    "args": [
      "/path/to/weather_mcp_server.py"  // 修改为 weather_mcp_server.py 脚本的完整路径
    ],
    "env": {
      "OPENWEATHER_API_KEY": "your_openweathermap_key_here" // 替换为您的 OpenWeatherMap API 密钥
    },
    "disabled": false,
    "autoApprove": ["get_weather", "get_current_weather"] // 客户端可以自动批准的工具
  }
}

配置参数说明:

  • 'command': 启动 MCP 服务器的命令,通常是 Python 解释器的路径 ('python3' 或虚拟环境中的 Python 路径)。
  • 'args': 传递给启动命令的参数,这里是 'weather_mcp_server.py' 脚本的路径。
  • 'env': 环境变量配置,'OPENWEATHER_API_KEY' 用于存储 OpenWeatherMap API 密钥。

基本使用方法

成功配置并启动 MCP 服务器后,您可以在 MCP 客户端中使用以下工具来获取天气信息:

  1. 'get_weather': 获取指定地点的详细天气预报,包括当前天气和未来 8 天的预报。

    • 参数:
      • 'location': 地点名称,例如 "Beijing", "New York", "Tokyo"。
      • 'timezone_offset': 时区偏移量(小时),例如北京为 8,纽约为 -4,默认为 0 (UTC 时间)。
      • 'api_key' (可选): OpenWeatherMap API 密钥,如果已设置环境变量 'OPENWEATHER_API_KEY',则无需提供。
  2. 'get_current_weather': 获取指定地点的当前天气状况。

    • 参数:
      • 'location': 地点名称,例如 "Beijing", "New York", "Tokyo"。
      • 'timezone_offset': 时区偏移量(小时)。
      • 'api_key' (可选): OpenWeatherMap API 密钥。

使用示例:

在 MCP 客户端中,您可以向 LLM 提出类似以下的问题,以调用 MCP 服务器获取天气信息:

  • "What's the weather like in London right now?" (客户端将调用 'get_current_weather' 工具)
  • "I want to know the weather forecast for Paris this week." (客户端将调用 'get_weather' 工具)
  • "Will it rain in Tokyo tomorrow?" (客户端将调用 'get_weather' 工具)

LLM 客户端会根据用户的问题,自动调用相应的工具,并将地点名称等信息作为参数传递给 MCP 服务器。MCP 服务器会调用 OpenWeatherMap API 获取天气数据,并将结构化的天气信息返回给 LLM 客户端,最终呈现给用户。

信息

分类

网页与API