Управление через MCP
Обновлено
Подключение и доступ
Для управления через ИИ-агента установите приложение MCP и подключите к нему агент своим MCP-клиентом. Плагин «Похожие записи блога» сам регистрирует инструменты в приложении MCP; отдельный MCP-плагин для Блога для этой регистрации не требуется.
В правах токена включите нужные инструменты из раздела «Похожие записи блога для MCP». Они сгруппированы как «Чтение» и «Запись». Каждому инструменту соответствует отдельное право с тем же техническим именем.
Для токена, связанного с сотрудником, дополнительно проверяется доступ сотрудника к приложению «Блог». Чтение связей требует права чтения исходного блога; замена списка и пересчёт с сохранением — права изменения. Пробный расчёт требует права чтения, но право самого MCP-инструмента пересчёта тоже должно быть включено. Массовый пересчёт доступен сотруднику — администратору приложения «Блог».
Для анонимных токенов эти проверки прав сотрудника пропускаются: доступ ограничивается правами самого токена. Проверки блога относятся к исходной записи; инструменты не выполняют отдельную проверку прав сотрудника на каждую связанную публикацию.
Список инструментов
| Инструмент | Подпись права | Назначение и параметры |
|---|---|---|
blog_ewblogrelated_get_settings |
Настройки похожих записей | Без параметров. Возвращает настройки и списки с ID, признаком вывода по хуку и списком по умолчанию |
blog_ewblogrelated_get_posts |
Похожие записи | Обязателен post_id; необязателен list_id. Показывает сохранённые связи в порядке показа, источник и оценку |
blog_ewblogrelated_set_posts |
Заменить похожие записи | Обязательны post_id, related_post_ids; необязателен list_id. Полностью заменяет ручной набор |
blog_ewblogrelated_recalc |
Пересчитать похожие записи | Рассчитывает подборку одной записи или пакет опубликованных записей; параметры описаны ниже |
Изменять общие настройки или создавать списки эти инструменты не умеют. Это делается в настройках плагина.
Узнать ID списка и текущие связи
Сначала запросите настройки. Если list_id не передан в просмотр или замену связей, выбирается первый по ID список с включённым «Вывод по хуку», а при отсутствии такого — первый по ID список вообще.
В ответе просмотра связей source равен manual или auto; score — оценка автоматической рекомендации. Режим mode имеет значения:
| Значение | Смысл |
|---|---|
manual |
Есть ручные связи; пересчёт их пропускает |
auto |
Есть только автоматические связи |
mixed |
В сохранённых данных одновременно есть ручные и автоматические связи |
none |
Список пуст |
Неопубликованные и удалённые связанные записи не входят в карточки результата и перечисляются в hidden_post_ids. Поле url карточки берётся из записи Блога; инструмент не строит полный адрес страницы на сайте.
Полностью заменить ручной список
Передайте в related_post_ids весь желаемый набор ID в нужном порядке. При успешной непустой замене старые ручные и автоматические связи этого списка убираются, сохраняется новый ручной набор. Дубли ID и ссылка на саму исходную запись не сохраняются; неопубликованные и отсутствующие публикации отбрасываются.
Если непустой запрос не содержит ни одной подходящей записи, возвращается no_valid_posts, прежний набор не меняется. Проверяйте поля saved и skipped, чтобы узнать фактический результат.
Пустой массив related_post_ids снимает ручной набор. Для опубликованной записи при включённых «Автоматические рекомендации» сразу запускается расчёт выбранного списка, даже если его «Вывод по хуку» выключен.
Пересчитать одну запись
Укажите post_id опубликованной записи. Без list_id пересчитываются все списки с включённым «Вывод по хуку». С явным list_id можно пересчитать и список с выключенным выводом по хуку.
С dry_run=true инструмент считает без сохранения. Этот режим работает и при выключенных «Автоматические рекомендации»; для ручного списка он показывает, что подобрал бы алгоритм, сохраняя ручной набор.
В результате для каждой рекомендации возвращаются score, составляющие score_breakdown (tags, categories, blog, freshness) и fallback. Признак fallback=true означает добавление без тематических совпадений для пополнения списка. skipped_manual отмечает наличие ручного набора: обычный пересчёт его пропускает.
Пересчитать все опубликованные записи
Не передавайте post_id. Инструмент обрабатывает записи пакетами по возрастанию ID:
| Параметр | Значение |
|---|---|
offset |
Смещение первой записи, по умолчанию 0 |
limit |
Число обрабатываемых публикаций в пакете: 1–500, по умолчанию 100 |
list_id |
Необязательный ID одного списка; без него обрабатываются списки с включённым «Вывод по хуку» |
Передавайте полученный next_offset в offset следующего запроса, пока next_offset не станет null. Параметр limit здесь задаёт размер пакета публикаций, а число рекомендаций берётся из «Количество автоматических рекомендаций».
Массовый режим требует включённых «Автоматические рекомендации». dry_run разрешён только вместе с post_id.
Примеры просьб к агенту
ID ниже приведены для примера; замените их своими.
- «Покажи настройки похожих записей и ID доступных списков».
- «Покажи похожие записи для статьи 123 в списке 1: какие выбраны вручную, какие автоматически и с какой оценкой».
- «Рассчитай рекомендации для статьи 123 без сохранения и объясни вклад тегов, категорий и свежести».
- «Замени ручной набор статьи 123 в списке 1 на записи 73, 67 и 71 в таком порядке».
- «Сними ручной набор статьи 123 в списке 1 и верни автоподбор».
- «Пересчитай рекомендации всех опубликованных статей пакетами до завершения; ручные списки сохрани».
Какие данные получает агент
Через MCP-клиент агент получает ответы запрошенных инструментов: настройки, названия и описания списков, ID и карточки связанных записей, даты, поле url, источники связей, оценки и результаты пересчёта. Полный текст публикаций эти инструменты в ответ не включают. В коде плагина нет отдельного API-ключа внешнего сервиса; подключение агента выполняется средствами приложения MCP.
Ошибки
Инструменты возвращают ok=false, error_code и error_message, если действие не выполнено. Например, access_denied указывает на недостаток прав, no_lists — на отсутствие подходящего списка, auto_disabled — на выключенный автоподбор при расчёте с сохранением, not_published — на неопубликованную исходную запись для пересчёта.