Rust code index MCP server, native 1C:Enterprise (BSL) support. 32 tools, AST for 14 languages.
code-index-mcp (MCP Server)
The io.github.Regsorm/code-index MCP server provides Rust code indexing and code search for AI use, including native support for 1C:Enterprise (BSL). It exposes 32 tools and builds an AST across 14 languages to support structured code analysis and search workflows.
🛠️ Key Features
Rust code index and search
Native 1C:Enterprise (BSL) support
AST generation for 14 languages
32 tools exposed via MCP
🚀 Use Cases
Code search and indexing for developer workflows
Using AST-backed results for structured code understanding
Поиск по коду для ИИ-агентов. Один бинарник, индекс в SQLite, ответ за миллисекунды.
Разбирает выгрузки 1С:Предприятие 8.3 — и из Конфигуратора, и из 1С:EDT.
Скачивает последний выпуск в C:\tools\code-index, запоминает папку в
переменной окружения, создаёт заготовку файла настроек и печатает готовый блок
для .mcp.json.
С параметрами — папка установки, папка с исходниками, автозапуск при входе в
систему:
Автозапуск идёт через папку автозагрузки пользователя: прав администратора не
требует, окон не показывает. Остальные параметры — -Flavor core для сборки
без 1С, -Version 1.0.0 для конкретного выпуска, -Port и -DaemonPort, если
порты по умолчанию заняты. Полный список — Get-Help .\install.ps1 -Detailed.
Windows — вручную, готовый архив из выпуска
Скачивает последний выпуск, распаковывает в C:\tools\code-index и запоминает
эту папку в переменной окружения:
bsl-indexer — сборка с поддержкой 1С (32 инструмента). Нужна работа без 1С —
возьмите code-index-windows-x64.zip (20 инструментов). Для Linux и macOS в том
же выпуске лежат *-linux-x64.tar.gz и *-macos-arm64.tar.gz.
Дальше — файл настроек, запуск, подключение клиента и автозапуск.
Всё это без скриптов, по шагам: установка вручную
(English).
Шаг postinstall скачивает готовый бинарник под вашу платформу — ничего не
компилируется. Пакет есть и в реестре MCP
под именем io.github.Regsorm/code-index. В обёртке только сборка без 1С.
Сервер serve только читает индекс, строит его фоновый индексатор. Поэтому
должны быть запущены npx @regsorm/code-index-mcp daemon run и задана
переменная CODE_INDEX_HOME — иначе инструменты отвечают daemon_offline.
Настройка — в полном руководстве.
Сборка из исходников
bash
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:
Отдельный процесс на сессию (stdio) — клиент сам запускает сервер при открытии
сессии, порт не нужен. Фоновый индексатор (daemon run) при этом тоже должен
работать: сервер только читает индекс, а строит его индексатор. Без него
инструменты отвечают daemon_offline:
Работает с Claude Code, Cursor, VS Code, LibreChat — с любым клиентом MCP.
Настройка фонового демона, список репозиториев, тонкие параметры —
полное руководство.
Зачем это нужно
Языковая модель без индекса ищет по коду тем же способом, что и человек без среды
разработки: перебором. Один вопрос «кто вызывает эту процедуру» превращается в
десяток последовательных обходов файлов, каждый из которых читает тысячи файлов и
возвращает в контекст модели куски текста — вместе с оплатой этих кусков.
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_functionsearch_class
полнотекстовый поиск по функциям и классам
get_functionget_class
точное имя → готовое тело; при промахе подсказывает похожие имена
find_symbol
символ любого рода: функция, класс, переменная, импорт
get_imports
импорты модуля или файла
get_file_summary
карта файла без чтения исходника
Граф вызовов
get_callersget_callees
кто вызывает процедуру и кого вызывает она
find_path
кратчайшая цепочка вызовов между двумя функциями
get_call_tree
дерево вызовов вниз или вверх на заданную глубину
Содержимое файлов
read_file
чтение с диапазоном строк; содержимое кода лежит в индексе, сжатое zstd
list_filesstat_file
список файлов по маске и метаданные одного файла
grep_body
подстрока или регулярное выражение в телах функций и классов
grep_codegrep_text
то же по всему тексту файлов кода и текстовых файлов
search_text
полнотекстовый поиск по текстовым форматам
get_statshealth
состояние индекса и сервера
Для конфигураций 1С (сборка bsl-indexer, появляются сами при наличии
репозитория с выгрузкой)
get_object_structure
реквизиты с типами и синонимами, табличные части, измерения и ресурсы, предопределённые элементы, свойства проведения
get_object_profile
паспорт объекта одним вызовом: структура, формы, модули, связи
get_form_handlers
обработчики событий управляемой формы, с привязкой к элементу
get_event_subscriptions
подписки на события с фильтрами по источнику и событию
get_data_linksfind_data_path
граф связей данных: кто на кого ссылается и цепочка между двумя объектами
find_references
карта влияния: ссылки из метаданных, обращения в коде, права ролей
get_register_writers
регистраторы регистра и движения документа
find_path_bsl
цепочка вызовов процедур по графу выгрузки
search_terms
смысловой поиск процедур по именам, синонимам и комментариям
get_role_rights
права ролей на объект и права одной роли
bsl_sql
произвольный запрос на чтение к таблицам метаданных и графов
Что даёт поддержка 1С
Разбираются обе формы выгрузки: XML из Конфигуратора и .mdo из 1С:EDT.
Граф связей данных строится по ссылочным типам реквизитов, измерений и
табличных частей: для Бухгалтерии предприятия это 65 421 ребро.
Из модулей извлекаются директивы компиляции (&НаСервере, &НаКлиенте) и
аннотации расширений (&Вместо, &После, &Перед) вместе с именем
переопределяемой процедуры.
Понимаются оба синтаксиса BSL — русский и английский.
Регистр имени объекта не важен: кириллические имена приводятся к записи из
конфигурации, в ответе имя показывается канонически.