# CloakBrowser MCP

Wires CloakBrowser Chromium browser automation into your coding agent. Useful when the agent should visit pages itself and report what it found.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 172
- Author: swimmwatch
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/swimmwatch/cloakbrowser-mcp
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/mcp/cloakbrowser-mcp

## What it does

The server boots the `@playwright/mcp` runtime and aims it at CloakBrowser Chromium. Tool names stay identical to upstream Playwright MCP, with two extra local introspection tools on top. Ship it via npm or Docker, over stdio or Streamable HTTP.

Session-scoped CDP access is opt-in: clients that speak CDP attach through `chromium.connectOverCDP()`. Persistent browser profiles, Chrome extension loading and GeoIP-matched proxies for regional QA are all supported. Mouse, keyboard and scroll input is humanized, which shows up on flows that react to how you interact.

npm installs need Node.js 22.13+ on the 22.x line, or Node.js 24+. Run `npx -y cloakbrowser-mcp@latest doctor` before wiring a client. Docker images are built and smoke-tested for `linux/amd64` and `linux/arm64`.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `PLAYWRIGHT_MCP_BROWSER_ENGINE`, `PLAYWRIGHT_MCP_HEADLESS`, `PLAYWRIGHT_MCP_OUTPUT_DIR`, `PLAYWRIGHT_MCP_CODEGEN`, `PLAYWRIGHT_MCP_SNAPSHOT_BOXES`, `PLAYWRIGHT_MCP_TIMEOUT_SETTLE`, `PLAYWRIGHT_MCP_USER_DATA_DIR`, `CLOAK_PLAYWRIGHT_MCP_CONTEXT_OPTIONS`, `CLOAK_PLAYWRIGHT_MCP_EXTENSION_PATHS`, `CLOAK_PLAYWRIGHT_MCP_CONSOLE_FALLBACK` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env PLAYWRIGHT_MCP_BROWSER_ENGINE=<PLAYWRIGHT_MCP_BROWSER_ENGINE> --env PLAYWRIGHT_MCP_HEADLESS=<PLAYWRIGHT_MCP_HEADLESS> --env PLAYWRIGHT_MCP_OUTPUT_DIR=<PLAYWRIGHT_MCP_OUTPUT_DIR> --env PLAYWRIGHT_MCP_CODEGEN=<PLAYWRIGHT_MCP_CODEGEN> --env PLAYWRIGHT_MCP_SNAPSHOT_BOXES=<PLAYWRIGHT_MCP_SNAPSHOT_BOXES> --transport stdio cloakbrowser-mcp -- npx -y cloakbrowser-mcp
```
Replace <…> with your own values. 14 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
codex mcp add cloakbrowser-mcp --env PLAYWRIGHT_MCP_BROWSER_ENGINE=<PLAYWRIGHT_MCP_BROWSER_ENGINE> --env PLAYWRIGHT_MCP_HEADLESS=<PLAYWRIGHT_MCP_HEADLESS> --env PLAYWRIGHT_MCP_OUTPUT_DIR=<PLAYWRIGHT_MCP_OUTPUT_DIR> --env PLAYWRIGHT_MCP_CODEGEN=<PLAYWRIGHT_MCP_CODEGEN> --env PLAYWRIGHT_MCP_SNAPSHOT_BOXES=<PLAYWRIGHT_MCP_SNAPSHOT_BOXES> -- npx -y cloakbrowser-mcp
```
Replace <…> with your own values. 14 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "cloakbrowser-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cloakbrowser-mcp"
            ],
            "env": {
                "PLAYWRIGHT_MCP_BROWSER_ENGINE": "<PLAYWRIGHT_MCP_BROWSER_ENGINE>",
                "PLAYWRIGHT_MCP_HEADLESS": "<PLAYWRIGHT_MCP_HEADLESS>",
                "PLAYWRIGHT_MCP_OUTPUT_DIR": "<PLAYWRIGHT_MCP_OUTPUT_DIR>",
                "PLAYWRIGHT_MCP_CODEGEN": "<PLAYWRIGHT_MCP_CODEGEN>",
                "PLAYWRIGHT_MCP_SNAPSHOT_BOXES": "<PLAYWRIGHT_MCP_SNAPSHOT_BOXES>"
            }
        }
    }
}
```
Replace <…> with your own values. 14 more environment variables are in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "cloakbrowser-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "cloakbrowser-mcp"
            ],
            "env": {
                "PLAYWRIGHT_MCP_BROWSER_ENGINE": "<PLAYWRIGHT_MCP_BROWSER_ENGINE>",
                "PLAYWRIGHT_MCP_HEADLESS": "<PLAYWRIGHT_MCP_HEADLESS>",
                "PLAYWRIGHT_MCP_OUTPUT_DIR": "<PLAYWRIGHT_MCP_OUTPUT_DIR>",
                "PLAYWRIGHT_MCP_CODEGEN": "<PLAYWRIGHT_MCP_CODEGEN>",
                "PLAYWRIGHT_MCP_SNAPSHOT_BOXES": "<PLAYWRIGHT_MCP_SNAPSHOT_BOXES>"
            }
        }
    }
}
```
Replace <…> with your own values. 14 more environment variables are in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e PLAYWRIGHT_MCP_BROWSER_ENGINE=<PLAYWRIGHT_MCP_BROWSER_ENGINE> -e PLAYWRIGHT_MCP_HEADLESS=<PLAYWRIGHT_MCP_HEADLESS> -e PLAYWRIGHT_MCP_OUTPUT_DIR=<PLAYWRIGHT_MCP_OUTPUT_DIR> -e PLAYWRIGHT_MCP_CODEGEN=<PLAYWRIGHT_MCP_CODEGEN> -e PLAYWRIGHT_MCP_SNAPSHOT_BOXES=<PLAYWRIGHT_MCP_SNAPSHOT_BOXES> cloakbrowser-mcp npx -y cloakbrowser-mcp
```
Replace <…> with your own values. 14 more environment variables are in the server README

## When to use it
- let the agent open a page and pull data off it
- walk a signup flow in a real browser and find the break
- run regional QA through a proxy that matches the location
- keep a login alive across runs with a persistent profile
- load a Chrome extension into the automation session

## Example prompts
- Open the pricing page and list every plan name in a table
- Run through signup on the staging site and show me where the form fails
- Start the browser with a persistent profile and confirm the login survived

## Similar
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89433
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [AIHawk](https://affpapa.org/en/nevibecode/mcp/aihawk.md) — MCP server · ★ 32221
- [Skyvern](https://affpapa.org/en/nevibecode/mcp/skyvern.md) — MCP server · ★ 23263
- [SeleniumBase MCP](https://affpapa.org/en/nevibecode/mcp/seleniumbase-mcp.md) — MCP server · ★ 13169
- [apify-mcp-server](https://affpapa.org/en/nevibecode/mcp/apify-mcp-server.md) — MCP server · ★ 12927

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
