For the complete documentation index, see llms.txt. This page is also available as Markdown.

CodeMetadataSearchServer

Поиск по метаданным, справке, коду, формам и зависимостям конфигурации 1С. Генерация и валидация XML.

Назначение

CodeMetadataSearchServer — комплексный MCP-сервер для глубокой работы с конфигурацией 1С. Индексирует метаданные, код модулей, формы, HTML-справку и XML-определения. Предоставляет ИИ 28 инструментов для:

  • Семантического и структурного поиска по метаданным конфигурации

  • Полнотекстового и векторного поиска по коду модулей

  • Анализа структуры BSL-модулей, иерархии вызовов и зависимостей

  • Поиска и анализа форм объектов конфигурации

  • Поиска по HTML-справке конфигурации

  • Генерации XSD-схем и валидации XML

  • Чтения и обратной сборки двоичных обычных форм (Form.bin)

Доступные инструменты MCP (28)

Инструменты сгруппированы по функциональным областям.

Метаданные

Инструмент
Описание

metadatasearch

Поиск объектов конфигурации по имени или описанию

get_metadata_details

Детальная структура объекта: реквизиты, типы, табличные части, синонимы

Код

Инструмент
Описание

codesearch

Поиск по коду модулей объектов, форм и общих модулей

search_function

Поиск процедуры или функции BSL по имени

get_module_structure

Полная структура BSL-модуля: процедуры, функции, области, статистика

get_method_call_hierarchy

Иерархия вызовов метода: кто вызывает и что вызывается

search_forms

Поиск форм объектов конфигурации

inspect_form_layout

Детальная структура формы: элементы, реквизиты, команды, обработчики

graph_dependencies

Граф зависимостей объекта конфигурации

bsl_scope_members

Доступные методы, свойства и события для BSL-контекста

Компактный API

Инструмент
Описание

compact_search

Ограниченный бюджетом поиск по символам и метаданным с курсорной пагинацией

compact_symbol

Получение BSL-символов и их точных позиций, опционально — тел процедур и функций

compact_call

Ограниченный обход связей вызовов для BSL-символа

compact_metadata

Постраничное получение объектов метаданных с ограниченными списками реквизитов

Справка

Инструмент
Описание

helpsearch

Поиск по HTML-справке конфигурации

XSD-схемы

Инструмент
Описание

get_xsd_schema

Получение XSD-схемы для типа объекта метаданных

verify_xml

Валидация XML-содержимого по XSD-схеме

Артефакты конфигурации

Инструмент
Описание

get_form_artifact

Чтение артефакта формы: дерево элементов, реквизиты, команды, provenance

get_role_artifact

Объявленные права роли или роли, дающие права на объект

get_report_artifact

Структура отчёта: формы, макеты, схема компоновки данных

list_artifact_links

Ссылки артефакта на внешние результаты прогонов и тестов

register_external_result_link

Регистрация ссылки на неизменяемый внешний результат

Обычные формы

Инструмент
Описание

unpack_ordinary_form

Распаковка двоичного Form.bin обычной формы в редактируемый рабочий каталог

build_ordinary_form

Обратная сборка рабочего каталога в Form.bin с проверкой логической полезной нагрузки

Служебные (всегда доступны)

Инструмент
Описание

reindex

Запуск переиндексации в фоновом режиме

stats

Статистика индексов, модель эмбеддингов, аптайм

plugin_state

Состояние плагинов: файлы, хуки, таблицы, ошибки, эпоха, вклад в fingerprint поколения

plugin_reload

Атомарно перечитать каталог плагинов без перезапуска сервера


Описание инструментов

metadatasearch

Поиск объектов метаданных, реквизитов и типов в конфигурации 1С. Для поиска по имени используйте формат вида Справочники.ИмяСправочника.Реквизиты. Для поиска по описанию — текст на русском языке. Используйте точное имя конфигурации, если оно известно.

Параметр
Тип
По умолчанию
Описание

query

string

Имя или описание объекта метаданных

limit

int

5

Количество результатов

object_type

string

""

Фильтр по типу метаданных 1С (Справочник, Документ, РегистрСведений и т.д.)

names_only

bool

false

