cubesandbox-browser-sandbox
CubeSandbox Browser Runtime
Один продакшн-образ и контракт шаблона для browser_use на CubeSandbox, основанный на образе sandbox-browser от TencentCloud с закреплённым digest. Каждая песочница содержит обе возможности рабочих нагрузок:
постоянный вышестоящий Chromium/CDP на
9000и управляемый s6 HTTP-сервис@playwright/mcp@0.0.79на8931, работающие под UID 1000;записываемое хранилище супервизора Run без прав root в
/run/browser-use/runsи два CDP-слота безголового Chromium, принадлежащих Run, на10000-10001.
Цель runtime требует RUNTIME_MARKER=sha256:<64 lowercase hex>. Маркер записывается в /etc/browser-use/runtime-marker и должен совпадать с тем, который продвигается вместе с единственным ID шаблона в browser_use.
Сборка и проверка
source_digest="$(git archive HEAD | sha256sum | cut -d' ' -f1)"
marker="sha256:$(printf '%s:runtime' "${source_digest}" | sha256sum | cut -d' ' -f1)"
docker build --target runtime --build-arg "RUNTIME_MARKER=${marker}" \
-t cubesandbox-browser-sandbox .
docker run -d --cap-add=SYS_ADMIN --shm-size=2g --name browser-runtime \
cubesandbox-browser-sandbox
docker exec --user user browser-runtime browser-sandbox-smoke mcp
docker exec --user user browser-runtime browser-sandbox-smoke run
docker exec --user user browser-runtime browser-sandbox-mcp-smokeЭта последовательность доказывает, что постоянный MCP выдерживает два параллельных процесса Chromium, принадлежащих Run, в одной песочнице. SYS_ADMIN нужен только локальному Docker, чтобы Chromium мог создавать пространства имён песочницы; CubeSandbox обеспечивает изоляцию в развёрнутой среде.
Зависимости и базовые образы неизменяемы: npm-пакеты зафиксированы по контрольным суммам, зависимости Python-верификатора зафиксированы по хэшам, обе стадии сборки используют digest образов, а публикация выпускает SBOM и SLSA-аттестации происхождения и подписывает загруженный digest в режиме keyless с помощью Cosign. Перегенерируйте Python-лок с помощью uv pip compile requirements.in -o requirements.txt --generate-hashes.
Related MCP server: sa2web-mcp
Публикация и шаблон
Рабочий процесс публикует теги latest, sha-<commit> и теги релизов в ghcr.io/hirotasoshu/cubesandbox-browser-sandbox. Продвижение должно сопоставлять тег с image@sha256:...; плавающие ссылки на образы отклоняются:
scripts/create-template.sh \
ghcr.io/hirotasoshu/cubesandbox-browser-sandbox@sha256:<digest>Псевдоним шаблона по умолчанию — browser-use-runtime-medium, с 2 vCPU, 4 GiB ОЗУ и 20 GiB записываемого слоя. Он предоставляет наружу envd 49983, постоянный CDP 9000, MCP 8931 и CDP-слоты Run 10000-10001. Только постоянный CDP служит стартовой пробой, потому что порты Run простаивают, пока Run не станет их владельцем.
Токены доступа к трафику Cube являются границей входящего трафика. MCP разрешает только динамические имена хостов Cube, потому что Cube проверяет токен перед пересылкой трафика. После создания шаблона настройте потолок PID провайдера и обязательный запрет исходящего трафика в частные/link-local адреса, затем выполните живой контракт:
python -m venv .venv
.venv/bin/pip install -r requirements.txt
CUBE_TEMPLATE_ID=<template-id> \
CUBE_RUNTIME_MARKER=sha256:<runtime-marker> \
E2B_API_KEY=<cube-api-key> \
E2B_API_URL=<cube-api-url> \
.venv/bin/python scripts/verify-template.pyЖивая проверка создаёт одну защищённую песочницу и одновременно проверяет обе рабочие нагрузки: API маркера и файлов, политику публичной/частной сети, аутентифицированный CDP на всех трёх браузерных эндпоинтах, отклонение токенов трафика, точные определения инструментов MCP, навигацию MCP и изоляцию опасного инструмента.
Финальным авторитетом при продвижении остаётся набор тестов соответствия провайдера browser_use. Не включайте production-режим на основании одного лишь успеха сборки образа.
Безопасность
CDP и Playwright MCP предоставляют контроль над браузером; опасный инструмент MCP эквивалентен RCE на хосте. Никогда не внедряйте секреты приложений в песочницу. Держите контроль токенов трафика включённым, используйте только неизменяемые значения образов и маркеров, обеспечивайте соблюдение лимитов PID провайдера и требуйте запрета частных/link-local адресов.
This server cannot be deployed
Maintenance
Related MCP Connectors
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
On-demand cloud browser sessions; page actions need a compatible CDP client.
1- TabfleetOAuthcom.tabfleet
Launch, inspect, control, and share isolated cloud browsers for your agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables browser automation and web scraping by exposing Playwright tools through an HTTP-based MCP server. Users can navigate pages, interact with web elements, capture screenshots, and extract structured content using a persistent Chromium instance.MIT
- AlicenseCqualityDmaintenanceExposes a remote browser as MCP tools via Playwright, enabling AI agents to navigate and interact with web pages through DOM snapshots, clicks, typing, and form operations.405 npm14Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to operate an isolated local Chromium browser through MCP, with semantic snapshots, ref-based actions, search, research, crawling, and CDP access.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents and clients to control a real Chromium browser through MCP tool calls, including navigation, clicking, typing, JavaScript evaluation, screenshots, and DOM snapshots. Supports multiple isolated sessions over authenticated HTTP with no disk writes.Apache 2.0