DC

diegorafs/chrome-devtools-mcp

Developer tools
41 stars 6 forks Quality 73 Trend 28Apache-2.0

AI-powered Chrome automation server with natural language element detection. Control Chrome browser through MCP protocol for testing, debugging, and performance analysis.

Overview

chrome-devtools-mcp lets your coding agent (such as Gemini, Claude, Cursor or Copilot) control and inspect a live Chrome browser. It acts as a Model-Context-Protocol (MCP) server, giving your AI coding assistant access to the full power of Chrome DevTools for reliable automation, in-depth debugging, and performance analysis. - - Complete guide with examples - - Bookmark for quick access - - How the AI works - : Describe elements in natural language ("blue submit button") instead of CSS selectors. See AI Guide → - with simple descriptions - for free AI models - with comprehensive error handling - algorithm for reliability - Works with any website - Production Examples → - : Uses Chrome DevTools to record traces and extract actionable performance insights. - : Analyze network requests, take screenshots and check the browser console. - . Uses puppeteer to automate actions in Chrome and automatically wait for action results.

README

Chrome DevTools MCP

chrome-devtools-mcp lets your coding agent (such as Gemini, Claude, Cursor or Copilot) control and inspect a live Chrome browser. It acts as a Model-Context-Protocol (MCP) server, giving your AI coding assistant access to the full power of Chrome DevTools for reliable automation, in-depth debugging, and performance analysis.

🚀 NEW: AI-Powered Element Location

Automate ANY website using natural language - No CSS selectors needed!
→ Read the AI Automation Quick Start Guide

// Just describe what you want to click:
{
  "tool": "find_and_click",
  "arguments": {
    "description": "blue submit button"
  }
}
// ✅ Done! 95%+ accuracy, works with FREE AI models

📖 Quick links:

Tool reference | Changelog | Contributing | Troubleshooting

Key features

  • 🤖 AI-Powered Automation: Describe elements in natural language (“blue submit button”) instead of CSS selectors. See AI Guide →
    • 91% accuracy with simple descriptions
    • 75-85% fewer tokens for free AI models
    • Production-ready with comprehensive error handling
    • 10-strategy matching algorithm for reliability
    • Works with any website
    • Production Examples →
  • Get performance insights: Uses Chrome DevTools to record traces and extract actionable performance insights.
  • Advanced browser debugging: Analyze network requests, take screenshots and check the browser console.
  • Reliable automation. Uses puppeteer to automate actions in Chrome and automatically wait for action results.

Disclaimers

chrome-devtools-mcp exposes content of the browser instance to the MCP clients allowing them to inspect, debug, and modify any data in the browser or DevTools. Avoid sharing sensitive or personal information that you don’t want to share with MCP clients.

Requirements

Getting started

Add the following config to your MCP client:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest"]
    }
  }
}

[!NOTE]
Using chrome-devtools-mcp@latest ensures that your MCP client will always use the latest version of the Chrome DevTools MCP server.

MCP Client configuration

Your first prompt

Enter the following prompt in your MCP Client to check if everything is working:

Check the performance of https://developers.chrome.com

Your MCP client should open the browser and record a performance trace.

[!NOTE]
The MCP server will start the browser automatically once the MCP client uses a tool that requires a running browser instance. Connecting to the Chrome DevTools MCP server on its own will not automatically start the browser.

Tools

If you run into any issues, checkout our troubleshooting guide.

Configuration

The Chrome DevTools MCP server supports the following configuration option:

  • --browserUrl, -u Connect to a running Chrome instance using port forwarding. For more details see: https://developer.chrome.com/docs/devtools/remote-debugging/local-server.

    • Type: string
  • --headless Whether to run in headless (no UI) mode.

    • Type: boolean
    • Default: false
  • --executablePath, -e Path to custom Chrome executable.

    • Type: string
  • --isolated If specified, creates a temporary user-data-dir that is automatically cleaned up after the browser is closed.

    • Type: boolean
    • Default: false
  • --channel Specify a different Chrome channel that should be used. The default is the stable channel version.

    • Type: string
    • Choices: stable, canary, beta, dev
  • --logFile Path to a file to write debug logs to. Set the env variable DEBUG to * to enable verbose logs. Useful for submitting bug reports.

    • Type: string
  • --viewport Initial viewport size for the Chrome instances started by the server. For example, 1280x720

    • Type: string
  • --proxyServer Proxy server configuration for Chrome passed as --proxy-server when launching the browser. See https://www.chromium.org/developers/design-documents/network-settings/ for details.

    • Type: string
  • --acceptInsecureCerts If enabled, ignores errors relative to self-signed and expired certificates. Use with caution.

    • Type: boolean

Pass them via the args property in the JSON configuration. For example:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "chrome-devtools-mcp@latest",
        "--channel=canary",
        "--headless=true",
        "--isolated=true"
      ]
    }
  }
}

You can also run npx chrome-devtools-mcp@latest --help to see all available configuration options.

Concepts

User data directory

chrome-devtools-mcp starts a Chrome’s stable channel instance using the following user data directory:

  • Linux / MacOS: $HOME/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL
  • Windows: %HOMEPATH%/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL

The user data directory is not cleared between runs and shared across all instances of chrome-devtools-mcp. Set the isolated option to true to use a temporary user data dir instead which will be cleared automatically after the browser is closed.

Known limitations

Operating system sandboxes

Some MCP clients allow sandboxing the MCP server using macOS Seatbelt or Linux containers. If sandboxes are enabled, chrome-devtools-mcp is not able to start Chrome that requires permissions to create its own sandboxes. As a workaround, either disable sandboxing for chrome-devtools-mcp in your MCP client or use --connect-url to connect to a Chrome instance that you start manually outside of the MCP client sandbox.

View this README on GitHub

Install

npx -y chrome-devtools-mcp@latest

Configuration

{ "mcpServers": { "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"] } } }