Компактный список имён объектов (full_path, object_type, synonym) вместо текстовых чанков. Используйте names_only=true для определения релевантных объектов конфигурации, затем получайте детали через get_metadata_details

origin

string

""

Фильтр по происхождению определения: base, extension, имя конкретного расширения или all

Общие параметры бюджета ответа

Инструменты metadatasearch, codesearch, search_function, get_module_structure, get_method_call_hierarchy, graph_dependencies, get_metadata_details, search_forms и inspect_form_layout дополнительно принимают:

Параметр
Тип
По умолчанию
Описание

max_chars

int

0

Максимальный размер сериализованного ответа в символах; 0 использует прежнее поведение

max_items

int

0

Максимум элементов на странице; 0 использует серверный предел

detail_level

string

""

outline для сокращённого ответа или full для полного

cursor

string

""

Непрозрачный next_cursor из предыдущего усечённого ответа

Ответ содержит items_total, items_returned, truncated и next_cursor; элементы получают стабильный item_id, точную location и evidence_path. Инструменты search_function, get_metadata_details и inspect_form_layout также принимают item_id и index_identity для прямого получения одного элемента без повторного поиска. Если индекс изменился, сервер возвращает типизированную ошибку item_id_stale.

Провенанс расширений

Инструменты metadatasearch, codesearch, search_function, get_metadata_details, search_forms и inspect_form_layout дополнительно принимают:

Параметр
Тип
По умолчанию
Описание

origin

string

""

Область поиска по происхождению определения: base — только основная конфигурация, extension — любое расширение конфигурации, имя конкретного расширения — только оно, all (значение по умолчанию) — всё

Применённый фильтр возвращается в поле origin_filter, а каждый результат несёт блок origin с именем конфигурации, из которой он получен, и — для расширяющего определения — с режимом расширения и ссылкой на базовое определение.

Инструмент search_function дополнительно принимает:

Параметр
Тип
По умолчанию
Описание

explain_effective

bool

true

Добавляет в ответ effective_definition: какое определение метода действует, конкурирующие определения с их происхождением и режимами, а также правило, по которому выбрано действующее

Правила разрешения: Вместо замещает базовое определение, Перед и После оставляют базовое действующим и отмечаются как перехватывающие, ИзменениеИКонтроль перенимает определение без замещения. Если один и тот же метод изменяют два и более расширения, ответ возвращает collision со списком всех участников и не выбирает победителя: порядок загрузки расширений — свойство информационной базы, которого нет в файловой выгрузке.

get_metadata_details

Возвращает детальную структуру объекта метаданных: реквизиты с типами, табличные части, синонимы и свойства.

Параметр
Тип
По умолчанию
Описание

object_name

string

Имя или полный путь объекта (Номенклатура, Справочники.Номенклатура, Документ.РеализацияТоваровУслуг)

codesearch

Поиск по коду модулей объектов, форм и общих модулей. Принимает фрагменты кода, имена функций или комментарии.

Параметр
Тип
По умолчанию
Описание

query

string

Код, имя функции, комментарий или описание искомого кода

limit

int

5

Количество результатов

search_function

Поиск процедуры или функции BSL по имени. Поддерживает точный поиск с автоматическим переключением на нечёткий, а также префиксный поиск.

Параметр
Тип
По умолчанию
Описание

name

string

Имя процедуры/функции (ОбработкаПроведения, ПриСозданииНаСервере)

exact

bool

true

Точное совпадение (с автоматическим fallback на нечёткий поиск). false — префиксный/нечёткий поиск

limit

int

10

Количество результатов

include_body

bool

true

Возвращать тело процедуры или функции; при false возвращается только сигнатура

max_body_chars

int

0

Ограничить длину тела; 0 не ограничивает

module_path

string

""

Фильтр по пути модуля до применения лимита

get_module_structure

Возвращает полную структуру BSL-модуля: все процедуры, функции, области и статистику. Концом процедуры или функции считается и КонецПроцедуры с начала строки, и хвост той же строки — Вызов(...);КонецПроцедуры; так записаны однострочные обработчики в выгруженных модулях форм. Литерал "КонецПроцедуры" внутри строки концом не является.

