> For the complete documentation index, see [llms.txt](https://docs.onerpa.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onerpa.ru/mcp-servery-1c/servery/ssl-search-server.md).

# SSLSearchServer

Поиск по Библиотеке стандартных подсистем (БСП).

## Назначение

SSLSearchServer предоставляет ИИ доступ к справке по БСП (Библиотека стандартных подсистем) нужной вам версии. Если ваша конфигурация использует БСП — этот сервер незаменим.

## Доступные инструменты MCP

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

| Инструмент           | Описание                                                                                                          |
| -------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `ssl_search`         | Поиск функций и процедур БСП по описанию или имени                                                                |
| `plugin_state`       | Состояние плагинов, активные hooks, ошибки и fingerprint производного индекса                                     |
| `plugin_reload`      | Атомарно перечитать каталог плагинов без перезапуска сервера                                                      |
| `embedding_state`    | Состояние embedding-провайдера: поддержка `input_type`, размерность и причина выбранного режима                   |
| `vector_store_state` | Состояние векторного хранилища: рантайм zvec, обслуживающее поколение, запись манифеста и итог последней миграции |
| `session_state`      | Границы и счётчики HTTP-сессий сервера                                                                            |

{% hint style="warning" %}
Расширенная сигнатура `ssl_search` (`limit`, `min_score`, `database`, `detail`, `cursor`, `doc_id`) и пять служебных инструментов опубликованы в beta. Stable-теги сохраняют прежнюю поверхность. Перед автоматическим использованием сверяйтесь с `tools/list` текущего подключения. `plugin_reload` меняет активное поведение процесса: агент вызывает его только по явному поручению оператора, а не как часть обычного поиска.
{% endhint %}

### 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=3111.db version=3.1.11 doc_id=3111.db_42
 source=3111.db#functions section="Базовая функциональность"
 lane=semantic score=0.9269 (similarity, higher is more relevant)]
```

Поля заголовка: `database` — база БСП, из которой взята запись; `version` — версия БСП, которую разрешил сервер; `doc_id` — идентификатор записи в индексе; `source` — место внутри корпуса; `section` — раздел библиотеки (в кавычках, потому что имя подсистемы содержит пробелы); `lane` — маршрут, которым получен результат; `score` — similarity, на которую действует `min_score`.

**Маршруты поиска.** Запрос, синтаксически являющийся именем символа — один идентификатор, при необходимости с точкой, либо такое имя со списком параметров, — сначала ищется точным совпадением по каноническому имени, и это `lane=exact`; карточка такого результата содержит строку `Signature:`. Всё остальное отвечает гибридное извлечение: векторная дорожка и полнотекстовая (BM25) дорожка по одному и тому же корпусу, объединённые reciprocal rank fusion. Каждый результат называет дорожку, которой получен (`semantic`, `lexical`, `hybrid`, `exact` или `fetch`). Если имя соответствует нескольким записям (например, двум перегрузкам), возвращается код `ambiguous_name` со списком кандидатов, их сигнатурами и `doc_id`, а не одна произвольно выбранная запись.

Дорожки отключаются настройками: `EXACT_LOOKUP=false` убирает точный маршрут, `HYBRID_SEARCH=false` возвращает сервер к одной только векторной дорожке — без перестроения индекса, меняется только путь запроса.

**Бюджет ответа.** Длина ответа не превышает `MAX_RESPONSE_CHARS` (по умолчанию 4000 символов) и измеряется на готовой строке. Обычно результаты отбрасываются целиком с конца и не пересказываются. Исключение — если один лучший результат сам не помещается: сервер возвращает его дословный префикс с явной отметкой `truncated`, `doc_id` и инструкцией получить полную запись, а курсор продолжает с символьного смещения. Ответ завершается строкой вида:

```
[total=12 returned=3 truncated=true cursor=eyJk...]
```

`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`, поэтому два одинаковых вызова отвечают одинаково.

Если результатов выше порога нет, сервер возвращает типизированный ответ с кодом `not_found` без correlation id: ничего не сломалось, и повтор вызова вернёт то же самое.

## Возможности

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

* Поиска функций БСП
* Объяснения назначения процедур
* Подсказки по правильному использованию
* Учёта особенностей разных версий БСП

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

* "Как в БСП получить список пользователей?"
* "Какая функция БСП для отправки email?"
* "Как правильно использовать ОбщегоНазначения.ЗначениеРеквизитаОбъекта?"

## Требования

* Docker Engine или Docker Desktop с поддержкой Linux-контейнеров
* Лицензионный ключ
* Embedding модель (LM Studio или CPU)

## Порт

**8008**

## Образ Docker

```
comol/mcp_ssl_server:latest-beta
```

Stable: `latest`, `light`, `arm64`; beta: `latest-beta`, `light-beta`, `arm64-beta`. Новые функции сначала появляются в beta. Подробнее: [Каналы образов](/mcp-servery-1c/kanaly-obrazov.md).

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

```powershell
docker run -d -p 8008:8008 `
  --name mcp_ssl_server `
  -e LICENSE_KEY=YOUR_LICENSE_KEY `
  -e SSL_VERSION=3.1.11 `
  -v "E:/bases/mcp_ssl_beta:/app/zvec_db" `
  comol/mcp_ssl_server:latest-beta
```

{% hint style="warning" %}
Укажите вашу версию БСП в параметре `SSL_VERSION`!
{% endhint %}

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

```json
{
  "mcpServers": {
    "1c-ssl-mcp": {
      "url": "http://localhost:8008/mcp",
      "connection_id": "1c_ssl_service_001"
    }
  }
}
```

## Как узнать версию БСП

В Конфигураторе 1С:

1. Справка → О программе
2. Найдите "Библиотека стандартных подсистем"
3. Скопируйте номер версии (например, 3.1.11)

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

* [Установка](/mcp-servery-1c/servery/ssl-search-server/ustanovka.md) — команды запуска
* [Конфигурация](/mcp-servery-1c/servery/ssl-search-server/konfiguraciya.md) — все параметры

## Доработка

Сервер расширяется плагинами: четыре hooks (`on_startup`, `on_request`, `on_result`, `on_entry`) и таблица `QUERY_ALIASES`. См. [Систему плагинов](/mcp-servery-1c/sistema-pluginov.md) и [Конфигурацию](/mcp-servery-1c/servery/ssl-search-server/konfiguraciya.md).
