Browser MCP Bridge
Dale a Claude Code acceso directo a tu navegador. Inspecciona páginas, lee errores de consola, supervisa solicitudes de red, captura capturas de pantalla y ejecuta JavaScript, todo mediante lenguaje natural.
Qué hace esto
Browser MCP Bridge conecta tu navegador Chrome con Claude Code a través del Protocolo de Contexto de Modelo (MCP). Consta de dos partes:
Una extensión de Chrome que captura datos del navegador (contenido de la página, DOM, consola, red, rendimiento, accesibilidad)
Un servidor MCP que expone esos datos a Claude Code a través de 11 herramientas especializadas
Una vez conectado, puedes pedirle a Claude Code cosas como:
"Comprueba si esta página tiene problemas de accesibilidad"
"¿Qué errores de consola hay en esta página?"
"Muéstrame las solicitudes API fallidas"
"Analiza el rendimiento de esta página"
"Ejecuta
document.querySelectorAll('a')en la página actual"
Related MCP server: Browser Agent MCP
Inicio rápido
Empieza en menos de 5 minutos:
1. Instala el servidor
git clone https://github.com/anthropics/browser-mcp-bridge.git
cd browser-mcp-bridge
npm run install-server2. Instala la extensión del navegador
Abre
chrome://extensions/(oedge://extensions/)Habilita el Modo de desarrollador (interruptor en la parte superior derecha)
Haz clic en Cargar descomprimida
Selecciona el directorio
extension/de este repositorio
Deberías ver el icono de "Browser MCP Bridge" en tu barra de herramientas.
3. Configura Claude Code
claude mcp add --scope user --transport http browser-mcp http://127.0.0.1:6009/mcp4. Inicia el servidor y conéctate
npm startLuego haz clic en el icono de la extensión Browser MCP Bridge y haz clic en Connect. El indicador de estado debería ponerse en verde.
Eso es todo: Claude Code ahora tiene acceso a tu navegador.
Estructura del proyecto
browser-mcp-bridge/
├── extension/ # Chrome extension
│ ├── manifest.json # Manifest V3 configuration
│ ├── background.js # Service worker (WebSocket, tab management)
│ ├── content.js # Content script (page data extraction)
│ ├── inject.js # Injected script (console/network interception)
│ ├── popup.html/js # Extension popup (connection management)
│ ├── devtools.html/js # DevTools integration entry point
│ ├── panel.html/js # Custom DevTools panel UI
│ └── icons/ # Extension icons
├── server/ # Node.js MCP server
│ ├── server.js # HTTP MCP server + WebSocket server
│ └── package.json # Server dependencies
├── rust-server/ # Rust MCP server (experimental)
│ ├── src/ # Rust source code
│ ├── Cargo.toml # Rust dependencies
│ └── config.toml # Server configuration
├── browser-mcp-rust-server.service # systemd user service unit
├── install-rust-service.sh # Service install/uninstall script
├── start-rust-server.sh # PM2 launch script for Rust server
├── ecosystem.config.cjs # PM2 process manager config
├── ARCHITECTURE.md # System architecture documentation
├── API_REFERENCE.md # Complete MCP tools reference
├── DATA_OPTIMIZATION.md # Data filtering and pagination guide
└── package.json # Root scripts and orchestrationCómo funciona
┌─────────────────┐ WebSocket ┌──────────────────┐ HTTP/MCP ┌─────────────────┐
│ Chrome Extension │ ◄──────────────── │ MCP Server │ ◄──────────────── │ Claude Code │
│ │ ws://localhost │ (port 6009) │ http://localhost │ (one or more │
│ • content.js │ :6009/ws │ │ :6009/mcp │ instances) │
│ • background.js │ ─────────────────►│ • 11 MCP tools │ ─────────────────►│ │
│ • inject.js │ │ • Resources │ │ │
│ • DevTools │ │ • Data filtering│ │ │
└─────────────────┘ └──────────────────┘ └─────────────────┘La extensión captura datos del navegador a través de scripts de contenido y APIs de Chrome
Una conexión WebSocket envía datos al servidor MCP en el puerto 6009
Claude Code se conecta al servidor a través del transporte HTTP en
/mcpMúltiples instancias de Claude Code pueden compartir el mismo servidor
Herramientas disponibles
Herramienta | Descripción |
| Extrae texto, HTML y metadatos de la página |
| Obtiene el árbol DOM estructurado (filtrable por selector CSS) |
| Ejecuta JavaScript en el contexto de la página |
| Lee registros, errores y advertencias de la consola |
| Inspecciona solicitudes y respuestas HTTP |
| Toma una instantánea visual de la pestaña |
| Obtiene tiempos de carga y Core Web Vitals |
| Obtiene el árbol de accesibilidad |
| Lista todas las pestañas abiertas del navegador |
| Adjunta el depurador de Chrome DevTools a una pestaña |
| Desconecta el depurador de una pestaña |
Todas las herramientas admiten un parámetro opcional tabId para dirigirse a una pestaña específica. Consulta API_REFERENCE.md para obtener la documentación completa de los parámetros.
Flujos de trabajo de ejemplo
Depuración de errores de consola
Pregúntale a Claude Code: "¿Qué errores se muestran en la consola del navegador?"
Claude Code utilizará get_console_messages para recuperar errores y advertencias, luego los analizará y sugerirá correcciones.
Análisis de llamadas API fallidas
Pregunta: "Muéstrame las solicitudes de red fallidas y ayúdame a depurarlas"
Claude Code utiliza get_network_requests con filtrado de solo fallos para encontrar respuestas 4xx/5xx, luego inspecciona los cuerpos de solicitud/respuesta en busca de pistas.
Auditoría de accesibilidad
Pregunta: "Comprueba esta página en busca de problemas de accesibilidad"
Claude Code llama a get_accessibility_tree y get_page_content para analizar atributos ARIA, estructura de encabezados, texto alternativo y HTML semántico.
Análisis de rendimiento
Pregunta: "¿Cómo es el rendimiento de esta página? ¿Algún problema?"
Utiliza get_performance_metrics y get_network_requests para identificar recursos lentos, cargas útiles grandes y problemas de Core Web Vitals.
Inspección visual
Pregunta: "Toma una captura de pantalla de la página actual"
capture_screenshot devuelve una instantánea PNG o JPEG de la pestaña visible.
Configuración
Puerto del servidor
El servidor utiliza el puerto 6009 por defecto. Para usar un puerto diferente:
MCP_SERVER_PORT=8080 npm startSi cambias el puerto, actualiza la URL de WebSocket de la extensión en la ventana emergente (ws://localhost:8080/ws) y tu configuración de MCP de Claude Code.
Configuración de la extensión
Haz clic en el icono de la extensión para:
Ver el estado de la conexión
Cambiar la URL del servidor WebSocket
Activar manualmente la captura de datos
Ver estadísticas de mensajes
Ejecución con PM2 (Producción)
# Start with PM2
npm run pm2:start
# Other PM2 commands
npm run pm2:status # Check status
npm run pm2:logs # View logs
npm run pm2:restart # Restart
npm run pm2:stop # StopConsulta PM2_GUIDE.md para el inicio automático al arrancar y la configuración avanzada.
Ejecución del servidor Rust con systemd (Linux)
El servidor Rust puede gestionarse como un servicio de usuario de systemd para el inicio automático y la supervisión de procesos.
Configuración rápida:
# Build and install the service in one step
./install-rust-service.sh
# Or install without rebuilding (if you already have a release binary)
./install-rust-service.sh --no-buildGestión del servicio:
systemctl --user status browser-mcp-rust-server # Check status
journalctl --user -u browser-mcp-rust-server -f # Follow logs
systemctl --user restart browser-mcp-rust-server # Restart
systemctl --user stop browser-mcp-rust-server # StopEl servicio se inicia automáticamente al iniciar sesión. Para iniciarlo incluso sin una sesión de inicio de sesión (útil para acceso headless/SSH):
loginctl enable-linger $USERDesinstalación:
./install-rust-service.sh --uninstallInstalación manual (si prefieres no usar el script):
# Build the release binary
cd rust-server && cargo build --release
# Copy the service file
mkdir -p ~/.config/systemd/user
cp browser-mcp-rust-server.service ~/.config/systemd/user/
# If your repo is NOT at ~/dev/browser-mcp-bridge, edit the paths:
# systemctl --user edit browser-mcp-rust-server
# and override ExecStart and WorkingDirectory
# Enable and start
systemctl --user daemon-reload
systemctl --user enable --now browser-mcp-rust-serverConfiguración:
El servicio lee rust-server/config.toml por defecto. Para cambiar el puerto u otros ajustes, edita config.toml y reinicia:
systemctl --user restart browser-mcp-rust-serverEstablece RUST_LOG para la verbosidad del registro. El valor predeterminado es info. Sobrescríbelo con un archivo drop-in:
systemctl --user edit browser-mcp-rust-server[Service]
Environment=RUST_LOG=debugConfiguración de MCP para otros clientes
Para clientes MCP que utilizan configuración JSON:
{
"mcpServers": {
"browser-mcp": {
"url": "http://localhost:6009/mcp"
}
}
}Desarrollo
Desarrollo del servidor
npm run dev # Start with --watch (auto-restart on changes)
DEBUG=* npm start # Verbose loggingDesarrollo de la extensión
Realiza cambios en los archivos en
extension/Ve a
chrome://extensions/Haz clic en el botón de recarga en la extensión Browser MCP Bridge
Comprobación de estado
npm run health-check
# or: curl http://localhost:6009/healthAdición de nuevas herramientas
Añade la definición de la herramienta en
server.js→ manejadorListToolsRequestSchemaImplementa la lógica de la herramienta en
server.js→ manejadorCallToolRequestSchemaAñade el manejador del lado del navegador en
extension/background.jsPrueba con Claude Code
Optimización de datos
El servidor implementa valores predeterminados inteligentes para mantener las respuestas manejables para los agentes de IA:
HTML: Truncado a 50KB (texto a 30KB)
DOM: Limitado a 500 nodos, scripts/estilos excluidos
Consola: Devuelve errores y advertencias por defecto
Red: 50 solicitudes, solicitudes fallidas ordenadas primero, cuerpos excluidos
Todos los límites son configurables por solicitud. Consulta DATA_OPTIMIZATION.md para obtener la guía completa de filtrado, paginación y optimización.
Solución de problemas
La extensión no se conecta
Verifica que el servidor esté ejecutándose:
curl http://localhost:6009/healthComprueba que la URL de WebSocket en la ventana emergente de la extensión coincida con el puerto del servidor
Busca errores en la consola del navegador (
chrome://extensions/→ enlace de errores)
Claude Code no puede encontrar las herramientas
Verifica la configuración de MCP:
claude mcp listComprueba que el servidor esté ejecutándose y en buen estado
Vuelve a añadir el servidor:
claude mcp remove browser-mcp && claude mcp add --scope user --transport http browser-mcp http://127.0.0.1:6009/mcp
No se devuelven datos de las herramientas
Asegúrate de que la extensión esté conectada (estado verde en la ventana emergente)
Navega a una página en el navegador: la extensión necesita una página activa
Comprueba si el ID de la pestaña es correcto (usa
get_browser_tabsprimero)
El servidor no arranca
Comprueba la versión de Node.js:
node --version(requiere 18.0.0+)Instala dependencias:
npm run install-serverComprueba si el puerto 6009 está en uso:
lsof -i :6009
Lecturas adicionales
ARCHITECTURE.md — Diseño del sistema, flujo de datos y detalles de los componentes
API_REFERENCE.md — Referencia completa de herramientas MCP con todos los parámetros
DATA_OPTIMIZATION.md — Filtrado, paginación y ajuste de rendimiento
Requisitos
Node.js 18.0.0+
Chrome, Edge o navegador basado en Chromium
Claude Code CLI (o cualquier cliente compatible con MCP)
Licencia
MIT
This server cannot be installed
Maintenance
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/robhicks/browser-mcp-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
