Skip to main content
Glama
hirotasoshu

cubesandbox-browser-sandbox

by hirotasoshu

CubeSandbox Browser Runtime

Ein Produktions-Image- und Template-Vertrag für browser_use auf CubeSandbox, basierend auf dem per Digest verankerten sandbox-browser-Image von TencentCloud. Jede Sandbox enthält beide Workload-Fähigkeiten:

  • persistentes Upstream-Chromium/CDP auf 9000 und einen s6-verwalteten @playwright/mcp@0.0.79-HTTP-Dienst auf 8931, ausgeführt als UID 1000;

  • beschreibbarer Nicht-Root-Run-Supervisor-Speicher unter /run/browser-use/runs und zwei Run-eigene Headless-Chromium-CDP-Slots auf 10000-10001.

Das runtime-Ziel erfordert RUNTIME_MARKER=sha256:<64 lowercase hex>. Der Marker wird in /etc/browser-use/runtime-marker geschrieben und muss mit dem übereinstimmen, der mit der einzelnen Template-ID in browser_use promoted wurde.

Build und Verifizierung

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

Die Sequenz beweist, dass persistentes MCP zwei gleichzeitige Run-eigene Chromium-Prozesse in derselben Sandbox überlebt. SYS_ADMIN wird nur von lokalem Docker benötigt, damit Chromium Sandbox-Namespaces erstellen kann; CubeSandbox liefert die Isolation in der Bereitstellung.

Abhängigkeiten und Basis-Images sind unveränderlich: npm-Pakete sind integritätsgesperrt, Python-Verifier-Abhängigkeiten sind hash-gesperrt, beide Build-Stufen verwenden Image-Digests, und die Veröffentlichung erzeugt SBOM- und SLSA-Provenance-Attestierungen und signiert den gepushten Digest schlüssellos mit Cosign. Regenerieren Sie die Python-Sperrdatei mit uv pip compile requirements.in -o requirements.txt --generate-hashes.

Related MCP server: agentic-browser-mcp

Veröffentlichung und Template

Der Workflow veröffentlicht latest, sha-<commit> und Release-Tags unter ghcr.io/hirotasoshu/cubesandbox-browser-sandbox. Die Promotion muss einen Tag zu image@sha256:... auflösen; floating Image-Referenzen werden abgelehnt:

scripts/create-template.sh \
  ghcr.io/hirotasoshu/cubesandbox-browser-sandbox@sha256:<digest>

Der Standard-Template-Alias ist browser-use-runtime-medium, mit 2 vCPU, 4 GiB RAM und einer 20 GiB beschreibbaren Schicht. Er exponiert envd 49983, persistentes CDP 9000, MCP 8931 und Run-CDP-Slots 10000-10001. Nur persistentes CDP ist eine Startup-Probe, da Run-Ports im Leerlauf sind, bis ein Run sie besitzt.

Cube-Traffic-Zugriffstokens sind die Ingress-Grenze. MCP erlaubt nur dynamische Cube-Hostnamen, weil Cube das Token validiert, bevor es Verkehr weiterleitet. Nach der Template-Erstellung konfigurieren Sie die Provider-PID-Obergrenze und die obligatorische Verweigerung von privatem/Link-Local-Egress, dann führen Sie den Live-Vertrag aus:

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

Der Live-Check erstellt eine sichere Sandbox und verifiziert gleichzeitig beide Workloads: Marker- und Datei-APIs, öffentliche/private Netzwerkrichtlinie, authentifiziertes CDP auf allen drei Browser-Endpunkten, Traffic-Token-Ablehnung, exakte MCP-Tool-Definitionen, MCP-Navigation und Einschränkung unsicherer Tools.

Die endgültige Promotion-Autorität bleibt die browser_use-Provider-Konformitätssuite. Aktivieren Sie den Produktionsmodus nicht allein aufgrund eines erfolgreichen Image-Builds.

Sicherheit

CDP und Playwright MCP gewähren Browserkontrolle; das unsichere Tool von MCP ist Host-RCE-äquivalent. Injizieren Sie niemals Anwendungsgeheimnisse in eine Sandbox. Halten Sie die Traffic-Token-Durchsetzung aktiviert, verwenden Sie nur unveränderliche Image- und Marker-Werte, setzen Sie Provider-PID-Grenzen durch und verlangen Sie die Verweigerung von privatem/Link-Local-Egress.

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