Chrome DevTools MCP
Chrome DevTools
Maintained by the Google Chrome team — connects to your already-open Chrome via the DevTools Protocol for performance profiling, network trace, JS console, CPU/memory analysis. Where Playwright drives a clean browser, DevTools MCP analyses your existing browsing session.
Why client-side
DevTools needs CDP socket access to your own Chrome instance (the one you're using, with login state and open tabs). Hub hosting can't reach across machines. Local install only.
Prerequisites
- Node.js ≥ 18
- Chrome (stable; Canary not required)
- MCP-capable client
Install
Launch Chrome with remote debug port
Close all existing Chrome windows first (important — Chrome must restart in debug mode).
macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222Linux
google-chrome --remote-debugging-port=9222Windows (PowerShell)
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222Claude Desktop (macOS)
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"]
}
}
}First run
Try this prompt
List my currently open Chrome tabs
Common tools
list_tabs()— list open tabstake_snapshot(tabId)— current DOM snapshotevaluate(tabId, code)— run JS in the page consolestart_trace(tabId) / stop_trace()— performance profilingget_network_logs(tabId)— capture network requests
Troubleshooting
| Symptom | Fix |
|---|---|
| Connection refused | Make sure Chrome was launched with --remote-debugging-port=9222. Close all Chrome windows first. |
| Connecting to wrong Chrome | If Chrome is already running on macOS, new launches attach to the existing process (without debug port). Fully quit first. |
| Can't see my logged-in tabs | Use the same user data dir: --user-data-dir=$HOME/Library/Application\ Support/Google/Chrome/Default |
Security notes
Important: --remote-debugging-port=9222 only binds to localhost (127.0.0.1) by default. Never change it to --remote-debugging-address=0.0.0.0 — that would let anyone on the network control your browser.