Рецепт · OpenClaw

OpenClaw: запуск автоматизации по событию из внешнего MCP-сервера

Подписка на подписанные вебхуки: конфиг плагина, callbackOrigin, проверка и границы интеграции.

· 4 мин чтения

Коротко

  • Плагин mcp-events принимает подписанные вебхуки от внешнего MCP-сервера и запускает готовую автоматизацию.
  • Отдельного планировщика не появляется: у события те же инструкции, политика инструментов, доставка и история, что у обычной автоматизации.
  • Версионная интеграция: профиль OpenAI webhook, протокол MCP 2026-07-28, методы server/discover, events/list, events/subscribe.

Сверено с документацией OpenClaw 2026.10.10, 3 ноября 2026.

MCP-сервер может сам присылать события. Плагин mcp-events принимает подписанные вебхуки и запускает по ним готовую автоматизацию.

Как устроен mcp-events

Внешний MCP-сервер сам фильтрует изменения и отправляет вебхуки с подписью. OpenClaw надёжно принимает их, сохраняет и запускает автоматизацию с её инструкциями, политикой инструментов, доставкой и историей. Отдельный планировщик не появляется, и MCP App не нужно держать открытым.

Плагин mcp-events входит в сборку OpenClaw, но включается вручную. Он реализует профиль вебхуков OpenAI: протокол MCP 2026-07-28, методы server/discover, events/list, events/subscribe и events/unsubscribe через Streamable HTTP. Используются уже настроенные MCP-соединения и их авторизация. У старых MCP-соединений для инструментов остаётся прежнее рукопожатие.

Включаем плагин и callbackOrigin

{
  mcp: {
    servers: {
      reviews: {
        transport: "streamable-http",
        url: "https://mcp.example.com/mcp",
      },
    },
  },
  plugins: {
    entries: {
      "mcp-events": {
        enabled: true,
        config: {
          callbackOrigin: "https://events.example.com",
        },
      },
    },
  },
}

Адрес колбэка задаётся в callbackOrigin и должен быть публичным HTTPS-адресом без учётных данных, пути, параметров запроса и фрагмента. Проксируйте на Gateway только /plugins/mcp-events/callback/, не выставляйте Control UI и Gateway WebSocket. OpenClaw не открывает туннель и не меняет сетевую конфигурацию.

Сервер должен достучаться до адреса колбэка и проверить его TLS-сертификат. Публичная DNS-проверка этого не доказывает: доказательство даёт проверка колбэка при подписке. Инфраструктура, требующая интерактивного входа или заголовка с токеном, такие колбэки не примет без отдельно настроенного маршрута. Собственную HMAC-аутентификацию на каждую подписку выдаёт сам MCP Events.

Задание автоматизации на событие

Инструмент mcp_events показывает одну страницу событий и схем аргументов для указанного serverName. Он не создаёт отдельную систему подписок. Тот же каталог доступен в редакторе автоматизаций.

Источник в задании ссылается на настроенный MCP-сервер, без второго URL и хранилища учётных данных. Аргументы события должны удовлетворять inputSchema сервера, доставляемые данные — payloadSchema. Фильтры подписки применяет сам сервер.

{
  "name": "Review new document comments",
  "agentId": "main",
  "enabled": true,
  "schedule": {
    "kind": "event",
    "source": "mcp-events",
    "options": {
      "server": "reviews",
      "name": "comment.created",
      "arguments": { "document_id": "doc_example" }
    }
  },
  "sessionTarget": "isolated",
  "wakeMode": "now",
  "payload": {
    "kind": "agentTurn",
    "message": "Summarize the new review comment. Do not modify the document."
  },
  "delivery": { "mode": "none" }
}

Что сохраняется у автоматизации

Запуск по событию использует инструкции, политику инструментов, доставку и историю готовой автоматизации. При delivery в режиме none результат остаётся в истории запусков, а для отправки в канал настраивается обычный адресат доставки.

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

Как проверить

openclaw mcp doctor <name> --probe
openclaw mcp probe <name>

Ответ 2xx на вебхук подтверждает приём события, а не работу модели и не доставку результата. Смотрите историю автоматизации и состояние плагина. Очередь приёма ограничена настройкой maxPendingEvents, по умолчанию 10 000.

Подписки живут на конечной аренде: OpenClaw продлевает их до дедлайна refreshBefore через существующий планировщик Gateway. Установка cron.triggers.enabled в false останавливает и приём запусков по событиям, не выбрасывая уже принятые события.

Где ломается и когда не применять

  • Плагин реализует версионную интеграцию с экспериментальной спецификацией: профиль вебхуков OpenAI. Опрос (polling), потоки push и уведомления gap и terminated из черновика в профиль не входят.
  • Гарантий «ровно один раз» нет: сервер может исчерпать бюджет повторов, доставка идёт не по порядку. Курсор null означает, что источник не предлагает повтор, truncated: true — что запрошенная история недоступна. Для критичных записей сверяйтесь с состоянием источника и делайте записи идемпотентными.
  • Перед отключением плагина или откатом на версию без событий удалите автоматизации на события текущей версией. Старые версии не понимают сохранённый в базе тип расписания event и не превращают такую задачу в расписание.
  • Токены MCP и секреты подписи не кладите в инструкции автоматизации.