@devinwangd/cloak-browser-mcp

MCPattested
v0.2.0Devin WangMITUpdated 2d agonpmGitHub

Model Context Protocol (MCP) server backed by CloakBrowser stealth Chromium. Drop-in replacement for @playwright/mcp with source-level fingerprint patches, humanized inputs, and persistent profiles. 86 tools across navigation, interaction, page state, net

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
25Downloads/wk
2GitHub stars
1Forks
2d agoLast update
Reads these credentials
  • CLOAKBROWSER_LICENSE_KEYAPI keyoptional

    Optional CloakBrowser Pro license key. Leave unset to use the free binary.

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
AuthorDevin Wang
LicenseMIT
Version0.2.0
Sourcenpm+mcp-registry
Trust Status
B
65/100Good
✓Listed in Forge index+10/10
✓Identity verified · attested build+20/20
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—npm maintainer match+0/5
→ Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
✓CVE scan · clean+30/30
—Static analysis · clean+0/20
→ Suspicious install scripts or obfuscated code detected
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain—
Provenance✓ Sigstore-verified · 54de25c
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface40 tools · 3 privileged
Security scan⚠ Warnings (1)v0.2.0 · todayHow well does this scan work?
PROMPTtool:browser_press_keyExfiltration-shaped instruction
EvalsNone
IndexedOct 22, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

40 tools · 3 privileged · 1 flagged for injection
Statically extracted from the published packagev0.2.0 · 4h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

cloak_binary_infoReport installed CloakBrowser binary version, tier (free or pro), platform, and cache path.

Report installed CloakBrowser binary version, tier (free or pro), platform, and cache path.

No input schema was published for this tool.

cloak_binary_updateForce CloakBrowser to check for and download the latest Chromium build. May take several minutes (~200MB).

Force CloakBrowser to check for and download the latest Chromium build. May take several minutes (~200MB).

No input schema was published for this tool.

cloak_detection_testLoad a well-known bot-detection probe page and dump its key result fields.

Load a well-known bot-detection probe page and dump its key result fields.

No input schema was published for this tool.

cloak_stealth_auditProgrammatic stealth audit. Reports navigator.webdriver, plugin count, WebGL vendor/renderer, languages, user agent, hardwareConcurrency, deviceMemory, permissions, chrome.runtime presence, and a canvas fingerprint hash.

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 input schema was published for this tool.

cloak_request_signal_inspectOpen 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-*).

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-*).

No input schema was published for this tool.

cloak_humanize_setToggle humanized mouse/keyboard inputs and tune behavior. Takes effect on subsequent click/type calls when --caps humanize is on.

Toggle humanized mouse/keyboard inputs and tune behavior. Takes effect on subsequent click/type calls when --caps humanize is on.

No input schema was published for this tool.

cloak_persistent_profile_createCreate a fresh persistent profile directory under ~/.cloak-browser-mcp/profiles/<name>. Use as --profile-dir on next launch.

Create a fresh persistent profile directory under ~/.cloak-browser-mcp/profiles/<name>. Use as --profile-dir on next launch.

No input schema was published for this tool.

cloak_persistent_profile_listList all profile directories under ~/.cloak-browser-mcp/profiles/.

List all profile directories under ~/.cloak-browser-mcp/profiles/.

No input schema was published for this tool.

cloak_persistent_profile_deleteprivilegedDelete a profile directory. Requires confirm=true. The active session is unaffected.

Delete a profile directory. Requires confirm=true. The active session is unaffected.

No input schema was published for this tool.

cloak_set_fingerprintApply 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.

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.

No input schema was published for this tool.

cloak_set_timezoneLive-override the timezone for the active context via CDP (no relaunch).

Live-override the timezone for the active context via CDP (no relaunch).

No input schema was published for this tool.

cloak_set_localeOverride navigator.language and Accept-Language for the active context.

Override navigator.language and Accept-Language for the active context.

No input schema was published for this tool.

cloak_set_geolocationSet the geolocation reported by navigator.geolocation. Pass fromProxyIp=true to auto-resolve from proxy exit IP.

Set the geolocation reported by navigator.geolocation. Pass fromProxyIp=true to auto-resolve from proxy exit IP.

No input schema was published for this tool.

cloak_set_proxyReplace the current proxy. This recreates the BrowserContext (state is preserved if --profile-dir was used; otherwise cookies are lost).

Replace the current proxy. This recreates the BrowserContext (state is preserved if --profile-dir was used; otherwise cookies are lost).

No input schema was published for this tool.

browser_get_configPrint resolved server config (capabilities, profile, proxy, fingerprint, allow/block lists).

Print resolved server config (capabilities, profile, proxy, fingerprint, allow/block lists).

