MCP server that controls a Chrome browser instance via the DevTools Protocol, enabling navigation, content extraction, element interaction, and debugging capabilities
Strong foundation with 16 well-defined tools, comprehensive descriptions (avg ~180 chars, within baseline 194), and explicit JSON schemas for all tools. All parameters have type definitions and descriptions. Tool names follow verb_noun convention (navigate, go_back, read_page, etc.). Descriptions are LLM-optimized and include WHEN to use each tool and key constraints. However, output schemas are not formally documented, responses are described in text but lack structured schema definitions. Error handling guidance is present but inconsistent across tools. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Missing pagination guidance for list_tabs and get_console_logs/get_network_requests despite returning limited results.
Hace click en el elemento que coincide con el selector CSS en la pestaña indicada. Espera a que sea visible y habilitado; si está oculto, deshabilitado o tapado por otro elemento, lo reporta explícitamente. Respeta la lista de dominios permitidos. Para escribir texto usa fill.
Ejecuta JavaScript arbitrario en la página y devuelve el resultado serializado a JSON. Solo usar cuando ninguna otra tool cubre la necesidad — preferir siempre click/fill/query_elements/read_page antes que esto. Puede estar deshabilitado por configuración (ALLOW_EVAL); si lo está, lo indicará. Es la superficie de mayor riesgo del servidor.
Rellena un campo (input/textarea/contenteditable) con 'value', reemplazando su contenido. NO envía el formulario ni presiona Enter: solo llena el campo. Para enviar, usa después press_key con 'Enter' o haz click en el botón de submit. Respeta la lista de dominios permitidos.
Devuelve los mensajes de consola (log/warn/error) capturados en la pestaña desde que el servidor se conectó a ella. Úsala para depurar errores de JavaScript del cliente. Solo incluye lo ocurrido tras la conexión: si acabas de abrir la página, navega o recarga para capturar. Devuelve los 'limit' más recientes (50 por defecto).
Devuelve las peticiones de red capturadas en la pestaña (método, URL, status y tiempo de respuesta). 'filter' filtra por substring de la URL (ej. '/api/'). Úsala para depurar llamadas a APIs, ver códigos de estado o fallos de red. Solo captura lo ocurrido tras la conexión. Devuelve las 'limit' más recientes (50 por defecto).
Output schemas not formally documented. Tool descriptions state what is returned (e.g., 'Devuelve PNG o JPEG', 'Devuelve los mensajes de consola') but no structured JSON Schema definitions exist for responses. LLMs cannot plan downstream tool calls or extract fields reliably without knowing response structure.
Tool annotations missing. 16 tools have explicit risk classifications (WRITE, READ_ONLY, IRREVERSIBLE) in source but no readOnlyHint/destructiveHint/idempotentHint annotations in MCP schema. Agents cannot distinguish safe from destructive operations without reading descriptions.
Pagination not documented for list-like tools. get_console_logs and get_network_requests accept 'limit' (default 50) but no 'offset', 'cursor', or 'total' fields mentioned. list_tabs has no pagination at all. Large result sets risk context window exhaustion.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Vuelve a la página anterior del historial de la pestaña activa, como el botón Atrás. Si no hay página anterior, lo indica sin error. Para ir a una URL concreta usa navigate, no esta tool.
Avanza a la página siguiente del historial (como el botón Adelante), tras haber usado go_back. Si no hay página siguiente, lo indica sin error.
Lista las pestañas abiertas con su id, título y URL. Usa el id devuelto como 'tabId' en otras tools para operar sobre una pestaña concreta en vez de la activa.
Navega la pestaña activa a una URL. Úsala para abrir una página o cambiar de sitio. Espera a que la carga alcance el estado waitUntil ('load' por defecto; 'domcontentloaded' para no esperar imágenes y subrecursos; 'networkidle' para SPAs que cargan datos tras el HTML). Devuelve el título y la URL final (útil si hubo redirect). Respeta la lista de dominios permitidos si está configurada.
Presiona una tecla o combinación sobre el foco actual (ej. 'Enter', 'Tab', 'Escape', 'Control+A'). Útil para enviar formularios tras fill, mover el foco o atajos de teclado. No hace click ni cambia el foco por sí sola.
Busca elementos por selector CSS y devuelve, por coincidencia, su texto y los atributos id, class y href. Úsala para descubrir o verificar selectores antes de un click/fill, o para leer una lista de elementos. Devuelve hasta 'limit' resultados (20 por defecto). Si no hay coincidencias, lo dice explícitamente.
Extrae el contenido de la página actual. Usa mode='markdown' para artículos/texto legible (el caso más común), mode='text' si markdown falla o necesitas texto plano exacto, mode='html' solo si necesitas la estructura HTML cruda para depurar selectores. Acepta tabId opcional. El contenido se trunca si es muy largo.
Recarga la página actual de la pestaña activa (como F5). Útil tras cambios de estado en el servidor o para reintentar una carga fallida.
Captura una imagen de la página (o de un elemento si pasas 'selector'). Usa fullPage=true para capturar toda la página desplazable, no solo lo visible. Devuelve PNG (o JPEG si es muy grande). Úsala para inspeccionar visualmente el estado de la página o confirmar que algo se renderizó.
Desplaza la página hacia 'up' o 'down' una cantidad en píxeles ('amount', 500 por defecto). Úsala para cargar contenido con scroll infinito o traer un elemento al viewport antes de capturarlo o interactuar con él.
Espera hasta que el elemento del selector esté visible, o hasta timeoutMs (por defecto el timeout global). Úsala tras una acción que dispara carga asíncrona (navegación de SPA, contenido diferido) antes de leer o interactuar, para evitar condiciones de carrera.
Error recovery guidance inconsistent. navigate, click, fill describe failure modes (e.g., 'si está oculto, deshabilitado o tapado') but do not suggest recovery actions. evaluate_js mentions ALLOW_EVAL config but no guidance on what to do if disabled. Agents need actionable next steps.
Timeout behavior not specified. wait_for accepts optional timeoutMs but does not document default timeout, what happens on timeout (error vs. silent return), or retry guidance. navigate mentions waitUntil states but not timeout behavior.