{
  "markdown": "<a href=\"https://infostart.ru/1c/tools/2677918/\" title=\"Публикация на Инфостарте\">\n  <img src=\"https://infostart.ru/bitrix/templates/sandbox_empty/assets/tpl/abo/img/logo.svg\" alt=\"Infostart\" height=\"32\">\n</a>\n\n---\n\n# code-index-mcp\n\n[![Релиз](https://img.shields.io/github/v/release/Regsorm/code-index-mcp)](https://github.com/Regsorm/code-index-mcp/releases/latest)\n[![npm](https://img.shields.io/npm/v/%40regsorm%2Fcode-index-mcp)](https://www.npmjs.com/package/@regsorm/code-index-mcp)\n[![Лицензия](https://img.shields.io/github/license/Regsorm/code-index-mcp)](LICENSE)\n\n**Поиск по коду для ИИ-агентов. Один бинарник, индекс в SQLite, ответ за миллисекунды.\nРазбирает выгрузки 1С:Предприятие 8.3 — и из Конфигуратора, и из 1С:EDT.**\n\n[Полное руководство](README_RU.md) · [English](README_EN.md) · [Документация](docs/) · [Журнал изменений](CHANGELOG.md)\n\n---\n\n## Установка\n\n### Windows — одной командой\n\n```powershell\nirm https://raw.githubusercontent.com/Regsorm/code-index-mcp/main/install.ps1 | iex\n```\n\nСкачивает последний выпуск в `C:\\tools\\code-index`, запоминает папку в\nпеременной окружения, создаёт заготовку файла настроек и печатает готовый блок\nдля `.mcp.json`.\n\nС параметрами — папка установки, папка с исходниками, автозапуск при входе в\nсистему:\n\n```powershell\n& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Regsorm/code-index-mcp/main/install.ps1))) `\n    -InstallDir 'D:\\code-index' -Repo 'main=D:\\Repo1C' -RegisterAutostart\n```\n\nАвтозапуск идёт через папку автозагрузки пользователя: прав администратора не\nтребует, окон не показывает. Остальные параметры — `-Flavor core` для сборки\nбез 1С, `-Version 1.0.0` для конкретного выпуска, `-Port` и `-DaemonPort`, если\nпорты по умолчанию заняты. Полный список — `Get-Help .\\install.ps1 -Detailed`.\n\n### Windows — вручную, готовый архив из выпуска\n\nСкачивает последний выпуск, распаковывает в `C:\\tools\\code-index` и запоминает\nэту папку в переменной окружения:\n\n```powershell\n$dst = 'C:\\tools\\code-index'\nNew-Item -ItemType Directory -Force $dst | Out-Null\n$url = (Invoke-RestMethod https://api.github.com/repos/Regsorm/code-index-mcp/releases/latest).assets |\n       Where-Object name -eq 'bsl-indexer-windows-x64.zip' |\n       Select-Object -ExpandProperty browser_download_url\nInvoke-WebRequest $url -OutFile \"$env:TEMP\\code-index.zip\"\nExpand-Archive \"$env:TEMP\\code-index.zip\" -DestinationPath $dst -Force\nsetx CODE_INDEX_HOME $dst\n```\n\n`bsl-indexer` — сборка с поддержкой 1С (32 инструмента). Нужна работа без 1С —\nвозьмите `code-index-windows-x64.zip` (20 инструментов). Для Linux и macOS в том\nже выпуске лежат `*-linux-x64.tar.gz` и `*-macos-arm64.tar.gz`.\n\n### npm\n\n```bash\nnpm install -g @regsorm/code-index-mcp\nnpx @regsorm/code-index-mcp serve --path /путь/к/репозиторию\n```\n\nШаг `postinstall` скачивает готовый бинарник под вашу платформу — ничего не\nкомпилируется. Пакет есть и в [реестре MCP](https://registry.modelcontextprotocol.io/)\nпод именем `io.github.Regsorm/code-index`. В обёртке только сборка без 1С.\n\n### Сборка из исходников\n\n```bash\ngit clone https://github.com/Regsorm/code-index-mcp.git\ncd code-index-mcp\ncargo build --release -p code-index                          # без 1С\ncargo build --release -p bsl-indexer --features enrichment   # с поддержкой 1С\n```\n\nНужен Rust 1.77+.\n\n## Подключение к клиенту\n\nОбщий процесс по HTTP — один индекс на все сессии и все проекты:\n\n```json\n{\n  \"mcpServers\": {\n    \"code-index\": {\n      \"type\": \"http\",\n      \"url\": \"http://127.0.0.1:8011/mcp\"\n    }\n  }\n}\n```\n\nОтдельный процесс на сессию (`stdio`), без фонового демона:\n\n```json\n{\n  \"mcpServers\": {\n    \"code-index\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@regsorm/code-index-mcp\", \"serve\", \"--path\", \".\"]\n    }\n  }\n}\n```\n\nРаботает с Claude Code, Cursor, VS Code, LibreChat — с любым клиентом MCP.\nНастройка фонового демона, список репозиториев, тонкие параметры —\n[полное руководство](README_RU.md#настройка-фонового-демона-v05).\n\n## Зачем это нужно\n\nЯзыковая модель без индекса ищет по коду тем же способом, что и человек без среды\nразработки: перебором. Один вопрос «кто вызывает эту процедуру» превращается в\nдесяток последовательных обходов файлов, каждый из которых читает тысячи файлов и\nвозвращает в контекст модели куски текста — вместе с оплатой этих кусков.\n\n`code-index` делает работу заранее: разбирает исходники в синтаксическое дерево,\nскладывает символы, тела, вызовы и метаданные в SQLite и отдаёт агенту готовый\nответ по протоколу MCP. Модель получает три строки вместо трёх файлов.\n\n## Цифры\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"docs/bench-summary-dark.svg\">\n  <img alt=\"В среднем в 2,04 раза дешевле по токенам, в 1,78 раза быстрее, 51 % экономии за сеанс\"\n       src=\"docs/bench-summary-light.svg\" width=\"880\">\n</picture>\n\n| Кодовая база | Файлов | Полная индексация | Запуск на готовом индексе |\n|---|---:|---:|---:|\n| 1С:Управление Торговлей | 57 072 | 2 мин 41 с | **2,3 с** |\n| 1С:Бухгалтерия предприятия | 88 284 | 5 мин 51 с | **5,3 с** |\n| сайт на PHP | 157 772 | 13 мин 1 с | **8,0 с** |\n\n**Полная индексация** — разбор всего с нуля, делается один раз. У Бухгалтерии эти\n5 мин 51 с складываются так: 2 мин 38 с ядро (синтаксические деревья и запись),\n1 мин 58 с надстройка 1С (метаданные, формы, права, граф вызовов), 56 с сброс\nбазы на диск. Дальше правки подхватываются по одной, за миллисекунды.\n\n**Запуск на готовом индексе** сверяет время правки и размер каждого файла — ни\nодного чтения содержимого, ни одного хеша.\n\n| | |\n|---|---|\n| Ответ на запрос | около 10 мс по HTTP, повторный из кэша — доли миллисекунды |\n| Размер бинарника | 39 МБ без 1С, 41 МБ с 1С |\n| Функций в индексе Управления Торговлей | 261 548 |\n| Вызовов в графе там же | 1 962 941 |\n\nЗамеры сделаны на одной машине под Windows с обычным жёстким диском, август 2026.\n\n## Инструменты\n\nКаждый вызов принимает алиас репозитория, так что один сервер обслуживает\nнесколько кодовых баз сразу — в том числе с других машин.\n\n**Поиск и навигация**\n\n| | |\n|---|---|\n| `search_function` `search_class` | полнотекстовый поиск по функциям и классам |\n| `get_function` `get_class` | точное имя → готовое тело; при промахе подсказывает похожие имена |\n| `find_symbol` | символ любого рода: функция, класс, переменная, импорт |\n| `get_imports` | импорты модуля или файла |\n| `get_file_summary` | карта файла без чтения исходника |\n\n**Граф вызовов**\n\n| | |\n|---|---|\n| `get_callers` `get_callees` | кто вызывает процедуру и кого вызывает она |\n| `find_path` | кратчайшая цепочка вызовов между двумя функциями |\n| `get_call_tree` | дерево вызовов вниз или вверх на заданную глубину |\n\n**Содержимое файлов**\n\n| | |\n|---|---|\n| `read_file` | чтение с диапазоном строк; содержимое кода лежит в индексе, сжатое zstd |\n| `list_files` `stat_file` | список файлов по маске и метаданные одного файла |\n| `grep_body` | подстрока или регулярное выражение в телах функций и классов |\n| `grep_code` `grep_text` | то же по всему тексту файлов кода и текстовых файлов |\n| `search_text` | полнотекстовый поиск по текстовым форматам |\n| `get_stats` `health` | состояние индекса и сервера |\n\n**Для конфигураций 1С** (сборка `bsl-indexer`, появляются сами при наличии\nрепозитория с выгрузкой)\n\n| | |\n|---|---|\n| `get_object_structure` | реквизиты с типами и синонимами, табличные части, измерения и ресурсы, предопределённые элементы, свойства проведения |\n| `get_object_profile` | паспорт объекта одним вызовом: структура, формы, модули, связи |\n| `get_form_handlers` | обработчики событий управляемой формы, с привязкой к элементу |\n| `get_event_subscriptions` | подписки на события с фильтрами по источнику и событию |\n| `get_data_links` `find_data_path` | граф связей данных: кто на кого ссылается и цепочка между двумя объектами |\n| `find_references` | карта влияния: ссылки из метаданных, обращения в коде, права ролей |\n| `get_register_writers` | регистраторы регистра и движения документа |\n| `find_path_bsl` | цепочка вызовов процедур по графу выгрузки |\n| `search_terms` | смысловой поиск процедур по именам, синонимам и комментариям |\n| `get_role_rights` | права ролей на объект и права одной роли |\n| `bsl_sql` | произвольный запрос на чтение к таблицам метаданных и графов |\n\n## Что даёт поддержка 1С\n\n- Разбираются обе формы выгрузки: XML из Конфигуратора и `.mdo` из 1С:EDT.\n- Граф связей данных строится по ссылочным типам реквизитов, измерений и\n  табличных частей: для Бухгалтерии предприятия это 65 421 ребро.\n- Из модулей извлекаются директивы компиляции (`&НаСервере`, `&НаКлиенте`) и\n  аннотации расширений (`&Вместо`, `&После`, `&Перед`) вместе с именем\n  переопределяемой процедуры.\n- Понимаются оба синтаксиса BSL — русский и английский.\n- Регистр имени объекта не важен: кириллические имена приводятся к записи из\n  конфигурации, в ответе имя показывается канонически.\n\nПодробности — [docs/bsl-indexer.md](docs/bsl-indexer.md).\n\n## Языки\n\nПолный разбор синтаксиса: Python, JavaScript, TypeScript, Java, Rust, Go, PHP, C,\nC++, C#, Ruby, Swift, 1С (BSL), HTML. Метаданные 1С — XML Конфигуратора и `.mdo`\nиз EDT. Плюс полнотекстовая индексация 50+ текстовых форматов (`.md`, `.json`,\n`.yaml`, `.toml`, `.sql` и других).\n\n## Дальше\n\n- [Полное руководство на русском](README_RU.md) — демон, конфигурация, CLI, архитектура\n- [docs/operations.md](docs/operations.md) — эксплуатация: перезапуск, добавление репозиториев, диагностика\n- [docs/bsl-indexer.md](docs/bsl-indexer.md) — сборка для 1С\n- [CHANGELOG.md](CHANGELOG.md) — журнал изменений\n\n## Участие\n\nОшибки и предложения — в [issues](https://github.com/Regsorm/code-index-mcp/issues),\nвопросы и обсуждения — в [Discussions](https://github.com/Regsorm/code-index-mcp/discussions).\nКак прислать правку — [CONTRIBUTING.md](CONTRIBUTING.md), об уязвимостях —\n[SECURITY.md](SECURITY.md).\n\n## Лицензия\n\nMIT, см. [LICENSE](LICENSE).\n\nПроект стоит на [tree-sitter](https://tree-sitter.github.io/),\n[грамматике BSL от сообщества 1c-syntax](https://github.com/1c-syntax/tree-sitter-bsl),\n[rusqlite](https://github.com/rusqlite/rusqlite), [rayon](https://github.com/rayon-rs/rayon)\nи [Rust SDK для MCP](https://github.com/modelcontextprotocol/rust-sdk).\n",
  "bytes": 10128,
  "sha": "ffb34b0c6824bf26400aad83625c75c78f23a7c3b77ced7fa2d8f3a09159bc78",
  "repo_slug": "regsorm/code-index-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_regsorm_code_index_2879e0f8/readme"
}