Leapfrog MCP
El problema
El MCP de Playwright envía ~14.000 tokens para una página con mucho contenido como Hacker News. La mayor parte es ruido. Tu ventana de contexto se llena. Tu agente se confunde. Y tú pagas por ello.
Leapfrog envía ~1.400 tokens. Misma página. Misma información. Hasta 10 veces menos ruido.
┌─────────────────────────────────────────────────────┐
│ Playwright MCP │
│ ████████████████████████████████████████ ~14,000 │
│ │
│ Leapfrog │
│ █████ ~1,400 │
└─────────────────────────────────────────────────────┘
tokens per page (Hacker News, real test)El ahorro oscila entre 2 y 10 veces dependiendo de la complejidad de la página. Las páginas con mucho contenido obtienen los mayores beneficios. Los formularios densos obtienen los menores. La mediana en sitios del mundo real es de ~4-5x.
Inicio rápido
npx leapfrog --doctor # verify everything works
npx leapfrog --stealth-audit # test all 19 stealth patches
npx leapfrog --config # print MCP config to pasteAñádelo a ~/.mcp.json (Claude Code) o a la configuración MCP de tu editor:
{
"leapfrog": {
"command": "npx",
"args": ["-y", "leapfrog"],
"env": {
"LEAP_MAX_SESSIONS": "15",
"LEAP_TILE": "true",
"LEAP_HUD": "true",
"LEAP_SOUND": "true",
"LEAP_AUTO_CONSENT": "true"
}
}
}Leapfrog utiliza playwright-core (15 MB) en lugar de playwright (1,6 GB) y no incluye un navegador. Puedes:
Establecer
LEAP_CHANNEL=chromepara usar tu Chrome/Chromium instaladoO ejecutar
npx playwright-core install chromiumpara instalar el binario de Chromium incluido
Matriz de características
Leapfrog | Playwright MCP | agent-browser | |
Tokens por página | ~1.200-2.500 | ~3.800-15.000 | ~300 |
Sesiones paralelas | 15 | 1 | 1 |
Aislamiento de sesión | Sí | No | No |
Multipestaña / popups | Sí | No | No |
Interceptación de red | Sí | No | No |
Captura de consola | Sí | Sí | No |
Sigilo / anti-bot | Sí | No | No |
Espera inteligente (5 tipos) | Sí | Básico | No |
Recuperación de fallos | Sí | No | No |
Acciones por lotes (100/llamada) | Sí | No | No |
Inyección de script de inicio | Sí | Sí | No |
Arrastrar / subir / redimensionar | Sí | Sí | No |
Proxy por sesión | Sí | No | No |
Humanización (opcional) | Sí | No | No |
Reutilización de perfil de auth | Sí | No | No |
Persistencia de cookies | Sí | No | No |
Clasificación de página (18) | Sí | No | No |
Memoria de sesión | Sí | No | No |
Inteligencia de API | Sí | No | No |
Espera adaptativa + reintento auto | Sí | No | No |
Resolución auto de CAPTCHA | Sí | No | No |
Automejora (9 dimensiones) | Sí | No | No |
Grabar / reproducir | Sí | No | No |
Extracción de paginación | Sí | No | No |
Instantáneas incrementales (diff) | Sí | No | No |
CLI de autotest de sigilo | Sí | No | No |
Protección SSRF | Sí | No | No |
Sigilo
Leapfrog incluye 19 parches anti-detección habilitados por defecto (LEAP_STEALTH=true). Estos cubren los vectores que los servicios de huella digital como CreepJS y fingerprint-pro realmente verifican:
Marcas de Client Hints (elimina HeadlessChrome)
navigator.webdriverforzado aundefinedVendor/renderer de WebGL (reemplaza SwiftShader con cadenas de GPU reales)
RTT de conexión (distinto de cero)
Tiempo de cierre de alertas (retraso a velocidad humana)
Desplazamiento de altura exterior/interior de la ventana
Población de matriz de tipos MIME
Inferencia de plataforma desde el agente de usuario
Emulación de
chrome.appProtección de
contentWindowde iframeSpoofing de códecs multimedia (
canPlayType)Sobrescritura de
document.hasFocus()Eliminación de comentarios de URL de origen
Coexistencia de UA personalizado + sigilo (los agentes de usuario personalizados ya no desactivan el contexto de sigilo)
Detección de
Runtime.enablede CDP (filtroError.prepareStackTrace)Spoofing de API de permisos (más de 20 tipos de permisos)
Ruido de huella digital de AudioContext (
getChannelData/getFloatFrequencyData)Prevención de fugas de IP de WebRTC (filtrado de candidatos ICE)
Spoofing de huella digital de enumeración de fuentes
Control de sigilo por sesión: pasa stealth: false en session_create para desactivarlo en una sesión específica.
Humanización (Experimental)
Establece LEAP_HUMANIZE=true para habilitar la interacción con el navegador similar a la humana. Es opcional y añade latencia a cambio de un comportamiento más realista. Seis módulos:
Ratón — Rutas de curva de Bézier con temporización de la Ley de Fitts y fluctuación de micro-temblores
Escritura — Retrasos entre teclas log-normales (mediana de 200 ms), tiempo de permanencia de tecla, velocidad consciente de bigramas, escritura con rollover
Desplazamiento — Simulación inercial con aceleración y decaimiento de momento (física de panel táctil/rueda de ratón)
Pausa — Retrasos de "pensamiento" entre acciones que simulan brechas cognitivas entre acciones
Huella digital — Generación coherente de huella digital del navegador (plataforma, memoria del dispositivo, GPU, zona horaria)
Utilidades — Primitivas matemáticas compartidas (Box-Muller gaussiano, distribuciones)
Clasificación de página
Cada llamada a navigate y snapshot clasifica automáticamente el tipo de página usando puntuación de señal ponderada (no requiere LLM). 18 tipos:
login · search-results · product · product-list · checkout · article · dashboard · form · error · challenge · landing · documentation · profile · media · feed · qa · ecommerce · unknown
La clasificación permite una extracción de instantáneas más inteligente: las páginas de inicio de sesión muestran campos de formulario, los artículos muestran contenido, los paneles muestran elementos interactivos.
Inteligencia del arnés
El arnés rastrea cada acción en una sesión y clasifica los resultados:
Clasificación del resultado de la acción —
SUCCESS,SILENT_CLICK,NAVIGATION,WRONG_ELEMENT,BLOCKED,ERROR,PENDINGDetección de redirección de bot — detecta cuando un sitio redirige a una página de desafío o bloqueo después de una acción
Detección de bucles — advierte cuando el agente está atascado haciendo clic en el mismo elemento, saltando entre URLs o repitiendo acciones
Memoria de sesión — la herramienta
session_memoryrecuerda acciones después de la compresión de la ventana de contexto
Persistencia de cookies
Los perfiles de navegador persistentes ahora usan context.cookies() + addCookies() en lugar de storageState(), que devuelve vacío en contextos persistentes. El estado de autenticación sobrevive entre sesiones.
Espera adaptativa + Escalada de sigilo
La navegación reintenta automáticamente con estrategias de respaldo cuando las páginas no se cargan:
Intenta
load(más rápido): si está vacío, reintenta connetworkidle(límite de 10 s)Si
networkidleagota el tiempo de espera (Amazon, sitios con muchos anuncios), vuelve adomcontentloadedSi está bloqueado/desafiado, escala el sigilo: retrasos aleatorios → espera el desafío JS → rota la sesión con una nueva huella digital
Las sesiones de perfil (autenticadas) nunca ven destruida su sesión: límite estricto en el Nivel 2
Desactívalo con autoRetry: false en navigate. Controla la escalada máxima con maxRetryLevel (0-5, por defecto 3).
Grabar / Reproducir
Exporta el historial de acciones de una sesión como una grabación reproducible, luego reprodúcela en nuevas sesiones:
session_export— crea un JSON parametrizado o un script de Playwright a partir del historial de la sesión. Las referencias@eNse resuelven en selectores CSS estables. Detecta automáticamente correos electrónicos, contraseñas y URLs como{{placeholders}}.session_replay— reproduce una grabación con anulaciones de parámetros. AdmiteonError: 'stop'o'skip'.
Convierte flujos de trabajo de agentes únicos en automatizaciones reutilizables.
Extracción de paginación
Extrae datos a través de múltiples páginas en una sola llamada de herramienta:
Click-next — detecta automáticamente botones "Siguiente", enlaces de paginación, botones "Cargar más"
Desplazamiento infinito — se desplaza y espera nuevo contenido mediante comparación de hash DOM
Patrón de URL — incrementa
?page={page}o patrones personalizados
Reemplaza 3-4 llamadas de herramienta por página. Límite: 50 páginas, 100 mil caracteres en total. Se detiene si: no hay botón siguiente, página vacía, contenido duplicado o detección de bot.
Instantáneas incrementales
La herramienta diff devuelve solo lo que cambió desde la última instantánea: adiciones, eliminaciones, cambios. Ahorro masivo de tokens para flujos de trabajo de monitoreo y sondeo.
Superposiciones HUD (LEAP_HUD=true)
Al ejecutar en modo visible, Leapfrog superpone retroalimentación visual en cada sesión:
Onda de clic — círculo verde que se expande en las coordenadas del clic (solo acciones del agente)
Zoom al objetivo — el navegador hace zoom a 1.15x en el elemento clicado brevemente para que los agentes (y humanos) puedan rastrear visualmente lo que sucede en las ventanas en mosaico
Desplazamiento al objetivo —
scrollIntoViewantes de los clics para que puedas ver lo que el agente está a punto de clicar
Diseño minimalista. Sin bordes, sin barras de estado, sin superposición de cursor: solo la retroalimentación que importa.
Mosaico multiterminal (LEAP_TILE=true)
Varias instancias de Leapfrog comparten la pantalla mediante coordinación basada en archivos. Cada instancia rastrea sus propias ventanas y un TilesCoordinator asigna ranuras de cuadrícula globales: sin superposición, sin disposición manual. Establece LEAP_TILE=true (o LEAP_TILE=master para la instancia principal). El relleno entre mosaicos es configurable con LEAP_TILE_PADDING (por defecto 8px).
Intervención humana
Leapfrog detecta automáticamente situaciones que necesitan un humano (CAPTCHAs, formularios de inicio de sesión, redirecciones OAuth, desafíos de Cloudflare) e intenta resolverlo por sí mismo antes de pausar.
Resuelve automáticamente primero: hace clic en casillas de verificación reCAPTCHA, botones de verificación de Cloudflare, botones genéricos de verificar/continuar, luego un reintento de segunda pasada, todo antes de pedir ayuda
Solucionadores externos: establece
LEAP_CAPTCHA_PROVIDER+LEAP_CAPTCHA_API_KEYpara integración con CapSolver, 2Captcha o NopeCHAAprende lo que funciona: recuerda qué método de resolución tuvo éxito por dominio e intenta el método conocido como bueno primero al volver a visitar
Detecta reCAPTCHA, hCaptcha, Turnstile, formularios de inicio de sesión, redirecciones OAuth, desafíos de Cloudflare
El título de la pestaña cambia a "NEEDS HUMAN" cuando se necesita intervención
Herramienta
wait_for_human: el agente llama cuando está atascado, bloquea hasta que lo resuelvas o navegues más allá
Auto-cierre de consentimiento de cookies (LEAP_AUTO_CONSENT=true)
Cierra automáticamente los banners de consentimiento de cookies en 10 marcos (OneTrust, CookieBot, TrustArc, Quantcast, Didomi, Cookielaw, Osano, Usercentrics, + genérico) más un respaldo de coincidencia de texto. Caché de selectores por dominio para una reproducción instantánea al volver a visitar.
Rastreo (LEAP_TRACE=true)
Rastreo de Playwright por sesión con capturas de pantalla + instantáneas DOM. Exporta archivos ZIP visibles en trace.playwright.dev a través de la herramienta session_export_trace. Se guarda automáticamente al destruir la sesión.
Automejora
Leapfrog aprende de cada visita. El conocimiento por dominio persiste en ~/.leapfrog/domains/{domain}.json: 9 dimensiones, todas automáticas:
# | Dimensión | Qué hace |
1 | Estrategias de espera | Aprende el método de espera óptimo por dominio ( |
2 | Niveles de sigilo | Escala automáticamente de 0 a 3 cuando se detectan bloqueos (2+ bloqueos en 1 hora). Comienza en el nivel aprendido al volver a visitar |
3 | Selectores de consentimiento | Recuerda los selectores de cierre de banners de cookies, hace clic automáticamente al volver a visitar |
4 | Resolución de desafíos | Registra qué método de CAPTCHA funcionó (casilla reCAPTCHA, verificación Cloudflare, etc.), intenta el método conocido como bueno primero |
5 | Supresión de elementos estables | Identifica elementos de navegación/pie de página/barra lateral vistos en 3+ visitas, los suprime de las instantáneas (ahorro de tokens del 30-40% en dominios maduros) |
6 | Sanación de selectores | Recuerda huellas digitales de elementos → selectores, sana referencias rotas entre visitas |
7 | Caché de endpoints API | Los endpoints de API descubiertos persisten entre sesiones |
8 | Mapas de calor de interacción | Rastrea qué elementos usan realmente los agentes, suprime elementos no tocados (próximamente) |
9 | Selección de estrategia | Bandido adversario (EXP3) para optimización de configuración de sigilo (próximamente) |
Desalojo LRU en 500 dominios. Inspecciona con la herramienta domain_knowledge.
Endurecimiento SSRF
La validación de URL bloquea IPs codificadas en hexadecimal (0x7f000001), notación octal (0177.0.0.1), rangos CGNAT (100.64.0.0/10) y cadenas de redirección que se resuelven en direcciones internas. Localhost y 127.0.0.0/8 están permitidos por defecto para flujos de trabajo de desarrollo local: establece LEAP_BLOCK_LOCALHOST=true para bloquearlos.
El ecosistema
Leapfrog usa metáforas de estanques para que las cosas sean memorables. Tu agente es la rana.
| Concepto
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anthonybono21-cloud/leapfrog'
If you have feedback or need assistance with the MCP directory API, please join our Discord server