codebase-memory-mcp
人天天都学到一点东西,而往往所学到的是发现昨日学到的是错的。——B.V
https://github.com/DeusData/codebase-memory-mcp
当代码库开始拥有记忆:我和 codebase-memory-mcp 的一次深聊
有些工具像扳手,拿来就用;有些工具像地图,帮你认路;还有些工具更像一个沉默但极其可靠的老搭档——你刚开口,它已经知道该去哪里翻档案、哪里找关系、哪里把整片代码森林的脉络拎出来给你看。
codebase-memory-mcp 就是这种角色。
它不是一个爱喧哗的项目,反而像一位训练有素的代码档案管理员,站在你的仓库门口,手里拿着放大镜、关系图谱和秒表,对你说:
“把代码交给我,我来记住它。”
而且它记得非常快,快得有点不像话。
这个项目来自 DeusData/codebase-memory-mcp,仓库的描述一句话就把气质定住了:
High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.
如果把这句话翻译成人话,大概就是:
它是一个面向 AI 编程代理的高性能代码智能 MCP Server,能把代码库索引成持久化知识图谱;普通仓库平均毫秒级建索引;支持 158 种语言;查询速度能到亚毫秒级;相比一页页翻文件,能大幅减少 token 消耗;而且它还是一个单静态二进制、零依赖的选手。
听上去像一台冷静的机器,但越往下看,你越会发现,这更像一颗给代码世界装上的“长期记忆中枢”。
它到底在做什么
很多时候,我们和大模型一起读代码,像在黑夜里拿手电逛仓库。
这个文件照一下,那个函数翻一下,grep 一轮,read 一轮,再顺着调用链问一圈。看似很努力,实际上大量时间和 token 都花在“找路”上,而不是“理解”上。
codebase-memory-mcp 干的事情,就是把这种低效的摸黑巡逻,升级成一套有结构、有关系、有上下文的知识图谱探索。
它会:
- 用 tree-sitter 对代码做 AST 级结构分析
- 把函数、类、方法、接口、模块、路由、资源这些实体抽出来
- 识别调用关系、导入关系、继承关系、实现关系、HTTP 调用、异步调用、事件通道等边
- 将结果存入持久化的图存储里
- 再通过 MCP 工具,把这些“结构化理解能力”直接交给 AI 编程代理使用
于是,原本模型要靠“翻文件猜逻辑”做的事,现在可以变成:
- 查结构
- 走路径
- 看架构
- 算影响面
- 找死代码
- 做跨服务关联
- 跑类 Cypher 查询
换句话说,这不是在帮模型“看代码”,而是在帮模型“理解代码是怎么组织起来的”。
它不像一个普通索引器,更像一个记忆宫殿的管理员:每一间房是谁,每一扇门通向哪,谁和谁有来往,哪条走廊最热闹,哪块区域已经荒废,它都知道。
它为什么让人眼前一亮
这个项目最迷人的地方,不只是快,而是它把“快”做成了一整套工程哲学。
README 里一开场就把锋芒亮出来了:
- 平均仓库可在毫秒级完成完整索引
- Linux kernel 这种 2800 万行、7.5 万文件级别的仓库,完整索引只要 3 分钟
- 结构查询响应可以低于 1 毫秒
- 五次结构化查询大约消耗 3400 tokens,对比逐文件搜索大约 412000 tokens,减少约 99.2%
这不是简单的“跑得快”,而是一种对 AI 编程工作流极其友好的速度设计。
因为对 agent 来说,慢并不只是慢,慢意味着:
- 上下文断裂
- 工具调用变多
- 探索路径变长
- token 成本失控
- 决策延迟增加
而 codebase-memory-mcp 试图解决的是整条链路的问题。
它的 README 里提到几个很关键的工程点:
- RAM-first pipeline
- LZ4 compression
- in-memory SQLite
- fused Aho-Corasick pattern matching
- 索引完成后释放内存
- 单静态二进制
- 零运行时依赖
看到这里,你会感觉这项目的性格非常鲜明:不爱铺摊子,不靠复杂基础设施撑场面,而是把力气全部灌进“单机也要把事情做漂亮”这件事上。
它像一个轻装上阵但极擅奔袭的侦察兵,背包不大,速度惊人,落地就能开工。
一个真正懂 AI 编程代理的 MCP Server
现在越来越多工具都在讲 MCP,但很多项目只是“兼容 MCP”,codebase-memory-mcp 更像是“为 AI coding agents 而生”。
README 直接说它是:
The fastest and most efficient code intelligence engine for AI coding agents.
这句话背后很重要的一层含义是:它不是单纯想做一个本地代码分析器,而是想成为 Agent 的结构化大脑外挂。
它能自动检测并配置多个 agent,包括:
- Claude Code
- Codex CLI
- Gemini CLI
- Zed
- OpenCode
- Antigravity
- Aider
- KiloCode
- VS Code
- OpenClaw
- Kiro
也就是说,它不是只偏爱某一个生态,而是努力把自己变成“通用型代码记忆中枢”。
安装后,它会自动配置 MCP server entries、instruction files、skills 和 hooks。这个细节很妙,因为它不是只把一个二进制丢给你,然后说“你自己研究怎么接”。它更像一个主动型管家,边推门进屋边卷起袖子说:
“我顺手把你家各个房间的灯也都接好了。”
这种体验对真实工作流非常重要。很多时候,工具好不好,不只是能力强不强,而是它愿不愿意把接线的脏活累活替你做掉。
它的记忆,不是缓存,而是知识图谱
“记忆”这两个字,在代码工具语境里很容易被说轻了。
有的所谓记忆,其实只是把一些摘要缓存起来;有的所谓理解,其实只是做一层关键词索引;有的所谓智能,不过是下次再把文件读一遍。
但 codebase-memory-mcp 的“memory”不是这个意思。
它把代码库索引成 persistent knowledge graph。
这就意味着,它记住的不是一堆零散文本,而是结构化实体和关系网络。比如:
- 哪些函数定义在哪里
- 哪些方法被谁调用
- 哪些模块依赖哪些模块
- 哪些路由和哪些调用点有关
- 哪些资源在 Kubernetes、Dockerfile、Kustomize 配置里彼此呼应
- 哪些代码跨 repo 构成了调用或语义联系
当记忆以图谱的形式存在时,AI 不再是“重新阅读”,而是在“检索关系”。
这两者差别极大。
重新阅读像每次都从图书馆门口开始找书;图谱检索则像图书管理员已经帮你标好目录、书架、借阅关系和参考链路,你问一句,它直接把线索串成一条路递给你。
这就是为什么它的很多能力看起来会非常顺手。
它会的,不只是搜索
如果只是搜索,世界上已经有太多工具了。
grep 能搜,ripgrep 能搜,编辑器能搜,代码搜索平台也能搜。
codebase-memory-mcp 有意思的地方在于,它把搜索提升成了“带结构和语义的探索”。
README 里列出的 MCP Tools 非常完整,主要包括:
索引类
index_repositorylist_projectsdelete_projectindex_status
查询类
search_graphtrace_pathdetect_changesquery_graphget_graph_schemaget_code_snippetget_architecturesearch_codemanage_adringest_traces
这些工具名字一摆出来,就能看出这个项目的世界观:
它不是只想回答“这个字符串在哪”,它想回答的是:
- 这个函数被谁调用
- 这个改动会波及哪些符号
- 这个仓库整体架构长什么样
- 这个模块属于哪个边界
- 有没有死代码
- 多个服务之间的 HTTP 路由和调用点怎么对应
- 这个架构决策在过去是怎么记录的
这就很像从“找词典”升级成“找顾问”。
我最喜欢的几项能力
1. 架构总览像一位熟门熟路的导游
get_architecture 这个能力非常打动人。
它不是只告诉你“这是个 TypeScript 项目”这么浅的东西,而是会返回:
- languages
- packages
- entry points
- routes
- hotspots
- boundaries
- layers
- clusters
- ADR
这几乎是在主动帮你搭建脑内地图。
当你接手一个陌生项目时,最痛苦的不是不会写代码,而是不知道先看哪里。get_architecture 像一个一上来就递给你全景图的导游,边展开地图边说:
“这里是入口,这里是高频热点,这里是边界,这里是层次,这里是聚类结果。你先别慌,城市我带你逛。”
这对于 AI agent 更是如虎添翼。因为 agent 最怕的往往不是某一行代码,而是失去全局结构感。
2. trace_path 像一个擅长追踪血缘关系的侦探
trace_path 用于做 BFS 路径遍历,查看谁调用某个函数,以及它又调用了谁。
这个能力特别像侦探追线索。
你抛出一个函数名,它就会沿着调用链一路摸过去,查它的上游、下游、双向关系,把一段代码的“社交网络”翻出来给你看。
比如 README 里的互动示例就很直观:
1 | You: "what calls ProcessOrder?" |
这段例子特别能说明它的定位:它不负责“替你说人话”,而是负责把结构化真相递给能够说人话的 agent。
这是一种非常克制、也非常高效的分工。
3. detect_changes 像一个改动影响面预警员
改一个函数最怕什么?
最怕你以为只是拧了一颗螺丝,结果整栋楼都跟着晃。
detect_changes 的价值,就在于把 git diff 映射到受影响符号和 blast radius,还带 risk classification。
它像一个经验丰富的变更评审员,在你准备提交前提醒你:
“别光看你改了哪几行,要看这几行牵动了哪些调用链、哪些边界、哪些依赖。”
这对多人协作、复杂服务、以及 agent 自动修改代码的场景都很重要。
4. dead code detection 像仓库里的清道夫
死代码是仓库里最安静、也最顽固的一类存在。
它不报错,不吵闹,不主动占你时间,但会一点点让项目变得浑浊、沉重、难以维护。
codebase-memory-mcp 可以找出零调用者的函数,并排除入口点。
这就像给仓库配了个很有洁癖的清道夫,它提着灯在各个角落巡逻,发现一段长期无人问津的代码,就轻轻拍你肩膀:
“这个家伙,已经很久没人找过它了。”
5. query_graph 像给工程师发了一把图数据库钥匙
README 里给了一个类 Cypher 的查询示例:
1 | MATCH (f:Function)-[:CALLS]->(g) WHERE f.name = 'main' RETURN g.name |
这类能力的迷人之处在于,你不是被固定按钮牵着走,而是能直接向图谱发问。
你可以把它理解成:
这个工具不只是给你地图,它还把地图编辑语言也给你了。
对于高级用户或复杂分析场景,这种可编排性非常值钱。
它不仅懂代码,还懂基础设施
很多代码理解工具一碰到基础设施文件就开始发愣,仿佛它们眼里只有 .ts、.py、.go,至于 Dockerfile、Kubernetes manifests、Kustomize overlays,统统被放进“杂物间”。
但 codebase-memory-mcp 没这么做。
README 明确写到,它支持 Infrastructure-as-code indexing,会把这些基础设施文件也索引成图节点,并建立交叉引用:
- Dockerfiles
- Kubernetes manifests
- Kustomize overlays
它还会把 K8s kinds 表示为 Resource 节点,把模块等结构实体纳入整体图谱。
这就意味着,在它眼里,代码不是孤岛,基础设施也不是背景板。它看到的是“系统”,而不是“文件夹”。
这很难得。
因为现代软件从来都不只是源码本身,路由、部署、镜像、服务拓扑、运行边界,这些都属于理解系统的一部分。能把这些一起纳入图谱,说明这个项目的视角是面向真实工程现场的,而不是只停留在语法树表层。
它甚至考虑了跨服务、跨仓库的关系
如果说很多工具擅长理解“一个仓库里的世界”,那 codebase-memory-mcp 还想去理解“多个仓库之间的宇宙”。
它支持:
- HTTP route ↔ call-site matching
- gRPC、GraphQL、tRPC 服务检测
EMITS/LISTENS_ON通道检测CROSS_*边连接多个仓库中的节点- Cross-repo architecture summary
- Multi-galaxy 3D UI layout
光看这些词,就能感觉这个项目的野心不小。
特别是那个 Multi-galaxy 3D UI layout,很有画面感。仿佛每个仓库是一颗星球,而跨仓库依赖就是引力和航线。你不再只是看一堆目录树,而是在看一个会呼吸的系统星图。
这不是传统代码阅读器的思路,这是在试图给复杂软件系统打造“空间感”。
Hybrid LSP 是它最硬核的那一面
如果说 tree-sitter 给了它骨架,那 Hybrid LSP 就给了它神经系统。
README 花了相当大篇幅介绍这个能力,而且读起来能明显感觉到,这是项目的技术王牌之一。
tree-sitter 本身擅长语法结构提取,但它并不能天然理解很多更深层的语义解析,比如:
- 某个链式调用实际落到哪个类型的方法上
- 某个属性访问到底解析到哪一层定义
- 某个 import 或 re-export 最终指向哪里
- 泛型、继承、trait、接口满足关系如何联动
于是 codebase-memory-mcp 做了一个 lightweight C implementation of language type-resolution algorithms,在 tree-sitter 之上再跑一层类型感知解析。
支持的语言包括:
- Python
- TypeScript / JavaScript / JSX / TSX
- PHP
- C#
- Go
- C / C++
- Java
- Kotlin
- Rust
README 对每种语言还列了各自处理的语义特性,比如:
- Python 的 dataclasses、Self、generics、Pydantic、SQLAlchemy Mapped[T]
- TS/JS 的 generics、JSX component dispatch、
.d.ts、module re-exports - Go 的 embedded structs、interface satisfaction、package-aware import resolution
- Java 的 imports、class hierarchies、overload matching
- Rust 的
usedeclarations、trait methods、derive-macro method synthesis
这说明它不是满足于“我大概知道这里有个函数调用”,而是想逼近“我知道这个调用真正落在谁身上”。
对于做 call graph、trace path、影响分析来说,这个精度提升是关键中的关键。
它像一个原本会看地图的人,后来又去学会了辨认地势、风向和水流。于是它不只知道“路在哪”,还知道“路为什么通向这里”。
158 种语言支持背后的气质
现在很多项目喜欢在首页打一个惊人的语言支持数,但真正读下去,经常发现只是“能 parse 一点点”。
codebase-memory-mcp 的 README 在这件事上相对诚实,它不仅说支持 158 种语言,还给出了分层表现:
- Excellent
- Good
- Functional
比如:
- Excellent 包括 Lua、Kotlin、C++、Perl、Objective-C、Groovy、C、Bash、Zig、Swift、CSS、YAML、TOML、HTML、SCSS、HCL、Dockerfile
- Good 包括 Python、TypeScript、TSX、Go、Rust、Java、R、Dart、JavaScript、Erlang、Elixir、Scala、Ruby、PHP、C#、SQL
- Functional 包括 OCaml、Haskell
这类呈现方式挺加分,因为它不是只想把数字挂出来,而是愿意告诉你哪些语言成熟、哪些语言还在继续打磨。
这是一种技术上不浮夸的姿态。
图形化界面这件事,它也没有落下
有些项目一提“图谱”,最后只有命令行输出。你知道它脑子里可能有一张网,但你看不见那张网。
codebase-memory-mcp 提供了内置的 3D Graph Visualization UI,可以跑在 localhost:9749。
启动方式也很直接:
1 | codebase-memory-mcp --ui=true --port=9749 |
然后在浏览器打开:
1 | http://localhost:9749 |
这部分特别像给本来擅长思考的工具,又配了一张会发光的脸。
当你能在 UI 里直接探索知识图谱时,很多架构关系会比文字和 JSON 更容易被感知。特别是跨模块、跨服务、跨仓库的场景,图形界面会把“关系密度”呈现得非常直观。
这也是为什么 README 会专门强调它的图可视化能力,因为对于很多复杂代码库来说,看见连接本身,就是理解的一部分。
快速启动非常顺手
这个项目的上手体验是我很喜欢的一类:不跟你绕圈,先让你跑起来。
macOS / Linux 一行安装
1 | curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash |
如果你想带上图形化 UI:
1 | curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash -s -- --ui |
Windows PowerShell 安装
1 | Invoke-WebRequest -Uri https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.ps1 -OutFile install.ps1 |
可选项也很实用:
--ui用于图形可视化--skip-config只装二进制,不做 agent 配置--dir=<path>自定义安装路径
装好之后,README 给出的动作非常简单:
Restart your coding agent. Say “Index this project” — done.
这句很有力量。
没有长篇大论的配置教学,没有先填一堆环境变量,没有先搭半天运行时。它的态度很像:
“你先把我叫进来,我马上开始干活。”
命令行模式也很能打
除了作为 MCP server 使用,它的每个 MCP 工具几乎都可以直接通过 CLI 调用。
例如:
1 | codebase-memory-mcp cli index_repository '{"repo_path": "/path/to/repo"}' |
这一段看着就很爽。
因为它意味着这个项目不是把自己锁死在某个单一交互方式里,而是同时兼顾:
- Agent 工作流
- 命令行探索
- 本地自动化脚本
- 图形可视化
它的形态非常完整。
你可以把它当一个 MCP server,也可以把它当一个代码图谱命令行引擎。它像一个性格成熟的工具,不挑场合,不挑搭档,能安静融进不同工作流里。
自动索引与持续更新,让记忆不会过期
“有记忆”这件事最怕什么?
最怕记错,或者记得太旧。
codebase-memory-mcp 很注意这件事。它支持 Auto-Index,可以在 MCP session 启动时自动索引:
1 | codebase-memory-mcp config set auto_index true |
启用后:
- 新项目首次连接时会自动索引
- 之前已经索引过的项目,会被注册到后台 watcher 中
- watcher 会做 git-based change detection
- 检测到文件变化后自动重新索引
这就意味着它的记忆不是一份僵死快照,而是带有自我更新能力的长期档案。
它像一个认真到近乎强迫症的书记员:你刚把仓库改动了一下,它就立刻记到本子上,生怕自己手里的那份系统画像落后现实半步。
更新版本也有专门命令:
1 | codebase-memory-mcp update |
卸载则是:
1 | codebase-memory-mcp uninstall |
而且 README 还明确说明,卸载会移除 agent configs、skills、hooks 和 instructions,但不会删掉 binary 和 SQLite databases。这个边界感也挺清晰。
团队共享图谱制品这个设计很聪明
我觉得 README 里一个很值得多聊的点,是 Team-Shared Graph Artifact。
它允许把 .codebase-memory/graph.db.zst 这种压缩后的知识图谱快照直接放进仓库。这样一来:
- 你索引过一次
- 生成图谱制品
- 团队成员拉代码时拿到这份图谱
- 如果本地没有数据库,
index_repository会先导入 artifact,再做增量索引 - 从而避免每个人都从零开始全量重建
这个设计真的很妙。
它不只是解决“我自己快不快”的问题,还开始思考“团队整体重复劳动怎么减少”。
而且 README 里还提到:
- 这是 SQLite 数据库,strip indexes 后再
VACUUM INTO压缩 - 使用 zstd 1.5.7 压缩
- 有 Best 和 Fast 两档导出策略
- 首次导出会自动创建
.gitattributes的merge=ours,避免二进制 artifact 合并冲突 - 如果不想提交,也可以把
.codebase-memory/加进.gitignore
这一整套设计说明,它并不是只做了一个技术功能,而是认真考虑了“落到团队协作里会发生什么”。
这是一种非常工程化、非常务实的成熟度。
它没有内置 LLM,这反而是个优点
README 里有一段我很认同:它明确说自己是 structural analysis backend,does not include an LLM。
这点很重要。
因为有些工具喜欢把所有东西都包进去,最后变成:
- 你还得配置 API key
- 你还得操心模型版本
- 你还得承担额外成本
- 你还得面对更多不确定性
而 codebase-memory-mcp 的思路是:
我专注把结构分析、图谱构建、路径查询、架构总结这些基础能力做到极致;自然语言交互和解释层,交给你的 MCP client 和上层 agent。
这是一种很干净的职责分离。
它像一个不抢话的高参。你问问题时,开口解释的是 agent,但真正把证据、关系、线索、结构准备好的人,是它。
性能数据让它不是“感觉很快”,而是“确实很快”
性能宣传很多项目都会写,但 codebase-memory-mcp 给人的感觉是,它不只想说“很快”,它想把快具体到足够可感知。
README 列了 Apple M3 Pro 上的一组 benchmark:
| Operation | Time | Notes |
|---|---|---|
| Linux kernel full index | 3 min | 28M LOC, 75K files → 4.81M nodes, 7.72M edges |
| Linux kernel fast index | 1m 12s | 1.88M nodes |
| Django full index | ~6s | 49K nodes, 196K edges |
| Cypher query | <1ms | Relationship traversal |
| Name search (regex) | <10ms | SQL LIKE pre-filtering |
| Dead code detection | ~150ms | Full graph scan with degree filtering |
| Trace call path (depth=5) | <10ms | BFS traversal |
这一组数字很有说服力,因为它覆盖了:
- 大仓库索引
- 普通项目索引
- 查询延迟
- 图遍历
- 死代码分析
不是单点快,而是从建图到检索到分析整条链路都快。
安装方式覆盖得很全
README 在分发层面也做得很彻底。
除了直接下载预编译二进制,它还支持:
- npm
- PyPI
- Homebrew
- Scoop
- Winget
- Chocolatey
- AUR
go install
例如 npm:
1 | npm install -g codebase-memory-mcp |
例如 Python:
1 | pip install codebase-memory-mcp |
例如 AUR:
1 | yay -S codebase-memory-mcp-bin |
1 | paru -S codebase-memory-mcp-bin |
从这里也能看出,它确实在努力做“即插即用”,而不是只照顾某一小撮用户。
配置也很朴素,不爱折腾人
工具强大归强大,如果配置过于拧巴,用户热情往往会被磨掉一半。
codebase-memory-mcp 在配置上总体是“能不打扰你就不打扰你”的风格。
比如几个常见命令:
1 | codebase-memory-mcp config list |
环境变量也都很实用:
CBM_CACHE_DIRCBM_DIAGNOSTICSCBM_DOWNLOAD_URLCBM_LOG_LEVELCBM_WORKERS
举个最常见的例子,修改缓存目录:
1 | export CBM_CACHE_DIR=~/my-projects/cbm-data |
它没有搞出一堆复杂抽象,就是老老实实把用户真正需要控制的东西交出来。
持久化让它真的像“记住了”
这个项目把 SQLite 数据库存到 ~/.cache/codebase-memory-mcp/,并明确说明:
- 持久化跨重启保留
- 使用 WAL mode
- ACID-safe
如果要重置:
1 | rm -rf ~/.cache/codebase-memory-mcp/ |
这部分虽然不花哨,但很关键。
因为“代码记忆”如果不能持久化,就很容易退化成“每次重新认识你”。那样的记忆不叫记忆,只能叫短时印象。
而 SQLite 作为底层存储,也恰好符合这个项目整体气质:稳定、朴素、轻量、可落地。
连排障都带着一种干脆利落的性格
README 的 Troubleshooting 也延续了它一贯的务实风格,比如:
/mcp看不到 server,就检查.mcp.json路径是否绝对、重启 agentindex_repository失败,就传绝对路径trace_path没结果,就先用search_graph找精确名称- 查询跑到错误项目,就加
project参数 - binary 不在 PATH,就把
$HOME/.local/bin加进去 - UI 不加载,就确认下载的是
ui版本并检查http://localhost:9749
这些建议都不是那种空泛的“请检查配置”,而是比较直接、可执行、偏工程实践的回答。
你会感觉这个项目作者是亲手踩过坑,也认真想过用户会先摔在哪。
安全这一页也写得很有分量
作为一个会读取代码库、并写入 agent 配置文件的工具,安全说明非常重要。
README 在前面就把这件事说得很坦率:
这个工具会读取你的代码库,也会写你的 agent 配置文件,这正是它被设计来做的事情;如果你想先审计,再运行,完整源码就在仓库里。
这种态度我觉得很好,直白、负责,不玩文字游戏。
同时它还列出了多层安全措施:
- VirusTotal 扫描
- SLSA Level 3 构建溯源
- Sigstore cosign 无密钥签名
- 每个 release 都带 SHA-256 checksums
- CodeQL SAST
- 零运行时依赖
对一个走二进制分发、又要接入开发工作流的工具来说,这些说明是非常必要的。
这个项目最有魅力的地方,是它很懂“程序员真正烦什么”
真正让人共鸣的项目,往往不是因为功能堆得多,而是因为它精准击中了工作中的疲惫感。
codebase-memory-mcp 击中的那些点包括:
- 我不想一遍遍重复读相同的代码
- 我不想为了找调用链把文件翻烂
- 我不想让 agent 把大量 token 浪费在低效探索上
- 我不想在陌生仓库里像迷路一样乱撞
- 我不想在多服务、多仓库、多基础设施文件里失去整体感
- 我不想每次换工具都重新配半天环境
- 我不想只是“看到文件”,我想“理解系统”
它像一个很会察言观色的搭档,不等你把抱怨说完整,就已经把你最烦的那几件事一一接过去了。
如果你想快速感受它,可以这样开始
如果你是 macOS 或 Linux 用户,可以直接:
1 | curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash |
如果你想带图形界面:
1 | curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash -s -- --ui |
装完后重启你的 coding agent,然后对它说:
1 | Index this project |
如果你喜欢命令行直操,也可以试试:
1 | codebase-memory-mcp cli index_repository '{"repo_path": "/path/to/repo"}' |
如果你想看图:
1 | codebase-memory-mcp --ui=true --port=9749 |
然后打开浏览器访问:
1 | http://localhost:9749 |
这套路径非常适合那种“我先跑起来再说”的开发者心态。
最后聊聊我对它的整体印象
codebase-memory-mcp 是一个很少见的项目:它既有底层工程硬度,也有面向 AI 工作流的产品感。
它不只是一个快工具,不只是一个代码索引器,不只是一个 MCP server,也不只是一个图谱引擎。
它更像是给代码库装上了一个长期、结构化、可查询、可共享、可演化的记忆系统。
代码本来是沉默的,文件夹也不会主动告诉你自己和谁有关系;函数之间的调用、模块之间的边界、服务之间的路径、变更背后的影响,通常都藏在大量细节里,等人一点一点去捞。
而 codebase-memory-mcp 做的事情,就是让这些本来沉默的关系开始开口说话。
它像一个仓库里的老馆长,平时不喧哗,手上却握着最完整的目录、最清楚的楼层图、最敏锐的变更嗅觉和最快的检索速度。你一问,它就抬头,推推眼镜,把那条你最需要的线索递到你面前。
如果你正在寻找一个真正能帮助 AI 编程代理理解代码库结构、减少探索成本、提升分析效率的 MCP 项目,那这个仓库值得认真看一遍。
它不是在替你写代码。
它是在替你记住代码。
