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

服务器信息