Chrome MCP Docker
Provides a persistent Chrome browser instance running in Docker, enabling browser automation through Chrome DevTools Protocol with tools for navigation, screenshots, clicking, typing, scrolling, and mobile testing.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Chrome MCP Docker take a screenshot of the current page"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Chrome MCP Docker
Persistent Chrome DevTools MCP Server
Stable, persistent Chrome DevTools for AI coding assistants.
Why Docker?
Feature | Official MCP | This |
Session Persistence | ❌ | ✅ |
Docker Stability | ❌ | ✅ |
Mobile Testing | ❌ | ✅ |
Native Interactions | ❌ | ✅ |
Console Logs | ❌ | ✅ |
Host Header Bypass | ❌ | ✅ |
Related MCP server: Chrome DevTools MCP
Installation
Option A: Standalone (Recommended)
Works with just Docker - no additional dependencies.
# 1. Start Chrome container
docker run -d --name chrome-persistent --restart unless-stopped \
-p 9222:9222 --shm-size=2g \
zenika/alpine-chrome:with-puppeteer \
--no-sandbox --remote-debugging-address=0.0.0.0 \
--remote-debugging-port=9222 --disable-gpu --headless
# 2. Add to Claude Code (~/.claude.json){
"mcpServers": {
"chrome": {
"command": "docker",
"args": ["run", "--rm", "-i", "--network", "host",
"-e", "CHROME_HOST=localhost", "-e", "CHROME_PORT=9222",
"nullrunner/chrome-mcp-docker:latest"]
}
}
}Option B: Docker MCP Gateway
Warning: The official Docker MCP Gateway has bugs affecting custom servers. See Known Issues. Use Option A or the patched fork below.
# Use patched fork (recommended if you want Gateway)
git clone https://github.com/null-runner/mcp-gateway.git
cd mcp-gateway && go build -o docker-mcp ./cmd/docker-mcp
# Then setup chrome-mcp-docker
git clone https://github.com/null-runner/chrome-mcp-docker.git
cd chrome-mcp-docker
./setup.shTools
Tool | What it does |
| Go to URL, wait for load |
| Capture viewport |
| Click element |
| Type into input |
| Scroll page/element |
| Wait for element |
| CSS debugging |
| Failed requests |
| JS console output |
| iPhone X viewport |
Requirements
Docker (one of):
Docker Desktop (Windows/Mac - easiest)
Docker Engine (Linux - see Setup Guide)
Podman (compatible alternative)
Any MCP-compatible client (Claude Code, Cursor, Windsurf, Cline, etc.)
Documentation
Setup Guide - Manual installation, configuration options
Troubleshooting - Common issues and fixes
Architecture - How it works under the hood
How It Works
AI Coding Assistant (Claude, Cursor, etc.)
↓
chrome-mcp-docker (MCP Server)
↓
Chrome DevTools Protocol
↓
Persistent Chrome Browser (Docker)The key innovation: Host Header Bypass. Chrome rejects connections from Docker containers because host.docker.internal isn't localhost. This server spoofs the header.
Known Issues
Docker MCP Gateway has several open bugs affecting custom servers:
PR #263 - Tool name prefix separator (
:→__)PR #278 - Prefixed names sent to remote servers
PR #279 - Claude clients excluded from tool activation
Recommendation: Use standalone installation (Option A) until these PRs are merged.
License
MIT
Made with ☕ by null-runner
Available Tools
10 toolsclickB
Clicks an element identified by CSS selector.
Inputs: selector (required).
get_computed_stylesB
Returns the computed CSS styles for an element (essential for UI debugging).
Inputs: selector (required).
get_console_logsB
Returns captured console logs (errors, warnings, info). Useful for debugging JS issues.
Inputs: clear.
get_network_errorsB
Returns a list of failed network requests.
Inputs: no named parameters.
mobile_modeB
Toggles mobile viewport (iPhone X dimensions).
Inputs: enable (required).
screenshotA
Takes a screenshot of the viewport. Returns base64.
Inputs: no named parameters.
scrollB
Scrolls the page. Use x,y coordinates OR selector to scroll into view.
Inputs: x, y, selector.
typeC
Types text into an input field.
Inputs: selector (required), text (required).
wait_for_selectorC
Waits for an element to appear in the DOM.
Inputs: selector (required), timeout.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: click, type, scroll, navigate, screenshot, wait_for_selector are standard browser actions; get_computed_styles, get_console_logs, get_network_errors are debugging tools; mobile_mode is a viewport toggle. No overlap or ambiguity.
Most tools follow a verb_noun pattern (get_computed_styles, get_console_logs, wait_for_selector) or are single verbs (click, scroll). 'mobile_mode' is a noun phrase, but still clear. Inconsistent usage of underscores (some have, others don't), but pattern is mostly predictable.
10 tools is well-scoped for a browser automation server. Covers essential navigation, interaction, and debugging without redundancy. No unnecessary tools, and the count is within the ideal 3-15 range.
Core actions (navigate, click, type, scroll) and debugging (console logs, network errors, computed styles) are covered, but missing common operations like executing JavaScript, getting page source, handling alerts, managing cookies, or interacting with more complex form elements (select, checkbox). Agent may need workarounds.
Maintenance
Related MCP Connectors
Give AI agents a real cloud Chrome: open sessions, navigate, read pages, click, type and screenshot.
Cloud browser, web extraction, screenshots, and remote CDP tools for AI agents.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser through Chrome DevTools. Provides browser automation, performance analysis, debugging capabilities, and network request monitoring.1,859,617 npm55,025Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser through DevTools for automated testing, performance analysis, debugging, and web scraping. Provides reliable browser automation using Puppeteer with comprehensive DevTools access.1,859,617 npm3Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, and screenshot capture through Chrome DevTools.261,859,617 npm3Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser for automation, debugging, performance analysis, network monitoring, and DOM interaction through Chrome DevTools Protocol.1,859,617 npmApache 2.0