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.
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 | ❌ | ✅ |
Installation
Option A: Standalone (Recommended)
Works with just Docker - no additional dependencies.
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.
Tools
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
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