Skip to main content
Glama
YankielDBC2

fast-browser-harness-mcp

by YankielDBC2

⚡ Fast Browser Harness

Controla tu Chrome real desde tu agente de IA. Sin reiniciar, sin perfiles falsos, sin fricción.

Fast Browser Harness se adhiere por CDP al Chrome que ya tienes abierto — con tus tabs, tus logins y tu IP — y lo opera en segundo plano: clicks, escritura, navegación, snapshots atómicos, screenshots, grabación de video y servidor MCP. Tu tab visible ni parpadea.

pip install fast-browser-harness
fast-browser-harness --doctor
echo 'print(page_info())' | fast-browser-harness

Proyecto independiente con branding propio. Sin relación con ningún otro proyecto. Telemetría apagada por defecto. Origen del código base: ver Atribución.


Por qué existe

Los automatizadores clásicos levantan su propio navegador estéril: sin cookies, sin sesión, con IP de datacenter. Sirven para CI, pero para trabajo real (revisar tu consola de Neon, operar tu admin, descargar tu factura) son inútiles: tendrías que loguearte a mano en cada corrida o pasarle tus credenciales al agente.

Fast Browser Harness invierte el modelo: el agente entra a tu navegador, no tú al suyo.

Related MCP server: agent-chrome

Pros, a detalle

1. Cero fricción real

  • No cierras nada. Se conecta al Chrome en ejecución. Sin --remote-debugging-port manual, sin perfiles paralelos, sin "reinicia con este flag".

  • Si Chrome está cerrado, lo abre solo y reintenta la conexión.

  • Si falta el permiso de debugging, abre chrome://inspect/#remote-debugging y te guía (en macOS, mac-approve; en Linux Snap, --fix-snap).

  • Tabs de fondo. new_tab() y switch_tab() trabajan sin cambiar tu tab visible. Solo activate_tab() toma la pantalla, y solo cuando lo pides o la página lo exige.

  • Diagnóstico en un comando: fast-browser-harness --doctor (también --json).

  • Marcador discreto en el título del tab anexado (desactivable con BH_TAB_MARKER=0).

2. Velocidad por arquitectura, no por promesas

Sin números inventados: esto es lo que lo hace rápido y cómo medirlo tú.

  • CDP directo, sin WebDriver en el medio. Cada acción es un mensaje al renderer, sin servidor intermedio ni polling de estado.

  • Un snapshot atómico por observación. Una sola llamada trae controles visibles, nombres accesibles, valores y texto. Nada de N idas y vueltas para mapear la página.

  • Sin screenshots en el loop. El operador consume estado estructurado; las capturas son opt-in (inspector, evidencia, video).

  • Esperas mínimas y útiles. Tras escribir en un combobox espera sugerencias visibles (tope 200 ms); otras interacciones, dos frames o 50 ms. Sin sleep(2) a ciegas.

  • Validación antes de actuar. Cada click rechequea frescura del documento, geometría y oclusión. Falla temprano con el elemento que tapa, en vez de clickear al vacío y reintentar todo el flujo.

  • Tabs ocultos que siguen renderizando. Emulación de foco evita que Chrome estrangule animaciones en background, sin robarte la pantalla.

Cómo medirlo tú mismo:

time (echo 'print(page_info())' | fast-browser-harness)
# Cuenta llamadas CDP de una tarea con recordings enable + productions logs
fast-browser-harness recordings enable

Si publicas números, publica también máquina, red y tarea. Un benchmark sin contexto es marketing.

3. Sesiones logueadas sin regalar credenciales

El agente nunca ve tu password: opera sobre tu sesión existente (cookies, storage, SSO). Para nubes o sub-agentes paralelos existe modo remoto (start_remote_daemon) y sincronización de perfil por cookie. Flujos con login/2FA los haces tú una vez en tu Chrome; el agente trabaja después.

4. Pasa más muros bot (y aquí va la parte honesta)

Qué ayuda, en orden de impacto:

  1. IP real. Sales con tu IP residencial/de oficina, no con rango de datacenter marcado. Esto solo ya resuelve la mayoría de bloqueos.

  2. Perfil real. Historial, cookies, idioma, zona horaria, fuentes y WebGL intactos: la huella parece una persona porque es la tuya.

  3. Eventos de entrada reales. Clicks y teclas viajan por CDP como entrada genuina, no como element.click() inyectado ni formularios rellenados por JS.

  4. Sin banderas headless. Es tu Chrome visible normal, no --headless con sus huellas clásicas.

  5. Ritmo no mecánico. Esperas atadas a estado visible (sugerencias, carga) en vez de sleeps fijos.

Límites honestos — léeme antes de prometer "indetectable":

  • Nada es indetectable. Bajo CDP, navigator.webdriver y otras señales pueden delatar automatización frente a scripts que las buscan. No hacemos spoofing de fingerprint (a propósito: tu huella real es mejor camuflaje que una falsa).

  • El comportamiento delata. Loops deterministas a toda velocidad parecen bots. La velocidad es una ventaja operativa, no de sigilo: si un sitio te limita, baja el ritmo, no lo fuerces.

  • Los captchas pueden aparecer igual. Este harness no los resuelve; te deja la página servida para que los resuelvas tú.

  • Respeta ToS y rate limits. Si un sitio dice no a bots, este README no es un permiso.

5. Operación para agentes, no solo scripts

  • Skill empaquetada: fast-browser-harness skill imprime el flujo exacto que debe seguir un agente (un tab por tarea, no duplicar, no cerrar lo ajeno).

  • Servidor MCP: fast-browser-harness-mcp expone las ayudas por stdio (browser_new_tab, browser_click, browser_js, browser_cdp…).

  • Grabación y video: sesiones reproducibles y exportación MP4 verificable.

  • Navegadores remotos opcionales para headless, paralelismo o aislamiento (requiere cuenta/servicio externo).

