Агенты, MCP и API-ключи
Агент может менять контент CMS, работать с коллекциями и готовить статический сайт к публикации. MCP запускается локально как процесс stdio и обращается к API. Права проверяет API при каждом запросе.
Создайте ключ в кабинете
В кабинете партнёра откройте «Агенты и MCP» (/partner/agents):
- Укажите название подключения, например устройство или имя агента.
- Выберите сайты. Без явного выбора ключ не создаётся; новые сайты не добавляются в него автоматически.
- Разрешите нужные действия. По умолчанию включено только чтение.
- Выберите срок: 1, 7, 30 или 90 дней. По умолчанию 30 дней.
- Создайте ключ и сохраните его из одноразового диалога. Повторно показать секрет нельзя.
| Право API | Действия |
|---|---|
read · Читать | выбранные сайты, контент, коллекции, история, состояния задач; обязательно |
draft · Редактировать | черновики CMS, коллекции, медиа и превью |
deploy · Загружать проекты | архивы, источник Git, получение файлов и подключение своего домена |
publish · Публиковать | публикация подготовленного сайта и откат версии |
Права независимы: подготовка архива требует deploy, его публикация требует publish. Редактору CMS обычно достаточно read и draft. Ограниченный ключ не даёт доступа к платежам, CRM-контактам, приглашениям, управлению ключами, созданию бизнеса и удалениям.
В списке ключей видны выбранные сайты, операции, срок и последнее использование. «Отозвать» сразу закрывает доступ по ключу. Истёкший или отозванный ключ получает 401; сессия владельца в том же браузере его не заменяет. Опубликованный сайт продолжает работать. Уже выданные публичные ссылки превью CMS сохраняют свой срок; ссылки превью архивов, выданные по ключу агента, прекращают открываться при его отзыве или истечении.
Старые ключи без ограничений сохраняют прежние партнёрские права. Замените их ключами с выбранными сайтами и сроком. Ключ загрузки бизнеса alit_site_… для MCP не подходит.
Подключите MCP 0.2.0
Установите uv, чтобы клиент мог запускать uvx. Пакет распространяется как wheel: askia_mcp-0.2.0-py3-none-any.whl. Требуется Python 3.13 или новее; uvx --python 3.13 подготовит нужную версию.
Передайте ключ через окружение ASKIA_MCP_TOKEN или через ASKIA_MCP_TOKEN_FILE с абсолютным путём к закрытому файлу. На macOS и Linux файл должен иметь права 600. Ключ хранится вне проекта; в переписку с агентом и репозиторий он не попадает.
Пример конфигурации Codex:
[mcp_servers.askia]
command = "uvx"
args = ["--python", "3.13", "--from", "https://askia.ru/downloads/askia_mcp-0.2.0-py3-none-any.whl", "askia-mcp"]
env_vars = ["ASKIA_MCP_TOKEN", "ASKIA_MCP_TOKEN_FILE", "ASKIA_MCP_ARCHIVE_ROOTS"]
[mcp_servers.askia.env]
ASKIA_MCP_API_URL = "https://api.askia.ru/api/v1"
Клиент должен получить эти переменные при запуске. Если приложение не наследует окружение терминала, задайте ASKIA_MCP_TOKEN_FILE с путём к файлу в блоке mcp_servers.askia.env. После замены ключа перезапустите MCP.
Для чтения локальных архивов задайте ASKIA_MCP_ARCHIVE_ROOTS как JSON-массив абсолютных папок, например ["/Users/me/Projects/client-site/dist"]. Без него загрузка локальных файлов запрещена. Для других MCP-клиентов используйте те же command, args и env в их настройках сервера stdio.
27 инструментов
| Группа | Инструменты |
|---|---|
| Проверка и каталог | whoami, list_clients, list_sites, list_templates, get_site |
| Контент и коллекции | get_content, update_content, get_collections, update_collections |
| Версии CMS | preview_site, get_job, publish_site, list_versions, rollback_site |
| Архивы | upload_static_archive, list_uploads, preview_upload, publish_upload |
| Git | get_source, configure_git_source, fetch_git_source, get_source_fetch |
| Домены | check_domains, attach_existing_domain |
| Создание | create_client, create_template_site, create_custom_site |
Наличие инструмента в пакете не выдаёт право на действие. Инструменты создания недоступны ограниченным ключам: сначала создайте клиента и сайт в кабинете, затем выберите сайт при выпуске ключа. Сервер также запрещает обращаться к соседнему сайту того же клиента, если его нет в ключе.
Сценарии работы
CMS. get_content → update_content(expected_version_id, content) → preview_site → get_job → просмотр превью → publish_site(confirm_publish=true). Для коллекций: get_collections → update_collections(expected_version_id, extensions), затем тот же путь превью и публикации. При 409 draft_changed агент заново читает черновик и совмещает изменения. Схема описана отдельно.
Статический сайт из архива. Агент собирает проект локально или в CI, затем вызывает upload_static_archive → preview_upload → после просмотра publish_upload(confirm_publish=true) → get_job. Архив загружается как черновик. list_uploads показывает историю; публикация сохранённого старого архива возвращает прежнюю сборку, если её файлы ещё доступны.
Готовая статика из GitHub. get_source → configure_git_source(expected_revision, repository, output_directory) → fetch_git_source → get_source_fetch до ready → preview_upload(upload_id) → отдельный publish_upload. Этот инструмент настройки рассчитан на публичный GitHub-репозиторий с готовой статикой. Приватный Git и сборку исходников настраивают в кабинете; у MCP 0.2.0 нет параметров установки зависимостей, серверной сборки или Node runtime.
Публикация и откат требуют confirm_publish=true; решение о выпуске принимает пользователь MCP-клиента. Покупок доменов и платежей в MCP нет. Подключение существующего домена не изменяет DNS у регистратора.
Ошибки и повторные запросы
403 agent_scope: выбранный ключ не разрешает действие. Операцию выполняют в кабинете или выпускают ключ с нужными правами.404: объект отсутствует или не доступен ключу. Проверьте сайт и ID связанного ресурса.401 token_expired: срок истёк. Выпустите новый ключ и замените его в окружении MCP.result_unknown: запрос мог выполниться. Сначала проверьте сайт, историю или задачу; не повторяйте создание вслепую. Для повторной публикации архива сохраняйте прежнийidempotency_key.