SocratiCode功能全景图:一文掌握15个MCP工具,从混合语义搜索到交互式依赖图谱
【免费下载链接】SocratiCodeEnterprise-grade (40m+ LOC) codebase intelligence, zero-setup, local & private Plugin/Skill/Extension or MCP: hybrid semantic search, polyglot dependency graphs, symbol-level impact analysis & call-flow, interactive HTML viewer, cross-project & branch-aware search, DB/API/infra knowledge. 61% less tokens, 84% fewer calls, 37x faster. Cloud in beta.项目地址: https://gitcode.com/gh_mirrors/so/SocratiCode
SocratiCode 是一款面向 AI 助手的开源本地代码库智能引擎,以零配置的 MCP(Model Context Protocol)服务器形式运行:它提供混合语义搜索、多语言依赖图谱、符号级影响分析(blast radius)与调用流追踪、交互式 HTML 依赖图谱,以及数据库/API/基础设施知识的可搜索索引。本文用一篇完整指南,带你掌握它的 15 个核心 MCP 工具。
💡 官方实测:在 VS Code 的 245 万行代码仓库上,相比基于 grep 的探索,SocratiCode 消耗少 61% 的上下文 token、少 84% 的工具调用,且速度快 37 倍(使用 Claude Opus 4.6 实测)。
什么是 SocratiCode:一句话定位
一句话:"你的 AI 会读代码,而 SocratiCode 让它真正理解代码。"
它的架构可以概括为三层:
| 层 | 能力 | 对应工具 |
|---|---|---|
| 📥 索引层 | 自动分块 + 本地嵌入,Docker 托管 Qdrant 与 Ollama,全程私有 | codebase_index/codebase_update |
| 🔍 检索层 | 稠密向量 + BM25 关键词的混合语义搜索(RRF 融合排序) | codebase_search |
| 🕸 图谱层 | 基于 AST(ast-grep)的多语言依赖图 + 符号级调用图 | codebase_graph_*/codebase_impact |
所有组件默认本地私有运行:无需 API Key,代码不离开你的机器;已在大企业级仓库(4000 万行+)上经过验证,索引支持断点续传、文件监听自动增量更新。
上手准备:3 行配置接入你的 AI 宿主
SocratiCode 要求 Node.js 18.17+ 和 Docker(托管本地 Qdrant + Ollama)。任何支持本地 stdio MCP 服务器的宿主(Claude Code、Cursor、Cline、Zed、Gemini CLI、VS Code 等)都可以直接接入,仓库内置了完整配置 mcp.json:
{ "mcpServers": { "socraticode": { "command": "npx", "args": ["-y", "--prefer-online", "socraticode@latest"] } } }各宿主的详细安装路径见官方快速指南:docs/guides/README.md,覆盖 Claude Code、Codex、VS Code、Cursor、Gemini CLI、Continue、Cline、Zed、OpenCode 九大宿主,另有纯本地索引指南、团队共享索引与跨仓库搜索等专题。
工具全景:15 个核心工具 + 11 个辅助工具一览
SocratiCode 共注册了26 个 MCP 工具(全部定义在 src/index.ts 中),按职责分为六大类。本文精讲其中15 个核心工具:
| # | 工具名 | 一句话功能 | 分类 |
|---|---|---|---|
| 1 | codebase_index | 后台全量索引项目,立即返回 | 📥 索引 |
| 2 | codebase_update | 只重索引变更文件的增量更新 | 📥 索引 |
| 3 | codebase_status | 查看索引进度、分块数、监听状态 | 📥 索引 |
| 4 | codebase_watch | 启动/停止文件监听,自动保鲜索引 | 📥 索引 |
| 5 | codebase_stop | 优雅停止索引(保留检查点,可续传) | 📥 索引 |
| 6 | codebase_remove | 彻底移除项目索引 | 📥 索引 |
| 7 | codebase_search | 混合语义搜索(RRF 融合排序) | 🔍 检索 |
| 8 | codebase_graph_build | 构建多语言依赖图谱 | 🕸 图谱 |
| 9 | codebase_graph_query | 查某文件的 import / 被依赖关系 | 🕸 图谱 |
| 10 | codebase_graph_stats | 图谱统计:连通度、孤儿文件、环数 | 🕸 图谱 |
| 11 | codebase_graph_circular | 一键找出循环依赖链 | 🕸 图谱 |
| 12 | codebase_graph_visualize | Mermaid 或交互式 HTML 图谱 | 🕸 图谱 |
| 13 | codebase_impact | 符号级"爆炸半径"影响分析 | 🧨 影响 |
| 14 | codebase_flow | 从入口点追踪执行调用流 | 🧨 影响 |
| 15 | codebase_symbol | 单个符号的 360° 全景视图 | 🧨 影响 |
其余 11 个辅助工具(codebase_symbols、codebase_graph_status、codebase_graph_remove、4 个codebase_context_*、codebase_health、codebase_list_projects、codebase_about、codebase_prune)会在下文分类小节中一并介绍。
索引六件套:从一键索引到自动保鲜
一键全量索引:codebase_index
首次使用时只需对 AI 说"Index this codebase"。codebase_index会在后台运行:自动拉起 Qdrant 与 Ollama 容器、下载本地嵌入模型、按 AST 感知的方式分块代码并向量化。调用立即返回,不阻塞对话(实现见 src/tools/index-tools.ts)。
⏱️ 参考速度:MacBook Pro M4 上首次索引 300 万行代码不到 10 分钟;索引中断也不怕——进度有检查点,重新调用即可从断点续传。
增量更新与状态查询
codebase_update:只处理变更文件,适合手动快照模式下随时刷新索引。codebase_status:返回分块数、索引进度百分比、上一次操作耗时、文件监听状态,是轮询进度 100% 的"仪表盘"(见 src/tools/query-tools.ts)。
文件监听:索引永不过期
codebase_watch(start / stop / status)监听项目目录的每一次文件变更并自动增量更新索引。默认模式下,服务器启动时还会自动恢复已索引项目的监听与增量补差——你通常什么都不用做。
安全阀:codebase_stop 与 codebase_remove
codebase_stop会在当前批次完成并写好检查点后停止,已完成的进度全部保留;codebase_remove则按"停监听 → 取消索引 → 等待图谱构建 → 删集合"的完整安全序卸载索引,避免删除时产生脏数据(实现细节见 src/tools/index-tools.ts)。
混合语义搜索:codebase_search 的深度检索
这是 SocratiCode 的招牌工具,也是"少 84% 工具调用"的核心来源。
原理:稠密向量(语义相似度)与 BM25(精确关键词)两路召回,用 RRF(Reciprocal Rank Fusion)融合排序——既找得到"语义相关"的代码,也不会漏掉"名字完全匹配"的符号。
核心参数:
| 参数 | 作用 |
|---|---|
query | 自然语言查询,如 "authentication middleware" |
limit/minScore | 结果数量(默认 10)与最低 RRF 分数过滤(默认 0.10) |
fileFilter/languageFilter | 按相对路径或语言(如python)过滤 |
includeLinked | ⭐ 跨项目搜索:同时检索.socraticode.json中链接的其他项目,结果带项目标签 |
实现位于 src/tools/query-tools.ts。配合"先搜索、后读文件"的 Agent 策略(插件已内置该技能,见 skills/codebase-exploration/SKILL.md),AI 可以用一次搜索替代几十次文件试探。
多语言依赖图谱:谁依赖谁一目了然
依赖图谱基于ast-grep 静态分析,覆盖 18 种语言,刻画文件级 import/require/export 关系(构建引擎在 src/services/code-graph.ts):
codebase_graph_build:后台构建依赖图,同样可轮询进度;codebase_index完成后也会自动触发构建,通常无需手动操作。codebase_graph_query:查询单个文件"import 了谁、被谁 import",双向列出,适合快速定位文件的上下游。codebase_graph_stats:总文件数、边数、平均依赖度、循环依赖链数量、Top 10 最连通文件、孤儿文件清单、语言分布——一张"代码结构体检表"。codebase_graph_circular:直接输出循环依赖链(A → B → C → A),重构前的排雷利器。
交互式 HTML 图谱:在浏览器里"把玩"依赖关系
codebase_graph_visualize是本文最出片的工具,支持两种模式:
mermaid(默认):返回按语言着色、高亮循环依赖的 Mermaid 文本图,可直接在聊天/编辑器中渲染;interactive:生成一个完全自包含、可离线打开的 HTML 页面(内置 Cytoscape.js + Dagre,见 src/services/graph-visualize-html.ts)并自动在浏览器中打开。
交互模式的能力清单:
- 🖱 点击节点 → 侧边栏显示 import/被依赖/符号列表
- 🎯 右键节点 → 高亮其爆炸半径(反向传递闭包)
- 🔁 顶部一键切换文件图 ↔ 符号级调用图
- 🔍 实时搜索过滤 + 六种布局(Dagre / 力导向 / 同心圆 / BFS / 网格 / 圆形)
- 📷 一键导出 PNG 分享
无头环境可设open: false仅取文件路径(逻辑见 src/tools/graph-tools.ts)。
符号级影响分析与调用流:重构前的"保险丝"
文件级图谱回答"谁 import 了谁",符号级图谱则深入函数/类——这 4 个工具是复杂重构的底气:
codebase_impact🧨:返回目标文件或符号的BLAST RADIUS——改动它,哪些文件、哪些函数可能坏掉。目标参数是多态的:传路径走文件模式,传符号名(如validateUser)走符号模式,可用depth控制回溯跳数(默认 3,最大 10)。重命名、删代码前必调。codebase_flow:从入口点正向追踪执行流——这段代码会调用到哪些下游?不带参数时自动发现入口点(孤儿出边、main()、框架路由、测试等,见 src/services/graph-entrypoints.ts),带参数则返回完整调用树。codebase_symbol:单个符号的 360° 视图——定义位置、类型、调用者、被调用者及置信度,动手修改前先"看懂"它。codebase_symbols(辅助):列出某文件的全部符号,或按名字跨项目搜索符号,是钻取单个符号前的"发现层"。
由于这些"难题"已被 SocratiCode 预计算,较小的模型也能完成原本需要顶级推理模型的架构级任务,进一步省下 token 成本(工具定义见 src/index.ts)。
上下文工件:把数据库 Schema、API 规范也变成可搜索知识
源码之外的项目知识同样重要。SocratiCode 支持通过.socraticodecontextartifacts.json声明上下文工件(数据库 Schema、API 规范、基础设施配置、架构文档),并配了 4 个专属工具(实现见 src/tools/context-tools.ts):
| 工具 | 用途 |
|---|---|
codebase_context_search | 语义搜索工件,如 "tables related to billing"、"authentication endpoints";首次使用自动索引、自动检测过期工件 |
codebase_context | 列出所有已声明工件及其索引状态 |
codebase_context_index | 手动(重)索引全部工件 |
codebase_context_remove | 移除项目的工件索引 |
从此 AI 不仅能读懂你的代码,还能理解你的数据库和 API。
诊断与管理:让运维也交给 AI
| 工具 | 场景 |
|---|---|
codebase_health | 一键体检:Docker、Qdrant 容器、Ollama、嵌入模型是否健康,排障首选 |
codebase_list_projects | 列出向量库中所有已索引项目 |
codebase_about | 让 AI 自己"复读"所有工具用途,新宿主接入后的快速自检 |
codebase_prune | 清点存储中的项目身份与资源;默认只报告,删除需精确身份 + 确认令牌 + 无远端写入者确认,多重保险 |
新手三步工作流:索引 → 搜索 → 分析
- 索引:对 AI 说 "Index this codebase",然后用 "What is the codebase index status?" 轮询到 100%(图谱随后自动构建)。
- 搜索:之后直接用自然语言提问——"数据库连接在哪里初始化?",让 AI 走搜索而不是逐个读文件。
- 分析:动代码前让它跑
codebase_impact看爆炸半径,或生成interactive图谱在浏览器里可视化检查。
文件监听默认开启,此后索引随代码自动保鲜,三步只需首次。
核心源码导读
想深入原理?按模块定位:
- MCP 服务器入口与全部 26 个工具注册:src/index.ts
- 索引生命周期(后台索引/增量/取消/监听):src/tools/index-tools.ts
- 混合搜索与状态查询:src/tools/query-tools.ts
- 依赖图谱、影响分析、可视化:src/tools/graph-tools.ts
- 图谱构建引擎(ast-grep、循环检测、统计):src/services/code-graph.ts
- 代码分块与向量化:src/services/chunk-split.ts、src/services/embeddings.ts
- 上下文工件索引:src/services/context-artifacts.ts
- 各宿主安装与进阶配置:docs/guides/README.md
总结
SocratiCode 的 26 个 MCP 工具围绕一条主线展开:先零配置建好本地索引与图谱,再让 AI 用混合语义搜索和符号级分析"看懂"你的代码。15 个核心工具各司其职——codebase_index一键启动、codebase_search混合检索、codebase_graph_visualize交互式图谱、codebase_impact重构保险丝、codebase_flow调用流追踪,辅以上下文工件把数据库和 API 知识一并纳入检索。对新手而言,记住"索引 → 搜索 → 分析"三步,再加上本地私有、断点续传、自动保鲜三大特性,就足以把它变成你 AI 编程工作流里的常驻基础设施。
【免费下载链接】SocratiCodeEnterprise-grade (40m+ LOC) codebase intelligence, zero-setup, local & private Plugin/Skill/Extension or MCP: hybrid semantic search, polyglot dependency graphs, symbol-level impact analysis & call-flow, interactive HTML viewer, cross-project & branch-aware search, DB/API/infra knowledge. 61% less tokens, 84% fewer calls, 37x faster. Cloud in beta.项目地址: https://gitcode.com/gh_mirrors/so/SocratiCode
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考