用途
CodebaseAgent-MCP 是一个令牌高效型 MCP 服务器,用于 AI 编程智能体。它把大型代码库分析委托给一个专用的 OpenAI 兼容 LLM,从而减少上下文体积、延迟和令牌成本。它不会强迫主编程助手反复扫描大型代码库,而是单独执行该工作,只返回当前任务所需的信息。
它可运行于本地模型(如 Gemma 或 Qwen),也可运行于低成本的 OpenAI 兼容云服务商,在降低延迟和令牌消耗的同时,让主助手专注于推理和代码生成。
根据作者的实际使用情况(分析大量数据,如文档、科学论文集合、从政府网站保存的过滤/搜索功能较差的海量内容等),该项目正在平滑演进为一个独立的通用长时程智能体子框架,可连接到任何 CLI/GUI 智能体。
主要能力
- 专为管理小型 LLM 而设计:聚焦于解决它们阻碍其他框架有效工作的特定行为特征和弱点。
- 精确的对话历史压缩。
- 可配置深度的递归子智能体树。
- LLM 防卡死机制(防止模型陷入无限自我重复循环)。
- 任务完成控制(防止小型 LLM 过早终止工作)。
- 完整的子智能体树。
- 同时支持 STDIO 和 HTTP 模式。
- 针对文件大于所连接模型上下文窗口的仓库,进行令牌高效的代码与依赖分析。
- 通过内置 qdrant_* 插件之一实现可选的 RAG 缓存。
- 沙箱化文件系统访问,范围限定在配置的库根目录内。
- 可插拔的外部 stdio MCP 工具。
- 可与本地 OpenAI 兼容服务器(LM Studio、llama.cpp、vLLM、Sglang 等)或兼容的托管 API 配合使用。
- 可与云端 OpenAI 兼容服务器(OpenRouter 等)配合使用。
- 异步后台任务,结果通过 SQLite 持久化。
使用方式
- 安装 uv:https://docs.astral.sh/uv/getting-started/installation/
- 通过 uvx 初始化并创建 CodebaseAgent-MCP 配置:
uvx --from codebase-agent-mcp cb-agent-init。它会返回你的 codebase_agent.config.json 配置文件路径。可随时使用该命令查找配置文件位置。 - 更新到最新版本(不会影响你的配置)。
- 在启动服务器前编辑 codebase_agent.config.json:
- 定义 OpenAI 兼容 LLM(本地或云端)。
- 定义框架可分析的本地仓库、依赖源码或文档树。
- Qdrant(可选):CodebaseAgent-MCP 作为 Qdrant 的客户端工作,支持本地或云端。qdrant_fastembed 和 qdrant_cloud 可启用 RAG 缓存。默认安装 qdrant_fastembed 客户端。
- 将 CodebaseAgent-MCP 注册为 MCP 服务器:配置你的 MCP 客户端(ClaudeCode/Codex/OpenCode/Hermes/PiAgent 等)通过 uvx 运行 CodebaseAgent-MCP。
- 向你的框架(ClaudeCode/Codex 等)安装子智能体和技能:进入项目根目录运行相应命令;也可用
git clone https://github.com/FI-Mihej/codebase-agent-mcp.git克隆仓库后手动操作:- ClaudeCode:复制 ./codebase_agent/data/integration_to/claude/.claude 到项目根目录。
- Codex:复制 ./codebase_agent/data/integration_to/codex/.agents、./codebase_agent/data/integration_to/codex/.codex 和 ./codebase_agent/data/integration_to/codex/.codex/config.toml 到项目根目录。
- OpenCode:复制 ./codebase_agent/data/integration_to/opencode/.opencode 到项目根目录。
- Cursor:复制 ./codebase_agent/data/integration_to/cursor/.cursor 到项目根目录。
- Antigravity:复制 ./codebase_agent/data/integration_to/antigravity/.agents 到项目根目录。Antigravity 缺少智能体概念,因此令牌效率会低于其他框架。请务必启用隐式缓存以获得显著节省。
- Hermes Agent:复制 ./codebase_agent/data/integration_to/hermes/skills 到项目根目录。
- Pi Coding Agent:1. 安装 https://github.com/nicobailon/pi-subagents 或类似方案;2. 复制 ./codebase_agent/data/integration_to/pi_agent/.pi 到项目根目录。
- 以短语 "Use skill libraries-analysis-skill ." 开始你的开发提示词,以降低成本。
Qdrant(可选)使用:在首次使用启用了 qdrant_* 插件的 CodebaseAgent-MCP 之前,以及每次更改 qdrant_* 插件配置中的 "configuration"."model_name" 字段之后,必须初始化(下载)模型。对依赖库代码库执行索引,以将各个实体(文件、类、函数)的关键特征添加到 RAG 存储中。
适用场景
现代编程智能体在开始解决实际任务之前,会反复花费数千(有时数百万)令牌重新阅读仓库、依赖源码和文档。当项目正在积极演进、文档不完整或过时、必须直接检查源代码、每个新的智能体会话都从空上下文开始时,成本会更高。CodebaseAgent-MCP 将这种探索委托给专用的分析模型,主编程助手只接收相关发现,而不是反复处理整个代码库。
限制与说明
- 项目有意聚焦于 OpenAI Chat Completions API,这是历史上第三方推理服务器支持最完整的接口。
- 不使用 LangChain,因为 LangChain 无法(且“未计划”)在聊天历史中检索或发送非官方但事实上的推理自定义字段。
- GitHub 仓库是项目的公开镜像。作者通常在私有仓库中进行活跃开发(包括实验代码和私有研究笔记),定期发布选定快照。欢迎 pull request(不来自 LLM)。
- Qdrant 集合元数据要求 Qdrant 服务器 1.16 或更高版本。兼容的元数据前集合会被无数据丢失地采用;当启用 recreate_incompatible_collections 时,已识别的无向量模式的旧集合会被重建。
- 每个服务商的缓存实现不同,有些根本不支持缓存。
- 关于本地 LLM 的技术细节和配置建议见 docs。
- 需防范依赖库代码中的提示注入。将提示注入嵌入仓库代码正变得越来越普遍,从 Meta 维护的仓库(github.com/facebook/*)到可能导致凭据泄露、社会安全号码暴露、财务损失等真正危险的情况。