Xcode Copilot MCP 服务端实现
使用说明
-
项目简介 该仓库实现了一个用于 LLM 客户端的本地 MCP 服务端,能够管理资源、注册并执行工具、定义并渲染提示模板,并通过标准化的 JSON-RPC 接口与客户端通信。还提供了用于工具桥接的路由、会话管理、以及对多种提供者(OpenAI、Claude、Codex)的支持。
-
主要功能点
- MCP 核心接口支撑:处理 initialize、tools/list、tools/call 等 MCP 请求,返回标准的 JSON-RPC 结构。
- 流式传输能力:通过 SSE/Streaming 模式向客户端持续输出工具调用、进度与结果。
- 资源与工具管理:提供工具缓存、工具解析与参数规范化,支持将工具信息通过 MCP 暴露给客户端。
- 提示模板处理:在请求进入前对提示做过滤与定制化渲染,确保上下文安全与可控。
- 场景化提供者支持:实现对 OpenAI、Claude、Codex 等提供者的适配与路由,提供不同的后台执行模式(本地 MCP 服务、远程 MCP 等)。
- 会话与状态管理:内置 ConversationManager、ToolBridgeState、SesionLifecycle 等,确保会话隔离、清理与重用策略。
-
安装步骤
- 依赖环境:Node.js 版本需满足仓库要求,确保具有 TypeScript 编译与运行能力。
- 全局安装与启动(示例性步骤):通过 npm install 构建依赖后,使用提供的启动命令启动服务,配置文件可通过 config.json5 指定,支持单一提供者模式或 Auto 模式开启全部提供者。
- 运行验证:启动后应能够接受 MCP 客户端的请求,按 MCP 规范返回 initialize、tools/list、tools/call 的响应,并支持 SSE 流式输出。
-
服务器配置( MCP 客户端连接用) 说明:MCP 客户端需要知道启动 MCP 服务器的命令及参数,以建立连接。以下为示例配置要点,实际请据仓库的 config.json5 结构进行设置。JSON 表示方式仅作说明,实际使用时请按客户端要求的格式提供。
-
server name 与执行命令
- 名称示例:xcode
- 本地 MCP 服务器启动命令:xcrun
- 参数示例:mcpbridge
- 说明:该服务器将作为本地 MCP 服务桥接,提供对 Xcode/Copilot 环境的上下文与工具访问。
-
允许的工具
- 对应的允许工具字段可以设置为 ["*"] 以允许全部工具,或限定具体名称列表。
-
其他字段
- type: local
- command: xcrun
- args: ["mcpbridge"]
- 可能的扩展字段:env、cwd、timeout(取值正数)
-
结构化示例(说明用,实际请以 JSON5/JSON 形式提供给 MCP 客户端)
- openai: { toolBridge: false, mcpServers: { xcode: { type: "local", command: "xcrun", args: ["mcpbridge"], allowedTools: ["*"] } } }
-
说明 MCP 客户端通过该配置信息即可启动并连接 MCP 服务器,建立与后端的上下文与工具执行桥接。此处仅给出参数和字段含义,具体配置请依据项目实际需求进行组合。
-
-
基本使用方法
- 启动服务后,客户端通过 MCP 接口按 JSON-RPC 调用 initialize、tools/list、tools/call 等方法来获取工具清单、执行工具以及获取返回的文本内容。
- 客户端可通过 SSE 方式订阅对话中的进展、工具调用与输出,服务器负责维护会话状态与工具调用的正确绑定。
- 如需切换提供者或开启单 Provider 模式,可通过配置中 --proxy/ proxy 设置实现,或使用相应的启动参数进行单 Provider 启动。