MCP-сервер графа конфигурации 1С

1C Configuration MCP Server

MCP-сервер строит граф метаданных и вызовов по XML- и BSL-выгрузке конфигурации 1С, с опциональным семантическим поиском через внешний эмбеддер и Qdrant

  • 4 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Расширенный доступ

Почему такой уровень

  • При включенном семантическом поиске код и метаданные конфигурации отправляются во внешний эмбеддер и реранкер
  • HTTP-эндпоинт по умолчанию слушает 0.0.0.0 и без auth_token открыт без аутентификации
Все причины и проверки
Российский стек

axel-avb/mcp-1c-metadata

Установка

Ручная установка

git clone --recurse-submodules https://github.com/axel-avb/mcp-1c-metadata.git
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Установка с сабмодулем парсера легаси-форм.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • При включенном семантическом поиске код и метаданные конфигурации отправляются во внешний эмбеддер и реранкер
  • HTTP-эндпоинт по умолчанию слушает 0.0.0.0 и без auth_token открыт без аутентификации

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Сервер разбирает стандартную выгрузку конфигурации 1С в исходный код: XML-метаданные объектов и BSL-модули, строит SQLite-граф со связями объект-элемент, модуль-символ, вызовы и ссылки между объектами. Двадцать три инструмента дают инвентарь конфигурации, структуру объекта по секциям, поиск объектов и элементов по описанию, граф вызовов процедур с BFS на заданную глубину и тело рутины с пагинацией. Семантический поиск search_config и search_bsl_code опциональны: без внешнего OpenAI-совместимого эмбеддера и Qdrant все структурные инструменты работают на голом SQLite-графе, реранкер тоже опционален и деградирует до порядка ANN-поиска. Отдельно поддержаны легаси-формы обычного типа: BSL из Form.bin извлекается вендоренным бинарным парсером.

Для кого. Для 1С-разработчиков с крупными конфигурациями, которым нужен граф вызовов и структурный поиск по объектам и BSL-коду, с опциональным семантическим слоем.

Подходит, если

  • Нужен граф вызовов процедур с обходом в глубину, а не просто текстовый поиск
  • Нужен структурный обзор объекта: реквизиты, табличные части, формы, команды одним вызовом
  • Есть локальный эмбеддер вроде Ollama, и нужен семантический поиск по метаданным и коду

Не подходит, если

  • Нет выгрузки конфигурации в исходный код, только файловая или серверная ИБ
  • Конфигурация большая, а Qdrant негде разместить: README прямо предупреждает про десятки гигабайт RAM для ЕРП 2.x
  • Нужна строгая грамматическая валидация BSL: парсер строковый и не раскрывает условную компиляцию

Пример запроса к агенту

Найди, где в конфигурации хранится цена товара, и покажи, кто вызывает процедуру РассчитатьСуммуРеализации

MCP

Транспорт
http
Авторизация
ключ необязателен

Переменные окружения

ONEC_CONFIG_ROOT обязательная
Корень исходников выгруженной конфигурации 1С.
ONEC_EMBEDDER_BASE_URL
Base URL OpenAI-совместимого эмбеддера для семантического поиска, например локальный Ollama.
ONEC_AUTH_TOKEN секрет
Токен Bearer-аутентификации HTTP-эндпоинта, пусто значит аутентификация выключена.

Ограничения

BSL-парсер строковый и не грамматический, достаточен для графа вызовов и поиска, но не для строгой валидации кода. Директивы условной компиляции #Если/#Иначе не раскрываются, что может дать дубль в счетчике символов. Вызовы разрешаются по имени в глобальном пространстве 1С, поэтому у одноименных процедур в разных модулях ребра CALLS ведут на всех кандидатов. Семантический поиск требует внешний OpenAI-совместимый эмбеддер и Qdrant, без них работает только структурная часть. Размерность вектора эмбеддера должна точно совпадать с настройкой, иначе Qdrant отклонит запись. Требует Python 3.11 и выше.

Как отключить. Остановите процесс python -m src.server и удалите сервер из конфигурации MCP-клиента.

Частые вопросы

Сервер работает без Qdrant и эмбеддера?

Да, все структурные инструменты (list_objects, get_symbol, get_callers/callees, get_references, graph_stats) работают на SQLite-графе без внешних сервисов, только семантический поиск search_config недоступен.

Как обновить индекс после изменения конфигурации?

python -m src.indexer по умолчанию инкрементальный и переэмбедит только изменившиеся узлы, для полного пересбора есть флаг --full.

Обсуждение

Вопросов и отзывов пока нет.

Российский стек

MCP-сервер и портативный администратор для анализа выгруженной XML-конфигурации 1С: поиск объектов, структура метаданных, поиск по коду

MCP-серверРасширенный доступ2Звезды репозитория
Российский стек

Один бинарь на Rust без зависимостей и сети: индексирует выгрузку конфигурации 1С и отвечает на вопросы о графе вызовов и метаданных за миллисекунды

MCP-серверРасширенный доступ15Звезды репозитория
Российский стек

MCP-сервер для Claude Code: полнотекстовый поиск по XML+BSL выгрузкам нескольких конфигураций 1С в локальной SQLite-базе с FTS5

MCP-серверРасширенный доступ
Российский стек

Локальный MCP-сервер для семантического поиска по выгруженной конфигурации 1С с выбором модели эмбеддингов и векторной БД

MCP-серверРасширенный доступ11Звезды репозитория
Российский стек

MCP-сервер в Docker для поиска по выгрузке 1С: структурный индекс, граф вызовов и семантический поиск по коду

MCP-серверРасширенный доступ79Звезды репозитория

Коротко о README

README описывает возможности парсера XML и BSL, SQLite-граф, опциональный семантический поиск через эмбеддер, Qdrant и реранкер с таблицей деградации при отсутствии каждого компонента, установку с сабмодулями, приоритет конфигурации из переменных окружения, ожидаемый формат выгрузки конфигурации, команды индексации с разными флагами, полный список из двадцати трех инструментов по группам, расход токенов на инициализацию схемы инструментов, подключение к Claude Desktop и Claude Code, запуск через Docker Compose и подробный раздел ограничений включая нераскрытие условной компиляции и требования к RAM для больших конфигураций.

Бейдж для README

Сообщить о проблеме