mrkeyoor.com_
Sun 01 Nov 01:52 UTC
AI Toolsevaluationupdated 01 Oct 2026

chrome-devtools-mcp review

Chrome DevTools MCP lets a coding agent control and inspect a live Chrome browser through the Model Context Protocol or a standalone command-line tool. It gives the agent console messages, network requests, screenshots, performance traces, and page controls so it can investigate browser problems directly.

+351stars / 7d
Verdict

Our Chrome DevTools MCP run installed 1,130 packages and used 615 MB, then its tests failed after 131 seconds in Puppeteer's Chrome launch and connection path. Use it when an agent needs Chrome-specific console, network, trace, or memory evidence, and give it a dedicated browser profile. Choose a narrower automation tool when clicks and screenshots are enough, or when a green browser suite in your container is a release requirement.

We ran it

Lab card: what happened when we ran chrome-devtools-mcpScreenshot of chrome-devtools-mcp (developer.chrome.com/docs/devtools/agents)
Install✓ · 57s1130 packages · 615 MB
Build✓ · 38s
Tests✗ · 131sran, no count parsed
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo115104 files~12,206,870 lines of source · 1546.8 MB · 8 CI workflows · tests dir

Answers from our run

Does chrome-devtools-mcp build from source?

Dependencies installed in 57 seconds (1130 packages), and the build succeeded in 38 seconds. We cloned commit 45c1c6c into a clean Debian container with 3 CPUs and no project-specific setup.

Do chrome-devtools-mcp's tests pass?

No. The project's own test command exited unsuccessfully after 131 seconds, and its output did not expose an individual test count.

Does chrome-devtools-mcp have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use chrome-devtools-mcp?

Teams that require Firefox, Safari, or guaranteed support for another Chromium browser: the project officially supports only Google Chrome and Chrome for Testing.

What are the alternatives to chrome-devtools-mcp?

Playwright MCP, Browser Use, Puppeteer. Our Chrome DevTools MCP run installed 1,130 packages and used 615 MB, then its tests failed after 131 seconds in Puppeteer's Chrome launch and connection path.

Setup3/5One npx entry, but Chrome setup and browser tests need care
Docs5/5Detailed client, security, connection, and troubleshooting docs
Community5/552,851 stars, an October 1 push, and 24 open pull requests
Maturity4/5v1.10.1 is current, though our browser-backed suite failed

Discussed on

  1. hnChrome DevTools MCP (2025)604 points
  2. hnChrome DevTools MCP19 points
  3. hnChromeDevTools/Chrome-devtools-MCP: Chrome DevTools for coding agents11 points
  4. hnChrome DevTools (MCP) for your AI agent10 points
  5. hnReverse Engineering APIs with Chrome DevTools MCP6 points

Who it’s for

Web developers who want an agent to reproduce a browser bug and inspect the evidence in Chrome.
Performance engineers who need DevTools traces and field data inside an agent session.
Teams using Claude Code, Codex, Cursor, Copilot, Gemini CLI, or another MCP client with a dedicated test profile.
Tool builders who want Chrome debugging inside a browser subagent or through the standalone CLI.

Who it’s NOT for

Teams that require Firefox, Safari, or guaranteed support for another Chromium browser: the project officially supports only Google Chrome and Chrome for Testing.
Anyone planning to connect a personal browsing profile: the README says the MCP client can inspect, debug, and modify data in that browser.
Container or CI owners who need a clean browser-backed suite on the first run: our tests failed after 131 seconds in Puppeteer's Chrome launch and connection path.
Operators treating URL allowlists or blocklists as a complete security boundary: open issue 2837 reports default-port and trailing-dot forms that do not match as an operator may expect.
Developers seeking a small source checkout: our measured tree occupied 1,546.8 MB before the 615 MB dependency installation.

Setup reality

Our fresh Debian sandbox installed commit 45c1c6c in 57 seconds, adding 1,130 packages and using 615 MB on disk. The build passed in 38 seconds. Tests failed with exit 1 after 131 seconds, while npm audit reported 0 known vulnerabilities across all severity levels.

Runtime needs Node.js LTS, npm, and current stable Chrome or newer. The usual MCP setup is one npx entry and requires no service credential. Connecting to an existing or remote browser needs a debugging URL or WebSocket endpoint, and custom WebSocket headers may carry authentication.

The checkout contained 115,104 files, about 12,206,870 source lines, and occupied 1,546.8 MB. Chrome may not start inside an MCP client's OS sandbox, root-run containers are unsupported, and the repository has no Dockerfile. The documented fallback is a Chrome instance started outside the sandbox and reached through --browser-url.

Chrome diagnostics are the reason to choose it

Chrome DevTools MCP gives a coding agent access to the browser evidence developers usually gather by hand. It can inspect console messages and network requests, take screenshots, automate input, and record performance traces with DevTools insights. Source-mapped stack traces help connect a browser exception to authored code. The project also ships a standalone CLI, so MCP is not the only way to call the tools.

The distinction matters after a bug reaches Chrome. A generic browser agent may confirm that a button does nothing. This server can also inspect the console error, failed request, and page state around that click. For basic work, --slim exposes just 3 tools for navigation, script evaluation, and screenshots. The full server earns its place when the investigation needs Chrome's debugging surface.

The one-line setup still needs Chrome and a profile plan

