CloakBrowser MCP
Playwright MCP-compatible browser automation bridge for CloakBrowser Chromium.
Que pouvez-vous faire avec CloakBrowser MCP ?
cloakbrowser_binary_inforeturns CloakBrowser package, platform, cache, and resolved binary data.cloakbrowser_bridge_inforeturns bridge metadata, upstream package/version, and local tool names.
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
cloakbrowser-mcpclaude mcp add cloakbrowser-mcp -e 'PLAYWRIGHT_MCP_BROWSER_ENGINE=cloak' -e 'PLAYWRIGHT_MCP_HEADLESS=true' -e 'PLAYWRIGHT_MCP_OUTPUT_DIR=.playwright-mcp' -e 'PLAYWRIGHT_MCP_CODEGEN=typescript' -e 'PLAYWRIGHT_MCP_SNAPSHOT_BOXES=false' -e 'PLAYWRIGHT_MCP_TIMEOUT_SETTLE=500' -e 'PLAYWRIGHT_MCP_USER_DATA_DIR=<PLAYWRIGHT_MCP_USER_DATA_DIR>' -e 'CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS=<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>' -e 'CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS=<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>' -e 'CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK=true' -e 'CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=false' -e 'CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS=<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>' -- npx -y cloakbrowser-mcp@1.15.1
{
"mcpServers": {
"cloakbrowser-mcp": {
"command": "npx",
"args": [
"-y",
"cloakbrowser-mcp@1.15.1"
],
"env": {
"PLAYWRIGHT_MCP_BROWSER_ENGINE": "cloak",
"PLAYWRIGHT_MCP_HEADLESS": "true",
"PLAYWRIGHT_MCP_OUTPUT_DIR": ".playwright-mcp",
"PLAYWRIGHT_MCP_CODEGEN": "typescript",
"PLAYWRIGHT_MCP_SNAPSHOT_BOXES": "false",
"PLAYWRIGHT_MCP_TIMEOUT_SETTLE": "500",
"PLAYWRIGHT_MCP_USER_DATA_DIR": "<PLAYWRIGHT_MCP_USER_DATA_DIR>",
"CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
"CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
"CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "true",
"CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "false",
"CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>"
}
}
}
}
Variables d'environnement
PLAYWRIGHT_MCP_BROWSER_ENGINEBridge browser engine: cloak or playwright.PLAYWRIGHT_MCP_HEADLESSRun the browser in headless mode.PLAYWRIGHT_MCP_OUTPUT_DIRDirectory where upstream Playwright MCP writes artifacts.PLAYWRIGHT_MCP_CODEGENGenerate code in typescript, python, java, csharp, or none.PLAYWRIGHT_MCP_SNAPSHOT_BOXESInclude element bounding boxes in browser snapshots.PLAYWRIGHT_MCP_TIMEOUT_SETTLEMilliseconds to wait after actions for triggered work to settle.PLAYWRIGHT_MCP_USER_DATA_DIRPersistent Chromium profile directory. The bridge resolves it to an absolute path and writes it to generated Playwright MCP config.CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONSJSON object with validated Playwright context options such as viewport, locale, timezoneId, permissions, geolocation, and headers.CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHSJSON array or comma-separated list of Chrome extension directories. Requires PLAYWRIGHT_MCP_USER_DATA_DIR.CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACKPatch upstream console message collection for CloakBrowser compatibility.CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCHResolve proxy GeoIP and match CloakBrowser timezone/locale fingerprint flags when PLAYWRIGHT_MCP_PROXY_SERVER is set.CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGSComma-separated or JSON array of extra Chromium launch arguments.
cloakbrowser-mcpclaude mcp add cloakbrowser-mcp -e 'CLOAK_PLAYWRIGHT_MCP_HTTP_HOST=127.0.0.1' -e 'CLOAK_PLAYWRIGHT_MCP_HTTP_PORT=3000' -e 'CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT=/mcp' -e 'CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN=<your cloak_playwright_mcp_http_auth_token>' -e 'CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND=memory' -e 'CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS=3600000' -e 'CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX=32' -e 'PLAYWRIGHT_MCP_BROWSER_ENGINE=cloak' -e 'PLAYWRIGHT_MCP_HEADLESS=true' -e 'PLAYWRIGHT_MCP_OUTPUT_DIR=.playwright-mcp' -e 'PLAYWRIGHT_MCP_CODEGEN=typescript' -e 'PLAYWRIGHT_MCP_SNAPSHOT_BOXES=false' -e 'PLAYWRIGHT_MCP_TIMEOUT_SETTLE=500' -e 'PLAYWRIGHT_MCP_USER_DATA_DIR=<PLAYWRIGHT_MCP_USER_DATA_DIR>' -e 'CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS=<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>' -e 'CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS=<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>' -e 'CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK=true' -e 'CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=false' -e 'CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS=<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>' -- npx -y cloakbrowser-mcp@1.15.1 --transport streamable-http
{
"mcpServers": {
"cloakbrowser-mcp": {
"command": "npx",
"args": [
"-y",
"cloakbrowser-mcp@1.15.1",
"--transport",
"streamable-http"
],
"env": {
"CLOAK_PLAYWRIGHT_MCP_HTTP_HOST": "127.0.0.1",
"CLOAK_PLAYWRIGHT_MCP_HTTP_PORT": "3000",
"CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT": "/mcp",
"CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN": "<your cloak_playwright_mcp_http_auth_token>",
"CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND": "memory",
"CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS": "3600000",
"CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX": "32",
"PLAYWRIGHT_MCP_BROWSER_ENGINE": "cloak",
"PLAYWRIGHT_MCP_HEADLESS": "true",
"PLAYWRIGHT_MCP_OUTPUT_DIR": ".playwright-mcp",
"PLAYWRIGHT_MCP_CODEGEN": "typescript",
"PLAYWRIGHT_MCP_SNAPSHOT_BOXES": "false",
"PLAYWRIGHT_MCP_TIMEOUT_SETTLE": "500",
"PLAYWRIGHT_MCP_USER_DATA_DIR": "<PLAYWRIGHT_MCP_USER_DATA_DIR>",
"CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
"CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
"CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "true",
"CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "false",
"CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>"
}
}
}
}
Variables d'environnement
CLOAK_PLAYWRIGHT_MCP_HTTP_HOSTStreamable HTTP bind host.CLOAK_PLAYWRIGHT_MCP_HTTP_PORTStreamable HTTP bind port.CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINTStreamable HTTP endpoint path.CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKENsecret Optional Streamable HTTP Bearer token.CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKENDSession metadata backend. Only memory is implemented in this release.CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MSIdle TTL for Streamable HTTP sessions.CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAXMaximum active Streamable HTTP sessions in one process.PLAYWRIGHT_MCP_BROWSER_ENGINEBridge browser engine: cloak or playwright.PLAYWRIGHT_MCP_HEADLESSRun the browser in headless mode.PLAYWRIGHT_MCP_OUTPUT_DIRDirectory where upstream Playwright MCP writes artifacts.PLAYWRIGHT_MCP_CODEGENGenerate code in typescript, python, java, csharp, or none.PLAYWRIGHT_MCP_SNAPSHOT_BOXESInclude element bounding boxes in browser snapshots.PLAYWRIGHT_MCP_TIMEOUT_SETTLEMilliseconds to wait after actions for triggered work to settle.PLAYWRIGHT_MCP_USER_DATA_DIRPersistent Chromium profile directory. The bridge resolves it to an absolute path and writes it to generated Playwright MCP config.CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONSJSON object with validated Playwright context options such as viewport, locale, timezoneId, permissions, geolocation, and headers.CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHSJSON array or comma-separated list of Chrome extension directories. Requires PLAYWRIGHT_MCP_USER_DATA_DIR.CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACKPatch upstream console message collection for CloakBrowser compatibility.CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCHResolve proxy GeoIP and match CloakBrowser timezone/locale fingerprint flags when PLAYWRIGHT_MCP_PROXY_SERVER is set.CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGSComma-separated or JSON array of extra Chromium launch arguments.
ghcr.io/swimmwatch/cloakbrowser-mcp:1.15.1claude mcp add cloakbrowser-mcp -e 'PLAYWRIGHT_MCP_BROWSER_ENGINE=cloak' -e 'PLAYWRIGHT_MCP_HEADLESS=true' -e 'PLAYWRIGHT_MCP_OUTPUT_DIR=/data' -e 'PLAYWRIGHT_MCP_CODEGEN=typescript' -e 'PLAYWRIGHT_MCP_SNAPSHOT_BOXES=false' -e 'PLAYWRIGHT_MCP_TIMEOUT_SETTLE=500' -e 'PLAYWRIGHT_MCP_USER_DATA_DIR=<PLAYWRIGHT_MCP_USER_DATA_DIR>' -e 'CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS=<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>' -e 'CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS=<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>' -e 'CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK=true' -e 'CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=false' -e 'CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS=<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>' -- docker run -i --rm ghcr.io/swimmwatch/cloakbrowser-mcp:1.15.1
{
"mcpServers": {
"cloakbrowser-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/swimmwatch/cloakbrowser-mcp:1.15.1"
],
"env": {
"PLAYWRIGHT_MCP_BROWSER_ENGINE": "cloak",
"PLAYWRIGHT_MCP_HEADLESS": "true",
"PLAYWRIGHT_MCP_OUTPUT_DIR": "/data",
"PLAYWRIGHT_MCP_CODEGEN": "typescript",
"PLAYWRIGHT_MCP_SNAPSHOT_BOXES": "false",
"PLAYWRIGHT_MCP_TIMEOUT_SETTLE": "500",
"PLAYWRIGHT_MCP_USER_DATA_DIR": "<PLAYWRIGHT_MCP_USER_DATA_DIR>",
"CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
"CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
"CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "true",
"CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "false",
"CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>"
}
}
}
}
Variables d'environnement
PLAYWRIGHT_MCP_BROWSER_ENGINEBridge browser engine: cloak or playwright.PLAYWRIGHT_MCP_HEADLESSRun the browser in headless mode.PLAYWRIGHT_MCP_OUTPUT_DIRDirectory inside the container where upstream Playwright MCP writes artifacts.PLAYWRIGHT_MCP_CODEGENGenerate code in typescript, python, java, csharp, or none.PLAYWRIGHT_MCP_SNAPSHOT_BOXESInclude element bounding boxes in browser snapshots.PLAYWRIGHT_MCP_TIMEOUT_SETTLEMilliseconds to wait after actions for triggered work to settle.PLAYWRIGHT_MCP_USER_DATA_DIRPersistent Chromium profile directory inside the container. Use /data/profiles/... with the existing /data volume.CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONSJSON object with validated Playwright context options such as viewport, locale, timezoneId, permissions, geolocation, and headers.CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHSJSON array or comma-separated list of Chrome extension directories inside the container. Requires PLAYWRIGHT_MCP_USER_DATA_DIR.CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACKPatch upstream console message collection for CloakBrowser compatibility.CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCHResolve proxy GeoIP and match CloakBrowser timezone/locale fingerprint flags when PLAYWRIGHT_MCP_PROXY_SERVER is set.CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGSComma-separated or JSON array of extra Chromium launch arguments.
docker.io/swimmwatch/cloakbrowser-mcp:1.15.1claude mcp add cloakbrowser-mcp -e 'PLAYWRIGHT_MCP_BROWSER_ENGINE=cloak' -e 'PLAYWRIGHT_MCP_HEADLESS=true' -e 'PLAYWRIGHT_MCP_OUTPUT_DIR=/data' -e 'PLAYWRIGHT_MCP_CODEGEN=typescript' -e 'PLAYWRIGHT_MCP_SNAPSHOT_BOXES=false' -e 'PLAYWRIGHT_MCP_TIMEOUT_SETTLE=500' -e 'PLAYWRIGHT_MCP_USER_DATA_DIR=<PLAYWRIGHT_MCP_USER_DATA_DIR>' -e 'CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS=<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>' -e 'CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS=<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>' -e 'CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK=true' -e 'CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=false' -e 'CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS=<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>' -- docker run -i --rm docker.io/swimmwatch/cloakbrowser-mcp:1.15.1
{
"mcpServers": {
"cloakbrowser-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/swimmwatch/cloakbrowser-mcp:1.15.1"
],
"env": {
"PLAYWRIGHT_MCP_BROWSER_ENGINE": "cloak",
"PLAYWRIGHT_MCP_HEADLESS": "true",
"PLAYWRIGHT_MCP_OUTPUT_DIR": "/data",
"PLAYWRIGHT_MCP_CODEGEN": "typescript",
"PLAYWRIGHT_MCP_SNAPSHOT_BOXES": "false",
"PLAYWRIGHT_MCP_TIMEOUT_SETTLE": "500",
"PLAYWRIGHT_MCP_USER_DATA_DIR": "<PLAYWRIGHT_MCP_USER_DATA_DIR>",
"CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
"CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
"CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "true",
"CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "false",
"CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>"
}
}
}
}
Variables d'environnement
PLAYWRIGHT_MCP_BROWSER_ENGINEBridge browser engine: cloak or playwright.PLAYWRIGHT_MCP_HEADLESSRun the browser in headless mode.PLAYWRIGHT_MCP_OUTPUT_DIRDirectory inside the container where upstream Playwright MCP writes artifacts.PLAYWRIGHT_MCP_CODEGENGenerate code in typescript, python, java, csharp, or none.PLAYWRIGHT_MCP_SNAPSHOT_BOXESInclude element bounding boxes in browser snapshots.PLAYWRIGHT_MCP_TIMEOUT_SETTLEMilliseconds to wait after actions for triggered work to settle.PLAYWRIGHT_MCP_USER_DATA_DIRPersistent Chromium profile directory inside the container. Use /data/profiles/... with the existing /data volume.CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONSJSON object with validated Playwright context options such as viewport, locale, timezoneId, permissions, geolocation, and headers.CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHSJSON array or comma-separated list of Chrome extension directories inside the container. Requires PLAYWRIGHT_MCP_USER_DATA_DIR.CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACKPatch upstream console message collection for CloakBrowser compatibility.CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCHResolve proxy GeoIP and match CloakBrowser timezone/locale fingerprint flags when PLAYWRIGHT_MCP_PROXY_SERVER is set.CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGSComma-separated or JSON array of extra Chromium launch arguments.
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
cloakbrowser-mcp
cloakbrowser-mcp is a drop-in Playwright MCP-compatible browser automation server with unchanged upstream tools, CloakBrowser Chromium, and production-ready npm, Docker, and Streamable HTTP packaging. It runs upstream @playwright/mcp as the canonical tool surface and points that runtime at CloakBrowser.
30-second demo
Run npx -y cloakbrowser-mcp@latest, connect Claude Desktop or Codex CLI, ask for web research, daily automation, or testing in plain English, and inspect the real browser result.
Documentation: swimmwatch.github.io/cloakbrowser-mcp · Comparison · Recipes
Use it when you need:
- Playwright MCP browser automation backed by CloakBrowser;
- unchanged upstream browser tools plus two local introspection tools;
- npm or Docker installation over stdio or Streamable HTTP;
- opt-in, session-scoped managed CDP access for
CDP-capable clients through
chromium.connectOverCDP(); - persistent browser profiles, validated context options, and Chrome extension loading;
- GeoIP-aware proxy matching for regional QA;
- humanized mouse, keyboard, and scroll behavior for interaction-sensitive flows.
Cross-platform checks cover npm on Linux x64/arm64, macOS arm64/x64, and Windows x64 across the Node.js versions listed in Testing. Docker images are built and smoke-tested for linux/amd64 and linux/arm64.
See @playwright/mcp vs cloakbrowser-mcp when deciding whether plain upstream Playwright MCP or CloakBrowser MCP fits a deployment better. The Recipes pages show task-focused setup paths for persistent login profiles, Chrome extensions, reverse proxies, regional QA, client connections, and CI smoke tests.
Install With npm
npx -y cloakbrowser-mcp@latest
Requires Node.js 22.13+ in the 22.x line, or Node.js 24+. Run diagnostics before wiring a client:
npx -y cloakbrowser-mcp@latest doctor
For Streamable HTTP instead of stdio:
npx -y cloakbrowser-mcp@latest --transport streamable-http --http-port 3000
See the generated CLI Reference for all flags.
Install With Docker
docker run --rm -i \
-v "$PWD/artifacts:/data" \
swimmwatch/cloakbrowser-mcp:latest
For Streamable HTTP:
docker run --rm -p 127.0.0.1:3000:3000 \
-v "$PWD/artifacts:/data" \
swimmwatch/cloakbrowser-mcp:latest \
--transport streamable-http --http-host 0.0.0.0 --http-port 3000
The Docker image writes artifacts to /data and is published for linux/amd64 and linux/arm64. It defaults to CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX=true for compatibility with containerized runtimes where Chromium sandboxing is often unavailable. If your host and container runtime support Chromium sandboxing, set CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX=false; for untrusted pages, keep container network access and mounted host directories tightly scoped. The same tags are also available from ghcr.io/swimmwatch/cloakbrowser-mcp. See Docker for persistent profiles, extension mounts, HTTPS, and smoke-test examples, or use the reverse proxy recipe for a focused Streamable HTTP deployment.
Add To MCP Clients
Codex CLI
codex mcp add cloakbrowser -- npx -y cloakbrowser-mcp@latest
Claude Code
claude mcp add --transport stdio cloakbrowser -- npx -y cloakbrowser-mcp@latest
GitHub Copilot In VS Code
{
"servers": {
"cloakbrowser": {
"type": "stdio",
"command": "npx",
"args": ["-y", "cloakbrowser-mcp@latest"]
}
}
}
Claude Desktop, Cursor, Cline, Windsurf, Warp, And Other mcpServers Clients
Add this server entry to the client's MCP JSON config:
{
"mcpServers": {
"cloakbrowser": {
"command": "npx",
"args": ["-y", "cloakbrowser-mcp@latest"]
}
}
}
Docker-backed stdio
{
"mcpServers": {
"cloakbrowser": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v",
"/tmp/cloakbrowser-artifacts:/data",
"swimmwatch/cloakbrowser-mcp:latest"
]
}
}
}
Already-running Streamable HTTP server
npx -y cloakbrowser-mcp@latest --transport streamable-http --http-port 3000
codex mcp add cloakbrowser --url http://127.0.0.1:3000/mcp
claude mcp add --transport http cloakbrowser http://127.0.0.1:3000/mcp
Prompt For A Code Assistant
Paste this into Codex, Claude Code, Copilot, Cursor, Cline, Windsurf, or a similar coding assistant that can edit MCP config:
Install the CloakBrowser MCP server for this workspace. Name it "cloakbrowser".
Prefer stdio with command "npx" and args ["-y", "cloakbrowser-mcp@latest"].
If this client uses VS Code mcp.json, add it under "servers" with type "stdio".
If this client uses Claude/Cursor/Cline/Windsurf/Warp-style config, add it under
"mcpServers" with the same command and args. Do not add secrets.
More examples are in Getting Started, with dedicated recipes for Claude Desktop and Codex CLI.
Configuration
Use upstream PLAYWRIGHT_MCP_* variables for browser, artifacts, timeouts, network, and tool capability settings. Cloak-specific bridge toggles use CLOAK_PLAYWRIGHT_MCP_*. Select a Pro Preview browser build before startup with --release-channel preview or CLOAK_PLAYWRIGHT_MCP_RELEASE_CHANNEL=preview; the default is stable.
The common variable table now lives in Configuration. That page also covers persistent profiles, validated context options, Chrome extensions, Streamable HTTP metadata, and HTTPS/auth options. See GeoIP Proxy Matching for regional proxy behavior, Humanized Input Behavior for interaction realism, and Recipes for task-focused configurations.
Version Compatibility
| cloakbrowser-mcp | @playwright/mcp | CloakBrowser | Node.js | Platform | ||
|---|---|---|---|---|---|---|
1.15.1 | ^0.0.83 | ^0.6.3 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.15.0 | ^0.0.83 | ^0.6.3 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.14.1 | ^0.0.82 | ^0.5.10 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.14.0 | ^0.0.82 | ^0.5.10 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.13.0 | ^0.0.80 | ^0.5.10 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.12.0 | ^0.0.79 | ^0.5.7 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.11.0 | ^0.0.79 | ^0.5.6 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.10.0 | ^0.0.78 | ^0.5.3 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.9.0 | ^0.0.78 | ^0.5.1 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.8.0 | ^0.0.78 | ^0.4.10 | `^22.13.0 | >=24.0.0` | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | |
1.7.0 | ^0.0.77 | ^0.4.8 | >=22.12 | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | ||
1.6.1 | ^0.0.77 | ^0.4.7 | >=22.12 | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | ||
1.6.0 | ^0.0.77 | ^0.4.7 | >=22.12 | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | ||
1.5.0 | ^0.0.76 | ^0.4.3 | >=22.12 | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | ||
1.4.0 | ^0.0.76 | ^0.3.32 | >=22.12 | npm on Linux x64/arm64, macOS arm64/x64, Windows x64; Docker linux/amd64, linux/arm64 | ||
1.3.0 | ^0.0.75 | ^0.3.31 | >=20 | Docker linux/amd64, Node.js local | ||
1.2.7 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.2.6 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.2.5 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.2.3 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.2.2 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.2.1 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.2.0 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.1.0 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.0.2 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.0.1 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local | ||
1.0.0 | ^0.0.75 | ^0.3.30 | >=20 | Docker linux/amd64, Node.js local |
See Version Compatibility for the maintained compatibility table.
Tools
The upstream Playwright MCP tool list is authoritative. This project does not reimplement or re-document upstream browser schemas in source code.
Local tools:
cloakbrowser_binary_inforeturns CloakBrowser package, platform, cache, and resolved binary data.cloakbrowser_bridge_inforeturns bridge metadata, upstream package/version, and local tool names.
Development
npm install
npm run build
npm test
npm run docker:build
npm run docker:smoke
npm run server:validate
npm run bridge:compare -- cloakbrowser-mcp:dev --report bridge-parity-report.json
Documentation starts at docs/getting-started.md. Contributor material is grouped under docs/contributor-guide.md.
See test reporting for local Allure reports and combined CI matrix reports linked from pull requests.
Questions fréquentes
Qu'est-ce que CloakBrowser MCP ?
Playwright MCP-compatible browser automation bridge for CloakBrowser Chromium.
Comment installer CloakBrowser MCP ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add cloakbrowser-mcp -e 'PLAYWRIGHT_MCP_BROWSER_ENGINE=cloak' -e 'PLAYWRIGHT_MCP_HEADLESS=true' -e 'PLAYWRIGHT_MCP_OUTPUT_DIR=.playwright-mcp' -e 'PLAYWRIGHT_MCP_CODEGEN=typescript' -e 'PLAYWRIGHT_MCP_SNAPSHOT_BOXES=false' -e 'PLAYWRIGHT_MCP_TIMEOUT_SETTLE=500' -e 'PLAYWRIGHT_MCP_USER_DATA_DIR=<PLAYWRIGHT_MCP_USER_DATA_DIR>' -e 'CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS=<CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>' -e 'CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS=<CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>' -e 'CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK=true' -e 'CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=false' -e 'CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS=<CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>' -- npx -y cloakbrowser-mcp@1.15.1. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour CloakBrowser MCP ?
Oui. Il attend CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN, à renseigner dans sa configuration.
CloakBrowser MCP est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient CloakBrowser MCP ?
Il est publié par swimmwatch. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.