Параметр
Тип
По умолчанию
Описание

module_path

string

Путь к BSL-модулю (полный или частичный)

get_method_call_hierarchy

Возвращает иерархию вызовов для BSL-метода: кто вызывает этот метод (callers), что вызывает этот метод (callees), или оба направления.

Параметр
Тип
По умолчанию
Описание

method_name

string

Имя процедуры/функции для трассировки

direction

string

"both"

Направление: callers, callees или both

depth

int

3

Максимальная глубина обхода

max_nodes

int

2000

Максимум раскрываемых узлов

max_edges

int

20000

Максимум обрабатываемых связей

timeout_ms

int

5000

Временной бюджет обхода; 0 отключает таймаут

module_path

string

""

Фильтр начального метода и обхода по пути модуля

object_name

string

""

Фильтр по объекту конфигурации

search_forms

Поиск форм объектов конфигурации (справочников, документов, регистров и т.д.) по имени объекта, имени формы или заголовку.

Параметр
Тип
По умолчанию
Описание

query

string

Имя объекта, имя формы или заголовок (Номенклатура, ФормаЭлемента, Реализация)

limit

int

10

Количество результатов

inspect_form_layout

Возвращает полную структуру формы объекта конфигурации: иерархию элементов с типами и привязками данных, реквизиты формы, команды и обработчики событий.

Параметр
Тип
По умолчанию
Описание

object_name

string

Имя объекта (Справочник.Номенклатура, Документ.РеализацияТоваровУслуг или краткое Номенклатура)

form_name

string

""

Имя конкретной формы. Пустое значение — форма по умолчанию

graph_dependencies

Запрос графа зависимостей объекта конфигурации: какие объекты использует данный объект и кто ссылается на него.

Параметр
Тип
По умолчанию
Описание

object_name

string

Имя объекта (Номенклатура или Справочники.Номенклатура)

direction

string

"both"

Направление: forward (что использует), reverse (кто использует) или both

limit

int

50

Максимальное количество связей на направление

bsl_scope_members

Возвращает доступные методы, свойства и события для заданного BSL-контекста.

Параметр
Тип
По умолчанию
Описание

context

string

BSL-контекст (Справочник.Номенклатура, Документ.РеализацияТоваровУслуг, Глобальный)

member_type

string

"all"

Фильтр: all, methods, properties или events

helpsearch

Поиск по HTML-справке конфигурации. Полезен, когда точное имя объекта метаданных неизвестно.

Параметр
Тип
По умолчанию
Описание

query

string

Описание объекта метаданных или функциональности

limit

int

5

Количество результатов

get_xsd_schema

Получение XSD-схемы для типа объекта метаданных или подтипа. Схема генерируется из реальных XML-файлов выгрузки конфигурации. Используйте перед генерацией XML, чтобы знать ожидаемую структуру.

Параметр
Тип
По умолчанию
Описание

object_type

string

Тип метаданных (Справочник, Документ, РегистрСведений, РегистрНакопления, Роль) или подтип (Форма, СКД, Макет). Принимаются также английские алиасы: Catalog, Document, InformationRegister, AccumulationRegister, Role, Form, DataCompositionSchema, Template

verify_xml

Валидация XML-содержимого по XSD-схеме для типа метаданных 1С. Возвращает статус валидации и список ошибок.

Параметр
Тип
По умолчанию
Описание

xml_content

string

XML-строка для валидации

object_type

string

Тип метаданных (Справочник, Документ, РегистрСведений, РегистрНакопления, Роль) или подтип (Форма, СКД, Макет). Принимаются английские алиасы

Поиск по символам и метаданным с единым ограниченным ответом. Идентификаторы из результата можно передать в compact_symbol или compact_metadata.

Параметр
Тип
По умолчанию
Описание

query

string

Поисковый запрос

kinds

string

""

symbol, metadata или оба вида при пустом значении

cursor

string

""

Непрозрачный токен следующей страницы

max_items

int

0

Максимум элементов; 0 использует серверный предел

max_bytes

int

0

Максимальный размер ответа в байтах; 0 использует серверный предел

max_candidates

int

0

Максимум кандидатов для объединения поисковых каналов

compact_symbol