The usual configuration runs npx -y chrome-devtools-mcp@latest from an MCP client. The README requires Node.js LTS, npm, and current stable Chrome or newer. There is no application API key to obtain for a local launch. Client instructions cover Claude Code, Codex, Cursor, Copilot, Gemini CLI, and several other hosts, which removes much of the config-file guesswork.

By default, the server creates a Chrome profile under the user's cache directory and reuses it on later runs. Only 1 browser can use that profile at a time. Passing --isolated creates a temporary profile and deletes it when Chrome closes, a better fit for parallel agent sessions and disposable test state. Connecting to a browser already running on port 9222 preserves its state, but the documentation warns that any local application able to reach that debugging port can control it.

What happened when we ran it

Our sandbox installed commit 45c1c6c in 57 seconds, pulling 1,130 npm packages and occupying 615 MB on disk. The TypeScript build then succeeded in 38 seconds. Npm audit found 0 known vulnerabilities: 0 critical, 0 high, 0 moderate, and 0 low. We ran it in a fresh unprivileged Debian container with Node 22, 3 CPUs, 8 GB of RAM, and no secrets.

The test command exited with code 1 after 131 seconds. Its final stack passed through Puppeteer's Connection._rawSend, TargetManager.initialize, CdpBrowser._attach, CdpBrowser._create, and ChromeLauncher.launch, followed by the failing-tests summary. The log tail does not include the originating exception or a test count. It shows where execution ended, not whether a missing package, Chrome policy, or project defect caused it.

The source tree itself was large: 115,104 files, about 12,206,870 lines, and 1,546.8 MB checked out. Our scan found 8 CI workflow files, a tests directory, and no Dockerfile. Those facts make the passing build useful but incomplete evidence for source contributors. commit 45c1c6c compiled in our environment. Its supplied browser-backed suite did not finish cleanly there.

A dedicated browser profile is the sensible security boundary

The README says an MCP client can inspect, debug, and modify data in the connected browser. A personal Chrome profile may contain active sessions, private pages, saved form state, and tabs unrelated to the task. Give the server a separate profile with test accounts and only the pages it needs. The --isolated option handles disposable work, while a named user-data directory suits repeatable authenticated testing.

Two outbound data choices are enabled by default. Usage statistics include tool success, latency, and environment information. The --no-usage-statistics flag disables them. Performance analysis may send trace URLs to Google's CrUX API for field data, and --no-performance-crux turns that off. The server also checks npm for updates unless its update-check environment variable is set. Teams with privacy or reproducibility rules should put all 3 choices in checked configuration.

Sandboxed and remote Chrome need extra engineering

The troubleshooting guide says some macOS and Linux MCP sandboxes prevent Chrome from creating its own sandbox, and Chrome will not start as root. Its documented workaround is to run Chrome outside the client sandbox and connect with --browser-url. That advice is relevant to our failed 131-second run, but it does not explain it: our container was already unprivileged, and the supplied log tail does not expose the original error.

Remote debugging deserves the same care as a production admin socket. Chrome now requires a non-default user-data directory for the documented port-forwarding setup. Open issue 2837 also reports that --blockedUrlPattern and --allowedUrlPattern may treat non-default ports and trailing-dot hostnames differently from an operator's intent. Until that issue is resolved, use OS and network isolation rather than trusting URL patterns as the only containment layer.

The October 1 push shows active maintenance

GitHub showed 52,851 stars, 76 open issues, and 24 open pull requests on October 1, 2026. The repository was pushed that day. Release 1.10.1 shipped on September 23 with a Rollup export-condition fix, shortly after 1.10.0. Those dates and the live pull-request queue point to active work, even though the combined GitHub count of 100 must not be described as 100 bugs.

The project is also candid about its testing cost. Open issue 2639 says many tests use a real browser and are slow, then proposes moving more tool-handler and formatter checks to mocks while retaining fewer high-level browser tests. That context matches the operational lesson from our run: the npx entry is easy, while browser parity is the real setup task. If your agent only needs the 3 slim actions, start there. Add the full DevTools surface when a trace, network record, or source-mapped exception will change the diagnosis.

Alternatives

ProjectWhat it isPick it when
Playwright MCP gh↗An MCP browser server built around structured accessibility snapshots and deterministic actions.pick this instead when page automation matters more than Chrome-specific console, trace, and DevTools analysis.
Browser Use gh↗A Python and TypeScript browser-agent project with local and hosted execution paths.pick this instead when you are building the browser agent itself or need an optional hosted browser service.
Puppeteer gh↗A direct JavaScript API for controlling Chrome or Firefox without an MCP layer.pick this instead when application code should own repeatable browser steps in scripts or CI.

What people are saying

  1. [github-trending] ChromeDevTools/chrome-devtools-mcp

Sources

  1. Chrome DevTools MCP repository
  2. Chrome DevTools MCP README
  3. Chrome DevTools MCP configuration guide
  4. Chrome DevTools MCP advanced usage guide
  5. Chrome DevTools MCP troubleshooting guide
  6. Chrome DevTools MCP v1.10.1 release
  7. Issue 2639: Optimize tests
  8. Issue 2837: URL pattern normalization gaps

More ai tools reviews

pr-agent · agent-sprite-forge · KiroCrew · Orkas · hypit · Paradev · the whole board →