К содержимому
Интеграции

Управление через MCP

Обновлено

Подключение

На той же установке Webasyst должно быть приложение MCP. Плагин сам регистрирует инструменты через события MCP; отдельный MCP-плагин для этих пяти инструментов не требуется.

Подключите ИИ-клиент к приложению MCP и выдайте токену нужные права. Адрес подключения и создание токена настраиваются средствами приложения MCP: в настройках «Рекомендуемые товары PRO» отдельных полей подключения нет.

Права доступа

В группе «Товары в блоге для MCP» каждое право соответствует одному инструменту и имеет то же техническое имя.

Инструмент Право в интерфейсе Назначение
blog_ewblogproducts_get_settings Чтение → «Настройки вывода товаров» Настройки, списки и правила вывода
blog_ewblogproducts_list_posts Чтение → «Записи с товарами» Поиск записей с привязками и без них
blog_ewblogproducts_get_products Чтение → «Привязанные товары» Состав одного списка одной записи
blog_ewblogproducts_set_products Запись → «Задать товары записи» Замена или дополнение привязок
blog_ewblogproducts_set_products_bulk Запись → «Задать товары нескольким записям» Пакетное изменение привязок

Если токен действует от имени сотрудника (act_as), чтение требует доступа к блогу, а изменение — права чтения и записи в этом блоге. При токене без act_as дополнительная проверка прав сотрудника не выполняется; доступ ограничивается правами токена.

Настройки: blog_ewblogproducts_get_settings

Вызывается без параметров. Возвращает:

  • enabled и footer_output — общие переключатели;
  • default_list_id — список по умолчанию для чтения и изменения привязок: первый по ID с hook=true, иначе первый по ID; если списков нет — null;
  • lists — ID, название, описание, hook, shown_under_post, запасная подборка fallback_set_id и её имя fallback_set_name, число записей с опубликованными привязанными товарами posts_with_products, готовый shortcode;
  • rules — правила вывода товаров.

shown_under_post учитывает переключатели, но не проверяет, выводит ли тема хук и есть ли у конкретной записи видимые товары. Счётчик posts_with_products не учитывает запасные подборки и теги с ids; он рассчитывается по привязкам во всей установке, без ограничения доступными сотруднику блогами.

Записи: blog_ewblogproducts_list_posts

Параметр Назначение По умолчанию
blog_id Ограничить выборку одним блогом Все доступные блоги
list_id Считать привязки только выбранного списка Все списки
status published, draft, scheduled или deadline Любой статус
has_products true — есть опубликованные привязанные товары, false — нет Без фильтра
offset Сдвиг выборки, от 0 0
limit Размер страницы, от 1 до 500 100

В ответе: total, offset, limit, posts. У записи возвращаются post_id, blog_id, title, url, status, datetime, products_count, published_count, lists со счётчиками и has_shortcode. Порядок — от новых записей к старым.

При list_id общие счётчики и фильтр относятся к выбранному списку, но вложенный массив lists содержит разбивку по всем привязанным спискам записи.

has_products не проверяет фактическую страницу: он не учитывает запасную подборку, прямую вставку ids, настройки размещения или шаблон темы. has_shortcode отмечает наличие фрагмента [ewblogproducts в тексте, без проверки корректности тега. Сам текст записи инструмент не возвращает.

Состав записи: blog_ewblogproducts_get_products

Обязателен post_id; необязателен list_id. При пропуске list_id используется список по умолчанию.

Ответ содержит post_id, list_id, list_title, products, published_count, missing_product_ids. В каждом товаре: product_id, name, url, price, published. Снятые с публикации товары возвращаются с published=false. Товары, которых уже нет в магазине, перечисляются в missing_product_ids.

Здесь возвращаются именно привязки, без подстановки запасной подборки. url товара — значение поля каталога, а не готовый полный адрес страницы; price — цена из таблицы товаров, без форматирования витрины и без поля валюты.

Изменение: blog_ewblogproducts_set_products

Параметр Назначение Обязательность / по умолчанию
post_id ID записи Обязателен
product_ids Массив целочисленных ID товаров, порядок определяет показ Обязателен
list_id ID списка плагина Список по умолчанию
mode replace — заменить весь состав; append — дописать в конец replace

В replace пустой product_ids очищает привязки выбранного списка записи. При этом на сайте может включиться запасная подборка, если она задана. В append старые товары остаются на местах; повторы ID удаляются.

Ответ содержит saved — весь сохранённый состав по порядку, skipped — переданные несуществующие ID, unpublished — неопубликованные товары итогового состава. Неопубликованные товары сохраняются, но стандартным выводом не показываются.

Пример аргументов; все ID нужно заменить своими:

{
  "post_id": 12,
  "list_id": 1,
  "product_ids": [73, 67, 71],
  "mode": "append"
}

Пакет: blog_ewblogproducts_set_products_bulk

Передайте items — от 1 до 100 элементов. В каждом обязательны post_id и product_ids; необязательны list_id и mode. Параметры list_id и mode верхнего уровня действуют для элементов, в которых они не заданы.

{
  "list_id": 1,
  "mode": "replace",
  "items": [
    {"post_id": 12, "product_ids": [73, 67]},
    {"post_id": 15, "product_ids": [71], "mode": "append"}
  ]
}

Элементы обрабатываются независимо. Ошибка одного не отменяет сохранение других. Ответ содержит processed, failed, results. Проверяйте каждый элемент results, включая его ok, skipped и unpublished: общий ok=true не означает, что все записи изменены успешно.

Ошибки

Успешный ответ содержит ok=true. Ошибка содержит ok=false, error_code, error_message.

Код Что проверить
not_found Существует ли запись
no_lists Есть ли хотя бы один список в настройках плагина
list_not_found Верен ли ID списка
blog_not_found Существует ли указанный блог и доступен ли он
access_denied Права сотрудника, от имени которого действует токен
too_many_items Не превышает ли пакет 100 элементов
db_error, app_error, internal_error Текст ошибки, состояние приложений и журнал плагина

Примеры просьб агенту

  • «Покажи списки рекомендуемых товаров и объясни, какие включены для вывода под записью».
  • «Найди опубликованные записи без опубликованных привязанных товаров в списке 1. Учти все страницы выборки».
  • «Покажи состав списка 1 записи 12, отдельно отметь неопубликованные и отсутствующие товары».
  • «Добавь товары 73 и 67 в конец списка 1 записи 12, сохрани текущий порядок и проверь результат».
  • «Замени товары списка 1 у записей 12 и 15 указанными наборами. После обработки покажи ошибки и пропущенные ID».

Для подбора по смыслу агенту дополнительно понадобятся инструменты чтения текста Блога и поиска каталога Магазина. Эти пять инструментов сами не читают полный текст и не ищут товары по названию.

Если обрабатываете выборку has_products=false, сначала соберите ID всех нужных записей, затем меняйте привязки: после сохранения товары меняют состав отфильтрованной выборки, и увеличение offset во время изменений может пропустить записи.

Какие данные получает ИИ-клиент

Через MCP клиент получает названия и параметры списков, сведения о записях, состав привязок, названия, цены и URL товаров, а также результаты изменений. Эти сведения передаются подключённому MCP-клиенту. Использование их внешним ИИ-сервисом зависит от выбранного клиента.

У плагина нет собственных полей API-ключей внешнего сервиса, webhook или заданий cron/CLI для такой работы.