使用说明
项目简介
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()' 注册新的工具函数,可以轻松扩展服务器的功能。
安装步骤
-
克隆仓库:
git clone https://github.com/toberyan/deepin-mcp-python.git cd deepin-mcp-python -
创建并激活虚拟环境 (可选但推荐):
python -m venv .venv source .venv/bin/activate # Linux/macOS .venv\Scripts\activate # Windows -
安装依赖:
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)。
基本使用方法
-
启动 MCP 服务器: 打开终端,进入仓库目录,根据需要启动不同的服务器示例。例如,启动 Bash 命令执行服务器:
python servers/bash_server.py或者使用 'uv' 启动:
uv run python servers/bash_server.py服务器成功启动后,通常会在终端保持运行状态,等待客户端连接和请求。
-
运行 MCP 客户端: 在另一个终端窗口,同样进入仓库目录,运行 'client/client.py' 客户端,并指定要连接的服务器脚本路径作为参数。例如,连接到 Bash 命令执行服务器:
python client/client.py servers/bash_server.py或者使用 'uv' 启动客户端:
uv run python client/client.py servers/bash_server.py -
与服务器交互: 客户端成功连接到服务器后,即可在客户端的 Query 提示符下输入自然语言查询,客户端会将查询发送给 LLM 进行处理,并根据 LLM 的指令调用服务器提供的工具。例如,在连接到 Bash 命令执行服务器后,可以输入 "列出当前目录下的文件" 或 "创建一个名为 test.txt 的文件" 等指令。
-
任务规划系统 (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 客户端连接,构建强大的上下文服务应用。
信息
分类
开发者工具