MCP-сервер графа конфигурации 1С
1C Configuration MCP Server
MCP-сервер строит граф метаданных и вызовов по XML- и BSL-выгрузке конфигурации 1С, с опциональным семантическим поиском через внешний эмбеддер и Qdrant
Средний риск
Средний уровень ставим, когда инструмент запускает код, ходит в сеть или читает файлы проекта. Перед установкой посмотрите, что именно он делает.
Почему такой уровень
- При включенном семантическом поиске код и метаданные конфигурации отправляются во внешний эмбеддер и реранкер
- 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Установка с сабмодулем парсера легаси-форм.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Сервер разбирает стандартную выгрузку конфигурации 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: парсер строковый и не раскрывает условную компиляцию
Пример запроса к агенту
Найди, где в конфигурации хранится цена товара, и покажи, кто вызывает процедуру РассчитатьСуммуРеализацииОграничения
BSL-парсер строковый и не грамматический, достаточен для графа вызовов и поиска, но не для строгой валидации кода. Директивы условной компиляции #Если/#Иначе не раскрываются, что может дать дубль в счетчике символов. Вызовы разрешаются по имени в глобальном пространстве 1С, поэтому у одноименных процедур в разных модулях ребра CALLS ведут на всех кандидатов. Семантический поиск требует внешний OpenAI-совместимый эмбеддер и Qdrant, без них работает только структурная часть. Размерность вектора эмбеддера должна точно совпадать с настройкой, иначе Qdrant отклонит запись. Требует Python 3.11 и выше.
Как отключить. Остановите процесс python -m src.server и удалите сервер из конфигурации MCP-клиента.
MCP
- Транспорт
- http
- Авторизация
- API-ключ
| Переменные окружения | |
|---|---|
| ONEC_CONFIG_ROOT обязательная | Корень исходников выгруженной конфигурации 1С. |
| ONEC_EMBEDDER_BASE_URL | Base URL OpenAI-совместимого эмбеддера для семантического поиска, например локальный Ollama. |
| ONEC_AUTH_TOKEN секрет | Токен Bearer-аутентификации HTTP-эндпоинта, пусто значит аутентификация выключена. |
Проверка безопасности
- При включенном семантическом поиске код и метаданные конфигурации отправляются во внешний эмбеддер и реранкер
- HTTP-эндпоинт по умолчанию слушает 0.0.0.0 и без auth_token открыт без аутентификации
Коротко о README
README описывает возможности парсера XML и BSL, SQLite-граф, опциональный семантический поиск через эмбеддер, Qdrant и реранкер с таблицей деградации при отсутствии каждого компонента, установку с сабмодулями, приоритет конфигурации из переменных окружения, ожидаемый формат выгрузки конфигурации, команды индексации с разными флагами, полный список из двадцати трех инструментов по группам, расход токенов на инициализацию схемы инструментов, подключение к Claude Desktop и Claude Code, запуск через Docker Compose и подробный раздел ограничений включая нераскрытие условной компиляции и требования к RAM для больших конфигураций.
Частые вопросы
Сервер работает без Qdrant и эмбеддера?
Да, все структурные инструменты (list_objects, get_symbol, get_callers/callees, get_references, graph_stats) работают на SQLite-графе без внешних сервисов, только семантический поиск search_config недоступен.
Как обновить индекс после изменения конфигурации?
python -m src.indexer по умолчанию инкрементальный и переэмбедит только изменившиеся узлы, для полного пересбора есть флаг --full.
Похожие
Набор скиллов, который задает агенту процесс разработки: уточнение задачи, план, TDD, субагенты и ревью кода
Скиллы Мэтта Покока для инженеров
Skills For Real Engineers
Небольшие компонуемые скиллы для инженерной работы с агентом: интервью по плану, TDD, диагностика багов, ревью и архитектура
Набор GitHub для разработки от спецификации: CLI specify ставит в проект команды и скиллы для агента, от принципов до реализации
Референсные MCP-серверы
Model Context Protocol servers
Официальные референсные MCP-серверы: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time и Everything