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() | Список песочниц в проекте. |
Типичный сценарий агента:
create_sandbox→sandbox_idwrite_file(sandbox_id, "/root/app.py", "…")run(sandbox_id, ["python3", "/root/app.py"])expose(sandbox_id, 8080)→ публичный HTTPS-URLdestroy(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 выпустит релиз — повторный запуск установщика берёт текущую.