Skip to main content
Glama

Opera DevTools MCP

Esta es una bifurcación de chrome-devtools-mcp (Copyright 2025 Google LLC), ampliada con funciones de IA de Opera Neon.

npm opera-devtools-mcp package

opera-devtools-mcp permite que tu agente de codificación (como Claude, Cursor o Copilot) controle e inspeccione un navegador en vivo. Actúa como un servidor del Protocolo de Contexto de Modelo (MCP, por sus siglas en inglés), brindando a tu asistente de codificación con IA acceso a todo el poder de DevTools para una automatización fiable, depuración en profundidad y análisis de rendimiento. Cuando está conectado a Opera Neon, también expone las capacidades de IA integradas de Opera.

Referencia de herramientas | Registro de cambios | Contribuir | Solución de problemas | Principios de diseño

Related MCP server: Chrome DevTools MCP

Características principales

  • Herramientas de IA de Opera Neon: interactúa con la IA integrada de Opera directamente desde tu agente de codificación: chatea, realiza acciones en la página, genera contenido y ejecuta investigaciones.

  • Obtén información de rendimiento: utiliza Chrome DevTools para grabar trazas y extraer información de rendimiento procesable.

  • Depuración avanzada del navegador: analiza solicitudes de red, toma capturas de pantalla y consulta los mensajes de la consola del navegador (con seguimientos de pila con mapas de origen).

  • Automatización fiable: utiliza puppeteer para automatizar acciones en el navegador y esperar automáticamente los resultados de las acciones.

Herramientas de IA de Opera Neon

Estas herramientas solo están disponibles cuando se conecta a Opera Neon mediante --browser-url.

Herramienta

Descripción

opera_chat

Envía un mensaje de chat a la IA integrada de Opera y devuelve la respuesta.

opera_do

Indica a la IA integrada de Opera que realice una acción en la página actual.

opera_make

Pide a la IA integrada de Opera que cree o genere contenido.

opera_research

Pide a la IA integrada de Opera que investigue un tema. Admite los modos de investigación local, one-minute y deep.

Avisos legales

opera-devtools-mcp expone el contenido de la instancia del navegador a los clientes MCP, lo que les permite inspeccionar, depurar y modificar cualquier dato del navegador o de DevTools. Evita compartir información confidencial o personal que no desees compartir con los clientes MCP.

Las herramientas de rendimiento pueden enviar URL de seguimiento a la API de Google CrUX para obtener datos de experiencia de usuario reales. Para deshabilitar esto, ejecuta con el indicador --no-performance-crux.

Requisitos

Primeros pasos

Añade la siguiente configuración a tu cliente MCP:

{
  "mcpServers": {
    "opera-devtools": {
      "command": "npx",
      "args": ["-y", "opera-devtools-mcp@latest"]
    }
  }
}

[!NOTA] El uso de opera-devtools-mcp@latest garantiza que tu cliente MCP utilice siempre la versión más reciente del servidor Opera DevTools MCP.

Conexión a Opera Neon

Para usar las herramientas de IA de Opera Neon, inicia Opera Neon con la depuración remota habilitada y conéctate mediante --browser-url:

{
  "mcpServers": {
    "opera-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "opera-devtools-mcp@latest",
        "--browser-url=http://127.0.0.1:9222"
      ]
    }
  }
}

Inicia Opera Neon con el puerto de depuración remota:

# macOS
/Applications/Opera\ Neon.app/Contents/MacOS/Opera\ Neon --remote-debugging-port=9222 --user-data-dir=/tmp/opera-profile

Configuración del cliente MCP

claude mcp add opera-devtools --scope user npx opera-devtools-mcp@latest

Ve a Configuración de Cursor -> MCP -> Nuevo servidor MCP. Usa la configuración proporcionada anteriormente.

Sigue la guía de configuración de MCP de VS Code usando la configuración estándar anterior, o usa la CLI:

code --add-mcp '{"name":"opera-devtools","command":"npx","args":["-y","opera-devtools-mcp"],"env":{}}'

Tu primer mensaje

Introduce el siguiente mensaje en tu cliente MCP para comprobar que todo funciona:

Check the performance of https://opera.com

Tu cliente MCP debería abrir el navegador y grabar un seguimiento de rendimiento.

[!NOTA] El servidor MCP iniciará el navegador automáticamente cuando el cliente MCP utilice una herramienta que requiera una instancia del navegador en ejecución. Conectarse al servidor Opera DevTools MCP por sí solo no iniciará el navegador automáticamente.

Herramientas

Si tienes algún problema, consulta nuestra guía de solución de problemas.

Configuración

