
Chrome DevTools MCP
The Chrome DevTools MCP server enables AI coding agents to control and inspect live Chrome browser instances through the Model Context Protocol, providing tools for performance analysis, advanced debugging, and reliable automation. It offers capabilities including performance trace recording and analysis, network request inspection, screenshot capture, console message analysis with source mapping, and browser action automation via Puppeteer. The server solves the problem of giving AI assistants direct access to Chrome DevTools functionality for in-depth debugging, performance optimization, and reliable browser automation tasks.
- install copies · 90 days. Times the install command was copied on this site in the last 90 days, bots filtered.
- 58
- GitHub stars
- 55.2K
- tools
- 29
- transport
- STDIO
- last updated
- Nov 11, 2026
Install
From registry metadata$ npx add-mcp chrome-devtools-mcp --name chrome-devtools-mcpRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add chrome-devtools-mcp -- npx -y chrome-devtools-mcpRun in your terminal. Replace YOUR_* placeholders with real values; add --scope user to install for every project.
Tools
Verified live · 29 toolsVerified live against the running server on Jun 10, 2026.
clickClicks on the provided element3 params
Clicks on the provided element
dblClickbooleanincludeSnapshotbooleanuid*stringclose_pageCloses the page by its index. The last open page cannot be closed.1 params
Closes the page by its index. The last open page cannot be closed.
pageId*numberdragDrag an element onto another element3 params
Drag an element onto another element
from_uid*stringincludeSnapshotbooleanto_uid*stringemulateEmulates various features on the selected page.7 params
Emulates various features on the selected page.
colorSchemestringdark · light · autocpuThrottlingRatenumberextraHttpHeadersstringgeolocationstringnetworkConditionsstringOffline · Slow 3G · Fast 3G · Slow 4G · Fast 4GuserAgentstringviewportstringevaluate_scriptEvaluate a JavaScript function inside the currently selected page. Returns the response as JSON, so returned values have to be JSON-serializable.4 params
Evaluate a JavaScript function inside the currently selected page. Returns the response as JSON, so returned values have to be JSON-serializable.
argsarraydialogActionstringfilePathstringfunction*stringfillType text into an input, text area or select an option from a <select> element.3 params
Type text into an input, text area or select an option from a <select> element.
includeSnapshotbooleanuid*stringvalue*stringfill_formFill 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, passw...2 params
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, passw...
elements*arrayincludeSnapshotbooleanget_console_messageGets a console message by its ID. You can get all messages by calling list_console_messages.1 params
Gets a console message by its ID. You can get all messages by calling list_console_messages.
msgid*numberget_network_requestGets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel.3 params
Gets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel.
reqidnumberrequestFilePathstringresponseFilePathstringhandle_dialogIf a browser dialog was opened, use this command to handle it2 params
If a browser dialog was opened, use this command to handle it
action*stringaccept · dismisspromptTextstringhoverHover over the provided element2 params
Hover over the provided element
includeSnapshotbooleanuid*stringlighthouse_auditGet Lighthouse score and reports for accessibility, SEO, best practices, and agentic browsing. This excludes performance. For performance audits, run performance_start_trace3 params
Get Lighthouse score and reports for accessibility, SEO, best practices, and agentic browsing. This excludes performance. For performance audits, run performance_start_trace
devicestringdesktop · mobiledefault: desktopmodestringnavigation · snapshotdefault: navigationoutputDirPathstringlist_console_messagesList all console messages for the currently selected page since the last navigation.5 params
List all console messages for the currently selected page since the last navigation.
includePreservedMessagesbooleanpageIdxintegerpageSizeintegerserviceWorkerIdstringtypesarraylist_network_requestsList all requests for the currently selected page since the last navigation.4 params
List all requests for the currently selected page since the last navigation.
includePreservedRequestsbooleanpageIdxintegerpageSizeintegerresourceTypesarraylist_pagesGet a list of pages open in the browser.
Get a list of pages open in the browser.
No parameters. Call it with no arguments.
navigate_pageGo to a URL, or back, forward, or reload. Use project URL if not specified otherwise.6 params
Go to a URL, or back, forward, or reload. Use project URL if not specified otherwise.
handleBeforeUnloadstringaccept · declineignoreCachebooleaninitScriptstringtimeoutintegertypestringurl · back · forward · reloadurlstringnew_pageOpen a new tab and load a URL. Use project URL if not specified otherwise.4 params
Open a new tab and load a URL. Use project URL if not specified otherwise.
backgroundbooleanisolatedContextstringtimeoutintegerurl*stringperformance_analyze_insightProvides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording.2 params
Provides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording.
insightName*stringinsightSetId*stringperformance_start_traceStart a performance trace on the selected webpage. Use to find frontend performance issues, Core Web Vitals (LCP, INP, CLS), and improve page load speed.3 params
Start a performance trace on the selected webpage. Use to find frontend performance issues, Core Web Vitals (LCP, INP, CLS), and improve page load speed.
autoStopbooleanfilePathstringreloadbooleanperformance_stop_traceStop the active performance trace recording on the selected webpage.1 params
Stop the active performance trace recording on the selected webpage.
filePathstringpress_keyPress 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).2 params
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).
includeSnapshotbooleankey*stringresize_pageResizes the selected page's window so that the page has specified dimension2 params
Resizes the selected page's window so that the page has specified dimension
height*numberwidth*numberselect_pageSelect a page as a context for future tool calls.2 params
Select a page as a context for future tool calls.
bringToFrontbooleanpageId*numbertake_heapsnapshotCapture a heap snapshot of the currently selected page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks.1 params
Capture a heap snapshot of the currently selected page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks.
filePath*stringtake_screenshotTake a screenshot of the page or element.5 params
Take a screenshot of the page or element.
filePathstringformatstringpng · jpeg · webpdefault: pngfullPagebooleanqualitynumberuidstringtake_snapshotTake a text snapshot of the currently selected 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...2 params
Take a text snapshot of the currently selected 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...
filePathstringverbosebooleantype_textType text using keyboard into a previously focused input2 params
Type text using keyboard into a previously focused input
submitKeystringtext*stringupload_fileUpload a file through a provided element.3 params
Upload a file through a provided element.
filePath*stringincludeSnapshotbooleanuid*stringwait_forWait for the specified text to appear on the selected page.2 params
Wait for the specified text to appear on the selected page.
text*arraytimeoutintegerSponsors
Readme
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 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
Details
- Repository
- github.com/chromedevtools/chrome-devtools-mcp
- Category
- Web & Browser Automation
- Package
chrome-devtools-mcp- Transport
- STDIO
- Registry
- MCP registry, active
- Tools verified
- Jun 10, 2026