No input schema was published for this tool.

browser_closeClose the browser and discard all in-memory state. The next tool call will lazy-relaunch.

Close the browser and discard all in-memory state. The next tool call will lazy-relaunch.

No input schema was published for this tool.

browser_run_code_unsafeExecute arbitrary JS in the server process. Only available when started with BOTH --caps config AND --enable-unsafe-eval.

Execute arbitrary JS in the server process. Only available when started with BOTH --caps config AND --enable-unsafe-eval.

No input schema was published for this tool.

browser_highlightPersistently outline an element so a human reviewer can see what the agent picked.

Persistently outline an element so a human reviewer can see what the agent picked.

No input schema was published for this tool.

browser_hide_highlightRemove highlight from a previously highlighted element, or all of them.

Remove highlight from a previously highlighted element, or all of them.

No input schema was published for this tool.

browser_start_tracingBegin a Playwright trace recording. Stop with browser_stop_tracing to write the .zip.

Begin a Playwright trace recording. Stop with browser_stop_tracing to write the .zip.

No input schema was published for this tool.

browser_stop_tracingStop tracing and write the .zip trace to the path passed in browser_start_tracing.

Stop tracing and write the .zip trace to the path passed in browser_start_tracing.

No input schema was published for this tool.

browser_start_videoBegin 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.

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.

No input schema was published for this tool.

browser_stop_videoStop the video recording flag.

Stop the video recording flag.

No input schema was published for this tool.

browser_video_chapterInsert a chapter marker into the video buffer (no-op when video is off).

Insert a chapter marker into the video buffer (no-op when video is off).

No input schema was published for this tool.

browser_video_show_actionsAnnotate 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.

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.

No input schema was published for this tool.

browser_video_hide_actionsStop annotating actions performed on the page.

Stop annotating actions performed on the page.

No input schema was published for this tool.

browser_start_recordingStart 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.

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 input schema was published for this tool.

browser_stop_recordingStop the recording started with browser_start_recording and return the recorded actions as Playwright code.

Stop the recording started with browser_start_recording and return the recorded actions as Playwright code.

No input schema was published for this tool.

browser_resumeResume page execution if paused via debugger; statement or DevTools breakpoint.

Resume page execution if paused via debugger; statement or DevTools breakpoint.

No input schema was published for this tool.

browser_clickClick an element by ref or selector.

Click an element by ref or selector.

No input schema was published for this tool.

browser_typeType text into an editable field. Use --humanize for natural per-character timing.

Type text into an editable field. Use --humanize for natural per-character timing.

No input schema was published for this tool.

browser_hoverHover over an element.

Hover over an element.

No input schema was published for this tool.

browser_dragDrag from one element to another.

Drag from one element to another.

No input schema was published for this tool.

browser_dropprivilegedDrop files or data onto an element.

Drop files or data onto an element.

No input schema was published for this tool.

browser_select_optionSelect one or more options in a <select> dropdown.

Select one or more options in a <select> dropdown.

No input schema was published for this tool.

browser_press_keyinjection riskSend a single key or key combination at page level.

Send a single key or key combination at page level.

INJECTIONExfiltration-shaped instructionSend a single key or key combination at page level.

No input schema was published for this tool.

browser_handle_dialogRespond to the next dialog (alert/confirm/prompt/beforeunload).

Respond to the next dialog (alert/confirm/prompt/beforeunload).

No input schema was published for this tool.

browser_file_uploadprivilegedUpload files to the active file chooser. Paths must be inside --upload-allow-dir if set.

Upload files to the active file chooser. Paths must be inside --upload-allow-dir if set.

No input schema was published for this tool.

browser_fill_formPopulate multiple form fields in one call.

Populate multiple form fields in one call.

No input schema was published for this tool.

browser_scrollScroll the page or an element by a pixel amount.

Scroll the page or an element by a pixel amount.

No input schema was published for this tool.

40 of 40 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

Model Context Protocol (MCP) server backed by CloakBrowser stealth Chromium. Drop-in replacement for @playwright/mcp with source-level fingerprint patches, humanized inputs, and persistent profiles. 86 tools across navigation, interaction, page state, net

Keywords
mcpmcp-servermodel-context-protocolcloakbrowsercloak-browserstealth-browserstealth-chromiumanti-detectionanti-botbrowser-automationfingerprintplaywrightplaywright-mcpchromiumheadless-browserscrapingweb-automationagent-browserclaudecursorvscodecodexgemini-cliwindsurfagenticai-assistantautomationai
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-10-23 — observed resolution, not a publisher declaration.

60 packages resolved · 4 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

66 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+54 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.

Topics

Related in browser automation & scraping