Параметр
Тип
По умолчанию
Описание

name

string

""

Имя процедуры или функции

module_path

string

""

Фильтр по каноническому пути модуля

item_id

string

""

Стабильный идентификатор из компактного ответа

include_body

bool

false

Включить тело BSL-символа

cursor

string

""

Токен следующей страницы

max_items

int

0

Максимум элементов

max_bytes

int

0

Максимальный размер ответа в байтах

compact_call

Параметр
Тип
По умолчанию
Описание

symbol

string

""

Имя начального BSL-символа

item_id

string

""

Стабильный идентификатор символа

direction

string

"callees"

callees, callers или both

depth

int

1

Глубина обхода

module_path

string

""

Фильтр по пути модуля

cursor

string

""

Токен следующей страницы

max_items / max_bytes

int

0

Бюджет размера ответа

max_nodes / max_edges

int

0

Бюджет узлов и связей; 0 использует серверный предел

timeout_ms

int

0

Временной бюджет; 0 использует серверный предел

compact_metadata

Параметр
Тип
По умолчанию
Описание

query

string

""

Поиск объекта метаданных

object_type

string

""

Фильтр по типу метаданных

item_id

string

""

Стабильный идентификатор объекта

cursor

string

""

Токен следующей страницы

max_items / max_bytes

int

0

Бюджет размера ответа

max_members

int

0

Максимум реквизитов и других членов на объект

Все компактные инструменты возвращают общий конверт с items, items_total, items_returned, truncated, next_cursor и provenance. Курсор привязан к состоянию индекса: после переиндексации возвращается cursor_stale, а для повреждённого токена — cursor_invalid.

get_form_artifact

Читает один артефакт формы конфигурации или один его элемент. Возвращает стабильный идентификатор формы, владельца в канонической форме, имя и вид формы, дерево элементов с именами, типами и вложенностью, объявленные реквизиты и команды, состояние жизненного цикла и запись provenance — откуда и каким маршрутом получен ответ.

Параметр
Тип
По умолчанию
Описание

object_name

string

""

Объект-владелец; принимаются обе формы записи (Документ.ЗаявкаНаРемонт и Документы.ЗаявкаНаРемонт), в идентификаторе всегда возвращается каноническая множественная форма

form_name

string

""

Имя формы

artifact_id

string

""

Идентификатор из любого инструмента артефактов, в том числе идентификатор элемента (<project>:form:<object>.<form>:Элементы.<element>) — тогда возвращается только этот элемент

include_ranges

bool

true

Возвращать диапазоны позиций

operation

string

"read"

Зарезервировано; принимается только read

Инструмент только читает. Он не открывает, не отрисовывает и не выполняет форму и никогда не пишет в выгрузку конфигурации.

get_role_artifact

Возвращает объявленные в конфигурации права роли — либо, в обратном направлении, роли, которые объявляют права на указанный объект.

Параметр
Тип
По умолчанию
Описание

role_name

string

""

Имя роли

artifact_id

string

""

Идентификатор артефакта роли

object_name

string

""

Только этот параметр — обратное направление: роли, объявляющие права на объект

operation

string

"read"

Зарезервировано; принимается только read

С role_name или artifact_id возвращаются идентификатор, имя, синоним и объявленные права — каждое с объектом метаданных в канонической форме, самим правом и признаком выдачи, с provenance на Roles/<Name>/Ext/Rights.xml.

get_report_artifact

Возвращает структуру отчёта: стабильный идентификатор и канонический путь, имя и синоним, формы и макеты как ссылки, объявленные реквизиты и табличные части, а при наличии схемы компоновки данных — её расположение вместе с именами наборов данных и полей.

Параметр
Тип
По умолчанию
Описание

report_name

string

""

Имя отчёта

artifact_id

string

""

Идентификатор артефакта отчёта

operation

string

"read"

Зарезервировано; принимается только read

Ничего не выполняется и результат не компонуется. Если схема есть в выгрузке, но не разобрана этой сборкой, ответ говорит об этом явно, а не опускает поле.

Разрешает ссылки артефакта на внешние результаты прогонов и тестов. Обход в обе стороны: по artifact_id — результаты, связанные с артефактом; по result_uri — артефакты, связанные с результатом. Оба направления обслуживаются одной и той же сохранённой записью.

