Codebase Context MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个基于 Model Context Protocol (MCP) 的后端服务,面向 LLM 客户端提供代码库相关的上下文、工具和提示模板等能力。核心职责包括:托管与管理资源和数据、注册并执行工具、定义并渲染提示模板,以及通过 JSON-RPC 与客户端进行通信。
-
主要功能点
- MCP 接口实现
- 提供 ListTools、ListResources、ReadResource、CallTool 等 MCP 请求的处理能力,并返回标准的 JSON-RPC 响应。
- 工具与资源托管
- 注册并执行工具(如 search_codebase、get_codebase_metadata、refresh_index 等),以及暴露可读取的资源。
- 提示模板与上下文
- 通过内置逻辑渲染 Codebase Intelligence、Prompts/模板等上下文信息,帮助 LLM 在生成代码时遵循团队约定。
- 会话与能力管理
- 维护 server 状态、启动/初始化流程、逐步展示索引状态和错误信息,支持自动修复(Auto-Heal)机制,如在遇到向量索引损坏时自动触发再索引。
- 本地化与传输
- 使用 StdioServerTransport 作为 MCP 标准传输,支持本地开发与集成场景。具备对 legacy 结构的迁移能力与调试输出。
- 代码库分析与索引
- 集成 CodebaseIndexer、CodebaseSearcher、嵌入向量、LanceDB 向量库等,完成对代码库的解析、嵌入、存储与检索。
- 安全与容错
- 错误处理、日志输出、并在特定错误情况下进行自愈,确保 MCP 客户端在遇到问题时有清晰的错误信息。
- MCP 接口实现
-
安装步骤(简要)
- 将代码克隆到本地,并安装依赖(如 npm ci / npm install)。
- 通过 TypeScript 编译或直接在 Node 环境下运行可执行入口(index.js/CLI 入口)。
- 按需配置环境变量(如 CODEBASE_ROOT、OPENAI_API_KEY、EMBEDDING_PROVIDER 等),以及本地缓存/向量数据库路径。
-
服务器配置(给 MCP 客户端使用的 JSON 配置示例说明)
- 服务器名称:codebase-context
- 启动命令与参数(MCP 客户端需提供以连接到服务器)
- 说明性描述(不直接粘贴代码块,而是以说明文本呈现):
- server 名称:codebase-context
- command:npx
- args:["codebase-context", "/path/to/your/project"]
- 该配置用于 MCP 客户端在启动时通过指定的命令与参数来拉起服务器实例,或作为容器/脚本调用的参数输入。
- 说明要点
- 客户端只需要知道服务器的名称、启动命令与参数即可建立连接,无需理解服务器内部实现细节。
- 若环境首次运行出现提示,建议使用 npx --yes 或 npx -y 进行自动确认。
-
基本使用方法
- 客户端连接
- 通过 MCP 客户端配置将服务器启动命令与参数传入,即可在初始化阶段建立与 MCP 服务器的 JSON-RPC 通道。
- 常用操作
- 调用工具:通过工具名(如 search_codebase、remember 等)执行相应的 JSON-RPC 请求,获得回答或结果。
- 读取资源:请求内置资源(如 Codebase Intelligence、上下文片段)以便在推理阶段提供背景信息。
- 获取元数据:获取代码库元数据、索引状态等,辅助判断当前环境与可用能力。
- 自动修复
- 在向量索引损坏等错误发生时,服务器会尝试自动重建索引并重试查询。
- 客户端连接
-
额外信息
- 该实现包含本地向量检索、嵌入生成、索引存储、内存记忆系统等模块,适合在本地安全环境中对代码库进行快速、可控的上下文化支持。