Skip to main content
Glama

Opera DevTools MCP

这是 chrome-devtools-mcp(版权所有 2025 Google LLC)的一个分支,扩展了 Opera Neon AI 功能。

npm opera-devtools-mcp 包

opera-devtools-mcp 让你的编码代理(如 Claude、Cursor 或 Copilot)能够控制和检查实时浏览器。它作为一个模型上下文协议(MCP)服务器,为你的 AI 编码助手提供 DevTools 的全部功能,用于可靠的自动化、深入的调试和性能分析。当连接到 Opera Neon 时,它还提供 Opera 内置的 AI 功能。

工具参考 | 更新日志 | 贡献指南 | 故障排除 | 设计原则

Related MCP server: Chrome DevTools MCP

主要功能

  • Opera Neon AI 工具:直接从你的编码代理与 Opera 内置 AI 交互——聊天、执行页面操作、生成内容和进行研究。

  • 性能洞察:使用 Chrome DevTools 记录跟踪并提取可操作的性能洞察。

  • 高级调试:分析网络请求、截取屏幕截图并检查浏览器控制台消息(带源映射堆栈跟踪)。

  • 可靠自动化:使用 puppeteer 自动化浏览器操作并自动等待操作结果。

Opera Neon AI 工具

这些工具仅在通过 --browser-url 连接到 Opera Neon 时可用。

工具

描述

opera_chat

向 Opera 内置 AI 发送聊天提示并返回响应。

opera_do

指示 Opera 内置 AI 在当前页面上执行操作。

opera_make

让 Opera 内置 AI 创建或生成内容。

opera_research

让 Opera 内置 AI 研究一个主题。支持 local、one-minute 和 deep 研究模式。

免责声明

opera-devtools-mcp 会将浏览器实例的内容暴露给 MCP 客户端,使其能够检查、调试和修改浏览器或 DevTools 中的任何数据。避免分享你不想与 MCP 客户端共享的敏感或个人信息。

性能工具可能会将跟踪 URL 发送到 Google CrUX API 以获取真实用户体验数据。要禁用此功能,请使用 --no-performance-crux 标志运行。

要求

快速开始

将以下配置添加到你的 MCP 客户端:

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

[!NOTE] 使用 opera-devtools-mcp@latest 可确保你的 MCP 客户端始终使用最新版本的 Opera DevTools MCP 服务器。

连接到 Opera Neon

要使用 Opera Neon AI 工具,请通过远程调试端口启动 Opera Neon,并使用 --browser-url 连接:

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

通过远程调试端口启动 Opera Neon:

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

MCP 客户端配置

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

转到 Cursor 设置 -> MCP -> 新建 MCP 服务器。使用上面提供的配置。

按照 VS Code MCP 配置指南 使用上面的标准配置,或使用 CLI:

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

你的第一个提示

在 MCP 客户端中输入以下提示以检查一切是否正常:

Check the performance of https://opera.com

你的 MCP 客户端应打开浏览器并记录性能跟踪。

[!NOTE] 一旦 MCP 客户端使用需要运行浏览器实例的工具,MCP 服务器将自动启动浏览器。仅连接到 Opera DevTools MCP 服务器本身不会自动启动浏览器。

工具

如果遇到任何问题,请查看我们的故障排除指南。

配置

