PluginBench
MCP Server

CloakBrowser MCP MCP Server

io.github.swimmwatch/cloakbrowser-mcp

What is the CloakBrowser MCP MCP server?

Playwright MCP-compatible browser automation bridge for CloakBrowser Chromium.

How to install CloakBrowser MCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • PLAYWRIGHT_MCP_BROWSER_ENGINE

    Bridge browser engine: cloak or playwright.

  • PLAYWRIGHT_MCP_HEADLESS

    Run the browser in headless mode.

  • PLAYWRIGHT_MCP_OUTPUT_DIR

    Directory where upstream Playwright MCP writes artifacts.

  • PLAYWRIGHT_MCP_OUTPUT_MODE

    Return snapshots, console logs, and network logs through stdout or files.

  • PLAYWRIGHT_MCP_USER_DATA_DIR

    Persistent Chromium profile directory. The bridge resolves it to an absolute path and writes it to generated Playwright MCP config.

  • CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS

    JSON object with validated Playwright context options such as viewport, locale, timezoneId, permissions, geolocation, and headers.

  • CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS

    JSON array or comma-separated list of Chrome extension directories. Requires PLAYWRIGHT_MCP_USER_DATA_DIR.

  • CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK

    Patch upstream console message collection for CloakBrowser compatibility.

  • CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH

    Resolve proxy GeoIP and match CloakBrowser timezone/locale fingerprint flags when PLAYWRIGHT_MCP_PROXY_SERVER is set.

  • CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS

    Comma-separated or JSON array of extra Chromium launch arguments.

  • CLOAK_PLAYWRIGHT_MCP_HTTP_HOST

    Streamable HTTP bind host.

  • CLOAK_PLAYWRIGHT_MCP_HTTP_PORT

    Streamable HTTP bind port.

  • CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT

    Streamable HTTP endpoint path.

  • CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN
    secret

    Optional Streamable HTTP Bearer token.

  • CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND

    Session metadata backend. Only memory is implemented in this release.

  • CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS

    Idle TTL for Streamable HTTP sessions.

  • CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX

    Maximum active Streamable HTTP sessions in one process.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "cloakbrowser-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cloakbrowser-mcp"
      ],
      "env": {
        "PLAYWRIGHT_MCP_BROWSER_ENGINE": "<YOUR_PLAYWRIGHT_MCP_BROWSER_ENGINE>",
        "PLAYWRIGHT_MCP_HEADLESS": "<YOUR_PLAYWRIGHT_MCP_HEADLESS>",
        "PLAYWRIGHT_MCP_OUTPUT_DIR": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_DIR>",
        "PLAYWRIGHT_MCP_OUTPUT_MODE": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_MODE>",
        "PLAYWRIGHT_MCP_USER_DATA_DIR": "<YOUR_PLAYWRIGHT_MCP_USER_DATA_DIR>",
        "CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
        "CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
        "CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK>",
        "CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "<YOUR_CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH>",
        "CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_HOST": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_HOST>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_PORT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_PORT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "cloakbrowser-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cloakbrowser-mcp"
      ],
      "env": {
        "PLAYWRIGHT_MCP_BROWSER_ENGINE": "<YOUR_PLAYWRIGHT_MCP_BROWSER_ENGINE>",
        "PLAYWRIGHT_MCP_HEADLESS": "<YOUR_PLAYWRIGHT_MCP_HEADLESS>",
        "PLAYWRIGHT_MCP_OUTPUT_DIR": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_DIR>",
        "PLAYWRIGHT_MCP_OUTPUT_MODE": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_MODE>",
        "PLAYWRIGHT_MCP_USER_DATA_DIR": "<YOUR_PLAYWRIGHT_MCP_USER_DATA_DIR>",
        "CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
        "CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
        "CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK>",
        "CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "<YOUR_CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH>",
        "CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_HOST": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_HOST>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_PORT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_PORT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cloakbrowser-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cloakbrowser-mcp"
      ],
      "env": {
        "PLAYWRIGHT_MCP_BROWSER_ENGINE": "<YOUR_PLAYWRIGHT_MCP_BROWSER_ENGINE>",
        "PLAYWRIGHT_MCP_HEADLESS": "<YOUR_PLAYWRIGHT_MCP_HEADLESS>",
        "PLAYWRIGHT_MCP_OUTPUT_DIR": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_DIR>",
        "PLAYWRIGHT_MCP_OUTPUT_MODE": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_MODE>",
        "PLAYWRIGHT_MCP_USER_DATA_DIR": "<YOUR_PLAYWRIGHT_MCP_USER_DATA_DIR>",
        "CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
        "CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
        "CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK>",
        "CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "<YOUR_CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH>",
        "CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_HOST": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_HOST>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_PORT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_PORT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "cloakbrowser-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "cloakbrowser-mcp"
      ],
      "env": {
        "PLAYWRIGHT_MCP_BROWSER_ENGINE": "<YOUR_PLAYWRIGHT_MCP_BROWSER_ENGINE>",
        "PLAYWRIGHT_MCP_HEADLESS": "<YOUR_PLAYWRIGHT_MCP_HEADLESS>",
        "PLAYWRIGHT_MCP_OUTPUT_DIR": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_DIR>",
        "PLAYWRIGHT_MCP_OUTPUT_MODE": "<YOUR_PLAYWRIGHT_MCP_OUTPUT_MODE>",
        "PLAYWRIGHT_MCP_USER_DATA_DIR": "<YOUR_PLAYWRIGHT_MCP_USER_DATA_DIR>",
        "CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS>",
        "CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS>",
        "CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK": "<YOUR_CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK>",
        "CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH": "<YOUR_CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH>",
        "CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_HOST": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_HOST>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_PORT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_PORT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS>",
        "CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX": "<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX>"
      }
    }
  }
}
Claude Code
claude mcp add cloakbrowser-mcp --env PLAYWRIGHT_MCP_BROWSER_ENGINE=<YOUR_PLAYWRIGHT_MCP_BROWSER_ENGINE> --env PLAYWRIGHT_MCP_HEADLESS=<YOUR_PLAYWRIGHT_MCP_HEADLESS> --env PLAYWRIGHT_MCP_OUTPUT_DIR=<YOUR_PLAYWRIGHT_MCP_OUTPUT_DIR> --env PLAYWRIGHT_MCP_OUTPUT_MODE=<YOUR_PLAYWRIGHT_MCP_OUTPUT_MODE> --env PLAYWRIGHT_MCP_USER_DATA_DIR=<YOUR_PLAYWRIGHT_MCP_USER_DATA_DIR> --env CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS=<YOUR_CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS> --env CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS=<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS> --env CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK=<YOUR_CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK> --env CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH=<YOUR_CLOAK_PLAYWRIGHT_MCP_GEOIP_PROXY_MATCH> --env CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS=<YOUR_CLOAK_PLAYWRIGHT_MCP_EXTRA_ARGS> --env CLOAK_PLAYWRIGHT_MCP_HTTP_HOST=<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_HOST> --env CLOAK_PLAYWRIGHT_MCP_HTTP_PORT=<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_PORT> --env CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT=<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT> --env CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN=<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN> --env CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND=<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_BACKEND> --env CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS=<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_IDLE_TTL_MS> --env CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX=<YOUR_CLOAK_PLAYWRIGHT_MCP_HTTP_SESSION_MAX> -- npx -y cloakbrowser-mcp

Related MCP servers

Give your AI agent stealth web scraping with Cloudflare bypass and CSS selection, powered by Scrapling.

67k
Python
BSD-3-Clause
View repository →

Give your AI coding agent full control of a live Chrome browser for automation, debugging, and performance analysis.

45k
TypeScript
Apache-2.0
View repository →

Let AI agents manage your Puter files, websites, and serverless workers over MCP.

43k
TypeScript
AGPL-3.0
View repository →

Browser automation for AI agents via MCP, powering ByteDance's Agent TARS hybrid GUI/DOM browser control.

37k
TypeScript
Apache-2.0
View repository →

Run arbitrary shell commands from an MCP-connected AI agent.

37k
TypeScript
Apache-2.0
View repository →

Filesystem access MCP server from ByteDance's UI-TARS/Agent TARS ecosystem.

37k
TypeScript
Apache-2.0
View repository →