cubesandbox-browser-sandbox
CubeSandbox Browser Runtime
Una imagen de producción y un contrato de plantilla para browser_use en CubeSandbox,
basado en la imagen sandbox-browser de TencentCloud con digest fijado. Cada sandbox
contiene ambas capacidades de carga de trabajo:
Chromium/CDP ascendente persistente en
9000y un servicio HTTP@playwright/mcp@0.0.79gestionado por s6 en8931, ejecutándose como UID 1000;almacenamiento de ejecución del supervisor Run escribible y no root en
/run/browser-use/runsy dos ranuras CDP de Chromium headless propiedad de Run en10000-10001.
El objetivo runtime requiere RUNTIME_MARKER=sha256:<64 lowercase hex>. El
marcador se escribe en /etc/browser-use/runtime-marker y debe coincidir con el
promovido con el ID de plantilla único en browser_use.
Compilar y verificar
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-smokeLa secuencia demuestra que el MCP persistente sobrevive a dos procesos Chromium propiedad de Run concurrentes en el mismo sandbox. SYS_ADMIN solo lo necesita Docker local para que Chromium pueda crear namespaces de sandbox; CubeSandbox proporciona el aislamiento desplegado.
Las dependencias y las imágenes base son inmutables: los paquetes npm están bloqueados por integridad, las dependencias del verificador Python están bloqueadas por hash, ambas etapas de compilación usan digests de imagen, y la publicación emite SBOM y atestaciones de procedencia SLSA y firma sin clave el digest enviado con Cosign. Regenera el bloqueo de Python con
uv pip compile requirements.in -o requirements.txt --generate-hashes.
Related MCP server: sa2web-mcp
Publicar y plantilla
El flujo de trabajo publica latest, sha-<commit> y etiquetas de release bajo
ghcr.io/hirotasoshu/cubesandbox-browser-sandbox. La promoción debe resolver una etiqueta
a image@sha256:...; las referencias de imagen flotantes se rechazan:
scripts/create-template.sh \
ghcr.io/hirotasoshu/cubesandbox-browser-sandbox@sha256:<digest>El alias de plantilla predeterminado es browser-use-runtime-medium, con 2 vCPU, 4 GiB
de RAM y una capa escribible de 20 GiB. Expone envd 49983, CDP persistente
9000, MCP 8931 y ranuras CDP de Run 10000-10001. Solo el CDP persistente es
una sonda de inicio porque los puertos de Run están inactivos hasta que un Run los posee.
Los tokens de acceso de tráfico de Cube son el límite de entrada. MCP permite solo hostnames dinámicos de Cube porque Cube valida el token antes de reenviar el tráfico. Después de la creación de la plantilla, configura el límite de PID del proveedor y la denegación obligatoria de egress privado/link-local, luego ejecuta el contrato en vivo:
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.pyLa verificación en vivo crea un sandbox seguro y verifica simultáneamente ambas cargas de trabajo: APIs de marcador y archivos, política de red pública/privada, CDP autenticado en los tres endpoints de navegador, rechazo de token de tráfico, definiciones exactas de herramientas MCP, navegación MCP y confinamiento de herramientas no seguras.
La autoridad final de promoción sigue siendo el conjunto de conformidad de proveedor de browser_use.
No habilites el modo de producción solo por el éxito de la compilación de la imagen.
Seguridad
CDP y Playwright MCP otorgan control del navegador; la herramienta no segura de MCP es equivalente a RCE de host. Nunca inyectes secretos de aplicación en un sandbox. Mantén habilitada la aplicación de tokens de tráfico, usa solo valores de imagen y marcador inmutables, aplica límites de PID del proveedor y exige denegación privada/link-local.
This server cannot be deployed
Maintenance
Related MCP Connectors
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Cloud browser, web extraction, screenshots, and remote CDP tools for AI agents.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
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.402 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