惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
SecWiki News
SecWiki News
T
Troy Hunt's Blog
Y
Y Combinator Blog
V
V2EX
美团技术团队
Last Week in AI
Last Week in AI
S
Security @ Cisco Blogs
IT之家
IT之家
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
AI
AI
罗磊的独立博客
人人都是产品经理
人人都是产品经理
H
Hacker News: Front Page
N
News and Events Feed by Topic
P
Privacy International News Feed
V2EX - 技术
V2EX - 技术
Recent Commits to openclaw:main
Recent Commits to openclaw:main
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
GbyAI
GbyAI
L
LINUX DO - 热门话题
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Azure Blog
Microsoft Azure Blog
Martin Fowler
Martin Fowler
月光博客
月光博客
WordPress大学
WordPress大学
Latest news
Latest news
Google DeepMind News
Google DeepMind News
S
Schneier on Security
N
Netflix TechBlog - Medium
腾讯CDC
T
Tailwind CSS Blog
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
L
LINUX DO - 最新话题
Project Zero
Project Zero
Cyberwarzone
Cyberwarzone
D
DataBreaches.Net
Webroot Blog
Webroot Blog
B
Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
H
Help Net Security
L
LangChain Blog
A
Arctic Wolf
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

微风静语

EchoCraft - 专为独立开发者和小型团队打造的产品官网主题 Halo 站长必备:外链安全与流量分析神器——“链接工具箱”重磅升级! Halo插件开发:java17旧项目迁移至java21项目记录 Halo插件|一个面向创作者的多功能媒体处理工具集 分布式事务详解:从入门到精通 让你的网站初步适配PWA Halo主题 - 微浸:以轻量构建美学,用细节定义体验 深入理解Python爬虫技术:原理、实现与实践 Halo-2.20 新特性:自定义登录页面模版 vue3 中父子组件数据传输踩坑 将你的服务运维面板从宝塔替换为1panel Python实战项目:外星人入侵(源码分享) theme-hao主题适配友链自助提交插件 plugin-artalk 插件保姆级使用教程 plugin-blog-hao 插件部分功能演示 halo 插件开发踩坑记录(一) Thymeleaf 模版引擎语法浅记 信息洪流中的自我救赎 mac 系统里如何管理多个jdk版本 memso API 不完全指南 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法 halo-theme-hao主题:artalk评论区美化 衡量个人成长 halo-theme-hao 主题魔改教程 分享一个魔改的 Artalk 评论系统邮件模版 halo-theme-hao 主题标签记录 开发一个 Halo2.0 的安全条跳转中台插件! Mac 软件推荐:使用 Mac 一年半来,我一直在用的软件! TypeScript教程---面向对象编程 软件版本命名规范 TypeScript教程---基础语法及编译设置 2024年家乡春季的第一场大雪 提问的智慧 基础篇:容器化部署技术 -—docker,从此摆脱多环境配置的苦恼! 普通本科的四年大学教育,给我带来了什么? 因果与平衡 程序的本质:代码是如何被执行的 软件开发者应该具备的基本提问素质 如何编写 Restful 风格的接口 探索力 Springboot入门基础篇 springboot中如何使用注解来实现aop Springboot项目生成接口文档方法 Java 实体代码生成器 lombok 的使用 深入 Java 泛型 分布式版本控制工具 git 的基本使用 如何搭建前后端分离的项目 初识Vue3--令人焕然一新的使用逻辑和代码组织方式! 浅谈前端发展史 为什么要学习数据结构和算法 关于富文本编辑器 wangeditor 在 vue2 项目中的使用
用 codebase-memory-mcp 给 AI 编程加一层“代码记忆”
webjing · 2026-06-30 · via 微风静语

最近我在用 Codex 做开发时,遇到一个很现实的问题:AI 每次理解项目,都要反复读文件、搜索代码、追调用链。项目一大,token 消耗很快,而且上下文一长,回答也更容易偏。

我的目标很简单:省 token,让 AI coding 更准确。

后来我开始尝试 DeusData/codebase-memory-mcp。它的思路不是让 AI 每次都从零读代码,而是先把项目索引成一个本地知识图谱。之后 AI 要找类、函数、调用关系、架构边界,就可以直接查图谱,而不是一遍遍 grep、读文件、猜上下文。

它解决什么问题

传统 AI 编码流程通常是:

  1. 搜索关键词
  2. 读取多个文件
  3. 猜测调用关系
  4. 再搜索更多文件
  5. 最后才开始改代码

这会消耗大量 token,而且很依赖模型是否刚好读到了关键文件。

codebase-memory-mcp 会把项目里的函数、类、调用关系、路由、配置、文件结构等信息抽取成图谱。AI 之后可以直接问:

  • 这个类在哪里定义?
  • 谁调用了这个函数?
  • 这个模块的架构是什么?
  • 改这个方法会影响哪些地方?
  • 项目有哪些入口点和热点函数?

这类结构化问题,用图谱查会比反复读文件更稳定。

