LabscoMCP early access ↗
ChromeDevToolsMCP SERVER · OFFICIAL PROJECT

Chrome DevTools MCP

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

by ChromeDevTools ↗Runtime Debugging & Crash Analysis✓ Official

The plugin Microsoft Agent Skills includes connection settings for this server.

LABSCO 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)
  • Heap debugging: take_heapsnapshot is there without any flag, and --memoryDebugging switches on the rest of the thirteen-tool memory group — compare two snapshots, then walk summary, dominators, retainers, retaining paths, edges, class nodes and duplicate strings (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