Confdb
БесплатноНе проверенMCP server that provides read-only access to 1C:Enterprise configuration metadata extracted into SQLite, enabling LLMs to inspect objects, modules, and validate
Описание
MCP server that provides read-only access to 1C:Enterprise configuration metadata extracted into SQLite, enabling LLMs to inspect objects, modules, and validate 1C queries.
README
Экстрактор конфигурации 1С:Предприятие 8 в базу данных SQLite.
Назначение: распаковать бинарный файл конфигурации (.cf, .cfe, .epf)
без технологической платформы 1С и разложить его содержимое в реляционную базу,
пригодную для генерации кода 1С (LLM/RAG и скрипты).
Алгоритм распаковки портирован из проекта v8unpack (MIT, см. NOTICE.md) — только в одну сторону: распаковка и разбор, без обратной сборки.
Использование
:: установка в venv (один раз)
.venv\Scripts\python.exe -m pip install -e .
:: распаковка cf в базу данных (+ дерево распакованных файлов для отладки)
confdb extract file.cf --db out.db --dump _out\file
:: то же через confdb.bat
confdb.bat extract SmallBusinessKz_3_0_4_4_cf.cf --db _out\ubkz.db
:: текстовый консольный интерфейс (все опции + просмотр базы запросами)
confdb-ui.bat
:: проверка корректности запросов СКД в готовой базе (пункт 11 в confdb-ui)
confdb check out.db
Проверка запросов СКД
confdb check <база> (и пункт 11 консольного интерфейса) прогоняет все запросы
таблицы skd_query через встроенный разборщик языка запросов 1С
(src/confdb/query_lang.py):
- синтаксис: ПОМЕСТИТЬ/УНИЧТОЖИТЬ, ОБЪЕДИНИТЬ [ВСЕ], соединения (включая вложенные
и перечислением), вложенные запросы, ВЫБОР/ВЫРАЗИТЬ, виртуальные таблицы
с аргументами, параметры
&…, необязательные области СКД{…},ДЛЯ ИЗМЕНЕНИЯ; - семантика по метаданным: существование таблиц (
Справочник.Х,РегистрНакопления.Х.Оборотыи т.п.), существование полей первого уровня (meta_attribute + стандартные поля + общие реквизиты, без учёта регистра), цепочки разыменования ссылок черезattribute_ref(второй и далее уровни — мягко: составные/абстрактные типы не всегда раскрываются).
Код возврата 1 и список сообщений — если какой-то запрос не прошёл.
1confdb-knw — MCP-сервер для внешних LLM
:: сервер знаний по конфигурации 1С и BSL; stdio (JSON-RPC, read-only)
1confdb-knw.bat out.db
:: то же через CLI: confdb 1confdb-knw out.db
12 инструментов: find_objects, object_card (паспорт объекта: реквизиты,
табличные части, модули, ссылки), object_tree, find_field, refs_of,
module_outline, get_method, find_methods, skd_of, find_skd,
check_query (валидатор запроса 1С), sql (только SELECT). Инструкции
протокола (initialize.instructions) и описания инструментов содержат
справочник по схеме базы, глоссарий 1С и рекомендуемый рабочий процесс —
любая модель пользуется сервером без контекста этого проекта.
Пример конфигурации MCP-клиента, в т.ч. через SSH:
{
"mcpServers": {
"1confdb-knw": {
"command": "ssh",
"args": ["user@host", "python", "-m", "confdb.mcp_server", "/path/out.db"]
}
}
}
Опции extract:
--db FILE— записать результат в SQLite;--dump DIR— сохранить распакованное дерево файлов (нужен хотя бы один из--db/--dump);--temp-dir DIR,--keep-temp— рабочий каталог стадий 0–1 и его сохранение;--prefix STR— снять префикс с имён объектов;--store-blobs— хранить бинарные файлы (картинки, макеты) в БД как BLOB;--workers N— число процессов стадии 3 (по умолчанию 1; на многоядерной машине 8 процессов ускоряют разбор в несколько раз). В консольном интерфейсе — пункт меню 10. При вызовеextract()из собственного скрипта на Windows сworkers > 1вызов должен быть обёрнут вif __name__ == '__main__':(требование multiprocessing spawn).
Стадии конвейера (повторяют v8unpack, только распаковка):
- чтение внешних V8-контейнеров (32/64-бит) в файлы как есть;
- inflate (raw deflate) + рекурсивные вложенные контейнеры;
- декодирование метаданных: скобкофайлы
{}→ JSON, тексты модулей →.bsl.
Схема базы данных
source— исходный файл: путь, дата, тип/имя/uuid корневого объекта;meta_object— объект метаданных:path(напримерCatalog/Номенклатура/CatalogForm/ФормаЭлемента),type(Catalog, Document, CommonModule, …),type_ru(русское имя «как в конфигураторе»: Справочник, Документ, Общий модуль, …),name,uuid,comment,obj_version,header_json(полный разобранный заголовок),parent_id+ord(иерархия и порядок братьев — как в дереве конфигуратора);meta_attribute— реквизиты объекта:ord,name,type_strв порядке объявления. Примитивы — Строка(50)/Число/Дата/Булево; ссылки —Ссылка: <путь>(таблица ссылочных uuid из потока.10корневого объекта, коллизии имён дизамбигуируются по типу объекта); определяемые типы —ОпределяемыйТип: <путь> (<состав>)(состав раскрывается); составные типы — члены через|; абстрактные («ЛюбаяСсылка» и т.п.) —Ссылка;attribute_ref— связи реквизитов с объектами метаданных:uuid(ссылочный uuid из дескриптора типа, для составных/определяемых типов — по строке на член) иobject_id— объект, на который ведёт ссылка (NULL для абстрактных типов); зависимость «реквизит ↔ объекты» строится join'ом без разбора строкtype_str;enum_value— значения перечислений (ord,name) в порядке объявления;predefined— предопределённые элементы (ord,name,code,display) из «Предустановленные данные.bin»;common_target— привязка общих реквизитов к объектам метаданных;meta_tabular— табличные части объекта (ord,name) в порядке объявления; поля табличных частей лежат вmeta_attributeс заполненной колонкойtabular(имя секции) — цепочки видаТ.Запасы.Номенклатурав запросах проверяются по этим данным.module— паспорт модуля:code_name(obj, mgr, mod, con, app …) и для общих модулейcontext(Сервер/Клиент/Вызов сервера/…), плюсbody— текст модуля как есть без кода методов: комментарии, препроцессор#Если…,#Область…, директивы и сигнатуры видаПроцедура Имя(п1, п2) Экспортсохранены; подстановкаmethod.bodyвместо каждой сигнатуры восстанавливает исходный модуль;method— только процедуры/функции: вид, имя, сигнатура,is_export,directives(строка&НаКлиенте, &НаСерверебез скобок),description(блок комментариев непосредственно над методом, как есть с//),line_start/line_end,body— строго сПроцедура/ФункцияпоКонецПроцедуры/КонецФункции;#…и комментарии вне тела в метод не попадают;subsystem_content— состав подсистем (ссылки на объекты в порядке объявления) — для обхода дерева подсистем, как в конфигураторе;skd_query— запросы, извлечённые из макетов СКД объекта (ord,query), — для проверки корректности запросов 1С;file— прочие файлы дампа (help.html, инфо-JSON, картинки): путь, тип, размер, содержимое для текстовых (BLOB — только при--store-blobs).
Пример запроса:
-- реквизиты справочника с типами
SELECT a.name, a.type_str
FROM meta_attribute a JOIN meta_object o ON o.id = a.object_id
WHERE o.path = 'Catalog/Номенклатура' ORDER BY a.ord;
-- краткое представление модуля (текст без кода методов)
SELECT m.body FROM module m JOIN meta_object o ON o.id = m.object_id
WHERE o.path = 'Catalog/Номенклатура' AND m.code_name = 'obj';
-- тело конкретного метода
SELECT mt.body FROM method mt JOIN module m ON m.id = mt.module_id
JOIN meta_object o ON o.id = m.object_id
WHERE o.path = 'Catalog/Номенклатура' AND m.code_name = 'obj'
AND mt.name = 'ПриСозданииНаСервере';
Состав
src/confdb/v8— ядро распаковки (контейнеры 1С, inflate, скобкофайлы, метаданные);src/confdb/db— схема SQLite и запись результата;src/confdb/extract.py— конвейер стадий;src/confdb/query_lang.py— разбор и семантический контроль языка запросов 1С (подкомандаconfdb check);tests— тесты на малых фикстурах (test.bat).
Требования
- Python 3.9+, только стандартная библиотека.
Установка Confdb
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Zom31C/1confdb-knwFAQ
Confdb MCP бесплатный?
Да, Confdb MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Confdb?
Нет, Confdb работает без API-ключей и переменных окружения.
Confdb — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Confdb в Claude Desktop, Claude Code или Cursor?
Открой Confdb на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
автор: wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
автор: madhurprashPostgres
Query your database in natural language
автор: AnthropicPostgreSQL
Read-only database access with schema inspection.
автор: modelcontextprotocolRedis
Interact with Redis key-value stores.
автор: modelcontextprotocolSQLite
Database interaction and business intelligence capabilities.
автор: modelcontextprotocolmxcp
Open-source framework for building enterprise-grade MCP servers using just YAML, SQL, and Python, with built-in auth, monitoring, ETL and policy enforcement.
автор: raw-labstadas-github/a2asearch-mcp
MCP server to search 4,800+ MCP servers, AI agents, CLI tools and agent skills. Install: npx -y a2asearch-mcp. Ask Claude: "Find MCP servers for database access
автор: tadas-githubjulien040/anyquery
Query more than 40 apps with one binary using SQL. It can also connect to your PostgreSQL, MySQL, or SQLite compatible database. Local-first and private by desi
автор: julien040drakonkat/wizzy-mcp-tmdb
A MCP server for The Movie Database API that enables AI assistants to search and retrieve movie, TV show, and person information.
автор: drakonkatCompare Confdb with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории data