官方介绍里提到,它支持多语言代码索引、结构化搜索、调用链追踪、架构概览和本地 3D 图谱可视化,并且所有处理都在本地完成,下边是我自己部署后对项目生成的知识图谱,看起来特别炫酷,同时支持筛选目录、文件、类、方法之间的关系图展示。

e1f4a80b5fb5ba834681d7694afcdf66.webp

安装

macOS / Linux 可以直接安装:

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash

如果需要图谱可视化 UI:

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash -s -- --ui

安装后确认命令是否可用:

codebase-memory-mcp --help

我本机的路径是:

/Users/webjing/.local/bin/codebase-memory-mcp

为指定项目生成知识图谱

核心命令是 index_repository

codebase-memory-mcp cli index_repository '{
  "repo_path": "/path/to/your/project",
  "mode": "fast",
  "name": "your-project-name"
}'

以我的 Halo 插件项目为例:

/Users/webjing/.local/bin/codebase-memory-mcp cli index_repository '{
  "repo_path": "/Users/webjing/code/halo-project/plugin-simple-reveal",
  "mode": "fast",
  "name": "plugin-simple-reveal"
}'

常用模式:

# 快速索引,适合日常使用
codebase-memory-mcp cli index_repository '{
  "repo_path": "/path/to/project",
  "mode": "fast",
  "name": "project-name"
}'

# 完整索引,适合需要更深入分析时使用
codebase-memory-mcp cli index_repository '{
  "repo_path": "/path/to/project",
  "mode": "full",
  "name": "project-name"
}'

验证索引结果

查看已索引项目:

codebase-memory-mcp cli list_projects '{}'

搜索图谱:

codebase-memory-mcp cli search_graph '{
  "project": "Users-webjing-code-halo-project-plugin-simple-reveal",
  "query": "SlideDeck",
  "limit": 10
}'

查看架构概览:

codebase-memory-mcp cli get_architecture '{
  "project": "Users-webjing-code-halo-project-plugin-simple-reveal",
  "aspects": ["all"]
}'

追踪调用链:

codebase-memory-mcp cli trace_path '{
  "project": "Users-webjing-code-halo-project-plugin-simple-reveal",
  "function_name": "update",
  "direction": "both",
  "depth": 3
}'

读取具体代码片段:

codebase-memory-mcp cli get_code_snippet '{
  "project": "Users-webjing-code-halo-project-plugin-simple-reveal",
  "qualified_name": "完整 qualified_name"
}'

在受限环境里写到项目内

有些环境不允许 MCP 写全局缓存目录。可以把缓存放到项目内:

mkdir -p .codebase-memory-local/home .codebase-memory-local/cache

HOME="$PWD/.codebase-memory-local/home" \
XDG_CACHE_HOME="$PWD/.codebase-memory-local/cache" \
codebase-memory-mcp cli index_repository '{
  "repo_path": "'$PWD'",
  "mode": "fast",
  "name": "project-name"
}'

之后查询也要带上相同环境变量:

HOME="$PWD/.codebase-memory-local/home" \
XDG_CACHE_HOME="$PWD/.codebase-memory-local/cache" \
codebase-memory-mcp cli list_projects '{}'

开启图谱 UI

如果安装的是 UI 版本,可以启动本地图谱界面:

codebase-memory-mcp --ui=true --port=9749

然后打开:

http://127.0.0.1:9749

配置自动索引

可以开启 MCP 会话启动时自动索引:

codebase-memory-mcp config set auto_index true

查看配置:

codebase-memory-mcp config list

我的使用感受

对 AI 编程来说,最贵的不是“写代码”,而是“理解项目”。

没有知识图谱时,AI 往往要不断搜索和读取文件。用了 codebase-memory-mcp 后,AI 可以先查结构,再决定读哪些文件。这样做有几个好处:

  1. token 消耗明显更可控
  2. 不容易漏掉关键调用关系
  3. 修改前能更快判断影响范围
  4. 对多模块项目、插件项目、前后端混合项目更友好
  5. 后续对同一个项目继续开发时,AI 不必每次从零开始理解

我的建议是:只要项目不是一个很小的 demo,都可以先跑一次索引。尤其是 Spring 项目、python项目、Vue 管理端这类前后端混合工程,图谱带来的收益很明显。

常用命令速查

# 生成图谱
codebase-memory-mcp cli index_repository '{
  "repo_path": "/path/to/project",
  "mode": "fast",
  "name": "project-name"
}'

# 查看项目
codebase-memory-mcp cli list_projects '{}'

# 搜索符号
codebase-memory-mcp cli search_graph '{
  "project": "project-name",
  "query": "keyword",
  "limit": 10
}'

# 架构概览
codebase-memory-mcp cli get_architecture '{
  "project": "project-name",
  "aspects": ["all"]
}'

# 调用链
codebase-memory-mcp cli trace_path '{
  "project": "project-name",
  "function_name": "functionName",
  "direction": "both",
  "depth": 3
}'

# 代码片段
codebase-memory-mcp cli get_code_snippet '{
  "project": "project-name",
  "qualified_name": "qualified.name"
}'

# 启动 UI
codebase-memory-mcp --ui=true --port=9749