> 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/templates-search-server.md).

# TemplatesSearchServer

Поиск по шаблонам кода 1С и проектная память.

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

TemplatesSearchServer предоставляет ИИ библиотеку готовых шаблонов и паттернов кода 1С, а также проектную память для хранения заметок и решений. Сервер содержит публичные шаблоны и позволяет добавлять собственные — как через веб-интерфейс, так и программно через MCP-инструменты.

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

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

* Поиска типовых шаблонов кода (гибридный: векторный + полнотекстовый)
* Просмотра каталога всех шаблонов и получения конкретного шаблона по ID
* Добавления новых шаблонов прямо из чата
* Сохранения заметок, решений и наблюдений в проектную память
* Поиска по памяти с помощью семантического поиска

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

**Шаблоны кода:**

* "Как обойти результат запроса?"
* "Покажи шаблон обработки проведения документа"
* "Как правильно работать с транзакциями?"
* "Шаблон формы с динамическим списком"

**Проектная память:**

* "Запомни, что в этом проекте мы используем БСП 3.1"
* "Что мы решили по архитектуре обменов?"
* "Сохрани решение по обработке ошибок в HTTP-сервисах"

## Особенности

* Содержит публичные шаблоны с [fastcode.im](https://fastcode.im/Templates)
* **Веб-интерфейс** для управления шаблонами и заметками: `http://localhost:8004/extend/`
* Добавление собственных шаблонов через веб-интерфейс или MCP
* **Проектная память** — ИИ может сохранять и извлекать заметки между сессиями
* Гибридный поиск: комбинация векторного (семантического) и полнотекстового

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

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

| Инструмент       | Описание                                                      |
| ---------------- | ------------------------------------------------------------- |
| `templatesearch` | Гибридный поиск шаблонов кода по описанию или ключевым словам |
| `list_templates` | Список всех шаблонов (ID и описание, без кода)                |
| `get_template`   | Получение полного шаблона по ID (с исходным кодом)            |
| `add_template`   | Добавление нового шаблона с автоматической индексацией        |
| `remember`       | Сохранение заметки в проектную память                         |
| `recall`         | Семантический поиск по проектной памяти                       |

***

### templatesearch

Выполняет гибридный поиск по библиотеке шаблонов кода 1С: комбинирует векторный (семантический) и полнотекстовый поиск. Запросы принимаются на русском языке.

| Параметр | Тип    | Обязательный | Описание                                                               |
| -------- | ------ | ------------ | ---------------------------------------------------------------------- |
| `query`  | string | да           | Поисковый запрос — описание нужной функциональности или ключевые слова |

**Возврат**: Отформатированная строка с найденными шаблонами (название, описание, код).

**Логика поиска** зависит от длины запроса:

* 1 слово — сначала полнотекстовый, затем векторный поиск
* 2–3 слова — сначала векторный, затем полнотекстовый поиск
* 4+ слов — только векторный поиск

***

### list\_templates

Возвращает список всех шаблонов в базе — ID и описание. Исходный код не включается; для получения кода используйте `get_template`.

**Параметры:** нет

**Возврат**: JSON-массив объектов `{id, description}`.

**Пример ответа:**

```json
[
  {"id": "1", "description": "Обход результата запроса с выборкой"},
  {"id": "2", "description": "Транзакция с обработкой ошибок"}
]
```

***

### get\_template

Возвращает полный шаблон по идентификатору, включая исходный код.

| Параметр      | Тип    | Обязательный | Описание                         |
| ------------- | ------ | ------------ | -------------------------------- |
| `template_id` | string | да           | Идентификатор шаблона (числовой) |

**Возврат**: JSON-объект `{id, description, code}`.

**Пример ответа:**

```json
{
  "id": "1",
  "description": "Обход результата запроса с выборкой",
  "code": "Выборка = Запрос.Выполнить().Выбрать();\nПока Выборка.Следующий() Цикл\n    // Обработка строки\nКонецЦикла;"
}
```

***

### add\_template

Добавляет новый шаблон в базу данных и автоматически индексирует его для поиска. Переиндексация или перезапуск не требуются — шаблон сразу доступен через `templatesearch`.

| Параметр      | Тип    | Обязательный | Описание                                         |
| ------------- | ------ | ------------ | ------------------------------------------------ |
| `description` | string | да           | Подробное описание шаблона (минимум 10 символов) |
| `code`        | string | да           | Исходный код на языке 1С (минимум 10 символов)   |

**Возврат**: JSON `{success, message, id}`.

**Пример ответа (успех):**

```json
{"success": true, "message": "Шаблон успешно добавлен (ID: 42)", "id": 42}
```

**Валидация:**

* Описание и код должны содержать минимум 10 символов каждый
* При несоблюдении — `success: false` с описанием ошибки

***

### remember

Сохраняет текстовую заметку в проектную память для последующего извлечения. Используется для хранения решений, наблюдений, важных фактов о проекте.

| Параметр  | Тип    | Обязательный | Описание                                                          |
| --------- | ------ | ------------ | ----------------------------------------------------------------- |
| `content` | string | да           | Текст заметки — решение, наблюдение или факт (минимум 5 символов) |

**Возврат**: JSON `{success, message, id}`.

**Пример ответа:**

```json
{"success": true, "message": "Запомнено (ID: 7)", "id": 7}
```

***

### recall

Выполняет семантический (векторный) поиск по проектной памяти. Находит заметки, близкие по смыслу к запросу.

| Параметр | Тип    | Обязательный | Описание                                        |
| -------- | ------ | ------------ | ----------------------------------------------- |
| `query`  | string | да           | Что нужно вспомнить (на русском или английском) |

**Возврат**: Отформатированный текст с найденными заметками или сообщение об отсутствии результатов.

**Пример ответа:**

```
**Заметка #3:**
В проекте используется БСП 3.1.8, обмен через EnterpriseData
---
**Заметка #7:**
Решили использовать фоновые задания для загрузки из внешних систем
```

## Веб-интерфейс

После запуска сервера доступен веб-интерфейс:

```
http://localhost:8004/extend/
```

**Шаблоны** (`/extend/`):

* Просмотр, поиск, добавление, редактирование и удаление шаблонов

**Память** (`/extend/memory`):

* Просмотр всех заметок
* Семантический поиск по заметкам
* Добавление и удаление заметок

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

* Docker Desktop с WSL2
* Лицензионный ключ
* Embedding модель (LM Studio или CPU)

## Порт

**8004**

## Образ Docker

```
comol/template-search-mcp:latest
```

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

```powershell
docker run -d -p 8004:8004 `
  --name template_search_mcp `
  -e LICENSE_KEY=YOUR_LICENSE_KEY `
  -v "E:/bases/mcp_templates:/app/data" `
  comol/template-search-mcp:latest
```

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

```json
{
  "mcpServers": {
    "1c-templates-mcp": {
      "url": "http://localhost:8004/mcp",
      "connection_id": "1c_templates_service_001"
    }
  }
}
```

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

* [Установка](/mcp-servery-1c/servery/templates-search-server/ustanovka.md) — команды запуска
* [Редактирование шаблонов](/mcp-servery-1c/servery/templates-search-server/redaktirovanie-shablonov.md) — веб-интерфейс
* [Свои шаблоны](/mcp-servery-1c/servery/templates-search-server/svoi-shablony.md) — добавление собственных
