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 变更影响分析:通过调用图快速评估某改动的下游影响

坑与注意

  1. 1C 两种导出格式均支持但需明确来源: Конфигуратор 的 XML 导出和 1C:EDT 的 .mdo 格式解析逻辑不同,混用可能导致元数据不完整。
  2. 增量索引只看时间戳和大小:不比对内容 Hash,适合单次编辑后快速更新;大量并发改动的场景建议定期全量重建。
  3. 1C 的 BSL 支持含俄语/英语两种语法:代码中的 &НаСервере / &AtServer 均可识别,但非标准语法可能解析失败。
  4. MCP Registry 注册名为 io.github.Regsorm/code-index:npm 包名为 @regsorm/code-index-mcp,两者版本可能不同步,以 GitHub Releases 为准。
  5. 单二进制 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 个专用工具无可替代。

官方文档