简介AI Agent概念层出不穷但我们需要接受变化今天看一个基于 MCP 协议的代码知识库服务端程序代码仓库地址git clonehttps://github.com/DeusData/codebase-memory-mcp.git它的作用主要是本地缓存不用每次重启 MCP 都重新扫描整个项目团队共享把压缩文件提交 Git队友下载后直接加载跳过十几分钟全量索引增量更新只对比代码变更增量刷新调用链图谱。原理1语法解析层Tree‑Sitter 语法树解析使用 Tree‑Sitter 对每一个源码文件进行 AST 语法解析提取实体类、接口、枚举、方法、字段、注解提取关系继承、实现、方法调用、导入依赖、跨文件引用输出结构化节点与关联边不再是纯文本字符串。区别于普通 RAG普通 RAG 只切文本块本项目拿到代码语法结构 调用拓扑可以做架构分析。2图谱构建层构建持久化代码知识图谱把 AST 解析出来的实体与关系存入本地轻量化图数据库节点Class、Method、Field、File、Package边extends、implements、calls、imports、dependsOn 支持增量更新Git diff 只重新索引被修改的文件大工程索引速度提升几十倍。3检索层混合图查询 向量语义检索结构查询图遍历查找 “谁调用了这个接口”“这个类有哪些子类”“DK 生成链路包含哪些方法”语义查询向量用本地 Embedding 把自然语言转换成代码片段语义模糊匹配同名 / 同功能函数 二者结合做到既懂语法结构又懂业务语义查询耗时做到亚毫秒级。4服务层MCP Server 协议对外输出能力程序编译为独立 Go 二进制作为MCPModel Context Protocol服务Claude Code / 其他 MCP 客户端通过标准协议调用工具对外暴露能力1索引当前代码库2查找函数定义3查找调用链4查找类继承关系5检索同业务逻辑代码AI 拿到查询结果后只读取少量目标源码不用把整个项目喂进上下文。特性普通文件 RAGcodebase-memory-mcp解析方式文本切块Tree-Sitter AST 语法解析数据结构纯文本向量库代码知识图谱 向量双引擎查询能力只能关键词 / 语义模糊搜索支持调用链、继承、依赖图遍历更新方式全量重新分片增量索引只处理 Git 变更文件运行形态Python 脚本独立 Go 二进制零依赖对接方式自定义 API标准 MCP 协议直接对接 Claude Code实践1下载codebase-memory-mcphttps://github.com/DeusData/codebase-memory-mcp/releases/tag/v0.8.1 下载codebase-memory-mcp-windows-amd64.zip在vscode里按下CtrlShiftP打开mcp.json配置文件添加下面的配置{ github.copilot.chat.mcp.enabled: true, chat.mcp.servers: [ { name: codebase-memory-mcp, type: stdio, command: E:\\project\\github\\codebase-memory-mcp-windows-amd64\\codebase-memory-mcp.exe, args: [] } ] }2构建AST代码索引输入Index this project即可构建项目 AST 代码索引3.codebase-memory目录.codebase-memory目录下有三个文件.gitattributes它是Git 合并规则配置把 graph.db.zst 标记为二进制文件Git 不做文本 diff 对比不会乱换行、乱拆分内容artifact.json快照版本描述文件graph.db.zst内部是 SQLite 代码调用图谱数据库包含所有类、方法、接口、上下游调用关系、AST 解析结果4加载时机MCP 进程启动时自动解压加载Copilot 查询代码链路直接读取这份内存数据库不再扫描文件代码变更后自动重新压缩写入快照。