mcpField
C
codebase-synapse

codebase-synapse

本地服务
github.com/iwiels开发工具213 周前更新

关于 codebase-synapse

codebase-synapse 将代码库索引为本地知识图谱,为编码 Agent 提供搜索、依赖分析和架构信息。它通过 SQLite 存储索引,并提供代码历史分析及跨会话记忆工具。

主要功能

  1. 01语义、全文与混合代码搜索
  2. 02遍历调用图和依赖关系
  3. 03分析影响范围与架构边界
  4. 04检索 Git 历史与变更耦合
  5. 05提供持久及会话记忆工具
  6. 06通过 codebase-guard 阻止高影响文件写入

适用场景

  1. 01查找函数调用者与被调用者
  2. 02编辑文件前评估影响范围
  3. 03追踪文件历史和共同变更
  4. 04为 Agent 准备代码编辑上下文

MCP 相关

MCP 服务通过 stdio 向 MCP 客户端提供代码搜索、知识图谱、架构、Git 历史及记忆工具。索引需先通过独立 CLI 命令生成;服务器读取已构建的本地索引。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"iwiels-codebase-synapse": {
"command": "npx",
"args": [
"-y",
"codebase-synapse"
]
}
}
}
启动命令npx -y codebase-synapse

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcodebase-synapse0.1.13

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🧠 Codebase Synapse

让你的 AI Agent 深入理解整个代码库。

一个 MCP 服务,可将代码库索引为本地知识图谱,并提供 52 个 AI 工具——语义搜索、调用图遍历、Git 考古、影响范围分析等。


Codebase Synapse — 知识图谱可视化

支持 Claude Code · Cursor · Windsurf · Zed · 任意 MCP 客户端

CI npm version License: Apache-2.0 MCP Registry


问题

AI 编码 Agent(Claude、Cursor 等)功能强大,但可用上下文有限。它们只能看到你打开或提供给它们的文件。询问调用链、架构模式或影响范围,它们往往只能猜测。

Codebase Synapse 解决了这个问题。它会将整个代码库索引为存储在 SQLite 中的本地知识图谱,让 AI Agent 基于结构分析给出可靠答案,而不是产生幻觉。

Codebase Synapse 演示 — 索引与影响分析
工作原理
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

📄 许可证

Apache-2.0

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。