使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的天气服务器示例,旨在演示如何构建一个可以向 LLM 客户端提供天气信息服务的 MCP 服务器。通过该服务器,LLM 可以获取实时的天气数据和未来几天的天气预报。

主要功能点

  • 资源 (Resources): 提供当前城市的天气信息资源。客户端可以通过 'weather://城市名/current' 格式的 URI 访问,获取实时的天气数据,例如温度、天气状况、湿度和风速等。
  • 工具 (Tools): 提供 'get_forecast' 工具,允许客户端查询指定城市未来几天的天气预报。客户端可以指定城市名称和预报天数(1-5天)。

安装步骤

  1. 安装 Python 依赖: 确保您已安装 Python 3.7 或更高版本,并安装了 'uv' 包管理器。然后使用 'uv sync' 命令安装项目依赖。
    uv sync
  2. 配置 API 密钥: 本项目使用了 OpenWeatherMap 的 API 获取天气数据。您需要在 OpenWeatherMap 官网 注册账号并获取 API 密钥。获取密钥后,将其设置为环境变量 'OPENWEATHER_API_KEY'。例如,在 Linux 或 macOS 系统中,您可以将以下内容添加到您的 shell 配置文件(如 '.bashrc' 或 '.zshrc'):
    export OPENWEATHER_API_KEY=YOUR_API_KEY
    请将 'YOUR_API_KEY' 替换为您实际的 API 密钥。

服务器配置

要将此 MCP 服务器添加到 MCP 客户端(例如 Claude),您需要在客户端的 MCP 服务器配置中添加以下 JSON 配置。假设您的项目代码位于 '/Users/<your-user-name>/Codes/mcp-weather-server-example' 目录。

{
  "mcpServers": {
    "weather-service": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/<your-user-name>/Codes/mcp-weather-server-example",
        "run",
        "weather-service"
      ]
    }
  }
}

配置参数说明:

  • 'server name': 'weather-service' (服务器名称,您可以自定义,用于在客户端中标识该服务器)
  • 'command': 'uv' (启动命令,这里使用 'uv' 运行器来运行 Python 代码)
  • 'args': 启动参数列表
    • '--directory': '/Users/<your-user-name>/Codes/mcp-weather-server-example' (指向项目代码所在的目录,请替换为您的实际路径)
    • 'run': 'uv run' 命令的子命令,表示运行指定的 Python 包
    • 'weather-service': 要运行的 Python 包名称,对应项目中的 'src/weather_service/init.py' 文件,该文件定义了服务器的入口 'main' 函数。

基本使用方法

  1. 确保您已完成安装步骤并配置了 API 密钥。
  2. 将上述服务器配置 JSON 代码添加到您的 MCP 客户端配置文件中 (例如 Claude Desktop 的 'claude_desktop_config.json')。
  3. 启动 MCP 客户端。客户端应该能够自动连接到 'weather-service' 服务器。
  4. 在 LLM 中,您可以指示 LLM 使用 'weather-service' 服务器提供的功能。例如:
    • 询问 "今天伦敦的天气怎么样?" LLM 可能会尝试读取 'weather://London/current' 资源获取实时天气信息。
    • 询问 "查询一下未来三天伦敦的天气预报" LLM 可能会调用 'get_forecast' 工具,并传入城市 "London" 和天数 "3" 作为参数。

信息

分类

网页与API