UltraCode MCP 服务器
使用说明
- 项目简介
- UltraCode MCP 服务器实现了一个完善的 MCP 后端,核心职责包括:托管与管理资源以供数据访问、注册与执行工具以对外暴露功能、定义与渲染可定制的 Prompt 模板,并通过 JSON-RPC 与客户端进行通信。服务端负责会话管理、能力声明,并支持多种传输协议,旨在为本地化的 LLM 应用提供高效、可扩展的上下文服务与工具生态。
- 主要功能点
- 资源与数据访问:提供资源/数据的托管、索引、查询、版本与历史等能力,便于 LLM 客户端获取高质量的上下文信息。
- 工具注册与执行:开放多组“工具”(Tools),LLM 客户端可通过 MCP 调用外部功能(如代码分析、搜索、重构、代码修改等)。
- Prompt 模板与渲染:支持可定制的 Prompt 模板,用于定义与渲染 LLM 交互流程。
- JSON-RPC 通信:服务器通过 MCP 的 JSON-RPC 协议与客户端进行请求/响应通信。
- 会话与能力声明:管理会话状态,声明服务能力,支持多种传输协议(如 Stdio、SSE、WebSocket)。
- 本地化资源与工具生态:强调本地化代码分析、索引、向量搜索、自动文档等能力,尽量避免外部 API 调用以降低成本和延迟。
- 本地模型与嵌入:提供本地嵌入模型与本地 LLM 的集成选项,降低对外部 API 的依赖。
- 安装步骤
- 依赖准备:本项目偏向使用 Bun/Node.js 环境,请确保 Node.js 版本与 Bun 的安装就绪(如 Bun ≥ 1.3.2)。
- 安装依赖:在项目根目录执行安装命令,完成所需依赖安装。
- 构建与打包:按照仓库提供的构建配置,执行打包生成 dist 目录及可执行入口。
- 启动服务:使用 Node.js 运行 dist/index.js,传入目标开发目录作为工作目录参数。
- 服务器配置(供 MCP 客户端使用的连接信息,JSON 格式,示例字段如下)
说明:以下配置用于 MCP 客户端在本地连接到服务器。MCP 客户端需要提供 serverName、command、args 等信息以建立连接。
- serverName: ultracode
- command: node
- args: ["dist/index.js", "<PROJECT_DIR>"] 注释说明:
- serverName 指定在客户端的服务器标识,若要在 Claude/MCP 客户端中通过 claude.json 或 claude.cfg 指定,请使用同名配置。
- command 与 args 对应服务器启动命令及参数,client 将通过该命令启动 MCP 服务器并连接。
- <PROJECT_DIR> 为 MCP 服务器的工作目录(项目根路径),用以初始化数据结构、索引与提供上下文信息。
- 基本使用方法
- 启动服务器:在合适的工作目录中运行包含 dist/index.js 的命令,服务器上线后将监听 MCP 客户端的请求。
- 连接客户端:在 MCP 客户端中使用上述配置连接服务器,使用 JSON-RPC 调用工具、资源、Prompts 等接口。
- 调用示例(客户端侧):
- 读取资源、调用工具、获取 Prompt 的请求通过 JSON-RPC 发起,服务器返回 JSON-RPC 响应或通知。
- 运行与测试:仓库自带了多种 MCP 协议对接测试脚本,请在开发环境中执行测试以确保功能完整性。