enВойти в Senler

Описание действий

Подготовьте backend и OpenAPI

Опубликуйте OpenAPI 3 в JSON на публичном HTTPS-адресе backend приложения. Адреса localhost, частной сети и URL с логином или паролем для внешнего приложения не подходят. Senler не следует перенаправлениям, ждёт загрузку схемы до 5 секунд и принимает документ размером не более 5 МиБ. Загруженная схема кэшируется примерно на 30 секунд, поэтому изменение может появиться в каталоге не мгновенно.

Разместите схему и обработчики на одном origin: с одинаковыми протоколом, доменом и портом. Например, для схемы https://plugin.example.com/openapi.json путь /api/orders будет вызван как https://plugin.example.com/api/orders. Поле servers в OpenAPI этот адрес не переопределяет. Пути операций начинаются с /; полный URL или перенаправление на другой сервер не используются.

Размечаются операции GET, POST, PUT, PATCH и DELETE. Параметры пути и query описывайте обычными OpenAPI parameters, а тело — объектом application/json. project_id не добавляйте в параметры действия: Senler уже знает проект из проверенного контекста MCP.

Добавьте к каждой разрешённой операции расширение x-senler-app-action:

{
  "paths": {
    "/api/orders": {
      "get": {
        "summary": "Список заказов",
        "x-senler-app-action": {
          "version": 1,
          "name": "list_orders",
          "context": "app",
          "description": "Возвращает заказы текущего проекта.",
          "read_only": true,
          "destructive": false,
          "idempotent": true,
          "result": { "kind": "data" }
        },
        "responses": {
          "200": {
            "description": "Заказы",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": { "type": "object" }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

name начинается с латинской буквы и содержит от 2 до 64 строчных латинских букв, цифр или _. Пишите description как инструкцию AI: что делает метод, когда его использовать и что возвращается. Флаги read_only, destructive и idempotent должны соответствовать реальному поведению, потому что MCP использует их при планировании безопасного вызова.

Опишите JSON-схему успешного ответа. Senler передаёт AI саму схему и компактный список её важных полей; без схемы AI сможет прочитать фактический JSON, но хуже поймёт результат до вызова.

Выберите контекст и результат

Для действий, доступных через MCP, поле context объясняет назначение метода:

КонтекстДля чего используетсяРезультат
appРабота с данными и функциями общей страницы приложенияОбычные данные; используйте kind: data
agent_toolПодготовка настроек экземпляра инструмента агентаkind: agent_tool_configuration и путь configuration_path
automation_stepПодготовка настроек шага и его ветокkind: automation_step_configuration, configuration_path и при необходимости branches_path

Путь результата записывается через точки, например result.configuration. Для настройки шага ветки обычно находятся в result.branches. После вызова AI получает подсказку, откуда взять эти значения и каким методом Senler сохранить их в нужном инструменте или узле схемы.

Отчёты для воронок

Для источника данных воронки из плагина используется отдельный контекст funnel с результатом funnel_report. Такой метод только читает данные: укажите read_only: true и не отмечайте его как destructive. Он вызывается при получении отчёта подключённого источника. Формат запроса, ответа и связь записей с лидами описаны в контракте метода отчёта.

В каталоге действий установленных приложений для search, describe_method и execute сейчас доступны только три контекста из таблицы выше. Поэтому наличие метода funnel в OpenAPI не означает, что AI найдёт его как отдельное действие плагина через MCP.

В @senlerio/api версии 0.4.0 декораторы из @senlerio/api/app-actions/nest и команда senler-app validate-openapi также поддерживают только эти три контекста. Для отчёта воронки задайте x-senler-app-action непосредственно в OpenAPI. Ошибка этой версии CLI о неподдерживаемом funnel не означает, что Senler не принимает метод отчёта; его проверку нельзя считать покрытой этим CLI.

Следующий шаг

Реализуйте авторизацию backend, затем подключите OpenAPI в кабинете.