
AI 助手对代码库缺乏"结构化理解"。文件之间、函数之间、服务之间的真实关系没有被记录下来,每次提问都要从零开始摸索。
codebase-memory-mcp 把整个代码库变成一张持久化的知识图谱,函数、类、调用链、HTTP 路由、跨服务链接全部建模为图中的节点和边。AI 助手直接查询图谱就行,毫秒级返回结果。
这个项目来自 DeusData 团队,GitHub 上近 5000 颗星,还有一篇 arXiv 论文。实测数据:5 次结构化查询,逐文件搜索消耗约 41.2 万 token,知识图谱只需约 3400 token,省了 99.2%。
Github_url:
它到底做了什么?
打个比方。传统 AI 助手理解代码,就像到了一个陌生城市找路,只能一条街一条街地走、一家店一家店地问。codebase-memory-mcp 相当于给你装了导航地图,道路、建筑、地标全标好了,查路线一秒钟的事。
它的工作流程分三步:
第一步:解析代码,生成语法树。 利用 tree-sitter 对 158 种编程语言做 AST 解析,把每个函数定义、类声明、import 语句都提取出来。语法器全部编译进了二进制文件,不需要额外安装依赖。
第二步:构建知识图谱。 解析结果被组织成一张图。节点包括函数、类、模块、HTTP 路由、Dockerfile、K8s 资源等;边包括 CALLS(调用)、IMPORTS(导入)、DEFINES(定义)、IMPLEMENTS(实现)、INHERITS(继承)、HTTP_CALLS(跨服务 HTTP 调用)、EMITS/LISTENS_ON(事件频道)、DATA_FLOWS(数据流)等十余种关系。图构建完成后一次性写入 SQLite 数据库,后续通过后台文件监听自动增量更新。
第三步:通过 MCP 暴露查询工具。 提供了 14 种 MCP 工具,AI 助手可以直接调用。比如 trace_path 追踪调用链、get_architecture 获取架构概览、detect_changes 分析 git diff 的影响范围、search_graph 做结构化搜索等。查询延迟在亚毫秒级别。
Hybrid LSP:语法解析之外的事
tree-sitter 能做语法解析,但有个硬伤:看不懂"类型"。比如 user.profile.display_name() 这个调用,tree-sitter 知道这是个函数调用,但不知道 display_name 定义在哪个类的哪个文件里,因为它不追踪 import、泛型、继承这些语义信息。
Hybrid LSP 补上了这块。codebase-memory-mcp 用纯 C 语言实现了一套轻量级语义类型推导引擎,结构上兼容主流语言服务器(tsserver、pyright、gopls、Roslyn 等),但不会拖慢索引速度。
目前 Hybrid LSP 完整支持 9 种语言:Python、TypeScript/JavaScript/JSX/TSX、PHP、C#、Go、C、C++、Java、Kotlin、Rust。以 Python 为例,它能解析 import 和子模块路径、dataclass、泛型、@property 装饰器、SQLAlchemy 2.0 的 Mapped[T]、Pydantic 模型、typing 注解、async/await 等。这意味着图谱中的 CALLS 和 RESOLVED_CALLS 边能精确反映 IDE 里"Go to Definition"跳转的结果。
14 种 MCP 工具一览
codebase-memory-mcp 提供的 14 种工具,大致可以分成几类:
搜索类包括 search_graph(按名称正则、标签、度数范围做结构化搜索)、search_code(基于图谱增强的代码 grep)、semantic_query(向量语义搜索,内嵌 Nomic 嵌入模型,不需要 API key)。BM25 全文搜索也内置了,基于 SQLite FTS5,能识别驼峰和下划线命名。
分析类包括 get_architecture(一次调用返回语言、包、入口、路由、热点、边界、层级和聚类)、trace_path(追踪调用链,支持入站和出站方向)、detect_changes(把 git diff 映射到受影响的符号并做风险分类)、死代码检测(找出零调用方的函数,排除入口点)、Louvain 社区发现(通过聚类调用边自动发现功能模块)。
跨服务类包括 HTTP 路由与调用端的匹配(带置信度评分)、gRPC/GraphQL/tRPC 服务检测、Socket.IO 和 EventEmitter 的频道检测(EMITS/LISTENS_ON 边)。
其他还有 Cypher 风格的图查询(MATCH (f:Function)-[:CALLS]->(g) WHERE f.name = 'main' RETURN g.name)、架构决策记录管理(manage_adr,跨会话持久化架构决策)、跨仓库智能(CROSS_* 边连接多个仓库的节点)。
性能实测
在 Apple M3 Pro 上的实测数据:
Linux 内核(2800 万行代码、7.5 万个文件)全量索引只需 3 分钟,生成 481 万个节点、772 万条边。Django 全量索引约 6 秒。Cypher 查询不到 1 毫秒,名称正则搜索不到 10 毫秒,调用链追踪(深度 5)不到 10 毫秒,死代码检测约 150 毫秒。
索引过程采用 RAM-first 管道:所有数据先在内存中处理(LZ4 HC 压缩读取、内存 SQLite),构建完成后一次性写入磁盘,内存随即释放,不会长期占用系统资源。
安装:一行命令搞定
macOS / Linux 一行命令安装:
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash
想要 3D 图谱可视化 UI,加个 --ui 参数:
curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash -s -- --ui
Windows 用户用 PowerShell:
Invoke-WebRequest -Uri https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.ps1 -OutFile install.ps1
.\install.ps1
安装程序会自动检测你电脑上安装的所有 AI 编程助手(目前支持 Claude Code、Codex CLI、Gemini CLI、Zed、OpenCode、Antigravity、Aider、KiloCode、VS Code、OpenClaw、Kiro 共 11 种),自动配置 MCP 服务条目、指令文件和 pre-tool hooks。
安装完成后重启 AI 助手,说一句"Index this project"就行。
团队共享图谱:提交一个文件,队友跳过索引
codebase-memory-mcp 支持把知识图谱导出为压缩文件 .codebase-memory/graph.db.zst,提交到 Git 仓库。队友 clone 项目后首次运行时,直接从压缩文件解压导入,再增量索引本地差异,跳过全量索引。
压缩比通常在 8:1 到 13:1 之间。导出分两档:全量索引用 zstd -9 高压缩比,后台监听用 zstd -3 低延迟。.gitattributes 会自动配置 merge=ours,避免多人同时修改产生合并冲突。
竞品对比
| 特性维度 | codebase-memory-mcp | GitNexus | code-review-graph | CodeGraphContext |
|---|---|---|---|---|
| 核心定位 | 极速代码智能引擎,主打低Token消耗 | 浏览器端图谱可视化 + Graph RAG | 专精代码审查与影响范围分析 | 多后端图谱工具 + 可视化报告 |
| 安装方式 | 单静态二进制,零依赖 | npm包 (gitnexus) | Python包 (pip install) | Python包 (pip install) |
| 语言支持 | 158种 + Hybrid LSP增强 | 多语言(可跳过部分语法) | 30+种 + 可自定义语言 | 23种 |
| 核心优势 | • 索引极快(28M LOC/3分钟) • Token节省99% • 支持团队共享图谱 | • 内置Graph RAG代理 • 跨多仓库分析 • 生成代码Wiki | • 影响半径精准分析 • CI/CD风险审查 • 增量更新<2秒 | • 多种图数据库可选 • 交互式HTML可视化 • 实时文件监控 |
| MCP工具数 | 14个 | 16个(含多仓库管理) | 30个 | 丰富(未明确统计) |
| 最佳场景 | 追求极致性能和最低Token消耗 | 多微服务仓库管理 + 浏览器探索 | 深度依赖代码审查流程的团队 | 偏好Python生态和多样化可视化的开发者 |
安全与隐私:代码不离开你的机器
codebase-memory-mcp 是纯结构分析后端,不内置 LLM,不需要 API key。所有处理都在本地完成,代码不会发送到外部服务器。每个发布版本经过签名、校验和 70 多个杀毒引擎扫描,源代码公开在 GitHub 上可自行审计。
Github_url:
适合什么人用?
如果你经常用 AI 编程助手处理中大型代码库,经常问"谁调用了这个函数""改了这个会影响什么""项目架构是怎样的"这类结构化问题,codebase-memory-mcp 能帮你省下大量 token 和等待时间。
适合的场景包括:微服务架构下跨服务调用链追踪、大型代码库的重构影响分析、新加入团队时快速理解项目架构、代码审查时定位变更的影响范围。
反过来,如果你只是写写小脚本、代码库就几百行,可能用不上,小项目 AI 助手直接读文件就够了。
关注
觉得有用?关注我,持续分享 AI 编程工具的深度解读和实用技巧。