← 返回目录
C

Codebase Memory

社区
面向 AI 编程代理的代码库知识图谱。
GitHub 源仓库 ↗
★ 219 Stars 分类 · 开发工具 非常热门 源版本 3ff76d29a639
52FMRS · D
可靠性
8/20
安全与权限
12/20
维护活跃度
10/20
文档质量
13/20
安装易用性
9/20

这是一个由 win4r 维护的 MIT 社区分支,不是 DeusData 官方服务器。它适合本地代码库知识图谱和 AI 辅助代码探索;主要注意自行构建、配置文件写入,以及误运行 update 子命令会覆盖分支构建。

查看 FMRS 评分方法 →

Codebase Memory 是 DeusData/codebase-memory-mcp 的社区分支,由 win4r 维护。它使用纯 C 构建代码知识图谱,支持 158 种语言、结构化查询、调用链分析、影响范围检测、代码搜索和架构分析。该分支集成了增量重索引 CALLS 边修复、Cypher 查询修复、Swift 类型节点增强以及 explore 工具等改进。

工具能力

index_repository
将代码仓库索引到知识图谱,并启用后续自动同步。
list_projects
列出已索引项目及节点、边数量。
delete_project
删除项目及其全部图数据。
index_status
查询项目的索引状态。
search_graph
按标签、名称模式、文件模式和度数过滤器搜索图节点。
trace_path
使用 BFS 查询函数的调用者和被调用者,深度为 1 至 5。
detect_changes
将 Git 变更映射到受影响符号,并提供风险分类和调用者影响范围。
query_graph
执行只读的 Cypher-like 图查询。
get_graph_schema
返回节点、边、关系模式和属性定义。
get_code_snippet
按限定名称读取函数源代码。
get_architecture
返回语言、包、路由、热点、边界、层次、集群和 ADR 等架构信息。
search_code
在已索引项目文件中执行类似 grep 的文本搜索。
manage_adr
创建、读取、更新和删除架构决策记录。
ingest_traces
导入运行时追踪信息以验证 HTTP_CALLS 边。
explore
一次返回匹配符号的调用影响范围、附近邻居和按文件分组的行号源代码,并支持 query_graph/Cypher 逃生舱。

安装接入

该分支不提供预构建二进制,需要从源代码构建。运行 git clone https://github.com/win4r/codebase-memory-mcp-pro.git,进入目录后执行 ./scripts/build.sh;将 build/c/codebase-memory-mcp 复制到 PATH,再使用 claude mcp add codebase-memory -s user -- ~/.local/bin/codebase-memory-mcp 配置 Claude Code。也可以使用 stdio MCP 配置,将 command 指向二进制的绝对路径。首次构建会编译 158 个 tree-sitter 语法,可能需要几分钟。

claude_desktop_config.json
{"mcpServers":{"codebase-memory-mcp":{"command":"/path/to/codebase-memory-mcp","args":[]}}}

选型与风险

适合谁

  • 需要本地代码智能的 AI 编程代理。
  • 需要跨文件调用解析、架构分析或增量索引的开发团队。
  • 希望使用纯 C、stdio 和本地持久化存储的用户。

不适合谁

  • 需要内置大语言模型或云端代码分析服务的用户。
  • 不愿自行编译源代码或无法提供 C/C++ 编译环境的用户。
  • 需要 SSE 或 streamable-http 传输的客户端。

所需权限

  • 读取待索引的代码库和 Git 变更。
  • 在本地缓存目录写入 SQLite 图数据库和相关配置。
  • 安装或配置到支持的代码代理时,写入代理配置、指令文件、技能和钩子。
  • 管理 ADR 时写入架构决策记录。

风险与副作用

  • 工具会读取代码库,并可能写入代理配置文件。
  • 该分支不提供预构建二进制,构建过程会编译大量 vendored 语法。
  • 不要运行二进制的 update 子命令,因为它会拉取官方上游版本并覆盖此集成构建。
  • 删除项目或本地缓存会移除相应图数据;代码本身不会因此被删除。

常见排障

  1. 若 MCP 列表中没有服务器,检查配置文件中的 command 是否为二进制绝对路径,并重启客户端。
  2. 若 index_repository 失败,使用绝对 repo_path。
  3. 若 trace_path 没有结果,先用 search_graph 查找准确的限定名称。
  4. 若查询混入其他项目,使用 project 参数或先运行 list_projects。
  5. 若二进制找不到,将其所在目录加入 PATH。
  6. 若构建失败,检查 C/C++ 编译器、zlib、Git 和 macOS libgit2 环境。

使用场景

建立代码库结构和调用关系的知识图谱。
追踪函数调用链、分析变更影响范围和发现潜在死代码。
通过 Cypher-like 查询、结构化搜索或代码搜索探索大型代码库。
获取架构概览、源代码片段和跨服务 HTTP 关系。

支持客户端

Claude Code完整支持
Codex CLI完整支持
Gemini CLI完整支持
Zed完整支持
OpenCode完整支持
Antigravity完整支持
Aider部分支持
KiloCode完整支持
VS Code完整支持
OpenClaw完整支持
Kiro完整支持