Параметр
Тип
По умолчанию
Описание

artifact_id

string

""

Артефакт, чьи ссылки нужны

result_uri

string

""

Результат, чьи артефакты нужны

expected_digest

string

""

Ожидаемый content digest; расхождение даёт статус stale

operation

string

"read"

Зарезервировано; принимается только read

Каждая ссылка возвращается с вычисленным статусом: resolved, dangling (артефакт-конец больше не существует), stale (expected_digest не совпадает с записанным) или out_of_scope (конец принадлежит другому проекту). Ссылка, которая больше не разрешается, возвращается со своим статусом, а не опускается. Указанный URI никогда не запрашивается, не открывается и не выполняется.

Записывает ссылку на неизменяемый результат, произведённый снаружи — соседним MCP, CI-задачей или другим элементом конвейера. Сервер хранит только ссылку: стабильный URI, content digest, производящую систему и время записи. Он никогда не производит, не запускает, не перезапускает, не загружает, не изменяет и не удаляет результат.

Параметр
Тип
По умолчанию
Описание

artifact_id

string

Артефакт, к которому привязывается результат

result_uri

string

Стабильный URI результата

result_digest

string

Content digest результата; без него ссылка отклоняется с кодом link_invalid

producer

string

Производящая система

operation

string

"read"

Зарезервировано; принимается только read

Ссылка на артефакт другого проекта отклоняется с кодом out_of_scope. Это единственная запись на поверхности артефактов, и она пишет одну строку в собственное хранилище метаданных сервера — никогда в выгрузку конфигурации и никогда в сам результат.

unpack_ordinary_form

Обычная форма в выгрузке Конфигуратора — это Forms/<Имя>/Ext/Form.bin, двоичный контейнер, а не XML. Индекс форм и артефактные модели читают Ext/Form.xml, которого у обычной формы нет; эта пара инструментов — единственный путь сервера к ней.

Правьте не Form.bin, а распакованный рабочий каталог: payload/ — записи контейнера как есть (только их читает обратная сборка), decoded/ — производные представления для чтения (form.json — раскладка как JSON-совместимые данные, module.bsl — модуль формы). Правка производного представления отклоняется сборкой, а не теряется молча.

Дерево раскладки позиционное: оно структурно разбирается, но не именует элементы. Именованные деревья элементов (*.elem.json) появляются только при высокоуровневом разборе целого CF/CFE/EPF, где имена даёт окружающая метаданная.

Параметр
Тип
По умолчанию
Описание

form_path

string

Абсолютный путь к читаемому Form.bin; кириллица допустима

workspace_path

string

Куда развернуть рабочий каталог. Каталог должен быть новым, пустым или ранее записанным этим же инструментом (тогда нужен overwrite). Непустой чужой каталог отклоняется всегда

overwrite

bool

false

Заменить существующий рабочий каталог этого контракта

include

string

summary

Какую ограниченную выдержку вернуть: summary (только пути), structure, module или all

max_chars

int

4000

Предел размера каждой выдержки; ограничивается потолком сервера

Возврат: полезная нагрузка контракта ordinary-form/1status, entries (имя, вид, размер, sha256, кодировка, пути записи и производного представления), source, manifest_path и запрошенные выдержки. Отказ приходит как status="error" с error_code и подсказкой. Полные производные представления всегда лежат на диске, независимо от того, что попало в ответ.

build_ordinary_form

Записывает рабочий каталог обратно в Form.bin и проверяет результат.

Проверка перечитывает записанное тем же кодом, что читает оригинал, и сравнивает логическую полезную нагрузку — имена записей, размеры и SHA-256 их байтов. Итоговые двоичные файлы намеренно не сравниваются: записи контейнера несут отметки времени записи, поэтому пересобранный Form.bin отличается от исходного побайтно даже когда ничего не менялось. Этот факт сообщает binary_identical, а выжила ли форма — говорит verification.status.

Параметр
Тип
По умолчанию
Описание

workspace_path

string

Рабочий каталог, записанный unpack_ordinary_form

output_path

string

Куда записать Form.bin. Никогда не заменяется молча

