io.github.CapMonsterCloud/capmonster-mcp-patchright-captcha-solver
Browser automation MCP for solving captchas with CapMonster Cloud via Patchright.
What can you do with io.github.CapMonsterCloud/capmonster-mcp-patchright-captcha-solver?
- 66 MCP tools — full browser automation surface
world: "main"opt-in —browser_evaluate/browser_run_code_unsafecan run in the page's real world to see/call page-defined globals (default stays isolated/stealth)browser_find— search the current aria snapshot for text/regex, cheaper than a fullbrowser_snapshotbrowser_save_blob— save a Blob/data URL produced by page code to disk- 3 transports — stdio, SSE, Streamable HTTP (
/mcp) - Persistent profiles — real Chrome profile, reuse across sessions
- Multi-page — tab management (new, list, switch, close)
- Owner-scoped HTTP sessions — isolate tabs per caller with
ownerquery/header
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
capmonster-mcp-patchrightclaude mcp add capmonster-mcp-patchright-captcha-solver -- npx -y capmonster-mcp-patchright@1.1.3
{
"mcpServers": {
"capmonster-mcp-patchright-captcha-solver": {
"command": "npx",
"args": [
"-y",
"capmonster-mcp-patchright@1.1.3"
]
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
capmonster-mcp-patchright
Stealth browser MCP server for AI agents — 66 tools, Patchright-powered, reduced CDP automation signals.
Built for automation on sites protected by Cloudflare, Akamai, Kasada and DataDome. When the page shows a CAPTCHA, pair it with the CapMonster Cloud MCP server: this server drives the browser, CapMonster Cloud solves the CAPTCHA. Learn more
👉 Get your CapMonster Cloud API Key
Fork of mcp-patchright that adds a per-call
world: "main" option to browser_evaluate / browser_run_code_unsafe, so page-defined window
globals are visible and callable. Defaults to Patchright's isolated stealth world (matching
upstream); opt into main only when a page's own script needs to see or be called by your
evaluated code. Everything else matches upstream mcp-patchright.
Why Patchright, not Playwright?
| Playwright | Patchright | |
|---|---|---|
Runtime.enable | ✅ sends (detectable) | ❌ removed |
Console.enable | ✅ sends | ❌ removed |
--enable-automation flag | ✅ present | ❌ removed |
navigator.webdriver | true | false / undefined |
| Anti-bot evasion | ❌ | ✅ |
See the full comparison for details.
Quick start
npm i -g capmonster-mcp-patchright
capmonster-mcp-patchright --port 9321 --host 127.0.0.1
With Claude / GPT / agents
{
"mcpServers": {
"patchright": {
"command": "npx",
"args": ["capmonster-mcp-patchright", "--port", "9321", "--host", "127.0.0.1"]
}
}
}
Features
- 66 MCP tools — full browser automation surface
world: "main"opt-in —browser_evaluate/browser_run_code_unsafecan run in the page's real world to see/call page-defined globals (default stays isolated/stealth)browser_find— search the current aria snapshot for text/regex, cheaper than a fullbrowser_snapshotbrowser_save_blob— save a Blob/data URL produced by page code to disk- 3 transports — stdio, SSE, Streamable HTTP (
/mcp) - Persistent profiles — real Chrome profile, reuse across sessions
- Multi-page — tab management (new, list, switch, close)
- Owner-scoped HTTP sessions — isolate tabs per caller with
ownerquery/header - CDP attach — control an already-running Chrome
- Network tracking + interception — request list/detail, offline toggle, block/mock routes
- Session import/export —
browser_storage_save/browser_storage_load(cookies + localStorage) - Granular storage — per-key cookie / localStorage / sessionStorage CRUD (
browser_cookie_*,browser_localstorage_*,browser_sessionstorage_*) - Authenticated API requests —
browser_api_requestreuses session cookies (hybrid scraping) - Text/HTML extraction —
browser_get_visible_text/_html(token-light) - Iframe-aware — pass
frameSelectorto any element tool (click/fill/type/hover/press/wait_for/select/drag) to act inside an iframe - PDF export —
browser_save_pdfvia CDP (works in headed/stealth mode) - Video recording —
browser_startwithrecordVideo,browser_video_save; .webm flushed onbrowser_close - Element highlight —
browser_highlight/browser_hide_highlightoverlays for screenshots & recordings - Stealth profiles — proxy / geolocation / locale / timezone / colorScheme
- Console capture — real-time console message stream
- Fingerprint check —
browser_fingerprint_checkdiagnostics - Virtual passkeys — create, import, list, and delete WebAuthn credentials with private keys redacted by default
Tools
Full comparison HTML in /docs/tool-comparison.html.
browser_startbrowser_statusbrowser_navigatebrowser_new_pagebrowser_pagesbrowser_switch_pagebrowser_close_pagebrowser_snapshotbrowser_findbrowser_take_screenshotbrowser_clickbrowser_fillbrowser_typebrowser_hoverbrowser_press_keybrowser_wait_forbrowser_evaluatebrowser_fingerprint_checkbrowser_navigate_backbrowser_select_optionbrowser_handle_dialogbrowser_file_uploadbrowser_network_requestsbrowser_network_requestbrowser_console_messagesbrowser_resizebrowser_dragbrowser_fill_formbrowser_run_code_unsafebrowser_add_init_scriptbrowser_network_state_setbrowser_api_requestbrowser_get_visible_textbrowser_get_visible_htmlbrowser_iframe_clickbrowser_iframe_fillbrowser_route_blockbrowser_route_mockbrowser_route_clearbrowser_storage_savebrowser_storage_loadbrowser_cookie_listbrowser_cookie_getbrowser_cookie_setbrowser_cookie_deletebrowser_cookie_clearbrowser_localstorage_listbrowser_localstorage_getbrowser_localstorage_setbrowser_localstorage_deletebrowser_localstorage_clearbrowser_sessionstorage_listbrowser_sessionstorage_getbrowser_sessionstorage_setbrowser_sessionstorage_deletebrowser_sessionstorage_clearbrowser_passkey_installbrowser_passkey_createbrowser_passkey_listbrowser_passkey_deletebrowser_video_savebrowser_highlightbrowser_hide_highlightbrowser_save_blobbrowser_save_pdfbrowser_close
Development
Owner-scoped HTTP sessions
HTTP mode requires a stable owner on
the MCP URL (?owner=<id>) or with the X-Browser-Owner header. Page listing,
switching, navigation, and closing are restricted to that owner's tabs. Delete
/owners?owner=<id> to close all tabs owned by one caller without stopping the
browser or clearing the profile.
npm install
npm run build
node dist/index.js
Release
Install the matching Chromium build once, then prepare a release from the exact
dependency versions in package-lock.json, run the full verification suite,
and inspect the package without publishing it:
npx patchright install chromium
npm run release:check
npm publish
By default, browser_start launches Chromium via patchright as headed real Chrome with a persistent profile at:
~/.maestro/stealth-playwright-mcp/profiles/default
You can override it with the userDataDir tool argument or STEALTH_PLAYWRIGHT_USER_DATA_DIR.
To attach to an already-running Chrome instead of launching one, start Chrome with remote debugging and pass cdpEndpoint to browser_start:
google-chrome --remote-debugging-port=9222 --user-data-dir=$HOME/.maestro/stealth-playwright-mcp/profiles/cdp
{ "cdpEndpoint": "http://127.0.0.1:9222" }
browser_snapshot returns Playwright's AI aria snapshot. Use [ref=eN] values from that snapshot with browser_click, browser_fill, browser_type, browser_hover, browser_press, and browser_wait_for by passing { "ref": "eN" }. CSS selectors remain supported via { "selector": "..." }.
MCP config example:
{
"mcpServers": {
"patchright": {
"command": "node",
"args": ["/path/to/capmonster-mcp-patchright/dist/index.js"]
}
}
}
Direction
Shipped:
- ✅ persistent user data dirs
- ✅ CDP attach to real Chrome
- ✅ proxy / timezone / locale / geolocation profiles
- ✅ accessibility snapshots for LLM-friendly page control
- ✅ fingerprint diagnostics
- ✅ network interception (block / mock)
- ✅ session import/export (storageState)
- ✅ PDF export
- ✅ authenticated API requests (reuse browser cookies)
- ✅ lightweight text/HTML extraction
- ✅ iframe actions
- ✅
world: "main"opt-in forbrowser_evaluate/browser_run_code_unsafe - ✅ aria-snapshot search (
browser_find) - ✅ save Blob/data URL output to disk (
browser_save_blob)
Next:
- rebrowser-playwright backend
- codegen sessions
- coordinate-based (vision) clicks
- tracing / video recording
⚖️ Responsible use
Use this server only on websites you own or have permission to automate, and in line with the terms of service of those websites and applicable law. Patchright reduces common automation signals; acceptance of automated traffic by any site is not guaranteed.
📚 Related
- CapMonster Cloud MCP Server — the CAPTCHA-solving part of the workflow
- CapMonster Cloud MCP page
- CapMonster Cloud Documentation
- Model Context Protocol (MCP) Docs
📄 License
Frequently asked questions
What is io.github.CapMonsterCloud/capmonster-mcp-patchright-captcha-solver?
Browser automation MCP for solving captchas with CapMonster Cloud via Patchright.
How do I install io.github.CapMonsterCloud/capmonster-mcp-patchright-captcha-solver?
It runs on your machine. In Claude Code: claude mcp add capmonster-mcp-patchright-captcha-solver -- npx -y capmonster-mcp-patchright@1.1.3. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.CapMonsterCloud/capmonster-mcp-patchright-captcha-solver need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is io.github.CapMonsterCloud/capmonster-mcp-patchright-captcha-solver open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.CapMonsterCloud/capmonster-mcp-patchright-captcha-solver?
It is published by CapMonsterCloud. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.