Install
openclaw skills install chrome-devtools-mcp-standardStandard browser automation for agents via Chrome DevTools MCP — official Google project giving AI agents full Chrome DevTools access. 29 tools for input automation, navigation, performance traces, Lighthouse audits, network inspection, debugging, and emulation. Replaces cloud-hosted browser tools (Browserbase, browser_*) as the primary browser automation standard. Use when you need to automate or inspect web pages, take screenshots, run performance audits, analyze network traffic, debug JS, fill forms, or emulate mobile viewports.
openclaw skills install chrome-devtools-mcp-standardOfficial 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.
node --version)which google-chrome or which chromium-browser)
wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && sudo apt install -y ./google-chrome-stable_current_amd64.debbrew install --cask google-chromechromium-browser or Chrome for Testingnpm i -g chrome-devtools-mcp
Or run directly with npx (no global install):
npx -y chrome-devtools-mcp@latest
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"]
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 elementnavigate_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.)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_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 analysislist_network_requests — Get all network requests (URL, status, timing, size)get_network_request — Get details for specific requestemulate — Emulate device (mobile/tablet), geolocation, CPU throttling, network throttlingresize_page — Resize viewport to specific dimensionsnavigate_page(url) → get page loaded
take_snapshot() → get element tree with UIDs
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
take_snapshot() → see updated page state
list_console_messages() → check for JS errors
list_network_requests() → check API calls
take_screenshot() → visual verification
evaluate_script("document.querySelector('.price').textContent") → extract data
lighthouse_audit() → full performance/SEO/a11y audit
performance_start_trace() → start perf trace
Use Chrome DevTools MCP when:
browser_* tools fail (Browserbase limits, timeouts)Still use built-in browser_* tools when:
--headless flag with MCP)web_extract or web_search first)MCP vs dev-browser:
dev-browser is a fallback for scripts and repeatable workflowsChrome 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:
npx -y chrome-devtools-mcp@latest --headless for headless environments--no-usage-statistics flag to disable Google telemetry