使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 实现的示例服务器,专注于提供天气相关的信息服务。它注册并暴露了一系列工具(Tools),使得支持 MCP 协议的 LLM 客户端能够通过调用这些工具获取天气预报和预警信息。

主要功能点

  • 天气预警查询: 提供工具查询美国指定州的当前天气预警信息。
  • 天气预报查询: 提供工具查询指定地理位置(经纬度)的详细天气预报。
  • MCP 标准通信: 通过标准 JSON-RPC 和 Stdio 传输协议与 MCP 客户端进行交互。
  • 工具注册与执行: 按照 MCP 规范注册天气相关的工具,并在接收到客户端请求时执行相应的外部 API 调用。

安装步骤

本项目基于 Python 开发,并使用了 'uv' 包管理器(也可使用 pip)。

  1. 确保已安装 Python 3.8+ 和 uv。
  2. 克隆仓库:
    git clone https://github.com/guobinqiu/mcp-demo.git
    cd mcp-demo
  3. 初始化项目并创建虚拟环境:
    uv init mcp-demo
    uv venv
  4. 激活虚拟环境:
    source .venv/bin/activate # macOS/Linux
    # 或 .venv\Scripts\activate # Windows
  5. 安装项目依赖:
    uv add "mcp[cli]" httpx openai python-dotenv
  6. 删除默认的 'main.py' 文件:
    rm main.py # macOS/Linux
    # 或 del main.py # Windows
  7. 创建或修改 '.env' 文件,填入你的 DeepSeek API Key:
    # .env
    OPENAI_API_KEY="YOUR_DEEPSEEK_API_KEY"
    # 如果需要,也可以指定API Base URL
    # OPENAI_API_BASE="https://api.deepseek.com/v1"
    将 'YOUR_DEEPSEEK_API_KEY' 替换为你的实际 DeepSeek API 密钥。

服务器配置

这个 MCP 服务器通过 Stdio 协议运行。要让 MCP 客户端连接并使用这个服务器,客户端需要知道如何启动它。

您需要在 MCP 客户端的配置文件中(通常是 JSON 格式)指定以下参数来启动和连接此服务器:

  • 服务器名称 (name): 'weather'
  • 启动命令 (command): 'python'
  • 命令参数 (args): '["path/to/weather.py"]' (请替换 '"path/to/weather.py"' 为 'weather.py' 文件的实际绝对或相对路径)
  • 传输协议 (transport): 'stdio'

例如,在某些客户端的配置文件中,对应的部分可能看起来像这样(具体格式取决于客户端实现):

{
  "servers": [
    {
      "name": "weather",
      "transport": "stdio",
      "parameters": {
        "command": "python",
        "args": ["weather.py"]
      }
    }
  ]
}

请注意:上述是一个示例 JSON 片段,您应根据您的 MCP 客户端的要求进行实际配置,无需复制上面的代码块。关键信息是'name'、'command'和'args'。

基本使用方法

在完成安装和配置 '.env' 文件后,可以通过运行仓库中的 'client.py' 脚本来启动一个示例 MCP 客户端并连接到 'weather.py' 服务器。

  1. 确保你还在项目的虚拟环境中。
  2. 运行客户端脚本,并指定 'weather.py' 文件的路径:
    python client.py weather.py
  3. 客户端启动后,会连接到服务器并显示可用的工具。
  4. 在提示符 'Query:' 后输入你的天气查询,例如 "what's the weather in new york" 或 "are there any alerts for california"。LLM 客户端将解析你的查询,并自动调用服务器提供的天气工具来获取信息并生成回复。
  5. 输入 'quit' 退出客户端。

信息

分类

网页与API