Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Confdb

БесплатноНе проверен

MCP server that provides read-only access to 1C:Enterprise configuration metadata extracted into SQLite, enabling LLMs to inspect objects, modules, and validate

GitHubEmbed

Описание

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, только распаковка):

  1. чтение внешних V8-контейнеров (32/64-бит) в файлы как есть;
  2. inflate (raw deflate) + рекурсивные вложенные контейнеры;
  3. декодирование метаданных: скобкофайлы {} → 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+, только стандартная библиотека.

from github.com/Zom31C/1confdb-knw

Установка Confdb

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/Zom31C/1confdb-knw

FAQ

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-devавтор: wenb1n-dev

Postgres Server

This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools

madhurprashавтор: madhurprash

Postgres

Query your database in natural language

Anthropicавтор: Anthropic

PostgreSQL

Read-only database access with schema inspection.

modelcontextprotocolавтор: modelcontextprotocol

Redis

Interact with Redis key-value stores.

modelcontextprotocolавтор: modelcontextprotocol

SQLite

Database interaction and business intelligence capabilities.

modelcontextprotocolавтор: modelcontextprotocol

mxcp

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-labsавтор: raw-labs

tadas-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-githubавтор: tadas-github

julien040/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

julien040автор: julien040

drakonkat/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.

drakonkatавтор: drakonkat

Compare Confdb with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории data