# swimmwatch/cloakbrowser-mcp [Health: Active]

**Category:** 📂 Browser Automation  
**Repository:** https://github.com/swimmwatch/cloakbrowser-mcp  
**GitHub Stars:** 172  
**npm Downloads (last month):** 2162  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/swimmwatch-cloakbrowser-mcp

## Description
Playwright MCP-compatible browser automation using CloakBrowser Chromium, available as an npm package and Docker image.

## Tools
Capabilities this server exposes over MCP:

- **browser_close** — Close the page
- **browser_resize** — Resize the browser window
- **browser_console_messages** — Returns all console messages
- **browser_handle_dialog** — Handle a dialog
- **browser_evaluate** — Evaluate JavaScript expression on page or element
- **browser_file_upload** — Upload one or multiple files
- **browser_drop** — Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided.
- **browser_find** — Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), each shown under its path from the root of the tree, which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref.
- **browser_fill_form** — Fill multiple form fields
- **browser_press_key** — Press a key on the keyboard
- **browser_type** — Type text into editable element
- **browser_navigate** — Navigate to a URL
- **browser_navigate_back** — Go back to the previous page in the history
- **browser_network_requests** — Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details.
- **browser_network_request** — Returns full details (headers and body) of a single network request, or a single part if `part` is set. Use the number from browser_network_requests.
- **browser_run_code_unsafe** — Run a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent.
- **browser_take_screenshot** — Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.
- **browser_snapshot** — Capture accessibility snapshot of the current page, this is better than screenshot
- **browser_click** — Perform click on a web page
- **browser_drag** — Perform drag and drop between two elements
- **browser_hover** — Hover over element on page
- **browser_select_option** — Select an option in a dropdown
- **browser_tabs** — List, create, close, or select a browser tab.
- **browser_wait_for** — Wait for text to appear or disappear or a specified time to pass
- **cloakbrowser_binary_info** — Return CloakBrowser package, cache, platform, and resolved browser binary information.
- **cloakbrowser_bridge_info** — Return runtime metadata for the CloakBrowser bridge over upstream Playwright MCP.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "cloakbrowser-mcp": {
    "command": "npx",
    "args": ["-y","cloakbrowser-mcp@latest"]
  }
}
```

## Documentation

## What swimmwatch/cloakbrowser-mcp does

swimmwatch/cloakbrowser-mcp exposes CloakBrowser Chromium to MCP clients through the Playwright MCP-compatible tool surface. It is intended for browser automation tasks such as web research, UI testing, form completion, file interaction, and workflows that need a real browser page rather than an API-only integration.

The server keeps the upstream Playwright MCP tools and adds two CloakBrowser-specific introspection tools. `cloakbrowser_binary_info` reports package, cache, platform, and resolved browser-binary details. `cloakbrowser_bridge_info` returns runtime information about the bridge connecting CloakBrowser to upstream Playwright MCP.

Additional capabilities include persistent browser profiles, validated context options, Chrome extension loading, GeoIP-aware proxy matching for regional QA, and humanized mouse, keyboard, and scroll behavior. Managed CDP access is available as an opt-in, session-scoped feature for clients that support `chromium.connectOverCDP()`.

## How it works

The server runs upstream `@playwright/mcp` as its canonical tool layer while directing the runtime to CloakBrowser Chromium. Agents can use accessibility snapshots and targeted searches to locate page elements, then interact with those elements through clicks, typing, keyboard presses, form filling, selections, dragging, hovering, and file operations.

Page state can be inspected with accessibility snapshots, screenshots, console messages, and network request listings. A numbered network request can be expanded with `browser_network_request`, including selected request parts. Browser tabs can be listed, created, closed, or selected, and the server supports navigation history, resizing, dialog handling, waiting, and page-level JavaScript evaluation.

The package supports both stdio and Streamable HTTP transports. npm runs work across Linux, macOS, and Windows on the supported Node.js versions. Docker images target Linux on amd64 and arm64.

## Setup and configuration

The npm quick start is:

```bash
npx -y cloakbrowser-mcp@latest
```

Node.js 22.13 or later in the 22.x series, or Node.js 24 or later, is required. Run the built-in diagnostic command before connecting a client:

```bash
npx -y cloakbrowser-mcp@latest doctor
```

To use Streamable HTTP instead of stdio, start the server with a port:

```bash
npx -y cloakbrowser-mcp@latest --transport streamable-http --http-port 3000
```

Docker is also supported. Mount `/data` when browser artifacts need to be retained, and publish port 3000 for an HTTP deployment. The image is available from Docker Hub and GitHub Container Registry. Docker defaults `CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX` to `true`; set it to `false` when the host and container runtime support Chromium sandboxing.

MCP configuration examples are provided for Claude Desktop, Cursor, Cline, Windsurf, Codex CLI, Claude Code, and GitHub Copilot in VS Code. A standard `mcpServers` entry can launch the npm package, while Docker-backed stdio can launch the container directly.

## Tools and capabilities

- Navigate pages and return to earlier history entries.
- Capture accessibility snapshots and screenshots.
- Find text or regular expressions in the accessibility tree.
- Click, hover, drag, type, press keys, fill forms, and select options.
- Upload files or drop files and MIME-typed data onto elements.
- Manage dialogs, tabs, window size, and wait conditions.
- Inspect console output and network requests.
- Evaluate page or element JavaScript.
- Run Playwright code through the explicitly unsafe `browser_run_code_unsafe` tool.
- Inspect CloakBrowser binary and bridge runtime details.

## Limitations and notes

Screenshots are intended for visual inspection; actions should be based on `browser_snapshot` instead. `browser_run_code_unsafe` executes arbitrary JavaScript in the Playwright server process and is equivalent to remote code execution, so it requires strict trust and deployment controls.

For container deployments, keep network access and mounted host directories narrowly scoped when browsing untrusted pages. The Docker image writes artifacts to `/data`. Streamable HTTP deployments can bind to a configured host and port, while stdio is suitable for clients that launch the process directly.

_Full upstream README: https://allmcps.com/mcp/swimmwatch-cloakbrowser-mcp/readme_

