Skip to main content
Glama
hirotasoshu

cubesandbox-browser-sandbox

by hirotasoshu

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 9000 y un servicio HTTP @playwright/mcp@0.0.79 gestionado por s6 en 8931, ejecutándose como UID 1000;

  • almacenamiento de ejecución del supervisor Run escribible y no root en /run/browser-use/runs y dos ranuras CDP de Chromium headless propiedad de Run en 10000-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-smoke

La 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: agentic-browser-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.py

La 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.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • A
    license
    A
    quality
    B
    maintenance
    Enables MCP clients to automate a real Chrome browser via Playwright, supporting session sharing and tools for navigation, clicking, typing, and more.
    11
    2
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    Exposes 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.
    40
    22
    8
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hirotasoshu/cubesandbox-browser-sandbox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server