Opera DevTools MCP 服务器支持以下配置选项:

  • --autoConnect/ --auto-connect 如果指定,则自动连接到本地运行的浏览器(Chrome 144+),该浏览器使用由 channel 参数标识的用户数据目录(默认 channel 为 stable)。要求通过 chrome://inspect/#remote-debugging 在 Chrome 实例中启动远程调试服务器。

    • 类型: boolean

    • 默认值: false

  • --browserUrl/ --browser-url, -u 连接到正在运行且可调试的 Chrome 实例(例如 http://127.0.0.1:9222)。更多详情请参阅:https://github.com/operasoftware/opera-devtools-mcp#connecting-to-a-running-chrome-instance。

    • 类型: string

    • 默认值: false

  • --wsEndpoint/ --ws-endpoint, -w 用于连接到正在运行的 Chrome 实例的 WebSocket 端点(例如 ws://127.0.0.1:9222/devtools/browser/)。是 --browserUrl 的替代方案。

    • 类型: string

    • 默认值: false

  • --wsHeaders/ --ws-headers 用于 WebSocket 连接的自定义请求头,JSON 格式(例如 '{"Authorization":"Bearer token"}')。仅与 --wsEndpoint 一起使用。

    • 类型: string

    • 默认值: false

  • --headless 是否以无头(无界面)模式运行。

    • 类型: boolean

    • 默认值: false

  • --executablePath/ --executable-path, -e 自定义 Chrome 可执行文件的路径。

    • 类型: string

    • 默认值: false

  • --isolated 如果指定,则创建一个临时的 user-data-dir,浏览器关闭后会自动清理。默认为 false。

    • 类型: boolean

    • 默认值: false

  • --userDataDir/ --user-data-dir Chrome 用户数据目录的路径。默认为 $HOME/.cache/opera-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE

    • 类型: string

    • 默认值: false

  • --channel 指定要使用的其他 Chrome 渠道。默认为 stable 渠道版本。

    • 类型: string

    • 可选值: canary, dev, beta, stable

    • 默认值: false

  • --logFile/ --log-file 用于写入调试日志的文件路径。将环境变量 DEBUG 设置为 * 以启用详细日志。有助于提交错误报告。

    • 类型: string

    • 默认值: false

  • --viewport 服务器启动的 Chrome 实例的初始视口大小。例如 1280x720。在无头模式下,最大尺寸为 3840x2160px。

    • 类型: string

    • 默认值: false

  • --proxyServer/ --proxy-server Chrome 的代理服务器配置,在启动浏览器时作为 --proxy-server 传入。详情请参阅 https://www.chromium.org/developers/design-documents/network-settings/。

    • 类型: string

    • 默认值: false

  • --acceptInsecureCerts/ --accept-insecure-certs 如果启用,则忽略与自签名证书和过期证书相关的错误。请谨慎使用。

    • 类型: boolean

    • 默认值: false

  • --experimentalPageIdRouting/ --experimental-page-id-routing 是否在页面级工具上暴露 pageId,并按页面 ID 路由请求(对于并发代理会话很有用)。

    • 类型: boolean

    • 默认值: false

  • --experimentalDevtools/ --experimental-devtools 是否启用对 DevTools 目标的自动化操作

    • 类型: boolean

    • 默认值: false

  • --experimentalVision/ --experimental-vision 是否启用基于坐标的工具,例如 click_at(x,y)。通常需要一个能够通过查看截图生成准确坐标的 computer-use 模型。

    • 类型: boolean

    • 默认值: false

  • --memoryDebugging/ --memory-debugging, -experimentalMemory 是否启用内存调试工具。

    • 类型: boolean

    • 默认值: false

  • --experimentalStructuredContent/ --experimental-structured-content 是否输出结构化格式的内容。

    • 类型: boolean

    • 默认值: false

  • --experimentalIncludeAllPages/ --experimental-include-all-pages 是否将所有类型的页面(如 webviews 或后台页面)都作为页面包含在内。

    • 类型: boolean

    • 默认值: false

  • --experimentalScreencast/ --experimental-screencast 公开实验性的屏幕录制(screencast)工具(需要 ffmpeg)。安装 ffmpeg https://www.ffmpeg.org/download.html,并确保它在 MCP 服务器的 PATH 中可用。

    • 类型: boolean

    • 默认值: false

  • --experimentalFfmpegPath/ --experimental-ffmpeg-path 用于屏幕录制(screencast)的 ffmpeg 可执行文件路径。

    • 类型: string

    • 默认值: false

  • --categoryExperimentalWebmcp/ --category-experimental-webmcp 设置为 true 以启用调试 WebMCP 工具。需要 Chrome 150+ 并带有以下标志:--enable-features=WebMCP

    • 类型: boolean

    • 默认值: false

  • --chromeArg/ --chrome-arg Chrome 的附加参数。仅在 Chrome 由 opera-devtools-mcp 启动时适用。

    • 类型: array

    • 默认值: false

  • --blockedUrlPattern/ --blocked-url-pattern 通过阻止指定的 URL 模式来限制浏览器的网络访问(使用 https://urlpattern.spec.whatwg.org/)。连接时会静默地从具有被阻止 URL 的目标上分离,并阻止运行时请求(包括导航和子资源)。接受一个模式数组。

    • 类型: array

    • 默认值: false

  • --allowedUrlPattern/ --allowed-url-pattern 通过仅允许指定的 URL 模式来限制浏览器的网络访问(使用 https://urlpattern.spec.whatwg.org/)。需要 Chrome 149+。连接时会静默地从具有不允许 URL 的目标上分离,并阻止运行时请求(包括导航和子资源)。接受一个模式数组。

    • 类型: array

    • 默认值: false

  • --ignoreDefaultChromeArg/ --ignore-default-chrome-arg 显式禁用 Chrome 的默认参数。仅在 Chrome 由 opera-devtools-mcp 启动时适用。

    • 类型: array

    • 默认值: false

  • --categoryEmulation/ --category-emulation 设置为 false 以排除与模拟(emulation)相关的工具。

    • 类型: boolean

    • 默认值: true

  • --categoryPerformance/ --category-performance 设置为 false 以排除与性能(performance)相关的工具。

    • 类型: boolean

    • 默认值: true

  • --categoryNetwork/ --category-network 设置为 false 以排除与网络(network)相关的工具。

    • 类型: boolean

    • 默认值: true

  • --categoryExtensions/ --category-extensions 设置为 true 以包含与扩展(extensions)相关的工具。注意:此功能目前仅支持管道连接。在 149 发布之前,此功能不支持 autoConnect、browserUrl 和 wsEndpoint。

    • 类型: boolean

    • 默认值: false

  • --categoryExperimentalThirdParty/ --category-experimental-third-party 设置为 true 以启用由被检查页面本身公开的第三方开发者工具

    • 类型: boolean

    • 默认值: false

  • --categoryPwa/ --category-pwa 设置为 true 以包含用于自动化渐进式 Web 应用(Progressive Web Apps,安装、启动、卸载和操作系统状态)的工具。此功能仅支持管道连接;不支持 autoConnect、browserUrl 和 wsEndpoint。

    • 类型: boolean

    • 默认值: false

  • --performanceCrux/ --performance-crux 设置为 true 以启用将性能跟踪中的 URL 发送到 CrUX API,以获取实际性能数据。

    • 类型: boolean

    • 默认值: false

  • --usageStatistics/ --usage-statistics 设置为 true 以选择加入使用统计信息收集。Google 会收集使用数据以改进该工具,这些数据根据 Google 隐私政策(https://policies.google.com/privacy)处理。这与 Chrome 浏览器指标无关。如果设置了 OPERA_DEVTOOLS_NO_USAGE_STATISTICS 或 CI 环境变量,则禁用。

    • 类型: boolean

    • 默认值: false

  • --screenshotFormat/ --screenshot-format 当调用方未指定格式时,覆盖 take_screenshot 使用的默认输出格式。JPEG 和 WebP 比 PNG 小约 3-5 倍,有助于减少 AI 对话中的上下文大小。未设置时保留现有默认值("png")。

    • 类型: string

    • 可选值: jpeg, png, webp

    • 默认值: false

  • --screenshotQuality/ --screenshot-quality 当调用方未指定时,覆盖 take_screenshot 用于 JPEG 和 WebP 的默认压缩质量(0-100)。值越低表示文件越小。对 PNG 无效。未设置时保留 Puppeteer 默认值。

    • 类型: number

    • 默认值: false

  • --screenshotMaxWidth/ --screenshot-max-width 截图的最大宽度(像素)。如果捕获的图像更宽,则在返回前会按比例缩小(保持宽高比)。可减少 AI 对话中的上下文大小。未设置表示不调整大小。

    • 类型: number

    • 默认值: false

  • --screenshotMaxHeight/ --screenshot-max-height 截图的最大高度(像素)。如果捕获的图像更高,则在返回前会按比例缩小(保持宽高比)。可与 --screenshot-max-width 结合使用;较小的缩放系数生效。未设置表示不调整大小。

    • 类型: number

    • 默认值: false

  • --slim 公开一组“精简”(slim)工具,仅包含 3 个工具,涵盖导航、脚本执行和截图。适用于基本浏览器任务。

    • 类型: boolean

    • 默认值: false

  • --redactNetworkHeaders/ --redact-network-headers 如果为 true,则在返回给客户端之前,对部分被视为敏感的网络请求头进行脱敏处理。

    • 类型: boolean

    • 默认值: false

  • --allowUnrestrictedPaths/ --allow-unrestricted-paths 如果设置,则禁用默认的路径限制,该限制在 MCP 客户端未协商 roots 能力时生效。默认情况下,当未配置 roots 时,文件写入工具被限制在操作系统临时目录内。仅在连接可信的本地客户端时使用此选项,该客户端未实现 MCP roots 且需要访问临时目录之外的路径。

    • 类型: boolean

    • 默认值: false

通过 JSON 配置中的 args 属性传递它们。例如:

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

通过带自定义请求头的 WebSocket 连接

{
  "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\"}"
      ]
    }
  }
}

概念

用户数据目录

opera-devtools-mcp 使用以下用户数据目录启动浏览器实例:

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

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

用户数据目录在每次运行之间不会被清除。将 isolated 选项设置为 true 以改用临时用户数据目录,该目录会在浏览器关闭后自动清除。

连接到正在运行的浏览器实例

默认情况下,服务器会使用专用配置文件启动一个新的 Chrome 实例。您也可以通过 --browser-url 连接到正在运行的实例:

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

在启用远程调试端口的情况下启动浏览器:

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] 启用远程调试端口会在正在运行的浏览器实例上打开一个调试端口。您机器上的任何应用程序都可以连接到该端口并控制浏览器。请确保在调试端口打开期间不要浏览任何敏感网站。

在 Android 上调试 Chrome

请参阅这些说明。

已知限制

请参阅故障排除。

许可证

Apache 2.0。请参阅 LICENSE 和 NOTICE。

Related MCP Connectors

Related MCP Servers