关于 codebase-synapse
codebase-synapse 将代码库索引为本地知识图谱,为编码 Agent 提供搜索、依赖分析和架构信息。它通过 SQLite 存储索引,并提供代码历史分析及跨会话记忆工具。
主要功能
- 01语义、全文与混合代码搜索
- 02遍历调用图和依赖关系
- 03分析影响范围与架构边界
- 04检索 Git 历史与变更耦合
- 05提供持久及会话记忆工具
- 06通过 codebase-guard 阻止高影响文件写入
适用场景
- 01查找函数调用者与被调用者
- 02编辑文件前评估影响范围
- 03追踪文件历史和共同变更
- 04为 Agent 准备代码编辑上下文
MCP 相关
MCP 服务通过 stdio 向 MCP 客户端提供代码搜索、知识图谱、架构、Git 历史及记忆工具。索引需先通过独立 CLI 命令生成;服务器读取已构建的本地索引。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🧠 Codebase Synapse
让你的 AI Agent 深入理解整个代码库。
一个 MCP 服务,可将代码库索引为本地知识图谱,并提供 52 个 AI 工具——语义搜索、调用图遍历、Git 考古、影响范围分析等。
支持 Claude Code · Cursor · Windsurf · Zed · 任意 MCP 客户端
问题
AI 编码 Agent(Claude、Cursor 等)功能强大,但可用上下文有限。它们只能看到你打开或提供给它们的文件。询问调用链、架构模式或影响范围,它们往往只能猜测。
Codebase Synapse 解决了这个问题。它会将整个代码库索引为存储在 SQLite 中的本地知识图谱,让 AI Agent 基于结构分析给出可靠答案,而不是产生幻觉。
工作原理
graph LR
A["📁 Your Codebase"] -->|Tree-sitter| B["🧩 Parser"]
B -->|Symbols & Edges| C["🕸️ Knowledge Graph"]
C -->|SQLite| D["💾 Local DB"]
D -->|52 MCP Tools| E["🤖 AI Agent"]
style A fill:#1a1b26,stroke:#7aa2f7,color:#c0caf5
style B fill:#1a1b26,stroke:#bb9af7,color:#c0caf5
style C fill:#1a1b26,stroke:#9ece6a,color:#c0caf5
style D fill:#1a1b26,stroke:#e0af68,color:#c0caf5
style E fill:#1a1b26,stroke:#f7768e,color:#c0caf5
⚡ 快速开始
1. 为项目建立索引(CLI,Zoekt 风格)
codebase-synapse index /path/to/your/repo
索引通过独立的 CLI 命令运行,并写入 ~/.codebase-synapse/codebase.db。首次建立索引耗时较长;再次运行时只会重新索引有更改的文件。MCP 服务不会建立索引,只会读取预先构建的索引。
2. 启动 MCP 服务
npx codebase-synapse
就是这么简单。无需 Docker,无需设置数据库,也无需云服务。服务通过 stdio 启动,并向 MCP 客户端提供预先构建的索引。
配置客户端
Claude Code / Claude Desktop
添加到 claude_desktop_config.json 或 mcp_servers.json:
{
"mcpServers": {
"codebase-synapse": {
"command": "npx",
"args": ["-y", "codebase-synapse"]
}
}
}
Cursor
添加到 .cursor/mcp.json:
{
"mcpServers": {
"codebase-synapse": {
"command": "npx",
"args": ["-y", "codebase-synapse"]
}
}
}
其他 MCP 客户端
任何支持 stdio 传输的 MCP 客户端都能使用。只需将其指向:
npx -y codebase-synapse
✨ 功能
🔍 搜索与发现
| 工具 | 描述 |
|---|---|
semantic_search | 使用本地嵌入模型(all-MiniLM-L6-v2)进行向量相似度搜索 |
search_code | 对代码进行全文搜索(FTS5 + BM25 排序) |
search_symbol | 按名称或模式查找函数、类和类型 |
hybrid_search | 结合语义搜索与词法搜索,并使用 RRF 融合结果 |
find_similar | 使用 MinHash + LSH 查找结构相似的代码 |
find_symbol_everywhere | 在所有已索引项目中定位符号 |
🕸️ 知识图谱
| 工具 | 描述 |
|---|---|
get_callers / get_callees | 沿任一方向遍历调用图 |
get_imports / get_dependents | 追踪依赖链 |
impact_analysis | 编辑文件前计算影响范围 |
find_path | 查找两个符号之间的最短连接路径 |
find_dead_code | 检测不可达函数和未使用的导出项 |
get_pagerank | 找出架构中最关键的节点 |
query_graph | 对知识图谱运行类 Cypher 查询 |
🏗️ 架构
| 工具 | 描述 |
|---|---|
get_architecture | 完整的项目架构概览(语言、入口点、热点) |
get_file_structure | 带有符号注释的目录树 |
project_overview | 高层概览及关键指标 |
get_route_map | 提取 HTTP 路由及其处理程序映射 |
suggest_boundaries | 通过 Leiden 聚类检测模块边界 |
check_boundaries | 根据已定义的边界验证跨模块依赖 |
get_clusters | 检测代码库中的社区 |
🔬 Git 考古分析
| 工具 | 描述 |
|---|---|
git_archaeology | 深入分析文件历史(作者、变更频率、演变) |
get_hotspots | 复杂度 × 变更频率最高的文件 |
detect_change_coupling | 总是一起变更的文件 |
get_recent_semantic_changes | 近期具有语义意义的变更 |
index_git_history | 从 git log 构建时间分析 |
🧠 记忆与上下文
| 工具 | 描述 |
|---|---|
memory_store / memory_search / memory_list | 跨会话持久保存笔记、事实和决策 |
session_remember / session_recall | 会话内短期记忆 |
get_context | 为 AI Agent 准备预算内的上下文 |
get_edit_context | 为特定文件编辑准备聚焦的上下文 |
get_working_set | 最近访问和修改的文件 |
manage_adr | 架构决策记录管理 |
🛡️ 代码库防护
额外附送:codebase-guard 是 Claude Code 的一个 PreToolUse 钩子,会在 Agent 先运行 impact_analysis 之前,阻止其写入高影响力文件。
它使用知识图谱中的 PageRank 分数和影响范围数据来识别架构枢纽。再也不会意外修改核心文件。
🔧 技术详情
| 语言 | Rust(编译后的原生二进制文件) |
| 传输方式 | MCP stdio(JSON-RPC) |
| 存储 | SQLite(WAL 模式,无需配置) |
| 嵌入 | 通过 Candle 使用 all-MiniLM-L6-v2(离线、本地、延迟加载) |
| 解析 | Tree-sitter(10 种语言) |
| 分发 | npm,附带预编译二进制文件(Windows、macOS、Linux × x64、arm64) |
支持的语言
Rust · Python · TypeScript · JavaScript · Go · Java · C# · PHP · C · C++
架构
src/
├── parser/ # Tree-sitter parsing & entity extraction
├── graph/ # Knowledge graph, PageRank, Leiden clustering
├── indexer/ # Repository indexing pipeline
├── search/ # BM25 full-text + vector cosine + hybrid RRF
├── embedding/ # Candle-based local embeddings (feature-gated)
├── memory/ # Persistent & session memory stores
├── mcp/ # MCP protocol transport + 52 tool handlers
├── git/ # Git archaeology, intent classification, hotspots
├── context/ # Budgeted context preparation for AI
├── cypher/ # Nom-based Cypher parser → SQL CTE planner
├── similarity/ # MinHash + LSH structural similarity
├── semantic/ # Multi-signal scoring (tokens, directory, AST)
└── cli/ # Interactive TUI installer + artifact export/import
🤝 参与贡献
欢迎贡献!本项目使用标准的 Rust 工具链:
# Run tests
cargo test
# Lint
cargo clippy -- -D warnings
# Format
cargo fmt --all
📄 许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。