# MCP Tools — Справочник инструментов
Подробное описание всех MCP инструментов для работы со справкой 1С.
> **Примечание:** Инструменты вызываются автоматически AI-ассистентом в Cursor при ваших вопросах. Вы также можете вызывать их явно через чат.
## 🌐 REST API Alternative
**Все MCP инструменты доступны через HTTP REST API!**
Это позволяет использовать функциональность без MCP сессии:
- ✅ В Claude Code skills
- ✅ В собственных скриптах и сервисах
- ✅ Для тестирования через curl
**Endpoints:**
- `POST /api/search` → `search_1c_help`
- `POST /api/platform/search` → `search_1c_platform_api`
- `POST /api/platform/element` → `get_1c_platform_element`
- `POST /api/platform/type-members` → `get_1c_platform_type_members`
- `POST /api/manage` → `manage_platform_help`
📖 **Полная документация REST API с примерами:** [REST_API.md](REST_API.md)
---
## 🔍 Поиск по справке
### search_1c_help
**Назначение:** Универсальный поиск по справке 1С (гибридный: точные совпадения + семантика)
**Параметры:**
| Параметр | Тип | Обязательный | Описание |
| ------------------ | ------ | ------------ | ----------------------------------------------------------------------------------------- |
| `query` | string | ✅ | Поисковый запрос на русском или английском |
| `platform_version` | string | ❌ | Версия платформы (например, "8.3.26"). Если не указана — используется версия по умолчанию |
| `limit` | int | ❌ | Максимальное количество результатов (по умолчанию: 10) |
**Возвращает:**
Список результатов с:
- Заголовок элемента
- Тип (метод, свойство, функция, тип)
- Краткое описание
- Путь к файлу в справке
- Версия платформы
- Оценка релевантности
**Примеры использования:**
```
💬 "Как создать документ в 1С?"
💬 "Покажи информацию про HTTP-запросы"
💬 "Найди методы для работы с транзакциями"
💬 "How to use HTTPConnection"
```
**Особенности:**
- Поддерживает естественные запросы ("как работать с", "что такое")
- Понимает синонимы и похожие термины
- Работает на русском и английском языках
- В ответе указывается: "Показано до N результатов (сейчас M, параметр limit можно увеличить)"
---
## 🎯 Поиск по API платформы
### search_1c_platform_api
**Назначение:** Специализированный поиск по API элементам (функции, методы, свойства, типы, конструкторы)
**Параметры:**
| Параметр | Тип | Обязательный | Описание |
| ------------------ | ------ | ------------ | --------------------------------------------------------------------- |
| `query` | string | ✅ | Имя элемента или поисковый запрос |
| `element_type` | string | ❌ | Тип элемента: "function", "method", "property", "type", "constructor" |
| `platform_version` | string | ❌ | Версия платформы |
| `limit` | int | ❌ | Максимальное количество результатов (по умолчанию: 10) |
**Возвращает:**
Структурированные элементы API с:
- Полное имя (для методов: Родитель.Метод)
- Тип элемента
- Краткое описание
- Сигнатура (параметры и возвращаемое значение)
- Путь к источнику
- Доступность (клиент/сервер/внешнее соединение)
**Примеры использования:**
```
💬 "Найди метод Выполнить"
💬 "Покажи свойства объекта Запрос"
💬 "Найди функцию СтрДлина"
💬 search_1c_platform_api(query="HTTPЗапрос", element_type="type")
```
**Особенности:**
- Поддерживает латинские запросы (например, "HTTP") — при отсутствии семантических совпадений выполняется поиск по английским именам
- Нечувствителен к регистру
- Допускает небольшие опечатки — возвращает ближайшие совпадения с пометкой "Имя элемента не совпало точно, показаны ближайшие совпадения по имени/семантике"
- В ответе явно указывается текущее ограничение по `limit` и фактическое количество возвращённых элементов
---
### get_1c_platform_element
**Назначение:** Получить полную карточку API элемента с детальной информацией
**Параметры (вариант 1 — по имени и типу):**
| Параметр | Тип | Обязательный | Описание |
| ------------------ | ------ | ------------ | ------------------------------------------------------------ |
| `element_name` | string | ✅ | Имя элемента (например, "Выполнить") |
| `element_type` | string | ✅ | Тип: "function", "method", "property", "type", "constructor" |
| `parent_type` | string | ❌* | Родительский тип (для методов/свойств, например, "Запрос") |
| `platform_version` | string | ❌ | Версия платформы |
**Параметры (вариант 2 — по element_id):**
| Параметр | Тип | Обязательный | Описание |
| ------------------ | ------ | ------------ | ------------------------------------------------- |
| `element_id` | string | ✅ | ID в формате "type_Имя" или "method_Родитель_Имя" |
| `platform_version` | string | ❌ | Версия платформы |
Для методов/свойств `parent_type` обязателен при использовании варианта 1
**Возвращает:**
Полную карточку элемента:
- Полная сигнатура
- Описание назначения
- Список параметров с типами и описаниями
- Возвращаемое значение с типом
- Примеры использования (если есть в справке)
- Доступность (клиент, сервер, внешнее соединение, мобильное приложение)
- Синтаксис вызова
**Примеры использования:**
```
💬 "Покажи полную информацию о методе Запрос.Выполнить"
→ get_1c_platform_element(
element_name="Выполнить",
element_type="method",
parent_type="Запрос"
)
💬 "Детали функции СтрДлина"
→ get_1c_platform_element(
element_name="СтрДлина",
element_type="function"
)
💬 "Что делает конструктор Новый для типа HTTPЗапрос?"
→ get_1c_platform_element(
element_name="Новый",
element_type="constructor",
parent_type="HTTPЗапрос"
)
```
**Рекомендации:**
- Для методов и свойств всегда указывайте `parent_type` для точности
- Можно использовать краткий синтаксис с `element_id`: `get_1c_platform_element(element_id="method_Запрос_Выполнить")`
---
### get_1c_platform_type_members
**Назначение:** Получить список всех методов, свойств и конструкторов типа
**Параметры:**
| Параметр | Тип | Обязательный | Описание |
| ---------------------- | ------ | ------------ | --------------------------------------------------------- |
| `type_name` | string | ✅ | Имя типа (например, "Запрос", "Массив", "HTTPЗапрос") |
| `platform_version` | string | ❌ | Версия платформы |
| `member_type` | string | ❌ | Фильтр по типу члена: "method", "property", "constructor" |
| `include_constructors` | bool | ❌ | Включить конструкторы (по умолчанию: true) |
**Возвращает:**
Структурированный список:
- **Методы:** имя, краткое описание, сигнатура (параметры и возвращаемое значение)
- **Свойства:** имя, тип, описание, доступ (чтение/запись)
- **Конструкторы:** сигнатура с параметрами
**Примеры использования:**
```
💬 "Какие методы есть у типа Запрос?"
→ get_1c_platform_type_members(type_name="Запрос")
💬 "Покажи только свойства HTTPЗапрос"
→ get_1c_platform_type_members(
type_name="HTTPЗапрос",
member_type="property"
)
💬 "Как создать Массив? Покажи конструкторы"
→ get_1c_platform_type_members(
type_name="Массив",
member_type="constructor"
)
```
**Особенности:**
- Для некоторых типов (например, ЗаписьJSON) конструкторы могут отсутствовать — зависит от структуры справки в HBK
- Для базовых типов (Запрос, Массив, Структура) конструкторы выводятся корректно
---
## ⚙️ Управление версиями и индексами
### manage_platform_help
**Назначение:** Единый административный инструмент для управления версиями платформы и индексацией справки
**Параметры:**
| Параметр | Тип | Обязательный | Описание |
| ------------------- | ------ | ------------ | ---------------------------------------------------- |
| `action` | string | ✅ | Действие (см. список ниже) |
| `version` | string | ❌* | Версия платформы (для действий с конкретной версией) |
| `force` | bool | ❌ | Принудительное выполнение (для reindex) |
| `show_indexed_only` | bool | ❌ | Показать только проиндексированные версии (для list) |
Обязателен для действий: index, reindex, info, default_set
**Доступные действия (`action`):**
#### Просмотр версий
| Действие | Описание | Дополнительные параметры |
| ------------------------------ | ----------------------------------------------------- | ---------------------------------------------------- |
| `"list"` или `"list_versions"` | Список всех доступных версий с их статусом индексации | `show_indexed_only=True` — только проиндексированные |
| `"list_indexed"` | Список только проиндексированных версий | - |
| `"info"` или `"version_info"` | Подробная информация по версии | `version="8.3.26"` (обязательно) |
#### Индексация
| Действие | Описание | Дополнительные параметры |
| ----------- | ----------------------------------------------- | ------------------------------------------------------------------------ |
| `"index"` | Индексация справки для указанной версии | `version="8.3.26"` (обязательно) |
| `"reindex"` | Переиндексация с возможностью полной перезаписи | `version="8.3.26"` (обязательно) `force=True` — удалить старую коллекцию |
#### Версия по умолчанию
| Действие | Описание | Дополнительные параметры |
| ----------------- | ---------------------------------------------- | ----------------------------------------------- |
| `"default_get"` | Получить текущую версию платформы по умолчанию | - |
| `"default_set"` | Установить версию платформы по умолчанию | `version="8.3.26"` (**полный номер**, не `8.3`) |
| `"default_clear"` | Очистить версию платформы по умолчанию | - |
**Примеры использования:**
```
💬 "Покажи список доступных версий"
→ manage_platform_help(action="list")
💬 "Проиндексируй версию 8.3.26"
→ manage_platform_help(action="index", version="8.3.26")
💬 "Переиндексируй версию 8.3.25 полностью"
→ manage_platform_help(action="reindex", version="8.3.25", force=True)
💬 "Какие версии уже проиндексированы?"
→ manage_platform_help(action="list_indexed")
💬 "Установи версию 8.3.26 по умолчанию"
→ manage_platform_help(action="default_set", version="8.3.26")
💬 "Покажи детали версии 8.3.26"
→ manage_platform_help(action="info", version="8.3.26")
```
**Важные замечания:**
- **Префиксы версий:** В большинстве мест версию можно передавать как `8.3.26` или префикс `8.3` (будет выбрана последняя доступная 8.3.x)
- **Исключение:** Действие `"default_set"` требует **полный формат** версии (`8.3.26`, не `8.3`)
- **Индексация не автоматическая:** После добавления новых HBK файлов нужно вручную запустить индексацию через `action="index"`
---
## 📝 Общие рекомендации
### Версионирование
Если не указан параметр `platform_version`, используется версия в следующем порядке приоритета:
1. HTTP заголовок `x-platform-version` (если MCP клиент поддерживает)
2. Настроенная версия по умолчанию (через `manage_platform_help(action="default_set")`)
3. Последняя доступная версия в `data/help1c/`
### Ограничения результатов
- `search_1c_help`: по умолчанию 10 (можно увеличить при необходимости)
- `search_1c_platform_api`: по умолчанию 10 (можно увеличить при необходимости)
- `get_1c_platform_type_members`: без ограничений (все члены типа)
Если результатов больше лимита, в ответе будет указание: *"Показано до N результатов (сейчас M, параметр limit можно увеличить)"*
### Производительность
- Первый запрос к новой версии может быть медленнее (инициализация BM25 корпуса)
- Последующие запросы — быстрые (результаты кэшируются в Qdrant)
- Гибридный поиск медленнее чисто семантического, но точнее
### Известные ограничения
- **Возвращаемое значение:** До переиндексации у части элементов поле "Возвращает" может содержать артефакты парсинга. После исправлений форматтер их скрывает; для корректного типа возврата желательна переиндексация.
- **Конструкторы:** Для части типов (например, ЗаписьJSON) конструкторы могут не отображаться — зависит от структуры справки в HBK.
---
## 🔗 См. также
- [README.md](../README.md) — быстрый старт
- [ARCHITECTURE.md](ARCHITECTURE.md) — архитектура гибридного поиска
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) — решение проблем