Comparativa honesta

Fast Browser Harness

agent-browser (Vercel)

Playwright / Selenium

Navegador

Tu Chrome en uso

Chromium propio descargado (~200 MB)

El que configures

Sesiones/logins

Los tuyos, cero setup

Ninguno (aislado)

Los que programes

Fricción

Cero (sin reiniciar)

Media-alta (instalar, flags)

Alta (código + waits)

Muros bot

IP + perfil reales

IP/entorno de bot típicos

Según tu setup

Ideal para

Trabajo diario con logins

CI, tests reproducibles

Frameworks a medida

Aislamiento

Bajo (ve tu navegador)

Alto

El que diseñes

Aislamiento vs adherencia es un tradeoff, no un ranking: para CI quédate con lo aislado; para operar tu web logueada, adherirse gana.

Instalación

Requiere Python ≥ 3.11 y tu Chrome/Chromium de todos los días.

pip install fast-browser-harness
fast-browser-harness --doctor

Desde fuente:

git clone https://github.com/YankielDBC2/fast-browser-harness
cd fast-browser-harness
pip install -e ".[mcp]"

Uso

# Estado
fast-browser-harness --doctor

# Una observación (los helpers vienen pre-importados)
echo 'print(page_info())' | fast-browser-harness

# Trabajar en un tab nuevo sin tocar tu tab visible
echo 't = new_tab("https://example.com"); print(page_info())' | fast-browser-harness

# Ver el texto (sin secretos a la vista: filtra antes de pegar a un modelo)
echo 'print(list_tabs())' | fast-browser-harness

# Servidor MCP para tu agente
fast-browser-harness-mcp

Reglas del skill (resumen): un tab por tarea/sitio, reutiliza con switch_tab antes de abrir otro, no dupliques URLs, no cierres tabs ajenos, activate_tab solo si te lo piden.

Variables de entorno

Variable

Efecto

FBH_HOME / BH_HOME

Directorio de datos (defecto ~/.config/fast-browser-harness)

FBH_TELEMETRY=1

Opt-in de telemetría (apagada por defecto)

BH_TELEMETRY=0, ANONYMIZED_TELEMETRY=0

Apagados extra (compatibilidad)

BH_TAB_MARKER=0

Sin marcador en títulos

BH_DOMAIN_SKILLS=1

Skills por dominio

BU_NAME

Nombre del daemon (sesiones paralelas)

BU_CDP_URL / BU_CDP_WS

CDP remoto en vez de Chrome local

BROWSER_USE_API_KEY

Proxy/nubes (servicio externo, opcional)

Telemetría: apagada por defecto

Diferencia deliberada vs upstream: aquí nada sale de tu máquina salvo que lo pidas. Sin clave de telemetría empaquetada; para activarla configura FBH_POSTHOG_KEY + FBH_TELEMETRY=1.

fast-browser-harness telemetry status

Solución de problemas

  • 0 conexiones activas con Chrome abierto → el harness abre chrome://inspect; aprueba el debugging y reintenta.

  • macOS pide permiso → fast-browser-harness mac-approve (más Accessibility en Ajustes si lo exige).

  • Chromium Snap en Linux bloquea CDP → fast-browser-harness doctor --fix-snap.

  • --reload si cambiaste código y el daemon sigue con lo viejo.

Diferencias vs upstream

  • Nuevo nombre, binarios (fast-browser-harness, fast-browser-harness-mcp) y directorios propios: no choca con el original instalado.

  • Telemetría opt-in y sin clave empaquetada.

  • Marca de video propia (bolt ⚡) en exportaciones.

  • Variables FBH_* nuevas; BH_*/BU_* siguen funcionando.

  • Nubes de Browser Use y skills de interacción enlazan a su servicio/documentación original (funcionalidad intacta, atribución visible).

Atribución

Derivado de browser-use/browser-harness, MIT © 2026 Browser Use. Este fork mantiene su aviso de copyright (ver LICENSE) y añade marca, telemetría opt-in y documentación propias. Gracias al equipo de Browser Use por publicar el motor con licencia permisiva.

Licencia

MIT — ver LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to drive the user's already-running Google Chrome through a WebSocket bridge, listing and switching tabs, navigating, clicking, typing, scrolling, extracting DOM, taking screenshots, and evaluating JavaScript. It works without restarting Chrome and preserves all existing logins, cookies, and 2FA sessions.
    11
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Lets local AI agents drive the Chrome browser a user already has open, including signed-in sessions, by listing tabs, reading page text and actionable elements, then clicking, filling, selecting, scrolling, navigating, and capturing viewport screenshots without exporting cookies. Runs as a dependency-free local stdio process over Native Messaging, with per-tab leases, automatic reconnection, and pause/write-action controls.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Lets AI coding tools drive the real, already-logged-in Chrome browser over local stdio—snapshotting and reading pages, clicking, typing, managing tabs, capturing screenshots, and inspecting network, console, storage, and cookies—without opening a remote-debugging port. It installs as a Chrome extension plus native-messaging bridge, so agents work in the user's authenticated sessions while passing bot detection.
    1 npm
    ISC
  • A
    license
    Not graded
    quality
    A
    maintenance
    Lets AI coding tools drive the user's already-signed-in Chrome browser — reading and snapshotting pages, clicking, typing, uploading files, screenshotting, and inspecting tabs, cookies, console, and network traffic. It works through a local Chrome extension bridge, so no remote debugging port is opened and the real, authenticated browser session is used.
    1 npm
    ISC