项目简介

本项目是一个实现了 Model Context Protocol (MCP) 的天气预报服务器。它提供了一个工具,允许 LLM 客户端通过 MCP 协议查询全球主要城市和地区的天气信息。该服务器使用 'wttr.in' 服务作为天气数据源,并以标准化的 MCP 方式与客户端进行交互。

主要功能点

  • 获取实时天气: 提供查询指定城市或地区当前天气状况的功能。
  • 多语言地点支持: 支持中文、英文以及其他语言的地点名称查询。
  • 易于集成: 可以方便地集成到任何支持 MCP 协议的 LLM 客户端,如 Claude 等。
  • 多种传输协议支持: 默认支持 stdio 传输协议,也支持 sse 等其他传输协议。

安装步骤

  1. 安装 Python 包: 使用 'uv' 或 'pip' 包管理器安装 'weather-forecast-server'。

    uv install weather-forecast-server

    或者

    pip install weather-forecast-server
  2. 验证安装 (可选): 安装完成后,可以尝试运行服务器,验证安装是否成功。

    uv run weather-forecast-server

服务器配置

要使 MCP 客户端(例如 Claude)连接到此天气预报服务器,您需要提供服务器的配置信息。以下是 JSON 格式的配置信息示例,您可以将其添加到 MCP 客户端的服务器列表中。

{
  "server_name": "WeatherForecastServer",
  "command": "weather-forecast-server",
  "args": [],
  "transport": "stdio",
  "description": "提供全球天气预报和当前天气状况的工具"
}

配置参数说明:

  • 'server_name': 服务器名称,建议设置为 "WeatherForecastServer",与服务器自身声明的名称一致。
  • 'command': 启动服务器的命令。安装 Python 包后,可以直接使用 'weather-forecast-server' 命令启动。
  • 'args': 启动命令的参数。 默认情况下,无需额外参数。如果需要指定传输协议,可以添加 '--transport' 参数,例如 '["--transport", "sse"]'。
  • 'transport': 指定 MCP 服务器使用的传输协议。 默认为 'stdio'。 如果需要使用 SSE 等其他协议,请修改此项和 'args' 中的参数。
  • 'description': 服务器描述,用于在客户端界面上显示服务器的功能介绍。

基本使用方法

  1. 启动服务器: 在终端中运行以下命令启动天气预报 MCP 服务器。

    uv run weather-forecast-server

    或使用 SSE 传输协议:

    uv run weather-forecast-server --transport sse
  2. 配置 MCP 客户端: 将上述提供的服务器配置信息添加到您的 MCP 客户端中。

  3. 使用天气工具: 在 LLM 应用中,您可以使用 'get_weather' 工具来查询天气。例如,在 Claude 中,您可以指示 Claude 使用 "Weather Tool" 并调用 'get_weather' 工具,参数为城市名称,例如 "北京" 或 "London"。

    工具名称: 'get_weather' 工具描述: 'Get current weather for a specified location using wttr.in service.' 参数: 'city: str' (城市名称,例如 "Beijing", "New York", "Tokyo", "武汉")

    LLM 客户端会向服务器发送 MCP 请求,服务器会调用 'get_weather' 工具,查询天气信息并返回给客户端。

开发

如果您想进行二次开发,可以参考 README.md 中的开发环境搭建步骤。

信息

分类

网页与API