使用说明

项目简介

Deepin MCP Python 仓库提供了一组基于 Python 的 MCP (Model Context Protocol) 服务器示例。这些服务器实现了 MCP 协议,可以作为 LLM (大型语言模型) 的后端,为其提供工具调用和上下文信息管理能力。仓库中包含了天气查询服务器、文件操作服务器和 Bash 命令执行服务器等示例,展示了如何使用 Python 和 'fastmcp' 库构建 MCP 服务器。

主要功能点

  • 工具 (Tools) 注册与调用: 示例服务器通过 '@mcp.tool()' 装饰器注册工具函数,允许 MCP 客户端通过 JSON-RPC 协议调用这些工具,扩展 LLM 的能力。
  • 资源 (Resources) 管理 (示例): 虽然示例中未显式展示资源管理,但 MCP 服务器的设计理念支持资源管理,可以根据实际需求扩展。
  • Prompt 模板 (Prompts) 支持 (隐式): MCP 服务器可以根据客户端请求,动态生成 Prompt,示例中通过工具的描述和输入Schema隐式体现了 Prompt 模板的思想。
  • Stdio 传输协议: 示例服务器默认使用 Stdio (标准输入输出) 作为传输协议,方便本地测试和部署。
  • 会话管理与能力声明: 'fastmcp' 库在底层处理了 MCP 协议的会话管理和能力声明,服务器开发者只需关注工具功能的实现。
  • 可扩展性: 通过添加新的 Python 模块和使用 '@mcp.tool()' 注册新的工具函数,可以轻松扩展服务器的功能。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/toberyan/deepin-mcp-python.git
    cd deepin-mcp-python
  2. 创建并激活虚拟环境 (可选但推荐):

    python -m venv .venv
    source .venv/bin/activate   # Linux/macOS
    .venv\Scripts\activate  # Windows
  3. 安装依赖:

    pip install -e .

    或者使用 'uv' (如果已安装):

    uv pip install -e .

服务器配置

MCP 客户端 (例如 'client/client.py') 需要配置 MCP 服务器的启动命令和参数才能连接。以下是一些示例配置信息,客户端需要根据实际使用的服务器类型选择相应的配置。

Bash 命令执行服务器 (bash_server.py):

{
  "server name": "BashServer",
  "command": "python",
  "args": ["servers/bash_server.py"]
  // 或者使用 uv 启动:
  // "command": "uv",
  // "args": ["run", "python", "servers/bash_server.py"]
}

天气查询服务器 (weather_server.py):

{
  "server name": "WeatherServer",
  "command": "python",
  "args": ["servers/weather_server.py"]
  // 或者使用 uv 启动:
  // "command": "uv",
  // "args": ["run", "python", "servers/weather_server.py"]
}

文件操作服务器 (file_server.py):

{
  "server name": "FileServer",
  "command": "python",
  "args": ["servers/file_server.py"]
  // 或者使用 uv 启动:
  // "command": "uv",
  // "args": ["run", "python", "servers/file_server.py"]
}

注意:

  • 上述配置信息为 JSON 格式示例,实际配置方式取决于 MCP 客户端的具体实现。
  • 'command' 字段指定了启动服务器的命令,通常为 'python' 或 'uv run python'。
  • 'args' 字段是一个字符串数组,包含了服务器脚本的路径。
  • 用户需要根据实际情况修改脚本路径,确保客户端能够找到并启动服务器。
  • 如果使用天气查询服务器,可能需要在 'servers/weather_server.py' 中配置 OpenWeatherMap API 密钥 (YOUR_API_KEY)。

基本使用方法

  1. 启动 MCP 服务器: 打开终端,进入仓库目录,根据需要启动不同的服务器示例。例如,启动 Bash 命令执行服务器:

    python servers/bash_server.py

    或者使用 'uv' 启动:

    uv run python servers/bash_server.py

    服务器成功启动后,通常会在终端保持运行状态,等待客户端连接和请求。

  2. 运行 MCP 客户端: 在另一个终端窗口,同样进入仓库目录,运行 'client/client.py' 客户端,并指定要连接的服务器脚本路径作为参数。例如,连接到 Bash 命令执行服务器:

    python client/client.py servers/bash_server.py

    或者使用 'uv' 启动客户端:

    uv run python client/client.py servers/bash_server.py
  3. 与服务器交互: 客户端成功连接到服务器后,即可在客户端的 Query 提示符下输入自然语言查询,客户端会将查询发送给 LLM 进行处理,并根据 LLM 的指令调用服务器提供的工具。例如,在连接到 Bash 命令执行服务器后,可以输入 "列出当前目录下的文件" 或 "创建一个名为 test.txt 的文件" 等指令。

  4. 任务规划系统 (planning.py): 仓库还提供了一个 'planning.py' 脚本,用于演示如何使用 LLM 进行任务规划,并将复杂任务分解为多个步骤,自动调用 MCP 服务器提供的工具执行。运行 'planning.py' 脚本:

    python planning.py

    或者使用 'uv' 运行:

    uv run python planning.py

    按照提示输入用户请求,系统会自动分析请求、分解任务并执行。

总结

Deepin MCP Python 仓库提供了一组实用的 MCP 服务器示例,可以帮助开发者快速理解和上手 MCP 服务器的开发。通过这些示例,可以学习如何使用 'fastmcp' 库构建工具丰富的 MCP 服务器,并将其与 LLM 客户端连接,构建强大的上下文服务应用。

信息

分类

开发者工具