Работа через MCP
Обновлено
Подключение
Для работы с ИИ-агентом установите приложение MCP в той же системе Webasyst. Плагин регистрирует в нём инструменты и права; отдельные API-ключи внешних сервисов в настройках плагина не предусмотрены.
В форме токена приложения MCP найдите группу «Изображения записей блога» и предоставьте нужные права «Чтение» и «Запись». Подключите клиент агента к MCP с этим токеном средствами приложения MCP. Инструмент без соответствующего права в токене недоступен и не показывается агенту.
Если токен выполняет действия от имени пользователя (act_as), плагин дополнительно проверяет его доступ к приложению «Блог». Собственная проверка плагина проверяет доступ к приложению в целом; отдельные права на конкретную запись в этих инструментах не проверяются. Для токена без привязанного пользователя ограничением остаются права самого токена.
Для загрузки требуется версия MCP с классом mcpFileUploadHelper. Если инструмент сообщает mcp_helper_missing, обновите приложение MCP.
Инструменты и права
| Имя инструмента | Подпись права | Группа прав | Назначение и аргументы |
|---|---|---|---|
ewblogpimg_list_groups |
Список групп изображений | Чтение | Без аргументов. Возвращает группы, их числовые ID, строковые идентификаторы, названия, описания и размеры эскизов. |
ewblogpimg_list_post_images |
Изображения записи | Чтение | Обязателен post_id — положительный ID записи. Возвращает изображения с ID, группой, именами файлов, расширением, размером, временем загрузки и публичным URL. |
ewblogpimg_upload_post_image |
Загрузка изображения записи | Запись | Загружает файл в существующую группу существующей записи. Параметры перечислены ниже. |
ewblogpimg_delete_post_image |
Удаление изображения записи | Запись | Принимает image_id из списка изображений. Удаляет файл и эскизы только с confirm: true. |
Имя отдельного права совпадает с именем инструмента. Эти инструменты не создают записи блога и не создают группы: подготовьте их в «Блоге» и настройках плагина.
Параметры загрузки
| Аргумент | Назначение |
|---|---|
post_id |
Обязательный положительный ID существующей записи. |
group_id или group |
Числовой ID группы либо её строковый уникальный идентификатор. При указании обоих используется положительный group_id. |
file_path или url |
Путь к файлу на сервере либо публичный HTTP(S)-адрес. При непустом file_path используется он. |
name |
Необязательное имя файла с расширением. Если не задано, определяется по источнику. Полезно для URL без расширения в пути. |
replace |
По умолчанию false. Для замены изображения в занятой группе требуется true. |
Инструмент разрешает расширения jpg, jpeg, png, gif, webp, svg. Растровый файл должен читаться обработчиком изображений Webasyst.
file_path означает путь на сервере Webasyst, а не на компьютере собеседника. Проверку разрешённых каталогов выполняет MCP: описание инструмента предусматривает /tmp и каталоги данных Webasyst. Для URL используется загрузчик MCP с проверкой адреса; непубличные адреса и протоколы, отличные от HTTP(S), не подходят.
Перед заменой растровый источник проверяется на читаемость как изображение. Затем прежние файлы группы удаляются и выполняется загрузка. Это не атомарная замена: ошибка последующей обработки не гарантирует сохранение прежней картинки.
При загрузке применяются те же настройки эскизов, @2x, временной метки и премиальной конвертации в WebP, что и в редакторе.
Примеры просьб агенту
Покажи группы изображений записей блога и размеры эскизов.
Покажи изображения записи блога с ID 42 и ссылки на них.
Загрузи изображение по ссылке https://example.com/cover.jpg
в группу default записи 42. Если изображение уже есть, не заменяй его.
Замени изображение группы default записи 42 файлом по этой ссылке.
Используй replace=true.
Покажи изображение с ID 17 и запись, к которой оно относится.ID и URL в примерах условные. Удаление следует запрашивать отдельно, указав найденный ID и явно подтвердив действие:
Подтверждаю удаление изображения с ID 17 вместе с его эскизами.
Вызови ewblogpimg_delete_post_image с image_id=17 и confirm=true.Без confirm: true инструмент возвращает confirm_required и сведения об изображении, не удаляя его.
Данные и ошибки
MCP-клиент получает результаты вызовов: группы, сведения о файлах и публичные ссылки. При загрузке по URL сервер Webasyst обращается к указанному источнику и скачивает файл. Затем изображение сохраняется в данных приложения «Блог»; временная скачанная копия удаляется после обработки. Дальнейшая передача результатов внешней модели определяется используемым MCP-клиентом.
Успешный ответ содержит ok: true. При отказе возвращаются ok: false, error_code и error_message. Среди причин: post_not_found, group_not_found, image_exists, source_required, unsupported_extension, invalid_image, download_failed, access_denied и image_not_found.
Для ошибок базы данных и неожиданных ошибок подробности записываются в ewblogpimg.log. Пользователю возвращается сообщение об ошибке без подтверждения успешного действия.