Skip to main content
Glama
hirotasoshu

cubesandbox-browser-sandbox

by hirotasoshu

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: agentic-browser-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 адресов.

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