Chrome DevTools MCP Server
Control live Chrome browsers to debug, automate, and analyze performance.
Data last scanned today · Reviewed yesterday
Overview
Chrome DevTools MCP Server bridges your AI agent with the Chrome browser, enabling direct control and inspection of live web sessions. It leverages puppeteer to manage browser automation, wait for action results, and extract technical data like network request logs and browser console outputs. Beyond basic automation, the tool provides specialized utilities for performance analysis. It records browser traces to help developers pinpoint bottlenecks, while supporting source-mapped stack traces for accurate debugging. Users can choose to integrate Google's CrUX API for field data, or opt-out of data collection through CLI flags.
Our verdict
This server carries a high-risk security score of 38/100, primarily because it lacks any authentication method, meaning anyone with access to your configuration can command your browser. Furthermore, it operates without a read-only mode, granting the MCP client full write access to your browser instance. Due to these significant security implications, it should only be used in controlled, isolated environments by developers who are comfortable with the risks of browser-level automation.
- Supports performance trace recording and CrUX API integration
- Zero direct dependencies minimize supply-chain surface area
- Maintains an active development cycle with daily commits
- Lacks authentication, allowing unauthorized access via config
- Provides full write access to browser with no read-only mode
- Community-maintained project rather than an official vendor release
Setup
{
"mcpServers": {
"chrome-devtools-mcp": {
"args": [
"-y",
"chrome-devtools-mcp"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| click | Clicks an element on the page. | medium |
| drag | Drags an element. | medium |
| fill | Fills an input field. | medium |
| fill_form | Fills a form on the page. | medium |
| handle_dialog | Handles a browser dialog. | medium |
| hover | Hovers over an element. | medium |
| press_key | Presses a key. | medium |
| type_text | Types text into the page. | medium |
| upload_file | Uploads a file to the browser. | medium |
| click_at | Clicks at specific coordinates. | medium |
| close_page | Closes a browser page. | medium |
| list_pages | Lists all open browser pages. | low |
| navigate_page | Navigates a page to a URL. | medium |
| new_page | Opens a new browser page. | medium |
| select_page | Selects a page as the current target. | low |
| wait_for | Waits for a condition to be met on the page. | low |
| emulate | Emulates device or browser settings. | medium |
| resize_page | Resizes the browser page. | medium |
| performance_analyze_insight | Analyzes performance insights. | low |
| performance_start_trace | Starts a performance trace. | medium |
| performance_stop_trace | Stops a performance trace. | low |
| get_network_request | Gets details of a network request. | low |
| list_network_requests | Lists network requests. | low |
| evaluate_script | Evaluates JavaScript in the browser context. | high |
| get_console_message | Gets a specific console message. | low |
| lighthouse_audit | Performs a Lighthouse audit. | low |
| list_console_messages | Lists console messages. | low |
| take_screenshot | Takes a screenshot of the page. | low |
| take_snapshot | Takes a DOM snapshot. | low |
| screencast_start | Starts a screencast. | low |
| screencast_stop | Stops a screencast. | low |
| take_heapsnapshot | Takes a heap snapshot. | low |
| close_heapsnapshot | Closes a heap snapshot. | low |
| compare_heapsnapshots | Compares two heap snapshots. | low |
| get_heapsnapshot_class_nodes | Gets class nodes from a heap snapshot. | low |
| get_heapsnapshot_details | Gets details of a heap snapshot. | low |
| get_heapsnapshot_dominators | Gets heap snapshot dominators. | low |
| get_heapsnapshot_duplicate_strings | Gets duplicate strings from a heap snapshot. | low |
| get_heapsnapshot_edges | Gets edges from a heap snapshot. | low |
| get_heapsnapshot_object_details | Gets object details from a heap snapshot. | low |
| get_heapsnapshot_retainers | Gets retainers from a heap snapshot. | low |
| get_heapsnapshot_retaining_paths | Gets retaining paths from a heap snapshot. | low |
| get_heapsnapshot_summary | Gets a summary of a heap snapshot. | low |
| install_extension | Installs a browser extension. | high |
| list_extensions | Lists installed extensions. | low |
| reload_extension | Reloads an extension. | medium |
| trigger_extension_action | Triggers an extension action. | medium |
| uninstall_extension | Uninstalls an extension. | high |
| execute_3p_developer_tool | Executes a third-party developer tool. | high |
| list_3p_developer_tools | Lists third-party developer tools. | low |
| execute_webmcp_tool | Executes a WebMCP tool. | high |
| list_webmcp_tools | Lists WebMCP tools. | low |
| get_a11y_snapshot | Gets the accessibility tree of the currently selected page based on the a11y tree. | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›Which browsers are officially supported by this MCP server?
The server officially supports Google Chrome and Chrome for Testing. While other Chromium-based browsers may function, they are not guaranteed to work correctly.
›How can I opt out of usage statistics collection?
You can opt out by passing the --no-usage-statistics flag in your configuration arguments or by setting the CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS or CI environment variables.
›Can I prevent the server from checking for updates?
Yes, update checks can be disabled by setting the CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS environment variable.
›Is it possible to disable the transmission of performance data to the Google CrUX API?
Yes, you can disable the sending of trace URLs to the Google CrUX API by running the server with the --no-performance-crux flag.
›What are the system requirements for running this server?
You need a Node.js LTS version, npm, and a current stable version of Google Chrome installed on your machine.
›Are there any security concerns I should be aware of?
The server exposes browser content to MCP clients, allowing them to inspect or modify data. You should avoid sharing sensitive or personal information that you do not want accessed by your MCP clients.
Alternatives
Changelog
- Fixchrome-devtools-mcp: v1.6.0
2026-07-14
- Fixchrome-devtools-mcp: v1.5.0
2026-07-03
- Securitychrome-devtools-mcp: v1.4.0
2026-06-23
- Fixchrome-devtools-mcp: v1.3.0
2026-06-18
- Fixchrome-devtools-mcp: v1.2.0
2026-06-08
- Fixchrome-devtools-mcp: v1.1.1
2026-05-27
- Fixchrome-devtools-mcp: v1.1.0
2026-05-26
- Fixchrome-devtools-mcp: v1.0.1
2026-05-18
- Fixchrome-devtools-mcp: v1.0.0
2026-05-18
- Fixchrome-devtools-mcp: v0.26.0
2026-05-12
Badge
Maintain this server? Add the live badge to your README.