BSL CallGraph MCP Server
Локальный stdio MCP-сервер на Node.js: строит граф вызовов по выгрузке BSL-кода 1С в памяти и находит определения, вызывающих, вызываемых и зону влияния
Низкий риск
Низкий уровень ставим, когда запись в основном дает агенту инструкции и справочные материалы.
Почему такой уровень
- Инструменты строго read-only, сервер не выполняет BSL-код и не требует сети
- Ответы содержат имена символов, модулей и относительные пути файлов, которые видит подключенный клиент
Установка
Ручная установка
git clone https://github.com/ShustovM/bsl-callgraph.git
cd bsl-callgraph
npm ci
npm testУстановка из исходников, требует Node.js 22 или 24.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер индексирует .bsl файлы в памяти и дает MCP-клиенту семь инструментов: find_symbol и search_symbols для поиска определений по точному имени или подстроке, get_callers и get_callees для поиска вызывающих и вызываемых процедур, get_impact для транзитивного обхода зоны влияния изменения, reindex для пересборки индекса после изменения файлов и stats со server_info для состояния и возможностей сервера. Каждый вызов классифицируется как resolved (цель однозначно известна), ambiguous (несколько кандидатов) или dynamic (нужен рантайм-тип), и режим exact отдает только разрешенные ребра, а exploratory показывает неоднозначные кандидаты с указанием уверенности. Стейтфул-лексер распознает русские и английские объявления Процедура/Функция, Асинх и Экспорт, включая многострочные сигнатуры, и не превращает текст запросов внутри строк в ребра графа. Анализ статический и намеренно легковесный: не компилятор BSL и не полный вывод типов, результаты годятся как навигационная подсказка, а не доказательство.
Для кого. Для 1С-разработчиков, которым нужно быстро оценить зону влияния изменения в большой конфигурации без ручного обхода файлов.
Подходит, если
- Нужно найти все места вызова процедуры перед ее изменением
- Нужна оценка транзитивной зоны влияния правки на несколько уровней глубины
- Нужна быстрая навигация по большой выгрузке BSL без открытия десятков файлов
Не подходит, если
- Нужен точный компиляторный анализ с полным выводом типов: инструмент статический и не разрешает динамическую диспетчеризацию
- Нужен анализ живой базы данных, а не файловой выгрузки исходников
Пример запроса к агенту
Найди всех, кто вызывает функцию РассчитатьСумму, и оцени зону влияния ее изменения на глубину 3Ограничения
Динамическая диспетчеризация и значения в переменных не всегда разрешаются в единственную цель, одинаковые имена символов или модулей могут быть неоднозначны, препроцессор, вывод типов и метаданные рантайма не учитываются. Корень с BSL-файлами задается один раз при запуске клиентом и не может быть заменен вызовом инструмента. Результаты не гарантируют фиксированную задержку или точный процент экономии токенов.
Как отключить. Удалите регистрацию сервера из MCP-клиента, например codex mcp remove bsl-callgraph, и остановите процесс сервера, кеша на диске сервер не создает.
MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Проверка безопасности
- Инструменты строго read-only, сервер не выполняет BSL-код и не требует сети
- Ответы содержат имена символов, модулей и относительные пути файлов, которые видит подключенный клиент
Коротко о README
README подробно описывает семь инструментов с параметрами, классификацию ребер графа на resolved/ambiguous/dynamic, границы точности статического анализа и раздел приватности: парсинг идет локально, сервер не выполняет BSL-код и не требует сети, но ответы MCP видит подключенный клиент и, возможно, удаленный агент по его политике. Даны команды установки из исходников, конфигурация для Codex CLI, Claude Code и универсального stdio-клиента с примерами для POSIX и Windows, раздел устранения неполадок и деинсталляции. Есть baseline и benchmark скрипты для измерения производительности на своей машине. Лицензия MIT.
Частые вопросы
Можно ли сменить индексируемую папку без перезапуска?
Нет, корень задается один раз аргументом запуска в конфигурации клиента, инструмент reindex только пересобирает индекс той же папки после изменения файлов.
Чем отличаются exact и exploratory режимы?
exact отдает только однозначно разрешенные вызовы, exploratory дополнительно показывает неоднозначные и динамические кандидаты с указанием причины и уверенности.
Похожие
Набор скиллов, который задает агенту процесс разработки: уточнение задачи, план, TDD, субагенты и ревью кода
Скиллы Мэтта Покока для инженеров
Skills For Real Engineers
Небольшие компонуемые скиллы для инженерной работы с агентом: интервью по плану, TDD, диагностика багов, ревью и архитектура
Набор GitHub для разработки от спецификации: CLI specify ставит в проект команды и скиллы для агента, от принципов до реализации
Референсные MCP-серверы
Model Context Protocol servers
Официальные референсные MCP-серверы: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time и Everything