Labsco
MCP SERVER · OFFICIAL PROJECT

Chrome DevTools MCP

by ChromeDevTools

Drive a real Chrome and read what DevTools sees — traces, console, network, Lighthouse, heap snapshots — in the conversation where you are fixing the page.

Runtime Debugging & Crash AnalysisVerified
Summary
A performance complaint can be reproduced and measured in one sitting.

It clicks through the flow, records a trace, then reads the insights back one at a time, so "the page feels slow" becomes an insight with a number attached. The heap tools go a step further and answer why the number keeps growing.

What it is

Google's own MCP server for Chrome DevTools. It automates the browser with Puppeteer and waits for actions to settle, then hands back what the DevTools panels would show: console messages with source-mapped stack traces, network requests, performance insights, Lighthouse results and heap snapshots. A CLI is included for use without MCP.

What you get
  • Pages driven the way a person drives them: navigate, click, hover, drag, fill one field or a whole form at once, press keys, type, upload a file, handle a dialog and wait for text (`navigate_page`, `click`, `fill_form`, `wait_for`, `handle_dialog`)
  • A text snapshot of the page taken from the accessibility tree, carrying the uid every interaction call takes (`take_snapshot`)
  • Console messages and network requests listed since the last navigation, then fetched one at a time in full (`list_console_messages`, `get_console_message`, `list_network_requests`, `get_network_request`)
  • A performance trace started and stopped, then read insight by insight (`performance_start_trace`, `performance_stop_trace`, `performance_analyze_insight`)
  • A Lighthouse run — which deliberately leaves performance out, because that path is the trace (`lighthouse_audit`)
  • Emulated conditions and several pages held open at once, selected between and closed (`emulate`, `resize_page`, `list_pages`, `new_page`, `select_page`, `close_page`)
  • A heap-debugging group of thirteen tools behind `--memoryDebugging`: take a snapshot, compare two, and walk summary, dominators, retainers, retaining paths, edges, class nodes and duplicate strings (`take_heapsnapshot`, `compare_heapsnapshots`, `get_heapsnapshot_retaining_paths`)
  • Further groups behind their own switches — Chrome extensions with `--categoryExtensions`, progressive web apps with `--categoryPwa`, page-exposed tools with `--categoryExperimentalThirdParty` and `--categoryExperimentalWebmcp`, coordinate clicking with `--experimentalVision`, and screencast recording with `--experimentalScreencast`, which also needs ffmpeg on the PATH
  • A `--slim` mode at the other end of the scale, cutting the surface to `navigate`, `evaluate` and `screenshot`
Requirements

Node.js LTS, npm, and Chrome current stable or newer — Chrome and Chrome for Testing are the only officially supported browsers. `npx -y chrome-devtools-mcp@latest` is the whole install. It can also attach to a Chrome you are already running through `--browserUrl` or `--wsEndpoint`. Two things to decide before you wire it in: the server exposes whatever is in that browser to the client, so do not point it at a profile holding data you would not share; and usage statistics are collected by default, switched off with `--no-usage-statistics` or the `CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS` environment variable. Performance tools send trace URLs to the CrUX API unless you pass `--no-performance-crux`. Network access can be fenced with `--allowedUrlPattern` or `--blockedUrlPattern`.

Setup effort

One command — npx -y chrome-devtools-mcp@latest