SSLSearchServer
Поиск по Библиотеке стандартных подсистем (БСП).
Назначение
SSLSearchServer предоставляет ИИ доступ к справке по БСП (Библиотека стандартных подсистем) нужной вам версии. Если ваша конфигурация использует БСП — этот сервер незаменим.
Доступные инструменты MCP
ИИ получает следующие инструменты:
ssl_search
Поиск функций и процедур БСП по описанию или имени
plugin_state
Состояние плагинов, активные hooks, ошибки и fingerprint производного индекса
plugin_reload
Атомарно перечитать каталог плагинов без перезапуска сервера
embedding_state
Состояние embedding-провайдера: поддержка input_type, размерность и причина выбранного режима; блок active (с 27.09.2026) — активная модель, её размерность, backend (api/local), разрешён ли переход на локальную модель (fallback_permitted) и произошёл ли он (fell_back)
vector_store_state
Состояние векторного хранилища: рантайм zvec, обслуживающее поколение, запись манифеста и итог последней миграции
session_state
Границы и счётчики HTTP-сессий сервера
ssl_search
Поиск по документации БСП (Библиотеки стандартных подсистем) с использованием векторного поиска zvec. Рекомендуется всегда использовать, если конфигурация содержит БСП.
query
string
—
Имя метода, описание функции или текст, описывающий нужное действие (на русском языке)
limit
int
5
Количество результатов, от 1 до 20
min_score
float
калиброванный порог сервера
Минимальная cosine similarity; больше — релевантнее
database
string
—
Вернуть результаты только из указанной базы БСП, например 3111.db
detail
string
compact
compact — цитата и ограниченная выдержка; full — запись целиком
cursor
string
—
Непрозрачный маркер из усечённого ответа: вернуть то, что в него не поместилось
doc_id
string
—
Получить ровно эту запись целиком, без поиска
Возврат: Отформатированная строка с результатами, разделёнными ---. Заголовок каждого результата — одна строка вида:
Поля заголовка: database — база БСП, из которой взята запись; version — версия БСП, которую разрешил сервер; doc_id — идентификатор записи в индексе; source — место внутри корпуса; section — раздел библиотеки (в кавычках, потому что имя подсистемы содержит пробелы); lane — маршрут, которым получен результат; score — similarity, на которую действует min_score.
Маршруты поиска. Запрос, синтаксически являющийся именем символа — один идентификатор, при необходимости с точкой, либо такое имя со списком параметров, — сначала ищется точным совпадением по каноническому имени, и это lane=exact; карточка такого результата содержит строку Signature:. Каноническое имя записи — имя с модулем (ОбщегоНазначения.ЗначениеРеквизитаОбъекта), его сервер берёт из строки объявления под заголовком записи. Имя метода без модуля (ЗначениеРеквизитаОбъекта) находит этот метод в любом модуле; если метод с таким именем есть в нескольких модулях, возвращается ambiguous_name со списком кандидатов. Всё остальное отвечает гибридное извлечение: векторная дорожка и полнотекстовая (BM25) дорожка по одному и тому же корпусу, объединённые reciprocal rank fusion. Каждый результат называет дорожку, которой получен (semantic, lexical, hybrid, exact или fetch). Если имя соответствует нескольким записям (например, двум перегрузкам), возвращается код ambiguous_name со списком кандидатов, их сигнатурами и doc_id, а не одна произвольно выбранная запись.
Дорожки отключаются настройками: EXACT_LOOKUP=false убирает точный маршрут, HYBRID_SEARCH=false возвращает сервер к одной только векторной дорожке — без перестроения индекса, меняется только путь запроса.
Индекс имён (SSL от 01.10.2026). У поставленных баз каноническое имя читается из строки объявления под путём записи, а не из первой строки, и карточка называет раздел библиотеки, а не unknown. Отпечаток извлечения из-за этого другой: первый старт один раз пересобирает коллекцию из корпуса и снова вызывает embedding-провайдер. RESET_DATABASE=true не нужен. Пока пересборка не закончилась, /ready сообщает о неготовности, и точный маршрут по голому имени ещё не отвечает. Повторный старт уже пересобранную коллекцию не трогает.
Бюджет ответа. Длина ответа не превышает MAX_RESPONSE_CHARS (по умолчанию 4000 символов) и измеряется на готовой строке. Обычно результаты отбрасываются целиком с конца и не пересказываются. Исключение — если один лучший результат сам не помещается: сервер возвращает его дословный префикс с явной отметкой truncated, doc_id и инструкцией получить полную запись, а курсор продолжает с символьного смещения. Ответ завершается строкой вида:
total — сколько записей совпало под фильтром и порогом этого вызова, returned — сколько несёт этот ответ, truncated — исключил ли бюджет что-то, cursor — маркер для остального. Передайте его обратно в cursor с тем же query. Курсор живёт 300 секунд, хранится в ограниченном реестре процесса (до 1024 записей), не переживает рестарт и привязан к поколению индекса, plugin epoch, запросу и doc_id. Нарушение любой привязки отклоняется с кодом stale_cursor — это значит «искать заново», а не «продолжать».
Compact и full. По умолчанию результат приходит в compact: цитата и ограниченная выдержка. Все поля цитаты присутствуют на обоих уровнях, поэтому compact-результат всегда разрешим: ssl_search(doc_id="3111.db_42") возвращает эту запись целиком без поиска.
Группировка. Ответ берёт не более трёх результатов из одной пары (база, раздел), поэтому пять результатов описывают несколько частей библиотеки, а не пять фрагментов одной. Результаты упорядочены по score, при равенстве — по doc_id, поэтому два одинаковых вызова отвечают одинаково. Поэтому описательный запрос о методе из большого раздела («Базовая функциональность» — около 570 записей) может не вернуть нужную запись, если три других записи этого раздела ранжированы выше; по имени метода она находится точным маршрутом.
Если результатов выше порога нет, сервер возвращает типизированный ответ с кодом not_found без correlation id: ничего не сломалось, и повтор вызова вернёт то же самое.
Ошибки (SSL от 14.10.2026). Поиск, который не уложился в EMBEDDING_SEARCH_DEADLINE («The search did not complete within its deadline…»), был отменён или завершился ошибкой с кодом и correlation id, возвращается как ошибка инструмента: в ответе MCP isError: true, текст тот же. Клиент различает успех и неудачу по статусу вызова, разбирать текст не нужно. Ответ not_found, пустой запрос и пустая база остаются обычными ответами.
Возможности
ИИ получает инструменты для:
Поиска функций БСП
Объяснения назначения процедур
Подсказки по правильному использованию
Учёта особенностей разных версий БСП
Примеры использования
"Как в БСП получить список пользователей?"
"Какая функция БСП для отправки email?"
"Как правильно использовать ОбщегоНазначения.ЗначениеРеквизитаОбъекта?"
Требования
Docker Engine или Docker Desktop с поддержкой Linux-контейнеров
Лицензионный ключ
Embedding модель (LM Studio или CPU)
Порт
8008
Образ Docker
Теги: latest, light, arm64. Подробнее: Теги и ключи образов.
Быстрый старт
Конфигурация Cursor
Как узнать версию БСП
В Конфигураторе 1С:
Справка → О программе
Найдите "Библиотека стандартных подсистем"
Скопируйте номер версии (например, 3.1.11)
Структура раздела
Установка — команды запуска
Конфигурация — все параметры
Доработка
Сервер расширяется плагинами: четыре hooks (on_startup, on_request, on_result, on_entry) и таблица QUERY_ALIASES. См. Систему плагинов и Конфигурацию.
Last updated