Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Rust code index MCP server, native 1C:Enterprise (BSL) support. 37 tools, AST for 14 languages.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"code-index": {
"command": "npx",
"args": [
"-y",
"@regsorm/code-index-mcp",
"serve",
"--path",
"your-value"
]
}
}
}在终端中运行这条命令
claude mcp add code-index -- npx -y @regsorm/code-index-mcp serve --path your-value这个服务器需要在启动命令中填入值,请复制设置后自行填写。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"code-index": {
"command": "npx",
"args": [
"-y",
"@regsorm/code-index-mcp",
"serve",
"--path",
"your-value"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器需要在启动命令中填入值,请复制设置后自行填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"code-index": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@regsorm/code-index-mcp",
"serve",
"--path",
"your-value"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 Regsorm 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.15.6)于9天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, LickityClick
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Поиск по коду для ИИ-агентов. Один бинарник, индекс в SQLite, ответ за миллисекунды. Разбирает выгрузки 1С:Предприятие 8.3 — и из Конфигуратора, и из 1С:EDT.
Полное руководство · English · Документация · Журнал изменений
Выгрузки с именами файлов Unicode в NFC и NFD поддерживаются; для восстановления данных старого индекса нужна пересборка (версия данных 6).
irm https://raw.githubusercontent.com/Regsorm/code-index-mcp/main/install.ps1 | iex
Скачивает последний выпуск в C:\tools\code-index, запоминает папку в переменной окружения, создаёт заготовку файла настроек и печатает готовый блок для .mcp.json.
С параметрами — папка установки, папка с исходниками, автозапуск при входе в систему:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Regsorm/code-index-mcp/main/install.ps1))) `
-InstallDir 'D:\code-index' -Repo 'main=D:\Repo1C' -RegisterAutostart
Автозапуск идёт через папку автозагрузки пользователя: прав администратора не требует, окон не показывает. Остальные параметры — -Flavor core для сборки без 1С, -Version 1.0.0 для конкретного выпуска, -Port и -DaemonPort, если порты по умолчанию заняты. Полный список — Get-Help .\install.ps1 -Detailed.
Скачивает последний выпуск, распаковывает в C:\tools\code-index и запоминает эту папку в переменной окружения:
$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
bsl-indexer — сборка с поддержкой 1С (42 инструмента). Нужна работа без 1С — возьмите code-index-windows-x64.zip (25 инструментов). Для Linux и macOS в том же выпуске лежат *-linux-x64.tar.gz и *-macos-arm64.tar.gz.
Дальше — файл настроек, запуск, подключение клиента и автозапуск. Всё это без скриптов, по шагам: установка вручную (English).
npm install -g @regsorm/code-index-mcp
npx @regsorm/code-index-mcp serve --path /путь/к/репозиторию
Шаг postinstall скачивает готовый бинарник под вашу платформу — ничего не компилируется. Пакет есть и в реестре MCP под именем io.github.Regsorm/code-index. В обёртке только сборка без 1С.
Сервер serve только читает индекс, строит его фоновый индексатор. Поэтому должны быть запущены npx @regsorm/code-index-mcp daemon run и задана переменная CODE_INDEX_HOME — иначе инструменты отвечают daemon_offline. Настройка — в полном руководстве.
git clone https://github.com/Regsorm/code-index-mcp.git
cd code-index-mcp cargo build --release -p code-index # без 1С cargo build --release -p bsl-indexer --features enrichment # с поддержкой 1С
Нужен Rust 1.77+.
Общий процесс по HTTP — один индекс на все сессии и все проекты. HTTP-сервер встроен в программу, отдельный веб-сервер не нужен; по умолчанию он слушает только 127.0.0.1:
{
"mcpServers": { "code-index": { "type": "http", "url": "http://127.0.0.1:8011/mcp" } } }
Слушает только 127.0.0.1 и принимает только loopback-значения заголовка Host. Сервер в сети (--host 0.0.0.0 или [me].ip в serve.toml) перечисляет имена клиентов в [me].allowed_hosts либо в CODE_INDEX_ALLOWED_HOSTS — иначе /mcp отвечает 403 Host header is not allowed. Подробности — полное руководство.
Отдельный процесс на сессию (stdio) — клиент сам запускает сервер при открытии сессии, порт не нужен. Фоновый индексатор (daemon run) при этом тоже должен работать: сервер только читает индекс, а строит его индексатор. Без него инструменты отвечают daemon_offline:
{
"mcpServers": { "code-index": { "command": "npx", "args": ["-y", "@regsorm/code-index-mcp", "serve", "--path", "."] } } }
Работает с Claude Code, Cursor, VS Code, LibreChat — с любым клиентом MCP. Настройка фонового демона, список репозиториев, тонкие параметры — полное руководство.
Правило «по индексированным каталогам читай через code-index» модель под нагрузкой забывает и уходит в обычное чтение файлов, которое в 3–10 раз дороже по токенам. code-index-guard — хук PreToolUse для Claude Code и Codex CLI: отклоняет обычное чтение, поиск и обход каталога только там, где индекс отдаёт тот же файл, и подсказывает нужный инструмент. Новый, ещё не проиндексированный или исключённый из индекса файл читается как обычно. Сборка и установка — crates/code-index-guard.
code-index-copy делает копию проекта (файлы под контролем git или git worktree на новой ветке) и переносит в неё базу индекса, так что индекс копии не строится заново: демон копии при запуске только сверяет файлы с базой. Файлы исходника вне git из базы копии убираются, конфиги демона и сервера выдачи копии пишутся сразу. Подробности — crates/code-index-copy.
Языковая модель без индекса ищет по коду тем же способом, что и человек без среды разработки: перебором. Один вопрос «кто вызывает эту процедуру» превращается в десяток последовательных обходов файлов, каждый из которых читает тысячи файлов и возвращает в контекст модели куски текста — вместе с оплатой этих кусков.
code-index делает работу заранее: разбирает исходники в синтаксическое дерево, складывает символы, тела, вызовы и метаданные в SQLite и отдаёт агенту готовый ответ по протоколу MCP. Модель получает три строки вместо трёх файлов.
| Кодовая база | Файлов | Полная индексация | Запуск на готовом индексе |
|---|---|---|---|
| 1С:Управление Торговлей | 57 072 | 2 мин 41 с | 2,3 с |
| 1С:Бухгалтерия предприятия | 88 284 | 5 мин 51 с | 5,3 с |
| сайт на PHP | 157 772 | 13 мин 1 с | 8,0 с |
Полная индексация — разбор всего с нуля, делается один раз. У Бухгалтерии эти 5 мин 51 с складываются так: 2 мин 38 с ядро (синтаксические деревья и запись), 1 мин 58 с надстройка 1С (метаданные, формы, права, граф вызовов), 56 с сброс базы на диск. Дальше правки подхватываются по одной, за миллисекунды.
Запуск на готовом индексе сверяет время правки и размер каждого файла — ни одного чтения содержимого, ни одного хеша.
| Ответ на запрос | около 10 мс по HTTP, повторный из кэша — доли миллисекунды |
| Размер бинарника | 39 МБ без 1С, 41 МБ с 1С |
| Функций в индексе Управления Торговлей | 261 548 |
| Вызовов в графе там же | 1 962 941 |
Замеры сделаны на одной машине под Windows с обычным жёстким диском, август 2026.
Каждый вызов принимает алиас репозитория, так что один сервер обслуживает несколько кодовых баз сразу — в том числе с других машин.
Поиск и навигация
search_function search_class | полнотекстовый поиск по функциям и классам |
get_function get_class | точное имя → готовое тело; при промахе подсказывает похожие имена |
find_symbol | символ любого рода: функция, класс, переменная, импорт |
get_imports | импорты модуля или файла |
get_file_summary | карта файла без чтения исходника |
Граф вызовов
get_callers get_callees | кто вызывает процедуру и кого вызывает она |
find_path | кратчайшая цепочка вызовов между двумя функциями |
get_call_tree | дерево вызовов вниз или вверх на заданную глубину |
Содержимое файлов
read_file | чтение с диапазоном строк; содержимое кода лежит в индексе, сжатое zstd |
list_files stat_file | список файлов по маске и метаданные одного файла |
grep_body | подстрока или регулярное выражение в телах функций и классов |
grep_code grep_text | то же по всему тексту файлов кода и текстовых файлов |
search_text | полнотекстовый поиск по текстовым форматам |
get_stats health | состояние индекса и сервера |
Git (включается git = true у записи [[paths]]; git_path — если репозиторий лежит выше индекса)
git_log | история коммитов ревизии или локальной даты с фильтром по пути |
git_changed_files | изменённые файлы между двумя снимками: статусы, переименования, бинарные |
git_changes_by_object | те же изменения, сгруппированные по объектам метаданных 1С |
git_diff | unified diff одного файла с контекстом и пределом длины |
git_show_file | историческое содержимое файла с диапазоном строк |
Даты — YYYY-MM-DD, YYYY-MM-DD HH:MM, YYYY-MM-DDTHH:MM; зону можно задать параметром tz (+03:00 или UTC), иначе берётся локальная зона исполняющей машины (в контейнере ноды это UTC, timezone есть в каждом ответе). Пути — от корня индекса (для подкаталога изменения вне его не видны; для bare — от корня репозитория). Shallow-клон отвергается с подсказкой git fetch --unshallow, сеть инструменты не используют, а правка git/git_path применяется без перезапуска.
Для конфигураций 1С (сборка 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 | цепочка вызовов процедур по графу выгрузки |
query_call_sites | вызовы с контекстом места: в цикле, в Попытке, с глубиной вложенности |
get_node_structure | скелет процедуры: циклы, Попытка и ветки с номерами строк |
get_line_context | что находится на строке: процедура, содержащие её блоки, признаки |
search_terms | смысловой поиск процедур по именам, синонимам и комментариям |
get_role_rights | права ролей на объект и права одной роли |
bsl_sql | произвольный запрос на чтение к таблицам метаданных и графов |
.mdo из只显示了开头部分;其余内容请在仓库中阅读