Chrome DevTools MCP (Standard)
v1.0.0Standard browser automation for agents via Chrome DevTools MCP — official Google project giving AI agents full Chrome DevTools access. 29 tools for input aut...
Like a lobster shell, security has layers — review code before you run it.
Chrome DevTools MCP
Official Google project — gives AI coding agents full Chrome DevTools access via the Model Context Protocol (MCP). Free, open-source, runs locally with your own Chrome browser. No cloud dependency, no usage limits.
Install
Prerequisites
- Node.js v20.19+ (check:
node --version) - Google Chrome stable (check:
which google-chromeorwhich chromium-browser)- On Ubuntu/Debian:
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && sudo apt install -y ./google-chrome-stable_current_amd64.deb - On macOS: Install from google.com/chrome or
brew install --cask google-chrome - On ARM64 Linux: Use
chromium-browseror Chrome for Testing
- On Ubuntu/Debian:
Install the MCP Server
npm i -g chrome-devtools-mcp
Or run directly with npx (no global install):
npx -y chrome-devtools-mcp@latest
MCP Server Config
Add to your agent's MCP config (config.yaml, .mcp.json, etc.):
Standard config:
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--no-usage-statistics"]
}
}
}
Slim mode (lightweight, basic browser tasks only, lower resource usage):
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--slim", "--headless", "--no-usage-statistics"]
}
}
}
Claude Code plugin (MCP + skills):
/plugin marketplace add ChromeDevTools/chrome-devtools-mcp
/plugin install chrome-devtools-mcp
OpenClaw (in config.yaml):
mcp:
servers:
chrome-devtools:
command: npx
args: ["-y", "chrome-devtools-mcp@latest", "--no-usage-statistics"]
Tool Categories (29 Tools)
Input Automation (9 tools)
click— Click elements by uid from snapshotdrag— Drag one element onto anotherfill— Type text into input/textarea/selectfill_form— Fill out multiple form fields at oncehandle_dialog— Accept/dismiss browser dialogshover— Hover over an elementpress_key— Press keys or shortcuts (Enter, Ctrl+A, etc.)type_text— Type into focused input with optional submit keyupload_file— Upload file through file input element
Navigation (6 tools)
navigate_page— Navigate to URLnew_page— Open new browser page/tabclose_page— Close page by indexlist_pages— List all open pagesselect_page— Switch active pagewait_for— Wait for condition (selector, text, network, etc.)
Debugging (6 tools)
take_snapshot— Get page accessibility tree with element UIDstake_screenshot— Screenshot of page or element (PNG/JPEG)evaluate_script— Run arbitrary JS in page contextlist_console_messages— Get console.log/warn/error outputget_console_message— Get specific console message detailslighthouse_audit— Run full Lighthouse audit (performance, a11y, SEO, best practices)
Performance (4 tools)
performance_start_trace— Start Chrome performance trace recordingperformance_stop_trace— Stop trace and get resultsperformance_analyze_insight— Get actionable performance insights from tracetake_memory_snapshot— Capture heap snapshot for memory analysis
Network (2 tools)
list_network_requests— Get all network requests (URL, status, timing, size)get_network_request— Get details for specific request
Emulation (2 tools)
emulate— Emulate device (mobile/tablet), geolocation, CPU throttling, network throttlingresize_page— Resize viewport to specific dimensions
Standard Workflow
1. Navigate and Snapshot
navigate_page(url) → get page loaded
take_snapshot() → get element tree with UIDs
2. Interact
click(uid) → click an element
fill(uid, value) → fill a form field
press_key("Enter") → submit form
wait_for({type: "selector", selector: ".result"}) → wait for result
3. Inspect
take_snapshot() → see updated page state
list_console_messages() → check for JS errors
list_network_requests() → check API calls
take_screenshot() → visual verification
4. Debug / Audit
evaluate_script("document.querySelector('.price').textContent") → extract data
lighthouse_audit() → full performance/SEO/a11y audit
performance_start_trace() → start perf trace
Decision Rules
Use Chrome DevTools MCP when:
- You need to navigate, click, fill forms, or take screenshots of web pages
- You need to inspect console errors, network requests, or page state
- You need performance analysis (traces, Lighthouse audits)
- You need to emulate mobile devices or throttle network/CPU
- You need reliable, local browser automation with no usage limits
- The built-in
browser_*tools fail (Browserbase limits, timeouts)
Still use built-in browser_* tools when:
- The MCP server isn't installed or Chrome isn't available
- You're on a headless server without display (use
--headlessflag with MCP) - Quick one-off URL content extraction (prefer
web_extractorweb_searchfirst)
MCP vs dev-browser:
- Chrome DevTools MCP is the primary standard — use it first
dev-browseris a fallback for scripts and repeatable workflows- Avoid cloud browser services (Browserbase, Browser Use) — they have usage limits and cost money
Troubleshooting
Chrome not found:
# Ubuntu/Debian amd64:
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
# Or use Chrome for Testing:
npx @puppeteer/browsers install chrome@stable
# macOS:
brew install --cask google-chrome
Node.js version too old:
node --version # needs v20.19+
# Use nvm to upgrade:
nvm install 22
nvm use 22
MCP server won't connect:
- Ensure Chrome is installed and accessible in PATH
- Try
npx -y chrome-devtools-mcp@latest --headlessfor headless environments - Check
--no-usage-statisticsflag to disable Google telemetry - For OpenClaw, verify MCP config in config.yaml
References
- GitHub: https://github.com/ChromeDevTools/chrome-devtools-mcp
- Tool reference: https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/tool-reference.md
- Slim mode: https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/slim-tool-reference.md
- Troubleshooting: https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/troubleshooting.md
Comments
Loading comments...
