Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

MCP и среда для агентов

cps-mcp отдаёт cps как инструменты Model Context Protocol, так что любой MCP-совместимый агент (Claude Code, Claude Desktop, …) может создавать изолированные Linux-песочницы (sandbox), запускать в них код, публиковать порты и удалять их — всё через публичный API cps.

Sandbox (песочница) — это агентское имя для эфемерной machine на уровне MCP. Это Firecracker-микроВМ с аппаратной изоляцией, диском на время задачи, исходящей сетью, опциональным HTTPS-превью и автоматическим TTL — агент может запускать недоверенный код и не оставлять за собой ресурсов.

cps-mcp работает по MCP через stdio и поставляется внутри CLI cps — установка CLI ставит и cps-mcp.

1. Установка и токен

Установите CLI (подробнее — Быстрый старт):

curl -fsSL https://cps.run/install.sh | sh
cps version          # подтверждает, что установлены и `cps`, и `cps-mcp`

Войдите и создайте токен для агента (показывается один раз):

cps login --token <ваш-токен>
cps token create --ttl 24h --name mcp

2. Конфигурация

cps-mcp берёт настройки из окружения, а после cps login подхватывает конфиг CLI cps (так что CPS_TOKEN можно не задавать, если вы уже вошли):

ПеременнаяОбязательнаПо умолчаниюНазначение
CPS_TOKENда*—Токен cps (cpsk_…). *Не нужна, если cps login уже настроил CLI.
CPS_API_URLнетhttps://cps.runБазовый URL control-plane (например, лабораторный).
CPS_PROJECT_IDнетопределяется автоматическиПроект для создания песочниц; выводится из org токена, если не задан.

3. Подключение MCP-клиента

Claude Code — одной командой:

claude mcp add cps -e CPS_TOKEN=cpsk_ваш_токен -- cps-mcp

Claude Desktop / любой MCP-клиент — добавьте в конфиг mcpServers:

{
  "mcpServers": {
    "cps": {
      "command": "cps-mcp",
      "env": { "CPS_TOKEN": "cpsk_ваш_токен", "CPS_API_URL": "https://cps.run" }
    }
  }
}

Проверьте подключение командой /mcp — сервер cps должен показываться как подключённый с 8 инструментами.

4. Инструменты

ИнструментНазначение
create_sandbox(image?, ttl_seconds?)Запустить эфемерную микроВМ, дождаться готовности, вернуть sandbox_id. Авто-удаление по TTL (по умолчанию 900с).
run(sandbox_id, command[], timeout_secs?)Выполнить argv-массив в песочнице; возвращает exit_code, stdout, stderr. Не парсится шеллом — для пайпов/glob используйте ["sh", "-c", "…"].
write_file(sandbox_id, path, content)Записать текстовый файл в песочнице.
read_file(sandbox_id, path)Прочитать текстовый файл из песочницы.
expose(sandbox_id, port)Опубликовать порт по публичному HTTPS-URL.
destroy(sandbox_id)Удалить песочницу и её маршруты.
fork_sandbox(sandbox_id, ttl_seconds?)Клонировать диск песочницы в новую готовую песочницу (источник кратко останавливается для консистентной копии).
list_sandboxes()Список песочниц в проекте.

Типичный сценарий агента:

  1. create_sandbox → sandbox_id
  2. write_file(sandbox_id, "/root/app.py", "…")
  3. run(sandbox_id, ["python3", "/root/app.py"])
  4. expose(sandbox_id, 8080) → публичный HTTPS-URL
  5. destroy(sandbox_id) (или дождаться удаления по TTL)

5. Плагин и skill для Claude Code

Для Claude Code установка плагина cps-agent-runtime даёт агенту сразу и MCP-инструменты cps, и skill cps-agent-runtime, который учит агента пользоваться ими правильно (уборка по TTL, argv против шелла, освобождение маршрутов при destroy).

Плагин регистрирует команду cps-mcp — бинарь уже должен быть в PATH (шаг 1). Установка с Git-ремоута:

/plugin marketplace add https://git.codelab.vc/cps/cli
/plugin install cps-agent-runtime@cps

Или из локальной копии репозитория cli:

/plugin marketplace add /абсолютный/путь/к/cli
/plugin install cps-agent-runtime@cps

Дальше просите естественным языком — например, «запусти этот скрипт в изолированной песочнице cps и покажи вывод» — и skill проведёт create_sandbox → write_file/run → destroy.

6. Обновление

cps-mcp, CLI и плагин обновляются независимо — команды cps update пока нет.

CLI + cps-mcp (один бинарь, один шаг) — перезапустите установщик, он заменит бинарь на месте, затем перезапустите MCP-клиент, чтобы он заново поднял cps-mcp:

curl -fsSL https://cps.run/install.sh | sh
cps version          # проверьте новую версию

Либо из исходников:

git pull && cargo install --path . --locked --force

Плагин + skill — обновите маркетплейс Claude Code (заново тянет репозиторий cli), затем переустановите плагин:

/plugin marketplace update cps
/plugin install cps-agent-runtime@cps
/reload-plugins            # применить изменения без перезапуска сессии

Плагин только регистрирует cps-mcp — обновление плагина не обновляет бинарь. Чтобы получить новое поведение инструментов, обновите CLI (выше).

Примечания (альфа)

  • Публичные HTTPS-превью через expose требуют слоя маршрутизации cps. На одно-хостовых лабораторных стендах запись маршрута создаётся, но трафик пока не обслуживается.
  • cps-mcp общается только с публичным API cps, поэтому работает с любым доступным control-plane через CPS_API_URL.
  • Новые версии CLI появляются на https://cps.run/install.sh только после того, как команда cps выпустит релиз — повторный запуск установщика берёт текущую.