io.github.ChromeDevTools/chrome-devtools-mcp · version 1.12.0 · 2,076,841 weekly npm downloads · audited 2026-11-03
Notes
No hidden-instruction or invisible-character findings in any tool, prompt, or resource description.
Checks the directory's published tool requirements that are visible from tools/list. Passing them does not guarantee acceptance.
get_network_request, navigate_pageNot a vulnerability by itself. It tells you what an injected prompt could ask this server to do, so you can decide which tools need approval.
| Name | Title | Hint | Description |
|---|---|---|---|
click | writes | Clicks on the provided element | |
close_page | writes | Closes the page by its index. The last open page cannot be closed. | |
drag | writes | Drag an element onto another element | |
emulate | writes | Emulates various features on the target page. Each call replaces all emulation settings (except extraHttpHeaders), so pass all desired settings in a single call. | |
evaluate_script | writes | 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. | |
fill | writes | Type text into an input, text area or select an option from a <select> element. | |
fill_form | writes | 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 reliab… | |
get_console_message | read-only | Gets a console message by its ID. You can get all messages by calling list_console_messages. | |
get_css_styles | read-only | 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 highe… | |
get_network_request | writes | 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 'Se… | |
handle_dialog | writes | If a browser dialog was opened, use this command to handle it | |
hover | writes | Hover over the provided element | |
lighthouse_audit | writes | 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 perf… | |
list_console_messages | read-only | List all console messages for the target page since the last navigation. | |
list_network_requests | read-only | Lists the most recent requests for the target page since the last navigation. | |
list_pages | read-only | Get a list of pages open in the browser. | |
navigate_page | writes | Go to a URL, or back, forward, or reload. Use project URL if not specified otherwise. | |
new_page | writes | Open a new tab and load a URL. Use project URL if not specified otherwise. | |
performance_analyze_insight | read-only | Provides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording. | |
performance_start_trace | writes | 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. | |
performance_stop_trace | writes | Stop the active performance trace recording on the target webpage. | |
press_key | writes | 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). | |
resize_page | writes | Resizes the page's window so that the page has specified dimension | |
screencast_start | writes | Starts recording a screencast (video) of the target page. | |
screencast_stop | writes | Stops the active screencast recording on the target page. | |
select_page | read-only | Select a page as a context for future tool calls. | |
take_heapsnapshot | writes | Capture a heap snapshot of the target page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks. | |
take_screenshot | writes | Take a screenshot of the page or element. | |
take_snapshot | writes | 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. Th… | |
type_text | writes | Type text using keyboard into a previously focused input | |
upload_file | writes | Upload a file through a provided element. | |
wait_for | read-only | 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. |
npx mcpvetter scan --liveAdd this to a README:
[](https://mcpvetter.com/servers/chrome-devtools-mcp)Get the MCPVetter verified badge, a re-audit within 24 hours of every npm release, and an email whenever tools, findings, or Claude directory readiness change. $29 per server per month. You prove ownership first, free.