CCC MCP 服务端实现
使用说明(Markdown格式)
一、项目简介
- CCC 提供了一个可配置的 MCP 服务器框架,允许在 Claude Code 启动时内置或通过插件扩展的 MCP 服务器,提供工具、资源、提示等能力给 LLM 客户端使用。
- 服务器核心采用 FastMCP 库,通过内联方式实现 MCP 服务,亦可通过外部代理方式连接远端 MCP。
二、主要功能点
- 资源管理:为 MCP 提供资源读取能力,支持加载与缓存资源元数据。
- 工具注册与执行:将外部工具对接为 MCP 工具,支持参数校验与结果聚合。
- 提示模板:系统与用户提示可通过多层叠加实现,支持覆盖与追加模式。
- MCP 层级与插件扩展:全局、预设、项目三层叠加配置,且可被 CCC 插件扩展影响。
- JSON-RPC 通信与传输类型:默认使用 stdio 传输(Inline MCP),也支持 HTTP/SSE 传输等扩展。
- 运行时补丁与虚拟文件系统:通过运行时补丁对 Claude Code 进行修补,并在虚拟 FS 中注入命名空间下的命令、 agents、skills、rules 等数据,避免直接修改真实文件系统。
三、安装与运行步骤
- 克隆或获取仓库代码,安装依赖。
- 在全局配置中定义 MCP:通过配置层(config/global/mcps.ts)声明内联 MCP,CCC 会在启动时将其转化为可执行的 stdio MCP Server。
- 启动 CCC:使用 CCC 提供的命令(ccc)启动 Claude Code,MCP 会在启动流程中被初始化并暴露给客户端。
- 调试与监控:可使用 --debug-mcp、--doctor、--print-config 等调试参数查看 MCP 配置与行为。
四、服务器配置(MCP 客户端需要的最小信息) { "session-info": { "transport": "stdio", "command": "bun", "args": ["<CCC_ROOT>/src/cli/runner.ts", "mcp", "session-info"], "env": { "CCC_INSTANCE_ID": "<实例ID>", "CCC_CONFIG_DIR": "<配置目录路径>" } // 说明:此为内联(inline)MCP在 CCC 启动时的命令模板,实际值由运行时上下文注入 } } 说明:
- name 为 MCP 的名称,例如 session-info,内部用于区分不同的 inline MCP。
- transport、command、args、env 对应实际部署时的启动方式,若为内联 MCP,通常为 stdio 传输,使用 bun 运行 CCC 的运行器(runner.ts)并传入参数 mcp <name>。
- 以上信息仅用于描述连接方式;实际连接细节由 CCC 启动时的上下文自动生成,无需客户端自行实现。
五、基本使用方法
- 如何查看配置与内容:使用 --print-config 查看到底层合并后的设置、系统提示、用户提示、命令、代理 MCP 等信息。
- 如何扩展:将新的 MCP 配置放入 config/global/mcps.ts,或通过插件扩展(CCC 插件系统),CCC 会自动合并并启动对应的服务器。
- 如何调试 MCP:使用 --debug-mcp <mcp-name> 启动 MCP Inspector 进行交互测试与工具、资源、提示的查看与调用。
六、实现要点与约束
- MCP 的核心能力包括工具、资源、提示的注册和渲染,以及与客户端的 JSON-RPC 通信。
- Inline MCP 通过 FastMCP 实现,服务器端使用 stdio 传输,洞察与调试可通过 MCP Inspector 进行。
- 全局/预设/项目三层叠加实现,支持覆盖与追加行为,以及插件对 MCP 的扩展。
- 安全性与隔离:虚拟文件系统(VFS)注入配置,避免直接修改 Claude Code 的安装文件,便于多实例并行运行。
七、注意事项
- 该实现需要 Claude Code 的运行环境与 Node.js 等依赖。
- 需要正确配置 CCC_CONFIG_DIR 指向测试/开发配置目录。
- Inline MCP 以“stdio”传输为主,外部 MCP 可选通过 HTTP/SSE 进行连接。
二进制/文本摘要
- 该仓库包含完整的 MCP 服务端实现(Inline/MCP)及其与 Claude Code 的整合能力,涵盖资源、工具、提示与多层配置合并,具备可运行的服务器端逻辑与测试用例支持。
七、相关示例配置与组件
- 服务器启动与代理示例:Inline MCP 通过 FastMCP 提供工具/资源/提示,外部 MCP 的代理通过相应的代理工具实现。
- 插件扩展:通过 CCC 插件系统,插件可以注入新的命令、代理 MCP、钩子与提示,以实现可扩展的服务器能力。
关键词 资源管理, 工具注册, 提示模板, JSON-RPC, 虚拟文件系统
category_id 6