使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的天气服务示例服务器。它演示了如何使用 MCP 框架构建一个可以向大型语言模型 (LLM) 客户端提供天气信息的后端服务,例如获取当前天气和天气预报。

主要功能点

  • 资源 (Resources): 提供当前城市天气的资源,客户端可以通过 'weather://<city>/current' 格式的 URI 访问,获取实时的天气数据。
  • 工具 (Tools): 提供 'get_forecast' 工具,允许客户端查询指定城市未来几天的天气预报。

安装步骤

  1. 安装 Python 和 uv: 确保你的系统已安装 Python 环境,并安装了 'uv' 包管理器。uv 是一个快速的 Python 包安装和解析器,你可以通过 pip 安装:'pip install uv' (如果还未安装 pip,请先安装 pip)。
  2. 克隆仓库: 使用 git 命令克隆仓库到本地:
    git clone https://github.com/MCP-Mirror/duan-li_mcp-weather-server-example
  3. 进入目录: 使用 'cd' 命令进入克隆下来的仓库目录:
    cd duan-li_mcp-weather-server-example
  4. 安装依赖: 使用 'uv sync' 命令安装项目依赖:
    uv sync
  5. 设置 API 密钥: 本项目需要使用 OpenWeatherMap 的 API 获取天气数据。你需要注册 OpenWeatherMap 账号并获取 API 密钥。获取密钥后,请将其设置为名为 'OPENWEATHER_API_KEY' 的环境变量。具体设置方法取决于你的操作系统,例如在 Linux/macOS 中,你可以在终端中使用 'export OPENWEATHER_API_KEY=你的API密钥' 命令,或者将其添加到你的 shell 配置文件(如 '.bashrc' 或 '.zshrc')。

服务器配置

要将此 MCP 服务器配置到 MCP 客户端(例如 Claude),你需要编辑客户端的配置文件。以 Claude Desktop 为例,你需要找到 'claude_desktop_config.json' 文件,该文件通常位于:

  • macOS: '~/Library/Application\ Support/Claude/claude_desktop_config.json'
  • Windows: '%APPDATA%/Claude/claude_desktop_config.json'

打开 'claude_desktop_config.json' 文件,在 'mcpServers' 字段中添加以下配置信息。请根据你的实际仓库路径修改 'args' 中的 '--directory' 参数。

"mcpServers": {
  "weather-service": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/duan-li_mcp-weather-server-example", // 将 "/path/to/duan-li_mcp-weather-server-example" 替换为你的仓库在本地的实际路径
      "run",
      "weather_service" //  包名,对应 src/weather_service/__init__.py 中的包名
    ]
  }
}

请务必将 '/path/to/duan-li_mcp-weather-server-example' 替换为你克隆仓库的真实本地路径。

基本使用方法

配置完成后,MCP 客户端应该能够自动检测并连接到此天气服务。你可以通过自然语言指示 LLM 客户端使用天气服务的功能。例如,你可以向 Claude 提问:

  • "What's the weather in London?" (查询伦敦的当前天气)
  • "Get the forecast for London for 3 days" (查询伦敦未来 3 天的天气预报)

客户端会根据你的指令,调用 'weather-service' 服务器提供的资源和工具,并将天气信息返回给你。

信息

分类

网页与API