CPE 多服务器 MCP 实现
使用说明(简明易懂,包含部署与配置要点)
-
项目简介
- 该仓库实现了一个 MCP 服务器端,允许在本地或网络环境中部署“子代理工具”,通过 MCP 协议向 LLM 客户端提供工具注册、调用、资源管理和提示模板等能力,并支持通过 STDIO、HTTP、SSE 等传输方式与客户端通信。
-
主要功能点
- MCP 服务端核心:实现客户端与服务端的 JSON-RPC 风格交互,注册并暴露工具、管理子代理、提供代码模式(code mode)相关能力。
- 资源与工具管理:支持通过 MCP 接口读取资源、执行工具、查询工具描述、以及对工具进行过滤(启用/禁用)等管理能力。
- 子代理支持(Subagent 模式):可以将一个子代理作为单独的 MCP 工具暴露,执行结果按 MCP 标准回传。
- 传输协议支持:默认 STDIO 传输适合嵌入式/父进程协作,另外也有对 HTTP/SSE 的支持,便于远程工具接入。
- 安全与稳定性:包括对请求的超时处理、错误与异常的容错处理、日志输出、以及对并发连接的管理与清理。
-
安装步骤
- 编译安装:在本地环境执行 go build 或 go install,生成可执行程序。
- 运行示例(子代理模式需要一个子代理配置文件作为入口):
- 直接以子代理模式启动(需要提前准备子代理配置 YAML/JSON 文件);
- 或通过父 CPE 实例以 MCP 子代理方式调用,具体依据你的部署架构决定。
-
MCP 服务器配置(给 MCP 客户端使用的配置示例,JSON 格式,包含 server name、command、args 等字段)
- 服务器名称(serverName): code_editor
- 启动命令(command): editor-mcp
- 启动参数(args): ["--config", "./subagent.yaml"]
- 传输类型(type): stdio
- 运行超时(timeout): 60
- 启用的工具(enabledTools): ["text_edit","shell"]
- 禁用的工具(disabledTools): [](如不需要可省略)
- 备注说明:该配置用于在 MCP 客户端将 code_editor 连接到本地/远程 MCP 服务时的连接信息,客户端通过该服务器的启动命令与参数建立连接,并按配置过滤暴露的工具。
服务器配置示例(非代码块文本,便于直接阅读): { "mcpServers": { "code_editor": { "command": "editor-mcp", "type": "stdio", "timeout": 60, "enabledTools": ["text_edit","shell"] } // 如需通过 HTTP/SSE,请将 type 设置为 "http" 或 "sse",并提供 URL/Headers } }
配置字段说明
- mcpServers: 顶级 MCP 服务器集合,键名即为服务器名称。
- code_editor: 服务器的名称,客户端据此建立连接并获取工具描述与能力。
- command: 启动 MCP 子代理服务的可执行文件路径或命令名。
- type: 传输类型,stdio 表示通过父进程的标准输入输出进行 MCP 通信;http/sse 表示远程传输。
- url: 当 type 为 http/sse 时需要填写的目标端点地址。
- timeout: 服务器端超时设置(单位:秒或可解析为时间的数值)。
- env/headers: 运行时环境变量和请求头配置(仅在 http/sse 模式或需要额外元数据时使用)。
- enabledTools/disabledTools: 流控导出给 LLM 客户端的工具集合,白名单/黑名单模式的工具暴露控制。
-
基本使用方法
- 将 MCP 服务器配置以 JSON 形式提供给你的 MCP 客户端(此处客户端指与 MCP 服务对接的 LLM 客户端)。
- 启动对应的子代理 MCP 服务(如 code_editor),确保可执行文件存在且可执行。
- 在客户端指定要调用的服务器与工具,发起工具调用、读取资源、获取 Prompt 等能力。
- 通过 STDIO/HTTP/SSE 等传输,服务端将返回 MCP 格式的响应或通知,客户端对接后即可进行对话式推理与外部功能调用。
-
重要实现与接入要点
- 服务端会在启动阶段建立与各 MCP 服务器的连接,导出可用工具,并对工具进行过滤,确保 LLM 客户端只看到被允许的工具集合。
- Subagent 模式下,服务端暴露的工具只有一个,运行时通过 SubagentExecutor 执行,输出会被映射回 MCP 响应格式。
- Code Mode 功能通过自动绑定执行 Go 代码的工具实现,支持将 MCP 工具暴露为 Go 函数,并在沙箱中执行。
- 安全性与稳定性特性包括对回放、回滚、并发访问的事务性保证,以及对执行超时、错误的合理处理。
-
运行与调试
- 通过命令行启动主应用时,可以使用配置文件加载 MCP 服务器设置,或通过命令行参数覆盖配置项。
- 使用 mcp 子命令的常用调试指令可查看服务器信息、工具清单、以及直接调用工具以验证接口正确性。
-
关键词 模型上下文、工具执行、代码模式、子代理、跨服务器协作
-
分类ID 6