El servidor Opera DevTools MCP admite las siguientes opciones de configuración:

  • --autoConnect/ --auto-connect Si se especifica, se conecta automáticamente a un navegador (Chrome 144+) que se ejecuta localmente desde el directorio de datos de usuario identificado por el parámetro de canal (el canal predeterminado es stable). Requiere que el servidor de depuración remota se inicie en la instancia de Chrome mediante chrome://inspect/#remote-debugging.

    • Tipo: boolean

    • Predeterminado: false

  • --browserUrl/ --browser-url, -u Conéctate a una instancia de Chrome en ejecución y depurable (p. ej., http://127.0.0.1:9222). Para más detalles, consulta: https://github.com/operasoftware/opera-devtools-mcp#connecting-to-a-running-chrome-instance.

    • Tipo: string

    • Predeterminado: false

  • --wsEndpoint/ --ws-endpoint, -w Punto de conexión WebSocket para conectarse a una instancia de Chrome en ejecución (p. ej., ws://127.0.0.1:9222/devtools/browser/). Alternativa a --browserUrl.

    • Tipo: string

    • Predeterminado: false

  • --wsHeaders/ --ws-headers Cabeceras personalizadas para la conexión WebSocket en formato JSON (p. ej., '{"Authorization":"Bearer token"}'). Solo funciona con --wsEndpoint.

    • Tipo: string

    • Predeterminado: false

  • --headless Indica si se debe ejecutar en modo headless (sin interfaz de usuario).

    • Tipo: boolean

    • Predeterminado: false

  • --executablePath/ --executable-path, -e Ruta al ejecutable personalizado de Chrome.

    • Tipo: string

    • Predeterminado: false

  • --isolated Si se especifica, crea un directorio de datos de usuario temporal que se limpia automáticamente al cerrar el navegador. El valor predeterminado es false.

    • Tipo: boolean

    • Predeterminado: false

  • --userDataDir/ --user-data-dir Ruta al directorio de datos de usuario para Chrome. El valor predeterminado es $HOME/.cache/opera-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE

    • Tipo: string

    • Predeterminado: false

  • --channel Especifica un canal de Chrome diferente que se deba usar. El valor predeterminado es la versión del canal stable.

    • Tipo: string

    • Opciones: canary, dev, beta, stable

    • Predeterminado: false

  • --logFile/ --log-file Ruta a un archivo en el que escribir los registros de depuración. Establece la variable de entorno DEBUG en * para habilitar el registro detallado. Útil para enviar informes de errores.

    • Tipo: string

    • Predeterminado: false

  • --viewport Tamaño de viewport inicial para las instancias de Chrome iniciadas por el servidor. Por ejemplo, 1280x720. En modo headless, el tamaño máximo es 3840x2160px.

    • Tipo: string

    • Predeterminado: false

  • --proxyServer/ --proxy-server Configuración del servidor proxy para Chrome que se pasa como --proxy-server al iniciar el navegador. Consulta https://www.chromium.org/developers/design-documents/network-settings/ para obtener más detalles.

    • Tipo: string

    • Predeterminado: false

  • --acceptInsecureCerts/ --accept-insecure-certs Si está habilitado, ignora los errores relativos a los certificados autofirmados y caducados. Úsalo con precaución.

    • Tipo: boolean

    • Predeterminado: false

  • --experimentalPageIdRouting/ --experimental-page-id-routing Indica si se debe exponer pageId en las herramientas de ámbito de página y enrutar las solicitudes por ID de página (útil para sesiones de agente concurrentes).

    • Tipo: boolean

    • Predeterminado: false

  • --experimentalDevtools/ --experimental-devtools Indica si se debe habilitar la automatización sobre los objetivos de DevTools.

    • Tipo: boolean

    • Predeterminado: false

  • --experimentalVision/ --experimental-vision Indica si se deben habilitar las herramientas basadas en coordenadas, como click_at(x,y). Normalmente requiere un modelo de uso de ordenador capaz de producir coordenadas precisas a partir de capturas de pantalla.

    • Tipo: boolean

    • Predeterminado: false

  • --memoryDebugging/ --memory-debugging, -experimentalMemory Indica si se deben habilitar las herramientas de depuración de memoria.

    • Tipo: boolean

    • Predeterminado: false

  • --experimentalStructuredContent/ --experimental-structured-content Indica si se debe generar contenido con formato estructurado.

    • Tipo: boolean

    • Predeterminado: false

  • --experimentalIncludeAllPages/ --experimental-include-all-pages Indica si se deben incluir todos los tipos de páginas, como webviews o páginas en segundo plano, como páginas.

    • Tipo: boolean

    • Predeterminado: false

  • --experimentalScreencast/ --experimental-screencast Expone herramientas experimentales de screencast (requiere ffmpeg). Instala ffmpeg https://www.ffmpeg.org/download.html y asegúrate de que esté disponible en el PATH del servidor MCP.

    • Tipo: boolean

    • Predeterminado: false

  • --experimentalFfmpegPath/ --experimental-ffmpeg-path Ruta al ejecutable de ffmpeg para la grabación de screencast.

    • Tipo: string

    • Predeterminado: false

  • --categoryExperimentalWebmcp/ --category-experimental-webmcp Establécelo en true para habilitar las herramientas de depuración de WebMCP. Requiere Chrome 150+ con la siguiente marca: --enable-features=WebMCP

    • Tipo: boolean

    • Predeterminado: false

  • --chromeArg/ --chrome-arg Argumentos adicionales para Chrome. Solo se aplica cuando Chrome es iniciado por opera-devtools-mcp.

    • Tipo: array

    • Predeterminado: false

  • --blockedUrlPattern/ --blocked-url-pattern Restringe el acceso de red del navegador bloqueando los patrones de URL especificados (usa https://urlpattern.spec.whatwg.org/). Se desconecta silenciosamente de los objetivos con URL bloqueadas al conectar y bloquea las solicitudes en tiempo de ejecución (incluidas las navegaciones y los subrecursos). Acepta una matriz de patrones.

    • Tipo: array

    • Predeterminado: false

  • --allowedUrlPattern/ --allowed-url-pattern Restringe el acceso de red del navegador permitiendo únicamente los patrones de URL especificados (usa https://urlpattern.spec.whatwg.org/). Requiere Chrome 149+. Se desconecta silenciosamente de los objetivos con URL no permitidas al conectar y bloquea las solicitudes en tiempo de ejecución (incluidas las navegaciones y los subrecursos). Acepta una matriz de patrones.

    • Tipo: array

    • Predeterminado: false

  • --ignoreDefaultChromeArg/ --ignore-default-chrome-arg Desactiva explícitamente los argumentos predeterminados para Chrome. Solo se aplica cuando Chrome es iniciado por opera-devtools-mcp.

    • Tipo: array

    • Predeterminado: false

  • --categoryEmulation/ --category-emulation Establécelo en false para excluir las herramientas relacionadas con la emulación.

    • Tipo: boolean

    • Predeterminado: true

  • --categoryPerformance/ --category-performance Establécelo en false para excluir las herramientas relacionadas con el rendimiento.

    • Tipo: boolean

    • Predeterminado: true

  • --categoryNetwork/ --category-network Establécelo en false para excluir las herramientas relacionadas con la red.

    • Tipo: boolean

    • Predeterminado: true

  • --categoryExtensions/ --category-extensions Establécelo en true para incluir las herramientas relacionadas con las extensiones. Nota: esta función actualmente solo es compatible con una conexión por pipe. autoConnect, browserUrl y wsEndpoint no son compatibles con esta función hasta que se publique la 149.

    • Tipo: boolean

    • Predeterminado: false

  • --categoryExperimentalThirdParty/ --category-experimental-third-party Establécelo en true para habilitar las herramientas de desarrollador de terceros expuestas por la propia página inspeccionada.

    • Tipo: boolean

    • Predeterminado: false

  • --categoryPwa/ --category-pwa Establécelo en true para incluir herramientas para automatizar aplicaciones web progresivas (instalación, inicio, desinstalación y estado del sistema operativo). Esta función solo es compatible con una conexión por pipe; autoConnect, browserUrl y wsEndpoint no son compatibles.

    • Tipo: boolean

    • Predeterminado: false

  • --performanceCrux/ --performance-crux Establécelo en true para habilitar el envío de URLs de las trazas de rendimiento a la API de CrUX y obtener datos de rendimiento de campo.

    • Tipo: boolean

    • Predeterminado: false

  • --usageStatistics/ --usage-statistics Establécelo en true para aceptar la recopilación de estadísticas de uso. Google recopila datos de uso para mejorar la herramienta, gestionados según la Política de Privacidad de Google (https://policies.google.com/privacy). Esto es independiente de las métricas del navegador Chrome. Se deshabilita si las variables de entorno OPERA_DEVTOOLS_NO_USAGE_STATISTICS o CI están definidas.

    • Tipo: boolean

    • Predeterminado: false

  • --screenshotFormat/ --screenshot-format Sobrescribe el formato de salida predeterminado que usa take_screenshot cuando quien lo llama no especifica uno. JPEG y WebP son ~3-5 veces más pequeños que PNG, lo que ayuda a reducir el tamaño del contexto en conversaciones de IA. Si no se define, se conserva el valor predeterminado actual ("png").

    • Tipo: string

    • Opciones: jpeg, png, webp

    • Predeterminado: false

  • --screenshotQuality/ --screenshot-quality Sobrescribe la calidad de compresión predeterminada (0-100) que usa take_screenshot para JPEG y WebP cuando quien lo llama no especifica una. Los valores más bajos significan archivos más pequeños. Se ignora para PNG. Si no se define, se conserva el valor predeterminado de Puppeteer.

    • Tipo: number

    • Predeterminado: false

  • --screenshotMaxWidth/ --screenshot-max-width Anchura máxima en píxeles para las capturas de pantalla. Si la imagen capturada es más ancha, se reduce su tamaño (conservando la relación de aspecto) antes de devolverse. Reduce el tamaño del contexto en conversaciones de IA. Si no se define, no se realiza ningún redimensionamiento.

    • Tipo: number

    • Predeterminado: false

  • --screenshotMaxHeight/ --screenshot-max-height Altura máxima en píxeles para las capturas de pantalla. Si la imagen capturada es más alta, se reduce su tamaño (conservando la relación de aspecto) antes de devolverse. Se puede combinar con --screenshot-max-width; el factor de escala menor es el que prevalece. Si no se define, no se realiza ningún redimensionamiento.

    • Tipo: number

    • Predeterminado: false

  • --slim Expone un conjunto "slim" de 3 herramientas que cubren únicamente la navegación, la ejecución de scripts y las capturas de pantalla. Útil para tareas básicas del navegador.

    • Tipo: boolean

    • Predeterminado: false

  • --redactNetworkHeaders/ --redact-network-headers Si es true, censura algunas de las cabeceras de red consideradas sensibles antes de devolverlas al cliente.

    • Tipo: boolean

    • Predeterminado: false

  • --allowUnrestrictedPaths/ --allow-unrestricted-paths Si se define, desactiva la restricción de rutas predeterminada que se aplica cuando el cliente MCP no negocia la capacidad de roots. De forma predeterminada, las herramientas de escritura de archivos están restringidas al directorio temporal del sistema operativo cuando no se configuran roots. Úsalo solo al conectar un cliente local de confianza que no implemente roots de MCP y que requiera acceso a rutas fuera del directorio temporal.

    • Tipo: boolean

    • Predeterminado: false

Pásalos mediante la propiedad args en la configuración JSON. Por ejemplo:

{
  "mcpServers": {
    "opera-devtools": {
      "command": "npx",
      "args": [
        "opera-devtools-mcp@latest",
        "--headless=true",
        "--isolated=true"
      ]
    }
  }
}

Conexión mediante WebSocket con cabeceras personalizadas

{
  "mcpServers": {
    "opera-devtools": {
      "command": "npx",
      "args": [
        "opera-devtools-mcp@latest",
        "--wsEndpoint=ws://127.0.0.1:9222/devtools/browser/<id>",
        "--wsHeaders={\"Authorization\":\"Bearer YOUR_TOKEN\"}"
      ]
    }
  }
}

Conceptos

Directorio de datos de usuario

opera-devtools-mcp inicia una instancia del navegador usando el siguiente directorio de datos de usuario:

  • Linux / macOS: $HOME/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL

  • Windows: %HOMEPATH%/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL

El directorio de datos de usuario no se borra entre ejecuciones. Establece la opción isolated en true para usar en su lugar un directorio de datos de usuario temporal que se borrará automáticamente después de cerrar el navegador.

Conexión a una instancia de navegador en ejecución

De forma predeterminada, el servidor iniciará una nueva instancia de Chrome con un perfil dedicado. En su lugar, puedes conectarte a una instancia en ejecución mediante --browser-url:

{
  "mcpServers": {
    "opera-devtools": {
      "command": "npx",
      "args": [
        "opera-devtools-mcp@latest",
        "--browser-url=http://127.0.0.1:9222"
      ]
    }
  }
}

Inicia el navegador con el puerto de depuración remota habilitado:

macOS (Chrome)

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable

macOS (Opera Neon)

/Applications/Opera\ Neon.app/Contents/MacOS/Opera\ Neon --remote-debugging-port=9222 --user-data-dir=/tmp/opera-profile

Linux

/usr/bin/google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable

Windows

"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-profile-stable"

[!WARNING] Habilitar el puerto de depuración remota abre un puerto de depuración en la instancia del navegador en ejecución. Cualquier aplicación de tu máquina puede conectarse a este puerto y controlar el navegador. Asegúrate de no estar navegando por ningún sitio web sensible mientras el puerto de depuración esté abierto.

Depuración de Chrome en Android

Consulta estas instrucciones.

Limitaciones conocidas

Consulta Solución de problemas.

Licencia

Apache 2.0. Consulta LICENSE y NOTICE.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, network monitoring, and DOM interaction through Chrome DevTools Protocol.
    2,211,104
    Apache 2.0
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI coding assistants to control and inspect a live Chrome browser for automated debugging, performance analysis, and web interaction. It leverages Puppeteer and Chrome DevTools to provide capabilities like network monitoring, console logging, and automated browser actions.

View all related MCP servers

Related MCP Connectors

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

  • A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,

View all MCP Connectors

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/operasoftware/opera-devtools-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server