CapMonster Cloud Patchright MCP Captcha Solver

Automatización de navegador sigilosa mediante Patchright con resolución de CAPTCHA integrada de CapMonster Cloud. Evita Cloudflare Turnstile, reCAPTCHA v2/v3 y DataDome para flujos de scraping de extremo a extremo.

Documentación

capmonster-mcp-patchright

🛡️ Servidor MCP de navegador indetectable — 66 herramientas, impulsado por Patchright, cero huella CDP.

![npm] ![MCP]

Pasa Cloudflare / Akamai / Kasada / Datadome.

Fork de mcp-patchright que añade una opción world: "main" por llamada a browser_evaluate / browser_run_code_unsafe, de modo que los globales de ventana definidos por la página sean visibles y llamables. Por defecto usa el mundo aislado de stealth de Patchright (coincidiendo con el upstream); opta por main solo cuando el propio script de la página necesite ver o ser llamado por tu código evaluado. Todo lo demás coincide con mcp-patchright upstream.

¿Por qué Patchright y no Playwright?

PlaywrightPatchright
Runtime.enable✅ envía (detectable)❌ eliminado
Console.enable✅ envía❌ eliminado
bandera --enable-automation✅ presente❌ eliminada
navigator.webdrivertruefalse / undefined
Evasión anti-bot❌✅

Consulta la comparación completa para más detalles.

Inicio rápido

npm i -g capmonster-mcp-patchright
capmonster-mcp-patchright --port 9321 --host 127.0.0.1

Con Claude / GPT / agentes

{
  "mcpServers": {
    "patchright": {
      "command": "npx",
      "args": ["capmonster-mcp-patchright", "--port", "9321", "--host", "127.0.0.1"]
    }
  }
}

Características

  • 66 herramientas MCP — superficie completa de automatización del navegador
  • world: "main" opcional — browser_evaluate / browser_run_code_unsafe pueden ejecutarse en el mundo real de la página para ver/llamar a globales definidos por la página (el valor predeterminado permanece aislado/stealth)
  • browser_find — busca en la instantánea aria actual texto/regex, más económico que un browser_snapshot completo
  • browser_save_blob — guarda un Blob/URL de datos producido por el código de la página en disco
  • 3 transportes — stdio, SSE, Streamable HTTP (/mcp)
  • Perfiles persistentes — perfil real de Chrome, reutilizable entre sesiones
  • Multipágina — gestión de pestañas (nueva, listar, cambiar, cerrar)
  • Sesiones HTTP con ámbito por propietario — aísla pestañas por llamador con la consulta/cabecera owner
  • Adjuntar CDP — controla un Chrome ya en ejecución
  • Seguimiento e interceptación de red — lista/detalle de solicitudes, alternar sin conexión, bloquear/simular rutas
  • Importar/exportar sesión — browser_storage_save / browser_storage_load (cookies + localStorage)
  • Almacenamiento granular — CRUD por clave de cookie / localStorage / sessionStorage (browser_cookie_*, browser_localstorage_*, browser_sessionstorage_*)
  • Solicitudes API autenticadas — browser_api_request reutiliza las cookies de sesión (scraping híbrido)
  • Extracción de texto/HTML — browser_get_visible_text / _html (ligero en tokens)
  • Consciente de iframes — pasa frameSelector a cualquier herramienta de elementos (click/fill/type/hover/press/wait_for/select/drag) para actuar dentro de un iframe
  • Exportación PDF — browser_save_pdf vía CDP (funciona en modo con ventana/stealth)
  • Grabación de video — browser_start con recordVideo, browser_video_save; .webm vaciado en browser_close
  • Resaltado de elementos — superposiciones browser_highlight / browser_hide_highlight para capturas de pantalla y grabaciones
  • Perfiles stealth — proxy / geolocalización / locale / zona horaria / colorScheme
  • Captura de consola — flujo de mensajes de consola en tiempo real
  • Verificación de huella — diagnósticos browser_fingerprint_check
  • Passkeys virtuales — crea, importa, lista y elimina credenciales WebAuthn con claves privadas redactadas por defecto

Herramientas

