Regsorm/code-index-mcp · 上手攻略
- 仓库:Regsorm/code-index-mcp
- 链接:https://github.com/Regsorm/code-index-mcp
- 分类:agent
- 作者:Jay
- 更新:2026-08-28
是什么
code-index-mcp 是一个面向 AI Agent 的代码智能搜索 MCP 服务器。用 tree-sitter 把代码解析为 AST,把符号、调用关系、元数据存入 SQLite,让 Agent 用 32 个 MCP 工具对代码库进行精确导航——查询延迟约 10ms,全量索引 8.8 万文件耗时 6 分钟。
一句话概括:让 AI Agent 的代码搜索能力,等同于 IDE 的"转到定义/查找引用",而不是让模型自己去文件里大海捞针。
解决什么问题
没有代码索引时,LLM 回答"谁调用了这个函数"只能靠暴力 grep——读几十个文件、耗大量 token、返回结果碎片化。code-index-mcp 把这个过程反过来:离线建索引,在线精准查询。模型得到的是三个结果字符串,而不是三个文件。
典型问题场景:
- "这个函数被哪些地方调用?" → get_callers
- "这段代码在哪个模块、属于哪个类?" → find_symbol + get_file_summary
- "两个函数之间的最短调用链是什么?" → find_path
- 1C 配置里某个对象的完整权限链 → find_references + get_role_rights
核心架构
代码文件 (.java/.py/.js/...)
↓ tree-sitter AST 解析
SQLite 索引(符号表、调用图、元数据)
↓ MCP 协议 (~10ms 查询)
AI Agent(Claude Code / Cursor / VS Code / LibreChat)
技术栈:Rust(高性能二进制,39-41 MB 单文件)、tree-sitter(14 种语言 AST)、rusqlite(索引存储)、rayon(并行索引)、Rust MCP SDK。
快速安装
Windows(推荐 PowerShell 一键)
irm https://raw.githubusercontent.com/Regsorm/code-index-mcp/main/install.ps1 | iex
可选参数:-InstallDir(安装路径)、-Repo(仓库根目录)、-RegisterAutostart(开机自启)、-Flavor core(不含 1C 支持的更小体积)、-Port / -DaemonPort(自定义端口)。
手动下载:
$dst = 'C:\tools\code-index'
New-Item -ItemType Directory -Force $dst | Out-Null
$url = (Invoke-RestMethod https://api.github.com/repos/Regsorm/code-index-mcp/releases/latest).assets |
Where-Object name -eq 'bsl-indexer-windows-x64.zip' |
Select-Object -ExpandProperty browser_download_url
Invoke-WebRequest $url -OutFile "$env:TEMP\code-index.zip"
Expand-Archive "$env:TEMP\code-index.zip" -DestinationPath $dst -Force
setx CODE_INDEX_HOME $dst
⚠️ Windows 版文件名含
bsl-indexer(含 1C 支持,32 工具)或code-index(不含 1C,20 工具),按需选择。
Linux / macOS
从 Releases 页面 下载对应平台压缩包(*linux-x64.tar.gz / *macos-arm64.tar.gz),解压到目标目录并加入 PATH。
npm(跨平台,不含 1C)
npm install -g @regsorm/code-index-mcp
npx @regsorm/code-index-mcp serve --path /path/to/repo
也在 MCP Registry 注册为 io.github.Regsorm/code-index。
源码编译(需 Rust 1.77+)
git clone https://github.com/Regsorm/code-index-mcp.git
cd code-index-mcp
cargo build --release -p code-index # 无 1C(20 工具)
cargo build --release -p bsl-indexer --features enrichment # 含 1C(32 工具)
MCP 客户端配置
HTTP 守护进程模式(推荐,多会话复用)
在 Claude Code / Cursor 等的 MCP 配置文件(.mcp.json)中添加:
{
"mcpServers": {
"code-index": {
"type": "http",
"url": "http://127.0.0.1:8011/mcp"
}
}
}
然后在对应仓库目录启动守护进程:
code-index serve --path /path/to/repo1 # 仓库 1
code-index serve --path /path/to/repo2 # 仓库 2(同一进程,不同 alias)
stdio 单会话模式(无守护进程)
{
"mcpServers": {
"code-index": {
"command": "npx",
"args": ["-y", "@regsorm/code-index-mcp", "serve", "--path", "."]
}
}
}
核心用法(MCP 工具清单)
搜索与导航(通用)
| 工具 | 功能 |
|---|---|
search_function / search_class |
全文搜索函数或类 |
get_function / get_class |
精确名称 → 返回完整函数体/类定义 |
find_symbol |
任意类型符号搜索(函数/类/变量/import) |
get_imports |
模块或文件的 import 列表 |
get_file_summary |
文件地图(不读源码) |
调用图(通用)
| 工具 | 功能 |
|---|---|
get_callers |
查找调用某函数的所有上游 |
get_callees |
查找某函数调用的所有下游 |
find_path |
两函数间的最短调用链 |
get_call_tree |
向上或向下 N 层的调用树 |
文件内容(通用)
| 工具 | 功能 |
|---|---|
read_file |
按行范围读取文件(内容在索引中 zstd 压缩) |
list_files / stat_file |
文件列表(通配符)和元数据 |
grep_body |
在函数/类体内搜索子串或正则 |
grep_code / grep_text |
全文搜索代码文件或文本文件 |
search_text |
文本格式文件全文检索 |
get_stats / health |
索引和服务器状态 |
1C/BSL 专用(bsl-indexer 构建)
| 工具 | 功能 |
|---|---|
get_object_structure |
对象结构(属性/类型/表单/维度/预定义元素) |
get_object_profile |
对象完整护照(结构+表单+模块+关联) |
get_form_handlers |
表单事件处理器映射 |
get_event_subscriptions |
事件订阅(按源/事件过滤) |
get_data_links / find_data_path |
数据引用关系图 |
find_references |
影响地图(元数据引用+代码引用+角色权限) |
get_register_writers |
文档的寄存器记录器 |
find_path_bsl |
按 1C 导出图的调用链 |
search_terms |
按名称/同义词/注释的语义搜索 |
get_role_rights |
角色对对象的具体权限 |
bsl_sql |
直接 SQL 查询元数据和图 |
性能基准
⚠️ 以下数据来自 README,测试条件:Windows 机械硬盘,单机 August 2026。
| 代码库 | 文件数 | 全量索引 | 增量启动 |
|---|---|---|---|
| 1C:Управление Торговлей(贸易管理) | 57,072 | 2 分 41 秒 | 2.3 秒 |
| 1C:Бухгалтерия предприятия(企业会计) | 88,284 | 5 分 51 秒 | 5.3 秒 |
| PHP 网站 | 157,772 | 13 分 1 秒 | 8.0 秒 |
全量索引 88,284 文件的 5 分 51 秒分解:2 分 38 秒 tree-sitter 解析 + 1 分 58 秒 1C 元数据(metadata/forms/rights/call graph)+ 56 秒 SQLite flush。
增量更新(文件时间戳 + 大小变化):毫秒级,无全量重新解析。
查询延迟:HTTP 模式约 10ms,缓存命中亚毫秒。
典型适用场景
- Cursor / Claude Code / VS Code 增强:Agent 在大型代码库中精确跳转,而非暴力搜索
- 1C 企业系统二次开发:ERP 定制中的代码导航、权限分析、事件溯源
- 大型 monorepo 分析:跨语言调用链追踪(最高 157k 文件级)
- AI 代码审查:给 Agent 提供准确的函数调用上下文,减少幻觉
- CI/CD 变更影响分析:通过调用图快速评估某改动的下游影响
坑与注意
- 1C 两种导出格式均支持但需明确来源: Конфигуратор 的 XML 导出和 1C:EDT 的 .mdo 格式解析逻辑不同,混用可能导致元数据不完整。
- 增量索引只看时间戳和大小:不比对内容 Hash,适合单次编辑后快速更新;大量并发改动的场景建议定期全量重建。
- 1C 的 BSL 支持含俄语/英语两种语法:代码中的
&НаСервере/&AtServer均可识别,但非标准语法可能解析失败。 - MCP Registry 注册名为
io.github.Regsorm/code-index:npm 包名为@regsorm/code-index-mcp,两者版本可能不同步,以 GitHub Releases 为准。 - 单二进制 39-41 MB:对于 Claude Code 插件生态属于较大依赖,建议放在网络存储路径而非项目目录。
与同类对比
| code-index-mcp | codebase-memory-mcp | code-scale-mcp | |
|---|---|---|---|
| 语言覆盖 | 14 种 | 158 种 | 13 种 |
| 1C/BSL 支持 | ✅ 原生 32 工具 | ❌ | ❌ |
| 调用图 | ✅ 196 万边 | ✅ | ✅ |
| 索引后文件大小 | SQLite+zstd | zstd 压缩 | 需实测 |
| 单文件二进制 | ✅ 39-41 MB | ✅ | ✅ |
| query 延迟 | ~10ms HTTP | 亚毫秒 | 需实测 |
| 生态 | MCP 通用 | MCP | MCP |
⚠️ codebase-memory-mcp(DeusData)声称 158 语言但不支持 1C;code-scale-mcp(LobeHub)13 语言 + 9 层安全过滤,适合高安全要求场景。
一句话推荐结论:如果你主要做通用多语言代码导航,codebase-memory-mcp 覆盖最广;但凡涉及 1C 企业系统,code-index-mcp 是唯一有深度 BSL/1C 元数据支持的选择,32 个专用工具无可替代。
官方文档
- 俄语完整指南:README_RU.md
- English:README_EN.md
- 运维文档:docs/operations.md
- 1C 索引器:docs/bsl-indexer.md
- Releases:https://github.com/Regsorm/code-index-mcp/releases/latest
- Issues:https://github.com/Regsorm/code-index-mcp/issues