Chrome DevTools MCP

io.github.ChromeDevTools由 GitHub 账号 ChromeDevTools 发布v1.12.0更新于 Oct 29, 2026

MCP server for Chrome DevTools

已验证STDIO仅桌面浏览器自动化开发者工具

概览

AI 生成的概览

本地 MCP 服务器,让编码助手控制并检查运行中的 Chrome 浏览器,用于自动化、调试和性能分析。

可以做什么
  • 导航、打开、选择、调整尺寸和关闭页面,并等待指定文本出现
  • 点击、悬停、拖拽、输入、按键、填写表单、上传文件和处理对话框
  • 获取无障碍树快照、截图和录屏,并读取元素匹配的 CSS 样式
  • 查看控制台消息和网络请求,并在页面中执行 JavaScript
  • 录制性能追踪、分析性能洞察、运行 Lighthouse 审计并抓取堆快照
适用场景
适合需要让助手操作真实 Chrome 会话的场景:复现和调试前端问题、检查控制台与网络行为、审计无障碍或 SEO,或测量加载性能与 Core Web Vitals。
运行要求
通过 npx 从 npm 包 chrome-devtools-mcp 以 stdio 在本地运行。需要 Node.js LTS、npm 和当前稳定版 Chrome(或 Chrome for Testing);首次调用需要浏览器的工具时会自动启动浏览器。未声明账号、API 密钥或请求头。
安装前请注意
该服务器会把浏览器内容暴露给 MCP 客户端,客户端可检查、调试并修改浏览器中的任何数据,请避免涉及敏感或个人信息。它能在页面上点击、输入、上传文件并执行 JavaScript。默认收集使用统计,可用 --no-usage-statistics 参数或 CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS 变量关闭;性能工具可能将追踪 URL 发送至 Google CrUX API,除非设置 --no-performance-crux。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Chrome DevTools MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Chrome DevTools for agents

[npm chrome-devtools-mcp package]

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 is available as a Model-Context-Protocol (MCP) server and as a CLI. Both give your AI coding assistant access to the full power of Chrome DevTools for reliable automation, in-depth debugging, and performance analysis.

Tool reference | CLI | Skills | Changelog | Contributing | Troubleshooting | Design Principles

Key features

  • 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.

Disclaimers

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.

Usage statistics

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:

json
"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.

Update checks

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.

Requirements

Getting started

Add the following config to your MCP client:

