面向智能编码代理的 Chrome DevTools
英文标题:🔥 ChromeDevTools/chrome-devtools-mcp
chrome-devtools-mcp 是一个基于 MCP 协议的服务器,让 Claude、Cursor、Copilot 等 AI 编码代理能够直接操控和检查浏览器,提供性能洞察、高级调试和可靠自动化。该项目公开了 DevTools 的完整能力,并支持多种流行 AI 编程工具的集成。开发者可通过 MCP 客户端配置快速接入,同时项目提供了数据收集与隐私控制选项,帮助安全高效地在开发流程中引入浏览器自动化。
4.3 KB
8.7 KB
1.9 KB
中文
面向智能编码代理的 Chrome DevTools
Chrome DevTools for agents (chrome-devtools-mcp) 让你的编码代理(如 Antigravity、Claude、Cursor 或 Copilot)能够控制并检查一个实时的 Chrome 浏览器。它作为 Model-Context-Protocol (MCP) 服务器运行,为你的 AI 编码助手提供 Chrome DevTools 的全部能力,用于可靠的自动化、深度调试和性能分析。同时,还提供了一个 CLI,供不依赖 MCP 的场景使用。
- 获取性能洞察:使用 Chrome DevTools 录制追踪并提取可操作的性能洞察。
- 高级浏览器调试:分析网络请求、截取屏幕截图,并查看浏览器控制台消息(支持源码映射的堆栈追踪)。
- 可靠自动化:使用 puppeteer 在 Chrome 中自动执行操作,并自动等待操作结果。
[!WARNING]
chrome-devtools-mcp会将浏览器实例的内容暴露给 MCP 客户端,使它们能够检查、调试和修改浏览器或 DevTools 中的任何数据。请避免共享你不想让 MCP 客户端获得的敏感或个人信息。
chrome-devtools-mcp 官方仅支持 Google Chrome 和 Chrome for Testing。其他基于 Chromium 的浏览器可能也能运行,但无法保证,你可能会遇到预期之外的行为。请自行选择使用。我们致力于为最新的 Extended Stable Chrome 版本提供修复和支持。
性能分析工具可能会将追踪 URL 发送到 Google CrUX API,以获取真实用户性能数据。这会将场数据与实验室数据一起呈现,帮助你获得更全面的性能画像。这些数据由 Chrome User Experience Report (CrUX) 收集。要禁用此行为,请使用 --no-performance-crux 标志运行。
Google 收集使用统计数据(例如工具调用成功率、延迟和环境信息),以改进 Chrome DevTools MCP 的可靠性和性能。
数据收集默认启用。你可以在启动服务器时通过传递 --no-usage-statistics 标志选择退出:
"args": ["-y", "chrome-devtools-mcp@latest", "--no-usage-statistics"]
Google 根据 Google 隐私政策 处理此数据。
Google 针对 Chrome DevTools MCP 的使用统计数据收集与 Chrome 浏览器的使用统计是独立的。退出 Chrome 指标收集并不会自动退出此工具,反之亦然。
如果设置了 CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS 或 CI 环境变量,收集将被禁用。
默认情况下,服务器会定期检查 npm 注册表中的更新,并在有新版本时记录通知。你可以通过设置 CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS 环境变量禁用这些更新检查。
将以下配置添加到你的 MCP 客户端:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
[!NOTE] 使用
chrome-devtools-mcp@latest可以确保你的 MCP 客户端始终使用最新版本的 Chrome DevTools MCP 服务器。
如果你只需要执行基本的浏览器任务,可以使用 --slim 模式:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--slim", "--headless"]
}
}
}
参见 Slim 工具参考。
Amp 请按照 https://ampcode.com/manual#mcp 说明,并使用上述配置。你也可以使用 CLI 安装 Chrome DevTools MCP 服务器:
amp mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
Antigravity
要使用 Chrome DevTools MCP 服务器,请按照 Antigravity 文档 中的说明安装自定义 MCP 服务器。将以下配置添加到 MCP 服务器配置中:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--browser-url=http://127.0.0.1:9222"
]
}
}
}
这样会让 Chrome DevTools MCP 服务器自动连接到 Antigravity 正在使用的浏览器。如果你没有使用端口 9222,请相应地调整。
采用此方式时,Chrome DevTools MCP 不会自动启动浏览器实例,因为 Chrome DevTools MCP 服务器会连接到 Antigravity 内置的浏览器。如果浏览器尚未运行,你需要先通过点击右上角的 Chrome 图标来启动它。
Claude Code
通过 CLI 安装(仅 MCP)
使用 Claude Code CLI 添加 Chrome DevTools MCP 服务器(指南):
claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
作为插件安装(MCP + Skills)
[!NOTE] 如果你之前在 Claude Code 中安装过 Chrome DevTools MCP,请务必先从安装和配置文件中移除它。
要安装带 skills 的 Chrome DevTools MCP,请在 Claude Code 中添加市场注册表:
/plugin marketplace add ChromeDevTools/chrome-devtools-mcp
然后安装插件:
/plugin install chrome-devtools-mcp@chrome-devtools-plugins
重启 Claude Code 以加载 MCP 服务器和 skills(可使用 /skills 检查)。
[!TIP] 如果插件安装失败并出现
Failed to clone repository错误(例如企业防火墙导致 HTTPS 连接问题),请参见故障排除指南 获取变通方法,或改用上述 CLI 安装方式。
Cline 请按照 https://docs.cline.bot/mcp/configuring-mcp-servers 说明,并使用上述配置。
Codex 请按照 配置 MCP 指南 使用上面的标准配置。你也可以使用 Codex CLI 安装 Chrome DevTools MCP 服务器:
codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
在 Windows 11 上
配置 Chrome 的安装位置,并通过更新 .codex/config.toml 添加以下 env 和 startup_timeout_ms 参数来增加启动超时:
[mcp_servers.chrome-devtools]
command = "cmd"
args = [
"/c",
"npx",
"-y",
"chrome-devtools-mcp@latest",
]
env = { SystemRoot="C:\\Windows", PROGRAMFILES="C:\Program Files" }
startup_timeout_ms = 20_000
Command Code
使用 Command Code CLI 添加 Chrome DevTools MCP 服务器(MCP 指南):
cmd mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
Copilot CLI
启动 Copilot CLI:
开始添加新 MCP 服务器的对话框:
配置以下字段并按下 CTRL+S 保存配置:
- 服务器名称:
chrome-devtools - 服务器类型:
[1] Local - 命令:
npx -y chrome-devtools-mcp@latest
Copilot / VS Code
作为插件安装(推荐)
最简单的上手方式是安装 chrome-devtools-mcp 作为代理插件。这会打包 MCP 服务器和所有 skills,让你的代理同时获得工具和所需的专家指导。
- 打开 命令面板(macOS:
Cmd+Shift+P,Windows/Linux:Ctrl+Shift+P)。 - 搜索并运行 Chat:从源代码安装插件 命令。
- 粘贴我们的仓库名称:
ChromeDevTools/chrome-devtools-mcp。
就这么简单!你的代理现在已拥有增强的 Chrome DevTools 能力。
作为 MCP 服务器安装(仅 MCP)
点击按钮安装:
或手动安装:
按照 VS Code 的 MCP 配置指南 使用上面的标准配置,或使用 CLI:
对于 macOS 和 Linux:
code --add-mcp '{"name":"io.github.ChromeDevTools/chrome-devtools-mcp","command":"npx","args":["-y","chrome-devtools-mcp"],"env":{}}'
对于 Windows(PowerShell):
code --add-mcp '{"""name""":"""io.github.ChromeDevTools/chrome-devtools-mcp""","""command""":"""npx""","""args""":["""-y""","""chrome-devtools-mcp"""]}'
Cursor
点击按钮安装:
或手动安装:
前往 Cursor Settings -> MCP -> New MCP Server。使用上述配置。
Factory CLI 使用 Factory CLI 添加 Chrome DevTools MCP 服务器(指南):
droid mcp add chrome-devtools "npx -y chrome-devtools-mcp@latest"
Gemini CLI 使用 Gemini CLI 安装 Chrome DevTools MCP 服务器。
项目内:
# 仅 MCP:
gemini mcp add chrome-devtools npx chrome-devtools-mcp@latest
# 或作为 Gemini 扩展(MCP+Skills):
gemini extensions install --auto-update https://github.com/ChromeDevTools/chrome-devtools-mcp
全局:
gemini mcp add -s user chrome-devtools npx chrome-devtools-mcp@latest
或者,按照 MCP 指南 使用上面的标准配置。
Gemini Code Assist 请按照 配置 MCP 指南 使用上面的标准配置。
JetBrains AI Assistant & Junie
前往 Settings | Tools | AI Assistant | Model Context Protocol (MCP) -> Add。使用上述配置。同样的方式,也可以在 Settings | Tools | Junie | MCP Settings -> Add 中为 JetBrains Junie 配置 chrome-devtools-mcp。使用上述配置。
Kiro
在 Kiro 设置中,前往 Configure MCP > Open Workspace or User MCP Config > 使用上面提供的配置片段。
或者,从 IDE 的 活动栏 > Kiro > MCP Servers > 点击 Open MCP Config。使用上面提供的配置片段。
Katalon Studio
Chrome DevTools MCP 服务器可以通过 MCP 代理与 Katalon StudioAssist 一起使用。
第 1 步: 按照 MCP 代理设置指南 安装 MCP 代理。
第 2 步: 使用代理启动 Chrome DevTools MCP 服务器:
mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@latest
注意: 如果 8080 端口被占用,你可能需要选择其他端口。
第 3 步: 在 Katalon Studio 中,使用以下设置将服务器添加到 StudioAssist:
- 连接 URL:
http://127.0.0.1:8080/mcp - 传输类型:
HTTP
连接后,Chrome DevTools MCP 工具将在 StudioAssist 中可用。
Mistral Vibe
在 ~/.vibe/config.toml 中添加:
[[mcp_servers]]
name = "chrome-devtools"
transport = "stdio"
command = "npx"
args = ["chrome-devtools-mcp@latest"]
OpenCode
将以下配置添加到你的 opencode.json 文件中。如果你还没有该文件,请在 ~/.config/opencode/opencode.json 创建(指南):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrome-devtools": {
"type": "local",
"command": ["npx", "-y", "chrome-devtools-mcp@latest"]
}
}
}
English / 原文
Chrome DevTools for agents
Chrome DevTools for agents (chrome-devtools-mcp) lets your coding agent (such as Antigravity, Claude, Cursor or Copilot) control and inspect a live Chrome browser. It acts as a Model-Context-Protocol (MCP) server, giving your AI coding assistant access to the full power of Chrome DevTools for reliable automation, in-depth debugging, and performance analysis. A CLI is also provided for use without MCP.
- Get performance insights : Uses Chrome DevTools to record traces and extract actionable performance insights.
- Advanced browser debugging : Analyze network requests, take screenshots and check browser console messages (with source-mapped stack traces).
- Reliable automation. Uses puppeteer to automate actions in Chrome and automatically wait for action results.
chrome-devtools-mcp exposes content of the browser instance to the MCP clients allowing them to inspect, debug, and modify any data in the browser or DevTools. Avoid sharing sensitive or personal information that you don't want to share with MCP clients.
chrome-devtools-mcp officially supports Google Chrome and Chrome for Testing only. Other Chromium-based browsers may work, but this is not guaranteed, and you may encounter unexpected behavior. Use at your own discretion. We are committed to providing fixes and support for the latest version of Extended Stable Chrome.
Performance tools may send trace URLs to the Google CrUX API to fetch real-user experience data. This helps provide a holistic performance picture by presenting field data alongside lab data. This data is collected by the Chrome User Experience Report (CrUX). To disable this, run with the --no-performance-crux flag.
Google collects usage statistics (such as tool invocation success rates, latency, and environment information) to improve the reliability and performance of Chrome DevTools MCP.
Data collection is enabled by default. You can opt-out by passing the --no-usage-statistics flag when starting the server:
"args": ["-y", "chrome-devtools-mcp@latest", "--no-usage-statistics"]
Google handles this data in accordance with the Google Privacy Policy.
Google's collection of usage statistics for Chrome DevTools MCP is independent from the Chrome browser's usage statistics. Opting out of Chrome metrics does not automatically opt you out of this tool, and vice-versa.
Collection is disabled if CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS or CI env variables are set.
By default, the server periodically checks the npm registry for updates and logs a notification when a newer version is available. You can disable these update checks by setting the CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS environment variable.
Add the following config to your MCP client:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}
Note
Using chrome-devtools-mcp@latest ensures that your MCP client will always use the latest version of the Chrome DevTools MCP server.
If you are interested in doing only basic browser tasks, use the --slim mode:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--slim", "--headless"]
}
}
}
See Slim tool reference.
Amp Follow https://ampcode.com/manual#mcp and use the config provided above. You can also install the Chrome DevTools MCP server using the CLI:
amp mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
Antigravity
To use the Chrome DevTools MCP server follow the instructions from Antigravity's docs to install a custom MCP server. Add the following config to the MCP servers config:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--browser-url=http://127.0.0.1:9222"
]
}
}
}
This will make the Chrome DevTools MCP server automatically connect to the browser that Antigravity is using. If you are not using port 9222, make sure to adjust accordingly.
Chrome DevTools MCP will not start the browser instance automatically using this approach because the Chrome DevTools MCP server connects to Antigravity's built-in browser. If the browser is not already running, you have to start it first by clicking the Chrome icon at the top right corner.
Claude Code
Install via CLI (MCP only)
Use the Claude Code CLI to add the Chrome DevTools MCP server (guide):
claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
Install as a Plugin (MCP + Skills)
[!NOTE] If you already had Chrome DevTools MCP installed previously for Claude Code, make sure to remove it first from your installation and configuration files.
To install Chrome DevTools MCP with skills, add the marketplace registry in Claude Code:
/plugin marketplace add ChromeDevTools/chrome-devtools-mcp
Then, install the plugin:
/plugin install chrome-devtools-mcp@chrome-devtools-plugins
Restart Claude Code to have the MCP server and skills load (check with /skills).
[!TIP] If the plugin installation fails with a
Failed to clone repositoryerror (e.g., HTTPS connectivity issues behind a corporate firewall), see the troubleshooting guide for workarounds, or use the CLI installation method above instead.
Cline Follow https://docs.cline.bot/mcp/configuring-mcp-servers and use the config provided above. Codex Follow the configure MCP guide using the standard config from above. You can also install the Chrome DevTools MCP server using the Codex CLI:
codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
On Windows 11
Configure the Chrome install location and increase the startup timeout by updating .codex/config.toml and adding the following env and startup_timeout_ms parameters:
[mcp_servers.chrome-devtools]
command = "cmd"
args = [
"/c",
"npx",
"-y",
"chrome-devtools-mcp@latest",
]
env = { SystemRoot="C:\\Windows", PROGRAMFILES="C:\\Program Files" }
startup_timeout_ms = 20_000
Command Code
Use the Command Code CLI to add the Chrome DevTools MCP server (MCP guide):
cmd mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest
Copilot CLI
Start Copilot CLI:
Start the dialog to add a new MCP server by running:
Configure the following fields and press CTRL+S to save the configuration:
- Server name:
chrome-devtools - Server Type:
[1] Local - Command:
npx -y chrome-devtools-mcp@latest
Copilot / VS Code
Install as a Plugin (Recommended)
The easiest way to get up and running is to install chrome-devtools-mcp as an agent plugin. This bundles the MCP server and all skills together, so your agent gets both the tools and the expert guidance it needs to use them effectively.
- Open the Command Palette (
Cmd+Shift+Pon macOS orCtrl+Shift+Pon Windows/Linux). - Search for and run the Chat: Install Plugin From Source command.
- Paste in our repository name:
ChromeDevTools/chrome-devtools-mcp.
That's it! Your agent is now supercharged with Chrome DevTools capabilities.
Install as an MCP Server (MCP only)
Click the button to install:
Or install manually:
Follow the VS Code MCP configuration guide using the standard config from above, or use the CLI:
For macOS and Linux:
code --add-mcp '{"name":"io.github.ChromeDevTools/chrome-devtools-mcp","command":"npx","args":["-y","chrome-devtools-mcp"],"env":{}}'
For Windows (PowerShell):
code --add-mcp '{"""name""":"""io.github.ChromeDevTools/chrome-devtools-mcp""","""command""":"""npx""","""args""":["""-y""","""chrome-devtools-mcp"""]}'
Cursor
Click the button to install:
Or install manually:
Go to Cursor Settings -> MCP -> New MCP Server. Use the config provided above.
Factory CLI Use the Factory CLI to add the Chrome DevTools MCP server (guide):
droid mcp add chrome-devtools "npx -y chrome-devtools-mcp@latest"
Gemini CLI Install the Chrome DevTools MCP server using the Gemini CLI.
Project wide:
# Either MCP only:
gemini mcp add chrome-devtools npx chrome-devtools-mcp@latest
# Or as a Gemini extension (MCP+Skills):
gemini extensions install --auto-update https://github.com/ChromeDevTools/chrome-devtools-mcp
Globally:
gemini mcp add -s user chrome-devtools npx chrome-devtools-mcp@latest
Alternatively, follow the MCP guide and use the standard config from above.
Gemini Code Assist Follow the configure MCP guide using the standard config from above. JetBrains AI Assistant & Junie
Go to Settings | Tools | AI Assistant | Model Context Protocol (MCP) -> Add. Use the config provided above. The same way chrome-devtools-mcp can be configured for JetBrains Junie in Settings | Tools | Junie | MCP Settings -> Add. Use the config provided above.
Kiro
In Kiro Settings , go to Configure MCP > Open Workspace or User MCP Config > Use the configuration snippet provided above.
Or, from the IDE Activity Bar > Kiro > MCP Servers > Click Open MCP Config. Use the configuration snippet provided above.
Katalon Studio
The Chrome DevTools MCP server can be used with Katalon StudioAssist via an MCP proxy.
Step 1: Install the MCP proxy by following the MCP proxy setup guide.
Step 2: Start the Chrome DevTools MCP server with the proxy:
mcp-proxy --transport streamablehttp --port 8080 -- npx -y chrome-devtools-mcp@latest
Note: You may need to pick another port if 8080 is already in use.
Step 3: In Katalon Studio, add the server to StudioAssist with the following settings:
- Connection URL:
http://127.0.0.1:8080/mcp - Transport type:
HTTP
Once connected, the Chrome DevTools MCP tools will be available in StudioAssist.
Mistral Vibe
Add in ~/.vibe/config.toml:
[[mcp_servers]]
name = "chrome-devtools"
transport = "stdio"
command = "npx"
args = ["chrome-devtools-mcp@latest"]
OpenCode
Add the following configuration to your opencode.json file. If you don't have one, create it at ~/.config/opencode/opencode.json (guide):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrome-devtools": {
"type": "local",
"command": ["npx", "-y", "chrome-devtools-mcp@latest"]
}
}
}
Qoder
In Qoder Settings , go to MCP Server > + Add > Use the configuration snippet provided above.
Alternatively, follow the MCP guide and use the standard config from above.
Qoder CLI
Install the Chrome DevTools MCP server using the Qoder CLI (guide):
Project wide:
qodercli mcp add chrome-devtools -- npx chrome-devtools-mcp@latest
Globally:
qodercli mcp add -s user chrome-devtools -- npx chrome-devtools-mcp@latest
Visual Studio
Click the button to install:
Warp
Go to Settings | AI | Manage MCP Servers -> + Add to add an MCP Server. Use the config provided above.
Windsurf Follow the configure MCP guide using the standard config from above.
Enter the following prompt in your MCP Client to check if everything is working:
Check the performance of https://developers.chrome.com
Your MCP client should open the browser and record a performance trace.
Note
The MCP server will start the browser automatically once the MCP client uses a tool that requires a running browser instance. Connecting to the Chrome DevTools MCP server on its own will not automatically start the browser.
If you run into any issues, checkout our troubleshooting guide.
- Input automation (10 tools)
- Navigation automation (6 tools)
- Emulation (2 tools)
- Performance (3 tools)
- Network (2 tools)
- Debugging (8 tools)
- Memory (11 tools)
- Extensions (5 tools)
- Third-party (2 tools)
- WebMCP (2 tools)
The Chrome DevTools MCP server supports the following configuration option:
-
--autoConnect/--auto-connectIf specified, automatically connects to a browser (Chrome 144+) running locally from the user data directory identified by the channel param (default channel is stable). Requires the remote debugging server to be started in the Chrome instance via chrome://inspect/#remote-debugging.- Type: boolean
- Default:
false
-
--browserUrl/--browser-url,-uConnect to a running, debuggable Chrome instance (e.g.http://127.0.0.1:9222). For more details see: https://github.com/ChromeDevTools/chrome-devtools-mcp#connecting-to-a-running-chrome-instance.- Type: string
- Default:
false
-
--wsEndpoint/--ws-endpoint,-wWebSocket endpoint to connect to a running Chrome instance (e.g., ws://127.0.0.1:9222/devtools/browser/). Alternative to --browserUrl.- Type: string
- Default:
false
-
--wsHeaders/--ws-headersCustom headers for WebSocket connection in JSON format (e.g., '{"Authorization":"Bearer token"}'). Only works with --wsEndpoint.- Type: string
- Default:
false
-
--headlessWhether to run in headless (no UI) mode.- Type: boolean
- Default:
false
-
--executablePath/--executable-path,-ePath to custom Chrome executable.- Type: string
- Default:
false
-
--isolatedIf specified, creates a temporary user-data-dir that is automatically cleaned up after the browser is closed. Defaults to false.- Type: boolean
- Default:
false
-
--userDataDir/--user-data-dirPath to the user data directory for Chrome. Default is $HOME/.cache/chrome-devtools-mcp/chrome-profile$CHANNEL_SUFFIX_IF_NON_STABLE- Type: string
- Default:
false
-
--channelSpecify a different Chrome channel that should be used. The default is the stable channel version.- Type: string
- Choices:
canary,dev,beta,stable - Default:
false
-
--logFile/--log-filePath to a file to write debug logs to. Set the env variableDEBUGto*to enable verbose logs. Useful for submitting bug reports.- Type: string
- Default:
false
-
--viewportInitial viewport size for the Chrome instances started by the server. For example,1280x720. In headless mode, max size is 3840x2160px.- Type: string
- Default:
false
-
--proxyServer/--proxy-serverProxy server configuration for Chrome passed as --proxy-server when launching the browser. See https://www.chromium.org/developers/design-documents/network-settings/ for details.- Type: string
- Default:
false
-
--acceptInsecureCerts/--accept-insecure-certsIf enabled, ignores errors relative to self-signed and expired certificates. Use with caution.- Type: boolean
- Default:
false
-
--experimentalPageIdRouting/--experimental-page-id-routingWhether to expose pageId on page-scoped tools and route requests by page ID (useful for concurrent agent sessions).- Type: boolean
- Default:
false
-
--experimentalDevtools/--experimental-devtoolsWhether to enable automation over DevTools targets- Type: boolean
- Default:
false
-
--experimentalVision/--experimental-visionWhether to enable coordinate-based tools such as click_at(x,y). Usually requires a computer-use model able to produce accurate coordinates by looking at screenshots.- Type: boolean
- Default:
false
-
--memoryDebugging/--memory-debugging,-experimentalMemoryWhether to enable memory debugging tools.- Type: boolean
- Default:
false
-
--experimentalStructuredContent/--experimental-structured-contentWhether to output structured formatted content.- Type: boolean
- Default:
false
-
--experimentalIncludeAllPages/--experimental-include-all-pagesWhether to include all kinds of pages such as webviews or background pages as pages.- Type: boolean
- Default:
false
-
--experimentalScreencast/--experimental-screencastExposes experimental screencast tools (requires ffmpeg). Install ffmpeg https://www.ffmpeg.org/download.html and ensure it is available in the MCP server PATH.- Type: boolean
- Default:
false
-
--experimentalFfmpegPath/--experimental-ffmpeg-pathPath to ffmpeg executable for screencast recording.- Type: string
- Default:
false
-
--categoryExperimentalWebmcp/--category-experimental-webmcpSet to true to enable debugging WebMCP tools. Requires Chrome 149+ with the following flags:--enable-features=WebMCP,DevToolsWebMCPSupport- Type: boolean
- Default:
false
-
--chromeArg/--chrome-argAdditional arguments for Chrome. Only applies when Chrome is launched by chrome-devtools-mcp.- Type: array
- Default:
false
-
--blockedUrlPattern/--blocked-url-patternRestricts browser's network access by blocking specified URL patterns (uses https://urlpattern.spec.whatwg.org/). Silently detaches from targets with blocked URLs upon connection, and blocks runtime requests (including navigations and subresources). Accepts an array of patterns.- Type: array
- Default:
false
-
--allowedUrlPattern/--allowed-url-patternRestricts browser's network access by allowing only specified URL patterns (uses https://urlpattern.spec.whatwg.org/). Requires Chrome 149+. Silently detaches from targets with unallowed URLs upon connection, and blocks runtime requests (including navigations and subresources). Accepts an array of patterns.- Type: array
- Default:
false
-
--ignoreDefaultChromeArg/--ignore-default-chrome-argExplicitly disable default arguments for Chrome. Only applies when Chrome is launched by chrome-devtools-mcp.- Type: array
- Default:
false
-
--categoryEmulation/--category-emulationSet to false to exclude tools related to emulation.- Type: boolean
- Default:
true
-
--categoryPerformance/--category-performanceSet to false to exclude tools related to performance.- Type: boolean
- Default:
true
-
--categoryNetwork/--category-networkSet to false to exclude tools related to network.- Type: boolean
- Default:
true
-
--categoryExtensions/--category-extensionsSet to true to include tools related to extensions. Note: This feature is currently only supported with a pipe connection. autoConnect, browserUrl, and wsEndpoint are not supported with this feature until 149 will be released.- Type: boolean
- Default:
false
-
--categoryExperimentalThirdParty/--category-experimental-third-partySet to true to enable third-party developer tools exposed by the inspected page itself- Type: boolean
- Default:
false
-
--performanceCrux/--performance-cruxSet to false to disable sending URLs from performance traces to CrUX API to get field performance data.- Type: boolean
- Default:
true
-
--usageStatistics/--usage-statisticsSet to false to opt-out of usage statistics collection. Google collects usage data to improve the tool, handled under the Google Privacy Policy (https://policies.google.com/privacy). This is independent from Chrome browser metrics. Disabled ifCHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICSorCIenv variables are set.- Type: boolean
- Default:
true
-
--screenshotFormat/--screenshot-formatOverride the default output format used by take_screenshot when the caller does not specify one. JPEG and WebP are ~3-5x smaller than PNG, which helps reduce context size in AI conversations. Unset preserves the existing default ("png").- Type: string
- Choices:
jpeg,png,webp - Default:
false
-
--screenshotQuality/--screenshot-qualityOverride the default compression quality (0-100) used by take_screenshot for JPEG and WebP when the caller does not specify one. Lower values mean smaller files. Ignored for PNG. Unset preserves the Puppeteer default.- Type: number
- Default:
false
-
--screenshotMaxWidth/--screenshot-max-widthMaximum width in pixels for screenshots. If the captured image is wider, it is downscaled (preserving aspect ratio) before being returned. Reduces context size in AI conversations. Unset means no resize.- Type: number
- Default:
false
-
--screenshotMaxHeight/--screenshot-max-heightMaximum height in pixels for screenshots. If the captured image is taller, it is downscaled (preserving aspect ratio) before being returned. Can be combined with --screenshot-max-width; the smaller scale factor wins. Unset means no resize.- Type: number
- Default:
false
-
--slimExposes a "slim" set of 3 tools covering navigation, script execution and screenshots only. Useful for basic browser tasks.- Type: boolean
- Default:
false
-
--redactNetworkHeaders/--redact-network-headersIf true, redacts some of the network headers considered sensitive before returning to the client.- Type: boolean
- Default:
false
Pass them via the args property in the JSON configuration. For example:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@latest",
"--channel=canary",
"--headless=true",
"--isolated=true"
]
}
}
}
Connecting via WebSocket with custom headers
You can connect directly to a Chrome WebSocket endpoint and include custom headers (e.g., for authentication):
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@latest",
"--wsEndpoint=ws://127.0.0.1:9222/devtools/browser/<id>",
"--wsHeaders={\"Authorization\":\"Bearer YOUR_TOKEN\"}"
]
}
}
}
To get the WebSocket endpoint from a running Chrome instance, visit http://127.0.0.1:9222/json/version and look for the webSocketDebuggerUrl field.
You can also run npx chrome-devtools-mcp@latest --help to see all available configuration options.
Most MCP clients start one Chrome DevTools MCP server per conversation. If your client shares a single server instance across concurrent agents or subagents, start the server with --experimentalPageIdRouting. This exposes pageId on page-scoped tools so each agent can route tool calls to the tab it is working with.
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest",
"--experimentalPageIdRouting"
]
}
}
}
If you run multiple independent MCP client sessions and want each session to launch its own temporary Chrome profile, also pass --isolated. This avoids sharing the default Chrome DevTools MCP user data directory between those server instances.
chrome-devtools-mcp starts a Chrome's stable channel instance using the following user data directory:
- Linux / macOS:
$HOME/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL - Windows:
%HOMEPATH%/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL
The user data directory is not cleared between runs and shared across all instances of chrome-devtools-mcp. Set the isolated option to true to use a temporary user data dir instead which will be cleared automatically after the browser is closed.
Connecting to a running Chrome instance
By default, the Chrome DevTools MCP server will start a new Chrome instance with a dedicated profile. This might not be ideal in all situations:
- If you would like to maintain the same application state when alternating between manual site testing and agent-driven testing.
- When the MCP needs to sign into a website. Some accounts may prevent sign-in when the browser is controlled via WebDriver (the default launch mechanism for the Chrome DevTools MCP server).
- If you're running your LLM inside a sandboxed environment, but you would like to connect to a Chrome instance that runs outside the sandbox.
In these cases, start Chrome first and let the Chrome DevTools MCP server connect to it. There are two ways to do so:
- Automatic connection (available in Chrome 144) : best for sharing state between manual and agent-driven testing.
- Manual connection via remote debugging port : best when running inside a sandboxed environment.
Automatically connecting to a running Chrome instance
Step 1: Set up remote debugging in Chrome
In Chrome (>= M144), do the following to set up remote debugging:
- Navigate to
chrome://inspect/#remote-debuggingto enable remote debugging. - Follow the dialog UI to allow or disallow incoming debugging connections.
Step 2: Configure Chrome DevTools MCP server to automatically connect to a running Chrome Instance
To connect the chrome-devtools-mcp server to the running Chrome instance, use --autoConnect command line argument for the MCP server.
The following code snippet is an example configuration for gemini-cli:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["chrome-devtools-mcp@latest", "--autoConnect"]
}
}
}
Step 3: Test your setup
Make sure your browser is running. Open gemini-cli and run the following prompt:
Check the performance of https://developers.chrome.com
Note
The autoConnect option requires the user to start Chrome. If the user has multiple active profiles, the MCP server will connect to the default profile (as determined by Chrome). The MCP server has access to all open windows for the selected profile.
The Chrome DevTools MCP server will try to connect to your running Chrome instance. It shows a dialog asking for user permission.
Clicking Allow results in the Chrome DevTools MCP server opening developers.chrome.com and taking a performance trace.
Manual connection using port forwarding
You can connect to a running Chrome instance by using the --browser-url option. This is useful if you are running the MCP server in a sandboxed environment that does not allow starting a new Chrome instance.
Here is a step-by-step guide on how to connect to a running Chrome instance:
Step 1: Configure the MCP client
Add the --browser-url option to your MCP client configuration. The value of this option should be the URL of the running Chrome instance. http://127.0.0.1:9222 is a common default.
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@latest",
"--browser-url=http://127.0.0.1:9222"
]
}
}
}
Step 2: Start the Chrome browser
Warning
Enabling the remote debugging port opens up a debugging port on the running browser instance. Any application on your machine can connect to this port and control the browser. Make sure that you are not browsing any sensitive websites while the debugging port is open.
Start the Chrome browser with the remote debugging port enabled. Make sure to close any running Chrome instances before starting a new one with the debugging port enabled. The port number you choose must be the same as the one you specified in the --browser-url option in your MCP client configuration.
For security reasons, Chrome requires you to use a non-default user data directory when enabling the remote debugging port. You can specify a custom directory using the --user-data-dir flag. This ensures that your regular browsing profile and data are not exposed to the debugging session.
macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable
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"
Step 3: Test your setup
After configuring the MCP client and starting the Chrome browser, you can test your setup by running a simple prompt in your MCP client:
Check the performance of https://developers.chrome.com
Your MCP client should connect to the running Chrome instance and receive a performance report.
If you hit VM-to-host port forwarding issues, see the “Remote debugging between virtual machine (VM) and host fails” section in docs/troubleshooting.md.
For more details on remote debugging, see the Chrome DevTools documentation.
Debugging Chrome on Android
Please consult these instructions.
See Troubleshooting.
Integrating as a browser subagent
If you are developing agentic tooling and want to provide an integrated browser subagent as part of your product, we recommend building on top of Chrome DevTools for agents.
For a reference implementation, see the Gemini CLI browser agent documentation.