{"slug": "cloakbrowser-mcp-playwright-mcp-tools-with-a-cloakbrowser-chromium-runtime", "title": "CloakBrowser MCP: Playwright MCP tools with a CloakBrowser Chromium runtime", "summary": "CloakBrowser MCP is an open-source Model Context Protocol server that integrates upstream Playwright MCP tools with the CloakBrowser Chromium runtime. The project generates a Playwright MCP configuration pointing `launchOptions.executablePath` to CloakBrowser, keeping the same browser automation tool surface while allowing users to run it with a different Chromium executable in local or Docker-backed agent workflows.", "body_md": "Browser automation is becoming one of the most useful tool categories for AI agents.\n\nIf an agent can open a page, inspect the accessibility tree, click buttons, fill forms, read console output, and take screenshots, it can help with tasks that are hard to solve through APIs alone: debugging frontend flows, checking documentation, testing onboarding, validating generated UI, and reproducing browser-only bugs.\n\nPlaywright MCP is already a strong foundation for that workflow. It gives MCP clients a browser automation surface built around Playwright. The question that led to CloakBrowser MCP was narrower:\n\nWhat if you want the same upstream Playwright MCP tools, but with a different Chromium runtime?\n\nThat is what `cloakbrowser-mcp`\n\ndoes.\n\n`cloakbrowser-mcp`\n\nis an open-source Model Context Protocol server that runs upstream `@playwright/mcp`\n\nwith the CloakBrowser Chromium executable.\n\nThe project is intentionally thin:\n\n`cloakbrowser-mcp`\n\ngenerates a Playwright MCP config that points `launchOptions.executablePath`\n\nto CloakBrowserThose local tools are:\n\n`cloakbrowser_binary_info`\n\n`cloakbrowser_bridge_info`\n\nEverything else comes from upstream Playwright MCP.\n\nRepository:\n\n[https://github.com/swimmwatch/cloakbrowser-mcp](https://github.com/swimmwatch/cloakbrowser-mcp)\n\nDocs:\n\n[https://swimmwatch.github.io/cloakbrowser-mcp/](https://swimmwatch.github.io/cloakbrowser-mcp/)\n\nnpm:\n\n[https://www.npmjs.com/package/cloakbrowser-mcp](https://www.npmjs.com/package/cloakbrowser-mcp)\n\nThis is not a custom browser automation API.\n\nIt is not a fork that rewrites Playwright MCP tool contracts.\n\nIt is not a CAPTCHA-solving service, and it should not be treated as a replacement for proper test-environment controls, allowlists, or site-owner-approved automation paths.\n\nThe goal is narrower and more maintainable: keep the Playwright MCP surface familiar, while letting users run that surface with CloakBrowser Chromium in local or Docker-backed agent workflows.\n\nBrowser MCP servers can become painful when every server invents a slightly different tool surface.\n\nIf the tool names, schemas, and behavior drift, users have to relearn the same browser workflow for each runtime. Clients and prompts also become less portable.\n\n`cloakbrowser-mcp`\n\ntakes the opposite approach. The bridge stays small and lets upstream Playwright MCP remain authoritative for browser tools.\n\nThat matters for a few reasons:\n\nThe project also runs parity checks against upstream default tools in CI, so changes to the forwarded tool surface are visible during development.\n\nRequires Node.js 20 or newer.\n\n```\nnpx -y cloakbrowser-mcp@latest --help\nnpx -y cloakbrowser-mcp@latest doctor\nnpx -y cloakbrowser-mcp@latest\n```\n\nUse `doctor`\n\nfirst if you want a local diagnostic check before wiring the server into an MCP client:\n\n```\nnpx -y cloakbrowser-mcp@latest doctor --json\n```\n\nThe default transport is stdio, which is what most local MCP client configs expect.\n\nFor Streamable HTTP:\n\n```\nnpx -y cloakbrowser-mcp@latest \\\n  --transport streamable-http \\\n  --http-port 3000\n```\n\nThat exposes MCP at:\n\n```\nhttp://127.0.0.1:3000/mcp\n```\n\nIt also provides health probes:\n\n```\ncurl http://127.0.0.1:3000/healthz\ncurl http://127.0.0.1:3000/readyz\n```\n\nMost MCP clients use the same stdio shape: `command`\n\n, `args`\n\n, and optional `env`\n\n.\n\n```\n{\n  \"mcpServers\": {\n    \"cloakbrowser\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"cloakbrowser-mcp@latest\"],\n      \"env\": {\n        \"PLAYWRIGHT_MCP_HEADLESS\": \"true\",\n        \"PLAYWRIGHT_MCP_OUTPUT_DIR\": \"/tmp/cloakbrowser-artifacts\"\n      }\n    }\n  }\n}\n```\n\nUse the same pattern in clients such as Claude Desktop, Cursor, VS Code, Cline, Continue, Windsurf, Goose, Warp, and Codex, adjusting only the surrounding config format if the client uses TOML or YAML instead of JSON.\n\nDocker is useful when you want a repeatable runtime. The image is based on the pinned official Playwright MCP image and includes the bridge.\n\n```\ndocker pull swimmwatch/cloakbrowser-mcp:latest\ndocker run --rm --init -i \\\n  -v \"$PWD/artifacts:/data\" \\\n  swimmwatch/cloakbrowser-mcp:latest\n```\n\nFor Streamable HTTP in Docker:\n\n```\ndocker run --rm --init -p 127.0.0.1:3000:3000 \\\n  -v \"$PWD/artifacts:/data\" \\\n  swimmwatch/cloakbrowser-mcp:latest \\\n  --transport streamable-http \\\n  --http-host 0.0.0.0 \\\n  --http-port 3000\n```\n\nThe same images are also published to GitHub Container Registry:\n\n```\nghcr.io/swimmwatch/cloakbrowser-mcp\n```\n\nAsk your MCP client to list tools. You should see upstream Playwright MCP browser tools, such as:\n\n`browser_navigate`\n\n`browser_click`\n\n`browser_type`\n\n`browser_snapshot`\n\n`browser_take_screenshot`\n\n`browser_console_messages`\n\n`browser_network_requests`\n\n`browser_evaluate`\n\n`browser_tabs`\n\nYou should also see the two local diagnostic tools:\n\n`cloakbrowser_binary_info`\n\n`cloakbrowser_bridge_info`\n\nThe diagnostic tools are there to answer practical setup questions:\n\nThe primary configuration namespace is the upstream Playwright MCP namespace:\n\n```\nPLAYWRIGHT_MCP_*\n```\n\nFor Cloak-specific bridge toggles:\n\n```\nCLOAK_PLAYWRIGHT_MCP_*\n```\n\nCommon examples:\n\n```\nPLAYWRIGHT_MCP_HEADLESS=true\nPLAYWRIGHT_MCP_OUTPUT_DIR=/tmp/cloakbrowser-artifacts\nPLAYWRIGHT_MCP_OUTPUT_MODE=stdout\nCLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK=true\nCLOAK_PLAYWRIGHT_MCP_STEALTH_ARGS=true\n```\n\nFor local HTTP transport:\n\n```\nCLOAK_PLAYWRIGHT_MCP_TRANSPORT=streamable-http\nCLOAK_PLAYWRIGHT_MCP_HTTP_HOST=127.0.0.1\nCLOAK_PLAYWRIGHT_MCP_HTTP_PORT=3000\nCLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT=/mcp\n```\n\nIf you expose HTTP outside a local development machine, configure an auth token:\n\n```\nCLOAK_PLAYWRIGHT_MCP_HTTP_AUTH_TOKEN=...\n```\n\nA few details are worth knowing before using it in a real workflow:\n\n`-i`\n\nso stdio stays connected.`--init`\n\nso browser child processes are reaped correctly.`latest`\n\n.Example:\n\n```\nnpx -y cloakbrowser-mcp@1.3.0\n```\n\nOr:\n\n```\ndocker run --rm --init -i \\\n  -v \"$PWD/artifacts:/data\" \\\n  swimmwatch/cloakbrowser-mcp:1.3.0\n```\n\nIt is a good fit when you want:\n\nIt is probably not the right fit if:\n\nThe fastest path is:\n\n```\nnpx -y cloakbrowser-mcp@latest doctor\n```\n\nThen add the stdio config to your MCP client:\n\n```\n{\n  \"mcpServers\": {\n    \"cloakbrowser\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"cloakbrowser-mcp@latest\"]\n    }\n  }\n}\n```\n\nProject links:\n\nFeedback is welcome, especially from people already using Playwright MCP in local agent workflows.", "url": "https://wpnews.pro/news/cloakbrowser-mcp-playwright-mcp-tools-with-a-cloakbrowser-chromium-runtime", "canonical_source": "https://dev.to/swimmwatch/cloakbrowser-mcp-playwright-mcp-tools-with-a-cloakbrowser-chromium-runtime-3ec8", "published_at": "2026-06-06 16:50:17+00:00", "updated_at": "2026-06-06 17:11:55.744152+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "ai-products"], "entities": ["CloakBrowser MCP", "Playwright MCP", "CloakBrowser", "swimmwatch"], "alternates": {"html": "https://wpnews.pro/news/cloakbrowser-mcp-playwright-mcp-tools-with-a-cloakbrowser-chromium-runtime", "markdown": "https://wpnews.pro/news/cloakbrowser-mcp-playwright-mcp-tools-with-a-cloakbrowser-chromium-runtime.md", "text": "https://wpnews.pro/news/cloakbrowser-mcp-playwright-mcp-tools-with-a-cloakbrowser-chromium-runtime.txt", "jsonld": "https://wpnews.pro/news/cloakbrowser-mcp-playwright-mcp-tools-with-a-cloakbrowser-chromium-runtime.jsonld"}}