Control a real Chrome browser to complete any task: fill forms, extract data, book flights.
Cloak Browser is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Playwright-compatible MCP server on CloakBrowser stealth Chromium: 86 tools, humanized input.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user cloak-browser-mcp '--' npx -y @devinwangd/cloak-browser-mcp
# 2 — ask your agent for something these tools do
# browser_highlight, browser_hide_highlight, browser_start_tracing and 83 more
Cloak Browser costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Cloak Browser as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need Node.js — the current LTS (24) is the safe choice; npx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user cloak-browser-mcp '--' npx -y @devinwangd/cloak-browser-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take CLOAKBROWSER_LICENSE_KEY (Optional CloakBrowser Pro license key. Leave unset to use the free binary.) if you want to set it.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
86 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Persistently outline an element so a human reviewer can see what the agent picked.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| element | string | no | — |
| target | string | yes | — |
| style | string | no | CSS outline style override (e.g. '3px solid magenta'). |
Remove highlight from a previously highlighted element, or all of them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| element | string | no | — |
| target | string | no | — |
Begin a Playwright trace recording. Stop with browser_stop_tracing to write the .zip.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | yes | Absolute path to the .zip trace output. |
| screenshots | boolean | no | — |
| snapshots | boolean | no | — |
Stop tracing and write the .zip trace to the path passed in browser_start_tracing.
No parameter schema on file.
Begin a video recording. Stop with browser_stop_video. Note: video must be configured at context creation; for ephemeral sessions, the next launched tab is recorded.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | no | — |
| size | object | no | — |
Stop the video recording flag.
No parameter schema on file.
Insert a chapter marker into the video buffer (no-op when video is off).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | — |
| description | string | no | — |
| duration | number | no | — |
Annotate subsequent actions performed on the page with a callout that names the action and, when styled, marks the action point and highlights the target element. Useful while video recording or screencasting.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| duration | number | no | How long each action annotation stays on screen, in milliseconds. Defaults to 500. |
| position | string | no | Where to place the action title relative to the page. Defaults to top-right. |
| cursor | string | no | Cursor decoration for pointer actions. "pointer" (default) animates a mouse pointer between action points; "none" disables it. |
| style | object | no | Styles of the action decorations. |
Stop annotating actions performed on the page.
No parameter schema on file.
Start recording actions that the user performs in the browser as Playwright code. Use it when the user wants to demonstrate a flow manually. Call browser_stop_recording when the user says they are done to retrieve the recorded actions.
No parameter schema on file.
Stop the recording started with browser_start_recording and return the recorded actions as Playwright code.
No parameter schema on file.
Resume page execution if paused via debugger; statement or DevTools breakpoint.
No parameter schema on file.
Report installed CloakBrowser binary version, tier (free or pro), platform, and cache path.
No parameter schema on file.
Force CloakBrowser to check for and download the latest Chromium build. May take several minutes (~200MB).
No parameter schema on file.
Load a well-known bot-detection probe page and dump its key result fields.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| suite | string | no | Which probe to load. Default = sannysoft (free, no captchas). |
| customUrl | string | no | Override probe URL. |
Programmatic stealth audit. Reports navigator.webdriver, plugin count, WebGL vendor/renderer, languages, user agent, hardwareConcurrency, deviceMemory, permissions, chrome.runtime presence, and a canvas fingerprint hash.
No parameter schema on file.
Open the target URL in an ephemeral background tab and capture per-request connection signals: response status, security details (TLS protocol/issuer), response headers, and request headers (Accept-Language, User-Agent, Sec-CH-UA-*).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | Target URL whose connection signals (TLS, headers) we capture. |
Toggle humanized mouse/keyboard inputs and tune behavior. Takes effect on subsequent click/type calls when --caps humanize is on.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| enabled | boolean | no | — |
| preset | string | no | — |
| config | object | no | — |
Create a fresh persistent profile directory under ~/.cloak-browser-mcp/profiles/<name>. Use as --profile-dir on next launch.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
List all profile directories under ~/.cloak-browser-mcp/profiles/.
No parameter schema on file.
Delete a profile directory. Requires confirm=true. The active session is unaffected.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| confirm | boolean | yes | Required — confirms you intend to wipe this profile. |
Apply a fingerprint profile to the active context. Some fields (seed, GPU, screen) require recreating the context — current pages will be reopened on the same URL.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| seed | number | no | Deterministic canvas/WebGL/audio seed. |
| gpuVendor | string | no | — |
| gpuRenderer | string | no | — |
| screenWidth | number | no | — |
| screenHeight | number | no | — |
| hardwareConcurrency | number | no | — |
| deviceMemoryGB | number | no | — |
| uaBrand | string | no | Browser brand for navigator.userAgentData (e.g. 'Google Chrome'). |
| uaBrandVersion | string | no | — |
| platform | string | no | — |
| storageQuotaMB | number | no | — |
Live-override the timezone for the active context via CDP (no relaunch).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| timezone | string | yes | — |
Override navigator.language and Accept-Language for the active context.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| locale | string | yes | — |
Set the geolocation reported by navigator.geolocation. Pass fromProxyIp=true to auto-resolve from proxy exit IP.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| latitude | number | no | — |
| longitude | number | no | — |
| accuracy | number | no | — |
| fromProxyIp | boolean | no | If true, resolve geolocation from the configured proxy's exit IP via cloak's geoip backend. |
Replace the current proxy. This recreates the BrowserContext (state is preserved if --profile-dir was used; otherwise cookies are lost).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| proxy | string | yes | New proxy URL. Switching mid-session recreates the context. |
Print resolved server config (capabilities, profile, proxy, fingerprint, allow/block lists).
No parameter schema on file.
Close the browser and discard all in-memory state. The next tool call will lazy-relaunch.
No parameter schema on file.
Execute arbitrary JS in the server process. Only available when started with BOTH --caps config AND --enable-unsafe-eval.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| code | string | yes | Async JS source executed in this server process. Has access to a cloak object: { session, page, context, browser }. |
Click an element by ref or selector.
No parameter schema on file.
Type text into an editable field. Use --humanize for natural per-character timing.
No parameter schema on file.
Hover over an element.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| element | string | no | Human-readable element description for logging only. |
| target | yes | — |
Drag from one element to another.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| startElement | string | no | — |
| startTarget | yes | — | |
| endElement | string | no | — |
| endTarget | yes | — |
Drop files or data onto an element.
No parameter schema on file.
Select one or more options in a <select> dropdown.
No parameter schema on file.
Send a single key or key combination at page level.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | Playwright key string, e.g. Enter, Control+A, ArrowDown. |
Respond to the next dialog (alert/confirm/prompt/beforeunload).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| accept | boolean | yes | — |
| promptText | string | no | — |
Upload files to the active file chooser. Paths must be inside --upload-allow-dir if set.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| paths | array | yes | Absolute file paths. Constrained to --upload-allow-dir if set. |
Populate multiple form fields in one call.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fields | array | yes | — |
Scroll the page or an element by a pixel amount.
No parameter schema on file.
Load a URL in the active tab. Returns a fresh snapshot after navigation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url | string | yes | Absolute URL to load. Subject to --allowed-domains / --blocked-domains. |
| waitUntil | string | no | — |
| timeoutMs | number | no | — |
Go back one entry in the active tab's history.
No parameter schema on file.
List, create, switch between, or close tabs.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | yes | — |
| index | number | no | Tab index (0-based) for switch/close. Defaults to active when omitted. |
| id | string | no | Tab id (e.g., t2) for switch/close. Takes precedence over index. |
| url | string | no | Initial URL when action=new. |
List captured HTTP requests for the active tab since last navigation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filter | string | no | Substring filter on URL. |
| limit | number | no | — |
Inspect a single captured request by index (from browser_network_requests).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| index | number | yes | — |
| part | string | no | — |
Install a request mock. Matched requests are fulfilled with the given status/body/headers.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pattern | string | yes | URL glob like https://api.example.com/**. |
| status | number | no | — |
| body | string | no | — |
| contentType | string | no | — |
| headers | object | no | — |
| removeHeaders | array | no | — |
List active request mocks.
No parameter schema on file.
Remove a route mock (or all mocks if pattern is omitted).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| pattern | string | no | If omitted, removes ALL active routes. |
Toggle online/offline simulation for the active context.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | yes | — |
Capture an accessibility-tree snapshot of the active page. Returns a structured outline with [eN] refs you can pass to interaction tools.
No parameter schema on file.
Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of context, each under its path from the root, which is cheaper than a full snapshot when you only need to locate an element and its ref.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | no | Plain text to search for in the page snapshot (case-insensitive substring match). Provide either text or regex, not both. |
| regex | string | no | — |
| filename | string | no | Save results to this file instead of returning them in the response. |
Emulate CSS media features for the page, for example switch between the light and dark color scheme. Omitted parameters are left unchanged; null clears an override.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| colorScheme | string | no | Emulates the prefers-color-scheme media feature. |
| reducedMotion | string | no | Emulates the prefers-reduced-motion media feature. |
| forcedColors | string | no | Emulates the forced-colors media feature. |
| contrast | string | no | Emulates the prefers-contrast media feature. |
| media | string | no | Changes the CSS media type of the page. |
Capture a screenshot of the page or a specific element.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| element | string | no | — |
| target | string | no | If set, screenshot just this element (ref or selector). |
| type | string | no | — |
| fullPage | boolean | no | — |
| quality | number | no | — |
| saveAs | string | no | If set, also write the image to this absolute path. |
Retrieve buffered console/pageerror output for the active tab.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| level | string | no | — |
| limit | number | no | — |
Wait for time, text appearance/disappearance, or selector state.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| timeMs | number | no | — |
| text | string | no | — |
| textGone | string | no | — |
| selector | string | no | — |
| state | string | no | — |
| timeoutMs | number | no | — |
Resize the viewport.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| width | number | yes | — |
| height | number | yes | — |
Run a JavaScript function inside the page. Function source must be an arrow or function expression.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| function | string | yes | JS function source: must be an arrow or function expression. Receives the page (or element) and returns a JSON-serializable value. |
| element | string | no | — |
| target | string | no | If set, runs the function with this element as argument. |
Save the current page as PDF (Chromium-only).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | yes | Absolute path to write the PDF to. |
| format | string | no | — |
| landscape | boolean | no | — |
| printBackground | boolean | no | — |
| scale | number | no | — |
Create or update a cookie at the context level.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| value | string | yes | — |
| domain | string | no | — |
| path | string | no | — |
| expires | number | no | — |
| httpOnly | boolean | no | — |
| secure | boolean | no | — |
| sameSite | string | no | — |
Read a single cookie value.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
List all cookies (optionally filtered by domain/path).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| domain | string | no | — |
| path | string | no | — |
Delete a single cookie.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| domain | string | no | — |
| path | string | no | — |
Erase ALL cookies in the active context.
No parameter schema on file.
Set a localStorage key on the active page.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
| value | string | yes | — |
Read a localStorage value.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
List all localStorage entries.
No parameter schema on file.
Remove a localStorage key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
Clear localStorage on the active page.
No parameter schema on file.
Set a sessionStorage key on the active page.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
| value | string | yes | — |
Read a sessionStorage value.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
List all sessionStorage entries.
No parameter schema on file.
Remove a sessionStorage key.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| key | string | yes | — |
Clear sessionStorage on the active page.
No parameter schema on file.
Export cookies + origin storage to a JSON file.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | no | — |
Import cookies + origin storage from a JSON file. Applied at context boot, so requires --profile-dir to persist beyond this session.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | yes | Absolute path to read/write the storage_state JSON. |
Assert that an element matching role+accessible name is visible.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| role | string | yes | — |
| accessibleName | string | yes | — |
Assert that text is visible on the page.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | — |
Assert that a list element exists and contains each item.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| element | string | yes | — |
| target | string | yes | — |
| items | array | yes | — |
Assert an input value or computed state.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| type | string | yes | — |
| element | string | no | — |
| target | string | yes | — |
| value | string | yes | — |
Generate Playwright-style locator code for an element by ref. Useful for codegen.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| element | string | no | — |
| target | string | yes | — |
Click at pixel coordinates (bypasses accessibility tree).
No parameter schema on file.
Move the cursor to pixel coordinates.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| x | number | yes | — |
| y | number | yes | — |
Drag from one coordinate pair to another.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| startX | number | yes | — |
| startY | number | yes | — |
| endX | number | yes | — |
| endY | number | yes | — |
| steps | number | no | — |
Press a mouse button at the current cursor position.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| button | string | no | — |
Release a mouse button at the current cursor position.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| button | string | no | — |
Scroll via mouse wheel by delta pixels.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| deltaX | number | yes | — |
| deltaY | number | yes | — |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Cloak Browser or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.2.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Cloak Browser can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.