Agent Browser MCP

Servidor MCP para automatización del navegador a través de la CLI de Vercel agent-browser

Documentación

mcp-server-agent-browser

Estado: Beta — El envoltorio CLI está cubierto por pruebas unitarias y una prueba de humo stdio con navegador falso. La restauración de cookies en un reinicio real de Chromium sigue siendo una verificación manual.

Permite que los LLM controlen un navegador real. Este servidor MCP envuelve agent-browser (Vercel Labs) para que cualquier cliente MCP pueda navegar, completar formularios, hacer clic, capturar el árbol de accesibilidad y tomar capturas de pantalla.

No es el web_search / open_page de Grok. Esos obtienen documentos. Este ejecuta Chromium. Usa la búsqueda para encontrar una URL y luego browser_navigate.

Requisitos previos

cargo install agent-browser
agent-browser install

Llama a browser_doctor si falta algo.

Compilación

cargo build --release

Binario: target/release/mcp-server-agent-browser

cargo test
./tests/test-stdio.sh

La restauración de inicio de sesión en Chromium real no está en CI. Después de un inicio de sesión con ventana, reinicia el proceso MCP y confirma que el siguiente browser_navigate sigue con la sesión iniciada.

Configuración

Cliente MCP (stdio):

{
  "mcpServers": {
    "agent-browser": {
      "command": "/path/to/mcp-server-agent-browser"
    }
  }
}

TOML opcional en ~/.config/mcp-server-agent-browser/config.toml (ver config.example.toml). Si falta el archivo, se usan los valores predeterminados. Sobrescribe la ruta con MCP_AGENT_BROWSER_CONFIG.

ConfiguraciónPredeterminadoSignificado
headedfalseMuestra una ventana. Solo al iniciar; browser_close primero si ya hay un daemon sin interfaz activo. También AGENT_BROWSER_HEADED=1.
persisttrue--restore simple por session_id (clave de sesión predeterminada default) más --namespace mcp-server.
keep_daemonfalseSi es falso, la salida de MCP ejecuta close para que el estado de restauración se guarde y Chrome no quede en segundo plano.
namespacemcp-serverAísla los sockets del daemon y los archivos de restauración de este MCP de un humano que use la CLI.
command_timeout_secs120Tiempo de espera del envoltorio. El tiempo de espera de acción de 25 s de Playwright se deja intacto (IPC de CLI es ~30 s).
idle_timeout1hApagado por inactividad del daemon. Usa "0" con keep_daemon = true.
download_dir~/Downloads--download-path. ~ se expande.
profilesin definirDirectorio de datos de usuario de Chromium persistente opcional. No es tu perfil diario de Chrome.
encryption_key_filesin definirEstablece AGENT_BROWSER_ENCRYPTION_KEY. Los archivos de restauración son credenciales; en texto plano a menos que esto esté definido.
AGENT_BROWSER_PATHagent-browserBinario CLI.

allowed_domains es opcional. Localhost está permitido a menos que definas una lista que lo excluya.

Qué puede hacer

El mismo conjunto de interacciones que antes (navegar, hacer clic, escribir, capturar, captura de pantalla, cookies, eval, CDP, sesiones), más:

  • browser_doctor — CLI, configuración, persistencia, con ventana/DISPLAY, adivinación de daemon. No inicia Chrome.
  • browser_get_text pattern — expresión regular sobre el texto de la página con dos líneas de contexto.
  • browser_waitload / url / text además de un selector.

Bucle típico:

  1. browser_navigate
  2. browser_snapshot (-i para interactivo)
  3. browser_click / browser_fill con @refs
  4. browser_screenshot si necesitas píxeles

Persistencia

Con persist = true (predeterminado), cada sesión guarda cookies y localStorage al cerrar y en el intervalo de autoguardado de la CLI. El estado vive bajo ~/.agent-browser/, con espacio de nombres mcp-server. Los session_ids aislados no comparten una clave de restauración.

Inicia sesión con ventana una vez, browser_close o sal del MCP, y comienza de nuevo. La siguiente navegación debería restaurar esa sesión.

Un proceso MCP terminado puede dejar el daemon en ejecución. browser_doctor informa de eso. El apagado por inactividad aún guarda si la persistencia está activada.

Limitaciones

  • Chromium vía agent-browser (Playwright). Sin búsqueda.
  • La ventana se ignora hasta que se cierre el daemon existente.
  • Snap Chromium en Ubuntu puede fallar al anunciar su puerto DevTools; prefiere el navegador de agent-browser install o executable_path.
  • Las escrituras (captura de pantalla, pdf, descarga) deben ser relativas, bajo /tmp o bajo download_dir.
  • El tiempo de espera de acción de 25 s de Playwright es un límite de la CLI upstream, no de este envoltorio.

Licencia

MIT