overwrite

bool

false

Заменить существующий файл по output_path

verify

bool

true

Перечитать результат и сравнить полезную нагрузку. Оставьте включённым

Возврат: output (путь, размер, sha256), source (оригинал, записанный при распаковке), binary_identical, verified, verification (match / mismatch / skipped с хешами по записям) и changed_entries — записи полезной нагрузки, изменённые после распаковки. Неудавшаяся сборка оставляет прежний файл на месте.

reindex

Запуск переиндексации всех настроенных источников данных. Выполняется в фоновом потоке, возвращает статус немедленно.

Параметр
Тип
По умолчанию
Описание

force

bool

false

Если false — обновляются только изменённые файлы. Если true и есть дорожка с несовместимым FTS (rebuild_required), пересобираются только повреждённые дорожки, здоровые переносятся. Если повреждённых нет — полная переиндексация с нуля

stats

Состояние сервера одним вызовом. Параметров не принимает. Разделы ответа:

Раздел
Что в нём

collections

Количество документов по коллекциям (metadata, code, help, forms)

embedding_provider

Типизированное состояние провайдера эмбеддингов: provider (remote/local), status (ok, unreachable, unauthorized, model_not_found, budget_exceeded, not_configured, unknown), причина выбора, модель, хост эндпоинта; для локального — бюджет и оценка памяти. Ключ API не содержится ни в каком виде

generation

Жизненный цикл поколений индекса: опубликованное поколение и время публикации, состояние каждой дорожки и счётчики new/changed/deleted/unchanged, строящееся поколение (in_flight), last_failed с типизированной причиной, сохранённые для отката (retained), удерживаемые читателями (pinned), аренда писателя и статус манифеста

indexing

Ход индексации, время последней, статус следующей плановой. last_outcome бывает completed, failed, cancelled или degraded: degraded значит, что прогон завершился, но векторная дорожка не принимает запись (обычно fts_index_incompatible). Поиск по опубликованному поколению продолжает отвечать; в indexing.error названы дорожки, лечение — reindex(force=true)

vector_store_health

Состояние оптимизации и целостности хранилища по дорожкам, счётчики ошибок записи, признак карантина

release

Идентичность сборки: версия, digest, диапазон поддерживаемых раскладок индекса

sessions

Границы и счётчики транспортных сессий

Раздел generation читается без аренды писателя: чтение статистики не блокирует сборку индекса и не блокируется ею.


Поколения индекса

Индекс неизменяем по поколениям: сборка пишет новое поколение рядом с обслуживающим и становится опубликованной только целиком и только после проверки.

  • Неудавшаяся сборка никогда не публикуется. Если во время сборки пропал провайдер эмбеддингов, поколение завершается состоянием failed с причиной provider_failure, указатель публикации продолжает называть прежнее поколение, а инструменты поиска продолжают отвечать из него. Причина видна в stats().generation.last_failed — пустой индекс и «успех» в такой ситуации невозможны.

  • Удалённые объекты действительно исчезают. Объект, пропавший из выгрузки, снимается с обслуживания и при инкрементальном обновлении, и при полной пересборке (reindex(force=true)): он не появляется в списках и результатах поиска, а запрос по его идентификатору возвращает типизированный результат removed с последней индексной идентичностью, в которой он существовал, — а не «артефакт не найден».

  • Откат возможен. Прошлые поколения хранятся в количестве GENERATION_RETENTION_COUNT и доступны для отката; поколение, которое ещё удерживает читатель, не удаляется.


Возможности

ИИ получает инструменты для:

  • Метаданные — поиск объектов конфигурации, получение детальной структуры реквизитов и типов

  • Код — семантический поиск по коду, точный поиск функций/процедур, анализ структуры модулей, иерархия вызовов

  • Формы — поиск форм объектов, получение полной структуры формы (элементы, реквизиты, команды, обработчики)

  • Зависимости — граф зависимостей между объектами конфигурации

  • BSL-контекст — доступные методы, свойства и события для контекстов 1С

  • Справка — поиск по HTML-справке конфигурации

  • XSD и валидация — генерация XSD-схем из конфигурации и валидация XML