Comparación completa en HTML en /docs/tool-comparison.html.

  • browser_start
  • browser_status
  • browser_navigate
  • browser_new_page
  • browser_pages
  • browser_switch_page
  • browser_close_page
  • browser_snapshot
  • browser_find
  • browser_take_screenshot
  • browser_click
  • browser_fill
  • browser_type
  • browser_hover
  • browser_press_key
  • browser_wait_for
  • browser_evaluate
  • browser_fingerprint_check
  • browser_navigate_back
  • browser_select_option
  • browser_handle_dialog
  • browser_file_upload
  • browser_network_requests
  • browser_network_request
  • browser_console_messages
  • browser_resize
  • browser_drag
  • browser_fill_form
  • browser_run_code_unsafe
  • browser_add_init_script
  • browser_network_state_set
  • browser_api_request
  • browser_get_visible_text
  • browser_get_visible_html
  • browser_iframe_click
  • browser_iframe_fill
  • browser_route_block
  • browser_route_mock
  • browser_route_clear
  • browser_storage_save
  • browser_storage_load
  • browser_cookie_list
  • browser_cookie_get
  • browser_cookie_set
  • browser_cookie_delete
  • browser_cookie_clear
  • browser_localstorage_list
  • browser_localstorage_get
  • browser_localstorage_set
  • browser_localstorage_delete
  • browser_localstorage_clear
  • browser_sessionstorage_list
  • browser_sessionstorage_get
  • browser_sessionstorage_set
  • browser_sessionstorage_delete
  • browser_sessionstorage_clear
  • browser_passkey_install
  • browser_passkey_create
  • browser_passkey_list
  • browser_passkey_delete
  • browser_video_save
  • browser_highlight
  • browser_hide_highlight
  • browser_save_blob
  • browser_save_pdf
  • browser_close

Desarrollo

Sesiones HTTP con ámbito por propietario

El modo HTTP requiere un propietario estable en la URL de MCP (?owner=<id>) o con la cabecera X-Browser-Owner. El listado de páginas, el cambio, la navegación y el cierre están restringidos a las pestañas de ese propietario. Elimina /owners?owner=<id> para cerrar todas las pestañas propiedad de un llamador sin detener el navegador ni limpiar el perfil.

npm install
npm run build
node dist/index.js

Lanzamiento

Instala la compilación de Chromium correspondiente una vez, luego prepara un lanzamiento desde las versiones exactas de dependencias en package-lock.json, ejecuta el conjunto completo de verificación, e inspecciona el paquete sin publicarlo:

npx patchright install chromium
npm run release:check
npm publish

Por defecto, browser_start lanza Chromium vía patchright como Chrome real con ventana y un perfil persistente en:

~/.maestro/stealth-playwright-mcp/profiles/default

Puedes sobrescribirlo con el argumento de herramienta userDataDir o STEALTH_PLAYWRIGHT_USER_DATA_DIR.

Para adjuntarte a un Chrome ya en ejecución en lugar de lanzar uno, inicia Chrome con depuración remota y pasa cdpEndpoint a 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 devuelve la instantánea aria de IA de Playwright. Usa los valores [ref=eN] de esa instantánea con browser_click, browser_fill, browser_type, browser_hover, browser_press y browser_wait_for pasando { "ref": "eN" }. Los selectores CSS siguen siendo compatibles vía { "selector": "..." }.

Ejemplo de configuración de MCP:

{
  "mcpServers": {
    "patchright": {
      "command": "node",
      "args": ["/path/to/capmonster-mcp-patchright/dist/index.js"]
    }
  }
}

Dirección

Enviado:

  • ✅ directorios de datos de usuario persistentes
  • ✅ adjuntar CDP a Chrome real
  • ✅ perfiles de proxy / zona horaria / locale / geolocalización
  • ✅ instantáneas de accesibilidad para control de página amigable con LLM
  • ✅ diagnósticos de huella
  • ✅ interceptación de red (bloquear / simular)
  • ✅ importar/exportar sesión (storageState)
  • ✅ exportación PDF
  • ✅ solicitudes API autenticadas (reutilizar cookies del navegador)
  • ✅ extracción ligera de texto/HTML
  • ✅ acciones en iframes
  • ✅ world: "main" opcional para browser_evaluate / browser_run_code_unsafe
  • ✅ búsqueda en instantánea aria (browser_find)
  • ✅ guardar salida de Blob/URL de datos en disco (browser_save_blob)

Siguiente:

  • backend rebrowser-playwright
  • sesiones codegen
  • clics basados en coordenadas (visión)
  • trazado / grabación de video