Loading...

Работа с агентами

Дайте своему ИИ-агенту доступ к деплою — а не пароль от панели

Агент, написавший ваш код, может его и опубликовать — если выдать ему учётные данные, ограниченные ровно этой задачей. Здесь разобрано, как работают deploy-only токены и встроенный MCP-сервер, включая то, что токен может и чего не может — проверено запрос за запросом.

7 мин чтения Средний уровень Обновлено

Дайте своему ИИ-агенту доступ к деплою — а не пароль от панели

Неправильный путь: вставить пароль от панели в агента

Локальные ИИ-агенты хороши ровно в рутинной части публикации софта: прогнать проверки, исправить найденное, задеплоить, прочитать логи, повторить. Соблазнительный короткий путь — отдать агенту логин от панели, чтобы он «мог всё». Но ваш аккаунт в панели может менять способы оплаты, удалять приложения и трогать каждый ваш CDN-аккаунт — ничего из этого агенту для публикации кода не нужно. Правильный инструмент — учётные данные, которые могут деплоить и больше ничего.

Deploy-токен: показывается один раз, жёстко ограничен

Его создаёт одна команда. Токен в открытом виде появляется ровно один раз — cdn.com.tr хранит только хеш, так что никто (включая поддержку) не сможет прочитать его позже. Он привязан к одному CDN-аккаунту и только к поверхности деплоя: загрузка исходников, build, создание и обновление приложений, деплой, чтение статуса и логов.

Реальный вывод (токен замаскирован; подписи переведены из CLI):
$ cdnctl deploy-token create --name "claude-code"
Deploy token (shown ONCE — save it now):
  cdnctl_T1bz••••••••••••••••••••••••

To hand it to an agent: cdnctl configure --token cdnctl_T1bz••••…
Scope: deploy only (source upload/build + app lifecycle).

Что токен может и чего не может — мы проверили каждую грань

Это не проектные намерения; каждая строка — реальный запрос, который мы выполнили к живому API со свежесозданным токеном:

- Поверхность деплоя на своём аккаунте — работает (200). - Те же эндпоинты для UUID чужого аккаунта — 404. API даже не подтверждает, что другой аккаунт существует. - Эндпоинты вне поверхности деплоя (оплата, DNS, профиль пользователя) — 401. - DELETE на приложении — 405. Маршрут просто не зарегистрирован на поверхности токена, так что агент не может уничтожить то, что задеплоил. - Любой запрос после отзыва — 401, немедленно.

Подключение к Claude Code или Cursor через MCP

cdnctl поставляется с MCP-сервером: `cdnctl mcp` говорит на JSON-RPC через stdio и предоставляет шесть инструментов — project_info, check, entitlement, deploy, apps_list и app_show. После регистрации агент вызывает deploy так же, как любой другой инструмент, — со структурированными результатами вместо соскобленного текста терминала.

Claude Code (одна строка) и Cursor (.cursor/mcp.json):
$ claude mcp add cdntr -- cdnctl mcp

# .cursor/mcp.json
{
  "mcpServers": {
    "cdntr": {
      "command": "cdnctl",
      "args": ["mcp"],
      "env": { "CDN_ACCESS_TOKEN": "cdnctl_T1bz••••…" }
    }
  }
}

Цикл самопочинки на практике

С токеном на месте агент выполняет тот же цикл, что и внимательный человек: `check` проекта, исправить найденное, `deploy`, прочитать результат. В нашем живом тесте агент столкнулся с настоящей поломкой — Dockerfile копировал node_modules с хоста в образ и ронял контейнер — сам исправил .dockerignore, передеплоил и убедился, что приложение здорово. Без панели, без человека в цикле — и ничего за пределами поверхности деплоя не тронуто.

Ротация и отзыв

Токены выводятся списком с префиксом, временем последнего использования и IP — достаточно для аудита, не раскрывая секрет. Отзыв — одна команда, вступает в силу со следующего запроса. Если токен когда-нибудь окажется в логе или транскрипте — сначала отзовите, потом разбирайтесь; выпуск замены занимает секунды.

Аудит и отзыв:
$ cdnctl deploy-token list
  name: claude-code   prefix: cdnctl_T1bz   last_used: 2026-08-25 15:46 (185.70.97.9)

$ cdnctl deploy-token revoke --id 11
  status: success

Частые вопросы

Может ли агент удалить моё приложение?

Нет. Маршруты DELETE не зарегистрированы на поверхности токена — запрос отвечает 405, что бы агент ни отправил. Разрушительные действия остаются в панели, за вашим логином.

Может ли агент потратить деньги с этим токеном?

Нет. Покупка тарифов, оплата и биллинг живут только в панели. Токен до них не дотягивается (401), а cdnctl намеренно отправляет людей платить в браузер.

Что если токен утечёт?

Отзовите его — одна команда, действует немедленно. Радиус поражения — поверхность деплоя одного аккаунта: ни оплаты, ни удаления, ни других аккаунтов. Затем выпустите новый.

Требует ли MCP deploy-токен?

Нет — на вашей собственной машине cdnctl mcp может использовать ваш обычный вход через cdnctl login. Токен важен, когда агент работает там, куда вы не положили бы свой логин: CI, общая машина, долгоживущая сессия агента.