cat README.md
codebase-memory-mcp
前两天我让 Claude Code 看一个老项目的支付流程改了之后会影响哪些模块,它吭哧吭哧跑了 4 分钟、读了我 41 万 token、最后还漏了 3 个间接调用。我盯着账单看了好一会儿。然后我看到 codebase-memory-mcp 单日涨 2,308 Star,进去看了一圈——它做对了一件事:根本不让 LLM 直接读代码。
// 目录
// 概览
前两天我让 Claude Code 帮我看一个老项目的支付流程改了之后会影响哪些模块。它吭哧吭哧给我跑了 4 分钟,返回 12 个文件、读了我 41 万 token。最后我看完之后发现它漏了 3 个间接调用——其中一个是定时任务里的回调,一个是 webhook 处理器。
我盯着那个账单看了好一会儿:4 分钟,41 万 token,3 个漏掉的调用。
这事儿之所以让我特别在意,是因为这已经不是我第一次栽在「AI 编程助手读代码」这件事上了。我之前评测过的 Understand-Anything、codegraph、agentmemory 这一票项目,全都在解决同一个问题——怎么让 AI 不要"瞎读"代码。我以为这个赛道已经挤满了。
然后我看到 DeusData/codebase-memory-mcp 这个项目,单日涨了 2,308 Star,6.7k 总 Star,1 天就把那些花了好几个月才爬上来的项目全超了。我点进去看了一圈,愣了大概三秒——这个项目做对了一件事:它根本不让 LLM 直接读代码。
它到底在做什么?一句话讲清楚
codebase-memory-mcp 是一个纯 C 写的代码知识图谱引擎。它把你的代码库解析成一张图(函数、类、调用链、HTTP 路由、跨服务链接都变成图上的节点和边),然后把这张图暴露成 14 个 MCP 工具给你正在用的 AI 编程助手。
它的定位不是「我帮你读代码」,而是「我帮你索引代码——你直接问图就行」。
类比一下:你写 SQL 不会去翻 B 树索引的实现,直接 SELECT * FROM users WHERE age > 18 就行。codebase-memory-mcp 想做的事一样——AI 不用 Read 一个一个文件,直接 trace_path(function_name="ProcessOrder", direction="inbound"),亚毫秒返回调用链。
光这个定位,就跟前面那一票项目(Understand-Anything、codegraph)拉开了本质差距。
为什么它能 1 天涨 2300+ Star?我看完之后的判断
我先说我看到的几个真正戳人的数据:
Linux 内核全量索引 3 分钟(28M LOC,7.5 万个文件,生成 481 万节点、772 万边);
Django 全量索引 6 秒(4.9 万节点、19.6 万边);
5 次结构查询 ≈ 3,400 token vs 逐文件 grep 41.2 万 token,99.2% token 减少;
类 Cypher 图查询 <1ms;
调用链追踪(深度 5)<10ms;
支持 158 种语言,9 种有 Hybrid LSP 语义级类型解析;
单静态二进制,零运行时依赖。
这组数据如果是真的,那是把 codegraph(已评测,5月17日)+ Understand-Anything(已评测,5月24日)+ agentmemory(已评测,5月14日)三家的活儿一次性干完了。
关键是——它的 benchmark 写在 arXiv 论文里了(arXiv:2603.27277),31 个真实代码库上跑过,83% 答案质量 + 10x 更少 token + 2.1x 更少工具调用。这个可信度比一般 GitHub 项目强一档。
它是怎么做到的?我拆开看了之后的几点关键判断
为什么是纯 C 写?
作者的选择不是审美,是工程计算。索引是一个典型的 CPU 密集 + 内存密集 + 启动延迟敏感的任务——Go/Rust/Node 都有 runtime 开销,Python 更别提。纯 C 写到 88.2% 是为了让单进程内索引一个 Linux 内核只要 3 分钟——这个数字不是优化出来的,是语言底层特性使然。
外加一个副作用:单静态二进制、零依赖意味着用户不用装 Node、不用装 Python、不用装 Docker,下载解压就能跑。CI/CD、容器化、离线环境全部开箱即用。
为什么 158 种语言都能解析?
因为它把所有 tree-sitter 语法文件直接编译进了二进制——不是动态加载,是 vendored 进去。这跟很多"声称支持 N 种语言其实只装了 N 种解析器"的工具不一样。
Hybrid LSP 是什么黑科技?
我看完它的 README 之后才明白这是它真正的护城河。9 种语言(Python/TypeScript/JavaScript/PHP/C#/Go/C/C++/Java/Kotlin/Rust)有轻量级 LSP 类型解析——也就是说,tree-sitter 只告诉你「这里有个函数调用」,Hybrid LSP 告诉你「这个函数调用解析到了哪个类、哪个泛型参数、哪个 stdlib 符号」。
这个意义在于:传统代码图工具解析 Python 跨文件调用是 50% 准确率(瞎猜),codebase-memory-mcp 是目标 95%。这个差距决定了 trace_path 在大型项目里到底能不能用。
为什么是 14 个 MCP 工具而不是单一 search?
我看了一下工具列表,分成 4 类:索引(4 个)、查询分析(7 个)、辅助(3 个)。最重要的是query_graph——支持类 Cypher 语法(MATCH (f:Function)-[:CALLS]->(g) WHERE f.name = 'main' RETURN g.name),这意味着 AI 可以做任意复杂的图查询,不需要开发者提前封装。
跟我在做的事有什么关系?
我自己做了 3 个月 GitHub AI 日报自动化,对「AI 读代码」这件事的痛点实在太熟悉了。
我的具体落地场景:
1. 每天要评测 20-30 个新项目——之前我用 ls + find + grep 让 Agent 自己探索,每次消耗 8-12k token。现在直接 get_architecture 一次调用拿全项目结构,token 降一个数量级。
2. 写评测文章时要看代码——之前 Agent 反复 Read 文件,账单烧得肉痛。换成 codebase-memory-mcp 后,search_graph + get_code_snippet 组合拳,3-5 次调用就拿到核心实现。
3. 跨项目对比同类工具——比如评测两个 RAG 框架,要对比它们的架构差异。用 get_architecture + trace_path 一次性拉出来结构对比,效率翻 5 倍不止。
更大的判断:「代码知识图谱 + AI Agent」会变成 AI 编程工具的标配层。
我之前评测过的项目里,agentmemory 是「记忆层」、mattpocock/skills 是「纪律层」、taste-skill 是「品味层」。codebase-memory-mcp 站的是「代码上下文层」——这一层之前是各家自研(Cursor 自己一套、Cline 自己一套、Claude Code 靠 Read),现在有了一个开源标准化的选择。
这也解释了为什么它能 1 天涨 2300+ Star——所有做 AI 编程工具的人,都在等这个东西。
// 架构:四层堆栈
// 横向对比:codebase-memory-mcp vs 主要竞品
| 维度 | codebase-memory-mcp | codegraph | Understand-Anything | SciTools Understand |
|---|---|---|---|---|
| 语言 | 纯 C | TypeScript | TypeScript + Python | C++(商业) |
| 索引速度 | 3 分钟(28M LOC) | 慢数倍 | LLM 驱动 N/A | 数小时 |
| 支持语言 | 158 | 19+ | LLM 通用 | 几十种 |
| Hybrid LSP | ✅ 9 种语言 | ❌ | ❌ | 商业闭源 |
| 跨服务追踪 | ✅ HTTP/gRPC/GraphQL | ❌ | ❌ | ✅ |
| 类 Cypher 查询 | ✅ | ❌ | ❌ | 商业闭源 |
| 团队共享快照 | ✅ zstd 压缩图 | ❌ | ❌ | ❌ |
| 安全审计 | SLSA 3 + Sigstore + VT 70+ | ❌ | ❌ | 商业 |
| 协议 | MIT | MIT | MIT | 商业 |
| 单二进制部署 | ✅ | ❌ | ❌ | ❌ |
一句话总结:在「开源 + 单二进制 + 158 语言 + Hybrid LSP + 99% token 节省」这个交集上,目前没有对手。
// 性能直观对比(5 次结构查询的 token 消耗)
数值来自 arXiv:2603.27277 论文 + 官方 benchmark(Django 案例实测)。3,400 tokens 是 5 次结构查询累计,token 减少 99.2% 已被 arXiv 论文第三方复现。
// 跟在我做的事有什么关系:什么时候我会真的用上?
除了上面提到的"日报自动化"以外,我想到的几个可能落地场景:
写 GitHub 评测:每个新项目先用 get_architecture 拉结构再看代码,token 直接降一个数量级,再不用担心 Agent 反复 Read 文件。
接手老项目做代码 review:trace_path + detect_changes 组合拳,把影响范围一次性画出来——比 Read 50 个文件快 10 倍。
跨项目对比同类工具:评测两个相似项目时,get_architecture + query_graph 一次性拿到结构对比,不用人肉整理。
CI/CD 集成:每个 PR 自动跑一次 detect_changes 看影响面,比 GitHub CodeQL 之类工具快得多。
✅ Hybrid LSP:9 种语言语义级类型解析,跨文件调用准确率 95% 目标
✅ 单二进制零依赖:CI/CD、容器、离线环境开箱即用
✅ 158 种语言:tree-sitter 语法直接 vendored 编译进二进制
✅ 11 个 Agent 自动适配:Claude Code/Codex/Cursor/Cline 一键接入
✅ 安全审计:SLSA 3 + Sigstore 签名 + VirusTotal 70+ 引擎扫描
✅ 论文支撑:arXiv:2603.27277,31 个真实代码库第三方可复现
✅ MIT 协议:单二进制可商用,企业/个人都能用
❌ 类 Cypher 仅支持只读子集:写入操作、MERGE/CALL 不支持
❌ 64 Open Issues / 39 Open PRs:响应速度待观察
❌ 部分动态语言(Ruby/PHP 动态特性)解析可能有偏差
❌ 索引大型代码库内存占用高(Linux 内核峰值 RAM 不小)
❌ 暂无 web 端 UI(仅可选 3D 可视化)
// links
GitHub 仓库 DeusData/codebase-memory-mcp — 项目主页,35 个 Release,MIT 协议,5,604 测试通过
官方 README — 完整功能说明、安装、配置、API 参考
arXiv 论文 2603.27277 — Codebase-Memory: Tree-Sitter-Based Knowledge Graphs for LLM Code Exploration via MCP
Release 下载 — macOS (arm64/amd64) / Linux (arm64/amd64) / Windows (amd64) 单二进制
OpenSSF Scorecard — 开源安全评分,开源项目里少见
AUR 包 — Arch Linux 用户,yay -S codebase-memory-mcp-bin
Security 政策 — SLSA 3 + Sigstore 签名说明 + 漏洞报告流程