Magpie MCP 服务器
使用说明(Markdown 格式):
-
项目简介
- Magpie 代码库中集成了一个 MCP 服务器,用以向 LLM 客户端暴露“资源、工具、Prompts”等上下文信息和外部功能。服务器实现了对工具的注册、执行,以及对 Prompts 的管理与渲染,目标是在统一的后端框架中通过 JSON-RPC 风格的请求-响应模式提供后端服务。
-
主要功能点
- MCP 服务器核心能力:注册并暴露工具、资源与提示模版,提供数据访问与调用外部工具的能力。
- JSON-RPC 通信风格:服务器端接收客户端请求,返回标准化的 JSON-RPC 响应。
- 会话与能力声明:服务器端维护会话状态、能力(可用工具、资源等)声明,便于 LLM 客户端按需调用。
- 多传输协议支持(示例性):通过 MCP 框架中的工具暴露接口,未来可拓展至 Stdio、SSE、WebSocket 等传输通道。
- 安全与扩展性:模块化设计,工具以装饰器注册,便于扩展新的资源、工具与 Prompts。
-
安装步骤
- 环境要求:Python 3.10 及以上。
- 快速安装(来自 GitHub 官方仓库):
- 安装命令:pip install git+https://github.com/AMD-AGI/Magpie.git
- 开发/源码安装(可按需本地调试):
- git clone https://github.com/AMD-AGI/Magpie.git
- cd Magpie
- pip install -e .
- 运行 MCP 服务器(示例):
- python -m Magpie.mcp
- 备注:仓库中提供了一个默认的 MCP 客户端配置文件 Magpie/mcp/config.json,客户端在连接服务器时可参考该配置。
-
服务器配置(MCP 客户端需要的配置信息)
- 说明:MCP 客户端需要通过配置文件来知道如何连接服务器。以下 JSON 配置示例描述服务器在启动时的基本信息,包含服务器名称、启动命令及参数等,用于帮助 MCP 客户端建立连接。请注意,该配置仅作为客户端连接的示例,实际请求/调用仍由 MCP 协议进行。
- 配置示例(JSON): { "server_name": "magpie-mcp-server", "command": ["python", "-m", "Magpie.mcp"], "args": [] }
- 注释:
- server_name:服务器标识名称,便于在多服务器环境中区分。
- command:启动服务器的命令(不含工作目录等依赖)。
- args:启动命令的附加参数(若有)。
- 该配置仅用于帮助 MCP 客户端建立初始连接,实际通信采用 MCP 框架的 JSON-RPC 风格协议。
-
基本使用方法
- 启动服务器:在项目根或可访问的工作目录中执行 python -m Magpie.mcp 启动服务器。
- 客户端交互:通过 MCP 客户端以 JSON-RPC 风格的请求向服务器提交以下操作(示例性描述):
- 注册资源与工具:将需要的资源(如数据集、模型、GPU 配置)以及工具方法注册到 MCP 服务器。
- 读取资源:请求获取并访问服务器上的 Resources。
- 注册和执行 Tool:通过请求调用注册的工具,以分析、比较、配置 GPU 等功能。
- 获取与渲染 Prompt:请求渲染/获取 Prompts,用于 LLM 的对话上下文。
- 注意:具体的请求字段与响应格式依 MCP 框架实现的 JSON-RPC 约定执行,服务器端暴露的工具通过装饰器自动注册,客户端可按需调用。
-
典型工作流(简述)
- 启动 MCP 服务器后,客户端可以查询服务器能力(有哪些 Tools、Resources、Prompts 可用)。
- 客户端通过 JSON-RPC 方式请求执行某个 Tool,例如分析、比较、配置 GPU 等。
- 服务器返回标准化的 JSON-RPC 响应,携带结果或错误信息,便于 LLM 进行后续决策与实现。
-
备注
- 本实现聚焦在服务器端对 MCP 协议核心能力的提供与暴露,客户端实现与具体调用格式将遵循 MCP 框架的标准约定。