codebase-memory-mcp
2026/6/26 2:24:05 网站建设 项目流程

简介

AI Agent概念层出不穷,但我们需要接受变化,今天看一个基于 MCP 协议的代码知识库服务端程序,代码仓库地址:git clonehttps://github.com/DeusData/codebase-memory-mcp.git

它的作用主要是:

  1. 本地缓存:不用每次重启 MCP 都重新扫描整个项目;

  2. 团队共享:把压缩文件提交 Git,队友下载后直接加载,跳过十几分钟全量索引;

  3. 增量更新:只对比代码变更,增量刷新调用链图谱。

原理

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 二进制,作为MCP(Model 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-mcp

https://github.com/DeusData/codebase-memory-mcp/releases/tag/v0.8.1 下载codebase-memory-mcp-windows-amd64.zip

在vscode里按下Ctrl+Shift+P打开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 查询代码链路,直接读取这份内存数据库,不再扫描文件;

  • 代码变更后自动重新压缩写入快照。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询