UltraCode MCP 服务器端
使用说明
-
项目简介
- UltraCode 的 MCP 服务器端实现,提供统一的后端服务,为大语言模型客户端提供代码图谱查询、代码分析、变更影响评估、语义搜索等工具,以及提示模板等能力。通过 MCP JSON-RPC 与客户端通信,支持多种传输通道(如 STDIO、命名管道等),实现资源管理、工具注册/执行和提示渲染等核心职责。
-
主要功能点
- 资源管理:托管并提供对代码图谱、向量索引等资源的访问能力。
- 工具注册与执行:内置并注册多种工具,LLM 客户端可通过 MCP 调用外部功能。
- Prompts 定义与渲染:支持自动文档、提示模版及可定制交互模式。
- JSON-RPC 通信:服务器通过 MCP 标准的 JSON-RPC 处理请求,返回标准化响应。
- 会话与能力声明:支持会话、权限与能力自述,确保多客户端安全并行访问。
- 多传输协议支持:除了 STDIO,还可通过命名管道等实现跨进程通信。
-
安装步骤
- 使用 Bun 或 npm 全局安装 UltraCode,对应运行时环境要求在仓库文档中有列示。
- 构建本地二进制/核心服务以及所需原生依赖(如本仓库的构建脚本所述的本机库、LING/FAISS 等)。
- 运行入口通常是 dist/index.js(Core MCP 服务器),通过 CLI 包装器 bin/ultracode.js 进行启动。
-
服务器配置(MCP 客户端需要,示例配置,JSON 格式,字段含义见注释)
- server 名称(name):ultracode
- command:启动 MCP 服务器的命令
- args:启动参数,包含要连接的目标工作目录等
- 说明:以下仅为客户端需了解的配置信息,实际 MCP 客户端并不需要你在代码中承载实现细节;这是用于描述客户端如何连接服务器的示例。
{ "server": { "name": "ultracode", "command": "node", "args": ["dist/index.js", "/path/to/target-project"] } // 备注:以上配置用于 MCP 客户端了解如何启动并连接到服务器。客户端本身不会直接使用该配置代码块,它仅用作连接参数的文档说明。 }
-
基本使用方法
- 启动服务器后,客户端通过 MCP JSON-RPC 请求,向服务器请求工具列表、执行工具、读取资源、获取 Prompt 等。
- 支持通过不同传输通道建立会话,例如 STDIO(常用于脚本/CLI 集成)、命名管道等,确保多客户端的并发访问与会话隔离。
- 客户端示例(不在此给出代码实现细节,需参考仓库中 MCP 客户端示例):
- 初始化会话并声明能力
- 调用工具执行图谱分析、语义搜索等任务
- 获取并渲染 Prompt 模板以驱动对话
-
运行与验证
- 仓库配套了与 MCP 的测试用例,验证了 JSON-RPC 请求/响应、工具调用、资源访问等核心交互。
- 若要对接真实的 MCP 客户端,请按客户端文档配置对接信息,并通过 MCP 服务端的 JSON-RPC 接口进行交互。
-
其他
- 服务器端还提供了 CLI 包装、二进制传输、以及对本地原生模块的支持与拷贝逻辑,确保跨平台可用性。
- 如需扩展,请浏览源代码中的 PipeServer、BinaryFrameCodec、请求路由和工具处理器等模块。