项目简介

本项目是 Qwen 2.5 增强模型仓库的一部分,其中 '08_MCP' 目录包含了遵循 Model Context Protocol (MCP) 规范的服务器实现。这些服务器旨在以标准化方式向大型语言模型 (LLM) 客户端提供特定的外部能力,如执行数学计算和获取实时天气信息。

主要功能点

  • 数学工具服务: 提供数学计算工具,包括求解裴蜀系数(Bezout coefficients)和线性同余方程。
  • 天气工具服务: 提供获取指定地点当前天气信息的功能(需要AccuWeather API)。
  • MCP 协议支持: 通过标准化的 JSON-RPC 和 Stdio 传输协议暴露这些功能,使任何兼容 MCP 的 LLM 客户端或代理能够轻松集成和调用这些工具。
  • 模块化设计: 将不同的功能实现为独立的 MCP 服务器,便于管理和扩展。

安装步骤

  1. 克隆仓库: 将整个 GitHub 仓库克隆到本地。
    git clone https://github.com/dtdo90/Qwen-Math_Med-GRPO.git
    cd Qwen-Math_Med-GRPO
  2. 安装依赖: 进入 MCP 目录,并安装所需的 Python 库。项目可能依赖 'mcp', 'uvicorn', 'requests', 'python-dotenv' 等库。请确保安装了这些依赖。
    cd 08_MCP
    pip install mcp uvicorn requests python-dotenv # 示例依赖
  3. 配置 AccuWeather API (天气服务器): 如果需要运行天气服务器,请注册一个 AccuWeather API 账户并获取 API Key。在 '08_MCP' 目录下创建一个 '.env' 文件,添加如下内容:
    ACCUWEATHER_API_KEY=你的_AccuWeather_API_密钥

服务器配置(客户端视角)

这些 MCP 服务器是独立的应用程序。兼容 MCP 的客户端(如仓库中的 'chatbot.py' 或其他 LLM 应用程序)需要知道如何启动并连接到它们。通常,客户端会维护一个配置列表,指示每个服务器的名称、启动命令和通信方式。

例如,一个 MCP 客户端的配置中会包含类似以下的信息:

  • 数学服务器:
    • 服务器名称 (server name): 'math_server'
    • 启动命令 (command): 指向 '08_MCP/math_server.py' 脚本的 Python 执行命令,例如 '["python", "08_MCP/math_server.py"]'
    • 传输协议 (transport): 'stdio'
  • 天气服务器:
    • 服务器名称 (server name): 'weather_server'
    • 启动命令 (command): 指向 '08_MCP/weather_server.py' 脚本的 Python 执行命令,例如 '["python", "08_MCP/weather_server.py"]'
    • 传输协议 (transport): 'stdio'

MCP 客户端将使用这些信息在后台启动对应的脚本,并通过标准输入/输出来与服务器进行 MCP 协议通信。

基本使用方法

  1. 手动启动服务器 (可选,用于测试): 可以在不同的终端窗口手动运行 '08_MCP/math_server.py' 和 '08_MCP/weather_server.py' 脚本来启动服务器。它们会等待 MCP 客户端通过 Stdio 连接。

    # Terminal 1: Start Math Server
    cd path/to/Qwen-Math_Med-GRPO/08_MCP
    python math_server.py
    
    # Terminal 2: Start Weather Server
    cd path/to/Qwen-Math_Med-GRPO/08_MCP
    python weather_server.py

    (请注意,天气服务器需要配置好 'ACCUWEATHER_API_KEY' 环境变量或 '.env' 文件)

  2. 运行 MCP 客户端: 运行一个配置好连接到这些服务器的 MCP 客户端应用程序。例如,运行仓库中的 'chatbot.py' (确保其 'server_config.json' 或内部逻辑指向正确的服务器启动命令和名称)。

    # Terminal 3: Run MCP Chatbot Client
    cd path/to/Qwen-Math_Med-GRPO/08_MCP
    python chatbot.py
  3. 与客户端交互: 通过客户端界面输入需要数学计算或天气查询的指令。客户端的 LLM 会识别需求,通过 MCP 调用对应的工具服务器,获取结果并生成回答。

    例如,向客户端提问:

    • "Compute the Bezout coefficients of 56 and 92" (会调用 math_server 的 bezout 工具)
    • "Solve 5x = 13 (mod 17)" (会调用 math_server 的 solve 工具)
    • "What is the current weather in Singapore?" (会调用 weather_server 的 get_current_weather 工具)

服务器将在接收到客户端的 MCP 请求时执行相应的工具函数,并将结构化的响应通过 MCP 返回给客户端。

信息

分类

网页与API