Помощь · Интеграции

Документация API

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

Здесь описаны только пользовательские и преподавательские интеграции. Служебные операции платформы в публичный справочник не входят.

Справочник API

Безопасный MCP-сервер Latorn

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

Маршруты раздела

Метод Маршрут Доступ Назначение
POST /api/mcp Bearer PAT преподавателя Выполнить stateless Streamable HTTP MCP-вызов из фиксированного allowlist.

Подключение

MCP endpoint — https://latorn.ru/api/mcp. Он принимает только POST и только персональный токен в заголовке Authorization: Bearer …. Cookie-сессия браузера здесь не работает.

Создайте отдельный токен в Настройки → API-токены (/profile/security?section=api), выберите только нужные курсы, минимальные права и срок действия. Не помещайте секрет в публичный JavaScript.
К одному токену можно привязать не более 100 уникальных курсов. MCP принимает только несжатые запросы с корректным Content-Length до 9 MiB.

{
  "mcpServers": {
    "latorn": {
      "type": "http",
      "url": "https://latorn.ru/api/mcp",
      "headers": {
        "Authorization": "Bearer ${LATORN_API_TOKEN}"
      }
    }
  }
}

Названия полей конфигурации могут отличаться у MCP-клиентов; неизменны URL и Bearer-заголовок. Сервер stateless: Mcp-Session-Id не выдаётся, а PAT и живые права проверяются на каждом запросе.

Что можно поручить агенту

  • latorn_list_courses, latorn_get_course, latorn_get_course_content — безопасно читать разрешённые курсы;
  • latorn_get_course_sales_insights и latorn_get_portfolio_sales_insights — анализировать только агрегаты продаж и воронки;
  • latorn_create_draft_course — создать бесплатный неопубликованный черновик;
  • latorn_set_draft_content — атомарно наполнить пустой черновик полной иерархией разделов, уроков и шагов;
  • latorn_update_course_metadata — изменить учебные метаданные без цены, публикации, владельца и доступов;
  • latorn_create_section, latorn_update_section, latorn_create_lesson, latorn_update_lesson;
  • latorn_create_step, latorn_update_step — через штатную валидацию блока;
  • latorn_reorder_content — атомарно применить полный снимок порядка уроков или шагов;
  • latorn_request_course_publish — подготовить одноразовую ссылку на подтверждение;
  • latorn_get_course_publish_request — проверить состояние запроса публикации.

Для каждого вызова одновременно нужны действующий PAT, подходящий scope, курс в courseIds, актуальная capability, незаблокированный аккаунт и неудалённый курс. REVENUE_READ и COURSES_PUBLISH выдаются отдельно и не входят в рекомендуемый набор по умолчанию.
Для защиты endpoint действует 240 запросов в минуту на IP до проверки токена и 120 запросов в минуту на PAT после проверки. Сейчас store локальный/подключаемый через abstraction, поэтому это не обещание распределённого лимита между несколькими инстансами.

От анализа до публикации

  1. При необходимости агент анализирует продажи одного курса или портфеля. Ответ содержит только агрегаты — без имён, email, user id, provider/payment id и сырых операций.
  2. Агент создаёт черновик, наполняет его через latorn_set_draft_content и точечно редактирует содержание.
  3. Когда результат готов, latorn_request_course_publish возвращает ссылку, но ничего не публикует.
  4. Владелец того же PAT входит в Latorn, проверяет точный снимок и вводит ОПУБЛИКОВАТЬ.
  5. Агент опрашивает состояние через latorn_get_course_publish_request.

Ссылка действует 15 минут и привязана к пользователю, PAT и точному снимку курса. Любое изменение курса делает запрос устаревшим — после правок нужна новая ссылка. MCP не может подтвердить её за человека.

Полный импорт черновика

latorn_set_draft_content работает только с пустым неопубликованным черновиком. Он либо создаёт всю иерархию, либо не создаёт ничего. Точно повторённый нормализованный снимок возвращает прежние id и replayed: true; другое существующее содержание даёт 409 DRAFT_CONTENT_ALREADY_EXISTS без удаления и перезаписи.

Один запрос ограничен 8 MiB JSON, 50 разделами, 500 уроками, 2000 шагами и общей длиной заголовков 120 000 символов. Каждый шаг проходит обычную server-side validation Latorn.
Для аналитики один портфель ограничен 100 курсами, один запрос — 25 000 платежей и 50 000 событий. При превышении вернётся 413 SALES_INSIGHTS_TOO_LARGE: уменьшите период или число курсов.

Разбивки по каналам и промокодам не включают URL, email, телефоноподобные значения и группы меньше трёх событий/оплат. Это не даёт агрегатам раскрывать отдельного покупателя.

Чего MCP не умеет

MCP не публикует напрямую и не снимает с публикации, не удаляет контент, не меняет владельцев, команды, доступы или зачисления. Он не работает со списками пользователей и учащихся, их контактами и персональными покупками; не создаёт платежи, возвраты, выплаты, промокоды или партнёрские начисления; не банит аккаунты и не отправляет рассылки.

В allowlist нет произвольного HTTP, SQL, shell, Prisma/raw database, файловой системы или универсального action. Неизвестное имя инструмента отклоняется протоколом.

Очистка содержимого при чтении

latorn_get_course_content не возвращает правильные ответы, hidden tests, preCode, testCases, testSuites, devtools assertions, correctIds, outcome feedback и referenceAnswers. Для сортировки и сопоставления удаляются id и правильные связи. В DTO также нет происхождения из банка заданий и закрытых operational metadata.

Полный технический договор, ограничения аналитики и правила human confirmation находятся в docs/MCP_SERVER.md репозитория Latorn.

Поддержка