browser_click
Perform click on a web page
Playwright MCP's exact tool surface pointed at CloakBrowser Chromium — profiles, extensions, GeoIP-matched proxies.
LABSCO SUMMARY
Because the tool surface is upstream Playwright MCP unchanged, anything already written against it runs here with no edits — what changes sits underneath: CloakBrowser's Chromium, persistent profiles, loaded extensions, humanised input, and a proxy whose GeoIP can be matched to the fingerprint's timezone and locale. One tool is honestly named: browser_run_code_unsafe executes arbitrary JavaScript inside the Playwright server process and is equivalent to remote code execution, so keep it out of any surface you do not fully control.
A bridge that runs upstream @playwright/mcp as the canonical tool surface and points that runtime at CloakBrowser's Chromium, adding two introspection tools of its own. Anything already written against Playwright MCP keeps working unchanged.
Node.js 22.13 or newer in the 22.x line, or Node.js 24 and above. npx -y cloakbrowser-mcp@latest runs it over stdio, and its doctor command checks the environment before you wire a client up. --transport streamable-http with --http-port serves HTTP instead, bound to 127.0.0.1 on port 3000 by default. Docker images are published for linux/amd64 and linux/arm64, write artifacts to /data, and set CLOAK_PLAYWRIGHT_MCP_NO_SANDBOX to true by default because Chromium sandboxing is often unavailable in containers — set it false where your runtime supports it, and keep network access and mounted directories tightly scoped for untrusted pages. PLAYWRIGHT_MCP_BROWSER_ENGINE switches between cloak and plain playwright, PLAYWRIGHT_MCP_HEADLESS defaults to true, and PLAYWRIGHT_MCP_USER_DATA_DIR has to be set before extensions can load.
One command — npx -y cloakbrowser-mcp@latest
USE CASES
Drive it through the ordinary Playwright tools with humanised input, acting from the accessibility snapshot rather than a screenshot.
Point it at a persistent Chromium profile directory so cookies and logins survive, and confirm which binary it resolved.
Send every field in a single call instead of one per input, then wait for the confirmation text.
List the numbered network requests, then open the one that matters with its headers and body.
Read the console messages at the level you want, and evaluate an expression against the element in question.
Search the accessibility snapshot by text or regex and take the matching nodes with their context.
Run behind a proxy with the timezone and locale fingerprint matched to its GeoIP, and check what the bridge resolved.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
browser_clickPerform click on a web page
browser_closeClose the page
browser_console_messagesReturns all console messages
browser_dragPerform drag and drop between two elements
browser_dropDrop 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_evaluateEvaluate JavaScript expression on page or element
browser_file_uploadUpload one or multiple files
browser_fill_formFill multiple form fields
browser_findSearch 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_handle_dialogHandle a dialog
browser_hoverHover over element on page
browser_navigateNavigate to a URL
browser_navigate_backGo back to the previous page in the history
browser_network_requestReturns 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_network_requestsReturns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details.
browser_press_keyPress a key on the keyboard
browser_resizeResize the browser window
browser_run_code_unsafeRun a Playwright code snippet. Unsafe: executes arbitrary JavaScript in the Playwright server process and is RCE-equivalent.
browser_select_optionSelect an option in a dropdown
browser_snapshotCapture accessibility snapshot of the current page, this is better than screenshot
browser_tabsList, create, close, or select a browser tab.
browser_take_screenshotTake a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions.
browser_typeType text into editable element
browser_wait_forWait for text to appear or disappear or a specified time to pass
cloakbrowser_binary_infoReturn CloakBrowser package, cache, platform, and resolved browser binary information.
cloakbrowser_bridge_infoReturn runtime metadata for the CloakBrowser bridge over upstream Playwright MCP.
BEFORE YOU INSTALL
26 tools when we connected. Only cloakbrowser_binary_info and cloakbrowser_bridge_info are this project's own; the other 24 browser_* tools come from a pinned @playwright/mcp version and can change with it.
npx on PATH
All 8 documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 26 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y cloakbrowser-mcp@latestcodex mcp add cloakbrowser -- npx -y cloakbrowser-mcp@latestclaude mcp add --transport stdio cloakbrowser -- npx -y cloakbrowser-mcp@latest{
"servers": {
"cloakbrowser": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"cloakbrowser-mcp@latest"
]
}
}
}{
"mcpServers": {
"cloakbrowser": {
"command": "npx",
"args": [
"-y",
"cloakbrowser-mcp@latest"
]
}
}
}