Примеры использования

  • "Какие реквизиты есть у документа РеализацияТоваров?" → metadatasearch + get_metadata_details

  • "Найди все обработки, связанные с печатью" → metadatasearch

  • "Где в конфигурации используется регистр ОстаткиТоваров?" → graph_dependencies

  • "Покажи структуру справочника Номенклатура" → get_metadata_details

  • "Найди функцию ОбработкаПроведения" → search_function

  • "Покажи иерархию вызовов метода РассчитатьСумму" → get_method_call_hierarchy

  • "Какие формы есть у документа Реализация?" → search_forms

  • "Покажи структуру формы элемента Номенклатуры" → inspect_form_layout

  • "Какие методы доступны у объекта Справочник.Номенклатура?" → bsl_scope_members

  • "Получи XSD-схему для справочника" → get_xsd_schema

  • "Проверь этот XML на соответствие схеме документа" → verify_xml

Требования

  • Docker Engine или Docker Desktop с поддержкой Linux-контейнеров

  • Лицензионный ключ

  • Embedding модель (LM Studio или CPU)

  • Выгрузка конфигурации из Конфигуратора

Порт

8000

MCP endpoint: /mcp. По умолчанию используется streamable-http; для SSE установите USESSE=true. /live проверяет процесс и транспорт, /ready — готовность обязательных индексов и embedding-провайдера. /health временно сохранён как устаревший алиас /live.

Образ Docker

Варианты образа

Тег
Архитектура
Размер
Описание

latest

amd64

~2.9 GB

Полная версия с PyTorch (локальные embedding + API)

light

amd64

~290 MB

Без PyTorch (embedding только через API — LM Studio, OpenRouter и т.д.)

arm64

arm64

~500 MB

Для Apple Silicon / ARM серверов

Используйте light-beta, если embedding модель работает через внешний API (LM Studio, OpenRouter). Образ в 10 раз легче. Каждый вариант опубликован в stable (latest, light, arm64) и beta (latest-beta, light-beta, arm64-beta); последние контракты и исправления сначала появляются в beta. См. Каналы образов.

Подготовка данных

Требуется один основной источник:

  1. Designer XML-выгрузка в файлы из Конфигуратора (рекомендуется), либо проект 1C:EDT.

  2. Текстовый отчёт по метаданным нужен только для совместимого режима METADATA_SOURCE=report.

Подробнее: Подготовка данных

Быстрый старт

Конфигурация Cursor

Дополнительно: rlm-tools-bsl (RLM-подход)

CodeMetadataSearchServer использует RAG-подход — предварительно индексирует код и метаданные для семантического поиска. Для дополнительного анализа без предварительной индексации можно использовать rlm-tools-bsl — MCP-сервер для токен-эффективного анализа кодовых баз 1С (BSL).

CodeMetadataSearchServer (RAG)
rlm-tools-bsl (RLM)

Подход

Предварительная индексация, семантический поиск

Анализ файлов на лету, без индексации

Время старта

Часы на индексацию

0 секунд

Качество поиска

Высокое (эмбеддинги + BM25 + реранкер)

Высокое (для точечных запросов)

Экономия контекста

Чанки релевантного кода

До 95% за счёт серверных хелперов

Инфраструктура

Docker + embedding модель

pip install (Python 3.10+)

Структура раздела

Доработка

Сервер поддерживает систему плагинов: каталог /app/plugins (PLUGIN_DIR) читается при каждом старте, отдельного флага включения нет. Доступны хуки on_startup, on_request, on_search_candidates, on_result (call-scoped), on_source_file, on_chunk, on_metadata_object (derived-state) и таблицы QUERY_ALIASES, TOOL_PRESETS. Текущее состояние показывает plugin_state, перечитывает каталог plugin_reload.

Полный справочник контракта лежит в образе: /app/src/plugin_api.py, короткая версия — /app/plugins/AGENTS.md, закомментированный пример со всеми хуками — /app/plugins/example.py. Проверить плагин без сборки индекса и запуска сервера: python src/plugin_dry_run.py plugins/10_my_plugin.py.

Без плагинов сервер настраивается составом индексируемых данных и параметрами поиска — см. Конфигурация.

Last updated