codebase-memory-mcp
codebase-memory-mcp 是一款纯 C 编写的代码知识图谱 MCP 服务器 ,给 Claude Code / Codex / Open Code 装上"项目结构感知"能力。
- 核心定位:用 MCP 把代码库索引成可交互的知识图谱,AI 改代码前能感知调用链、依赖与爆炸半径。
- 架构特点:零依赖单文件二进制,不依赖 Node / Python 环境,下载即可跑。
- 能力边界:支持 158 种语言、内置 20+ 语义关系、支持 OpenCypher 图查询。
- 对比 CodeGraph:提取精度 / 调用图完整性 / 查询能力 三项领先,索引速度落后,平均分几乎持平。
- 典型场景:快速上手陌生项目、PR 影响半径分析、死函数检测、跨语言特性迁移。
- 代价:单次索引 20+ 分钟,MCP 集成会占用系统资源,且与 GitNexus 跨仓能力有差距。
它解决什么问题
Claude Code / Codex 在中型以上项目里有个通病:上下文窗口塞不进整个仓库,改一个函数时 AI 不知道它会被谁调用、改了会炸到哪。靠 grep + Read 临时拼上下文,AI 看到的永远只是"局部"。
codebase-memory-mcp 的思路是把整个代码库预先索引成知识图谱,让 AI 用结构化查询替代模糊搜索。
这不是新想法。之前 GitNexus、Graphify、CodeGraph 都做过类似的事。codebase-memory-mcp 的差异点在哪?公开实测给出的答案是:调用图更准、查询能力更强、语料覆盖更全。
与同类项目的差异
| 维度 | CodeGraph | GitNexus | codebase-memory-mcp |
|---|---|---|---|
| 索引后端 | 多语言混合 | TypeScript | 纯 C 单文件二进制 |
| 部署依赖 | Node | Node | 零依赖 |
| 查询语言 | 有限语义 | 自己的 DSL | OpenCypher |
| 支持语言数 | ~80 | ~80 | 158 |
| 3D 可视化 | 无 | 无 | 有 |
| 跨仓分析 | 无 | 强 | 无 |
公开实测给出的对比表只覆盖了 CodeGraph。GitNexus 在跨仓场景下仍是当前最强的,codebase-memory-mcp 不在这个赛道上。
实测数据:vs CodeGraph
公开实测用同一个 openclaw 记忆插件代码库,让 Claude Code 给两个项目打分(0-10):
| 维度 | CodeGraph | codebase-memory-mcp | 胜者 |
|---|---|---|---|
| 索引文件数 | 194 | 221(含 md / json / bash) | codebase-memory-mcp |
| 索引耗时 | 1.7s | ~16s | CodeGraph |
| 提取精度 | 较低 | 8.5 | codebase-memory-mcp |
| 调用图完整性 | 较低 | 8.0 | codebase-memory-mcp |
| 查询能力 | ~7.0 | 9.0 | codebase-memory-mcp |
| 索引速度 | 9.5 | 较低 | CodeGraph |
| 平均分 | ~6.5 | ~6.6 | 几乎持平(差 0.1) |
结论很直接:codebase-memory-mcp 在"准"和"能查"这两件事上更强,但在"快"上吃亏。
调用图更准的具体含义是:它能严格只保留真实调用,不被默认参数、测试文件、装饰器之类的边角情况污染。这点是 CodeGraph 的系统性问题——它会把测试 mock 当成真实调用链的一部分,结果 AI 拿着这图去做重构建议就会跑偏。
五个真实使用场景
实测在 Mem0 这种 1.8 万节点 / 9.4 万边的大型 AI Agent 记忆项目上演示了五个用例:
1. 快速上手陌生项目
输入:
用 codebase-memory-mcp 帮我快速上手这个项目:
- 项目入口在哪
- 核心模块怎么分
- 各层之间怎么通信
输出会告诉你:6 个真实入口(Python API / HTTP REST / CLI / MCP / 分布式 server / Celery worker)、分层结构(接口层 / 领域层 / 任务层 / 基础设施层)、主干数据流。
2. PR 影响半径分析
输入:
分析这个 PR 的影响半径,并检查被改的函数。
AI 不再盲目读 diff,而是顺着调用图走完所有受影响的下游,给出"修复正确 / 测试到位 / 范围收敛"的判断。
3. 死函数检测
输入:
用 codebase-memory-mcp 找出可以安全删除的死函数。
图里有节点但入度出度都是 0 的,就是死代码。这是手动 grep 永远找不干净的事。
4. 跨语言特性迁移
最精彩的用例:从 Mem0(Python)抽取 GraphRAG 模块,迁移到 OpenClaw(TypeScript)插件。
AI 能基于两边的代码图给出:
- 哪些核心逻辑可以 1:1 重写
- Python 特有依赖对应的 TS 等价物
- 新代码放哪个目录、动哪些文件
- 落地顺序
这种"跨代码库 + 跨语言"的 迁移规划,是单纯靠文件级搜索做不到的。
5. 复杂度热点定位
支持查询 cyclomatic / cognitive 复杂度、嵌套循环深度、隐藏的 O(n²) 模式。可以在改代码前先扫一遍"哪些函数值得优化"。
三个不能忽视的代价
公开测评里讲优势讲得比较多,但评论区已经把问题暴露得很清楚:
- 索引慢——单次冷索引 20+ 分钟是常态,索引速度比 CodeGraph 慢一个数量级。
- 占资源——MCP 集成不是 Hooks 集成,常驻进程 + 持续占用。
- 跨仓弱——GitNexus 在跨仓分析上仍是当前最强的,这个项目目前不在这个赛道。
如果你需要在多个仓库之间做依赖追踪,codebase-memory-mcp 解决不了,得看 GitNexus 或 GraphRAG。
安装与使用
仓库有两个版本:
- 主仓库:DeusData/codebase-memory-mcp
- 社区增强版(增量索引修复 + 9 个上游 PR):win4r/codebase-memory-mcp-pro
最省事的安装方式:
# 在 Claude Code 或 Codex 里直接说:
阅读 https://github.com/win4r/codebase-memory-mcp-pro 的 README,并为我安装
它会自动下载二进制、写入 MCP 配置。后续在会话里直接用自然语言提问即可,AI 会自己调 search_graph / trace_path / query_graph 这类工具。