json
{  "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.

MCP Client configuration

For setup instructions specific to your editor or agent (e.g. Antigravity, Claude Code, Cursor, VS Code), please see our Client Configurations Guide.

Your first prompt

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.

CLI

The package also includes the chrome-devtools CLI. Use it to control the browser from your terminal without MCP:

sh
npm i chrome-devtools-mcp@latest -gchrome-devtools navigate_page 1 --url "https://developers.chrome.com"chrome-devtools take_screenshot 1 --filePath screenshot.pngchrome-devtools stop

See the CLI guide for all commands and options.

Skills

The package includes skills that teach your agent how to use Chrome DevTools:

SkillUse it to
chrome-devtoolsDebug and automate pages with the MCP tools.
chrome-devtools-cliRun the CLI and write shell scripts with it.
a11y-debuggingAudit and fix accessibility issues.
cookie-debuggingDebug cookies, sessions, and authentication.
debug-optimize-lcpDebug and improve Largest Contentful Paint.
memory-leak-debuggingFind and fix memory leaks.
troubleshootingFix connection problems between MCP and Chrome.

Install skills as a plugin

A plugin installs the MCP server and all skills, including the CLI skill:

  • Claude Code: Run /plugin marketplace add ChromeDevTools/chrome-devtools-mcp, then /plugin install chrome-devtools-mcp@chrome-devtools-plugins.
  • Copilot / VS Code: Run Chat: Install Plugin From Source and enter ChromeDevTools/chrome-devtools-mcp.
  • Gemini CLI: Run gemini extensions install --auto-update https://github.com/ChromeDevTools/chrome-devtools-mcp.

See the Client Configurations Guide for more information.

Install skills manually

If your agent does not support plugins, copy the skill folders into the skills directory of your agent. The npm package contains the skills:

sh
npm i chrome-devtools-mcp@latest -g# Example for Claude Code. Use the skills directory of your agent.mkdir -p ~/.claude/skillscp -R "$(npm root -g)/chrome-devtools-mcp/skills/chrome-devtools-cli" ~/.claude/skills/

[!IMPORTANT] The chrome-devtools-cli skill requires the CLI. Install the package globally before you use the skill.

Keep skills up to date

Skills describe the tools of a specific version. Update the skills each time you update the MCP server or the CLI. Outdated skills can tell your agent to use tools or parameters that changed.

  • Plugins: Use the update command of the plugin manager of your agent. The Gemini CLI command above enables automatic updates with --auto-update.
  • Manual installs: Update the package, then copy the skill folders again:
sh
npm i chrome-devtools-mcp@latest -gmkdir -p ~/.claude/skillscp -R "$(npm root -g)/chrome-devtools-mcp/skills/chrome-devtools-cli" ~/.claude/skills/

Tools

If you run into any issues, checkout our troubleshooting guide. See the full Tool Reference for a complete list of all supported MCP capabilities.

Configuration

Find the complete list of server parameters (e.g., --headless, --isolated, --slim) and how to configure WebSocket connections in the Configuration Guide.

For basic browser tasks only, the --slim flag exposes a reduced set of tools. See the Slim tool reference.

Advanced Usage

For advanced features such as handling concurrent sessions, persistent user data directories, connecting to a running Chrome instance instead of starting a new one, or debugging on Android, see our Advanced Usage Guide.

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.

来源:README.md,提交 af28344

工具

32

click

Clicks on the provided element

输入参数uid必填pageId必填dblClickincludeSnapshot

close_page

Closes the page by its index. The last open page cannot be closed.

输入参数pageId必填

drag

Drag an element onto another element

输入参数pageId必填to_uid必填from_uid必填includeSnapshot

emulate

Emulates various features on the target page. Each call replaces all emulation settings (except extraHttpHeaders), so pass all desired settings in a single call.

输入参数pageId必填viewportuserAgentcolorSchemegeolocationforcedColorsprefersContrastextraHttpHeaderscpuThrottlingRatenetworkConditionsprefersReducedMotion

evaluate_script

Evaluate JavaScript inside the target page. The source can be provided inline or loaded from a local file. Returns the response as JSON, so returned values have to be JSON-serializable.

输入参数argsformatpageId必填filePathfunctionsourcePathdialogActionwaitForStableDom

fill

Type text into an input, text area or select an option from a <select> element.

输入参数uid必填value必填pageId必填includeSnapshot

fill_form

Fill out multiple form elements (inputs, selects, checkboxes, radios) at once. ALWAYS prefer this tool over multiple individual 'fill' or 'click' calls when interacting with forms. It is significantly faster, more reliable, and reduces turn count. Example: Fill username, password, and check "Remember Me" in one call.

输入参数pageId必填elements必填includeSnapshot

get_console_message

Gets a console message by its ID. You can get all messages by calling list_console_messages.

输入参数msgid必填pageId必填

get_css_styles

Retrieve matched CSS rules, inline styles (element.style), inherited styles, custom properties, and cascade wrappers (@layer, @media, @container, @scope) for an element identified by its UID. Rules are ordered from highest to lowest cascade precedence and include source line numbers (e.g. index:196). Active (winning) declarations have no prefix tag, while (losing) overridden declarations are prefixed with [overloaded]. Treat the output as authoritative and complete. Results are paginated (10 rules per page by default); use pageIdx to page through the remaining rules. Requires a UID from take_snapshot.

输入参数uid必填pageId必填pageIdxpageSize

get_network_request

Gets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel. Useful for inspecting request headers (including 'Cookie') and response headers (including 'Set-Cookie' and directives).

输入参数reqidpageId必填requestFilePathresponseFilePath

handle_dialog

If a browser dialog was opened, use this command to handle it

输入参数action必填pageId必填promptText

hover

Hover over the provided element

输入参数uid必填pageId必填includeSnapshot

lighthouse_audit

Get Lighthouse scores, failing audits, and the DOM nodes they flag for accessibility, SEO, best practices, and agentic browsing. Full reports are saved to disk. This excludes performance. For performance audits, run performance_start_trace

输入参数modedevicepageId必填outputDirPath

list_console_messages

List all console messages for the target page since the last navigation.

输入参数typespageId必填pageIdxpageSizeserviceWorkerIdincludeStackTracesincludePreservedMessages

list_network_requests

Lists the most recent requests for the target page since the last navigation.

输入参数pageId必填pageIdxpageSizeresourceTypesincludePreservedRequests

list_pages

Get a list of pages open in the browser.

无需输入参数。

navigate_page

Go to a URL, or back, forward, or reload. Use project URL if not specified otherwise.

输入参数urltypepageId必填timeoutinitScriptignoreCachehandleBeforeUnload

new_page

Open a new tab and load a URL. Use project URL if not specified otherwise.

输入参数url必填timeoutbackgroundisolatedContext

performance_analyze_insight

Provides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording.

输入参数pageId必填insightName必填insightSetId必填

performance_start_trace

Start a performance trace on the target webpage. Use to find frontend performance issues, Core Web Vitals (LCP, INP, CLS), and improve page load speed.

输入参数pageId必填reloadautoStopfilePathignoreCache

performance_stop_trace

Stop the active performance trace recording on the target webpage.

输入参数pageId必填filePath

press_key

Press a key or key combination. Use this when other input methods like fill() cannot be used (e.g., keyboard shortcuts, navigation keys, or special key combinations).

输入参数key必填pageId必填includeSnapshot

resize_page

Resizes the page's window so that the page has specified dimension

输入参数width必填height必填pageId必填

screencast_start

Starts recording a screencast (video) of the target page.

输入参数pageId必填filePath

screencast_stop

Stops the active screencast recording on the target page.

输入参数pageId必填

select_page

Select a page as a context for future tool calls.

输入参数pageId必填bringToFront

take_heapsnapshot

Capture a heap snapshot of the target page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks.

输入参数pageId必填filePath必填

take_screenshot

Take a screenshot of the page or element.

输入参数uidformatpageId必填qualityfilePathfullPage

take_snapshot

Take a text snapshot of the target page based on the a11y tree. The snapshot lists page elements along with a unique identifier (uid). Always use the latest snapshot. Prefer taking a snapshot over taking a screenshot. The snapshot indicates the element selected in the DevTools Elements panel (if any).

输入参数pageId必填verbosefilePath

type_text

Type text using keyboard into a previously focused input

输入参数text必填pageId必填submitKey

upload_file

Upload a file through a provided element.

输入参数uid必填pageId必填filePaths必填includeSnapshot

wait_for

Wait for the specified text to appear on the selected page. By default, hidden text is also matched. Set visible to true to wait until the matched text is visible.

输入参数text必填pageId必填timeoutvisible

版本历史

4
  1. v1.12.0最新Oct 22, 2026
  2. v1.11.0Oct 15, 2026
  3. v1.10.1Sep 23, 2026
  4. v1.9.0Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分