MCP-сервер графа конфигурации 1С
1C Configuration MCP Server
MCP-сервер строит граф метаданных и вызовов по XML- и BSL-выгрузке конфигурации 1С, с опциональным семантическим поиском через внешний эмбеддер и Qdrant
- 4 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- При включенном семантическом поиске код и метаданные конфигурации отправляются во внешний эмбеддер и реранкер
- HTTP-эндпоинт по умолчанию слушает 0.0.0.0 и без auth_token открыт без аутентификации
Установка
- Работает в
- Сервисы
Ручная установка
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-сервер конфигураций 1С
1C Config MCP Server
MCP-сервер и портативный администратор для анализа выгруженной XML-конфигурации 1С: поиск объектов, структура метаданных, поиск по коду
Один бинарь на Rust без зависимостей и сети: индексирует выгрузку конфигурации 1С и отвечает на вопросы о графе вызовов и метаданных за миллисекунды
Stdio MCP-сервер, который индексирует XML-выгрузку структуры 1С и код в SQLite и отдает агенту поиск по объектам и процедурам
MCP-сервер для Claude Code: полнотекстовый поиск по XML+BSL выгрузкам нескольких конфигураций 1С в локальной SQLite-базе с FTS5
Семантический поиск по коду 1С
1C Code Search MCP
Локальный MCP-сервер для семантического поиска по выгруженной конфигурации 1С с выбором модели эмбеддингов и векторной БД
MCP-сервер в Docker для поиска по выгрузке 1С: структурный индекс, граф вызовов и семантический поиск по коду
Коротко о README
README описывает возможности парсера XML и BSL, SQLite-граф, опциональный семантический поиск через эмбеддер, Qdrant и реранкер с таблицей деградации при отсутствии каждого компонента, установку с сабмодулями, приоритет конфигурации из переменных окружения, ожидаемый формат выгрузки конфигурации, команды индексации с разными флагами, полный список из двадцати трех инструментов по группам, расход токенов на инициализацию схемы инструментов, подключение к Claude Desktop и Claude Code, запуск через Docker Compose и подробный раздел ограничений включая нераскрытие условной компиляции и требования к RAM для больших конфигураций.