chrome
Docker container with web-based desktop and Playwright MCP server for browser automation
claude mcp add --transport stdio bradsjm-chrome-mcp docker run -d --name chrome-mcp -p 3000:3000 -p 3001:3001 -p 3002:3002 -v $(pwd)/config:/config ghcr.io/bradsjm/chrome-mcp:latest
How to use
This MCP server container provides a web-based desktop environment powered by KasmVNC and a Playwright MCP server for browser automation with Chrome. When launched, you get a web desktop accessible via the container’s ports, with Chrome available inside the environment. The Playwright MCP server runs on port 3002 and supports both Server-Sent Events (SSE) and streaming HTTP protocols, enabling you to control Chrome sessions programmatically from MCP clients. To use the web desktop, open http://localhost:3000 (or the host-accessible URL if running remotely) and interact with the browser sessions from the embedded desktop. For automation, configure your MCP client to connect to the Playwright MCP server endpoint at http://localhost:3002/sse (for SSE) or http://localhost:3002/mcp (for streaming HTTP). Outputs and configurations are stored in the mounted /config directory, including the output directory at /config/output. For development or testing, you can also access the Playwright server API directly to create, manage, and monitor browser sessions through the MCP protocol.
How to install
Prerequisites:
- Docker installed on your host (Docker Engine 20.10+)
- Access to the internet to pull ghcr.io/bradsjm/chrome-mcp:latest
Step-by-step installation:
-
Pull the pre-built container image (recommended): docker pull ghcr.io/bradsjm/chrome-mcp:latest
-
Create a local config/output directory on the host to persist data: mkdir -p $(pwd)/config/output
-
Run the container in detached mode with port mappings and volume for config: docker run -d
--name chrome-mcp
-p 3000:3000
-p 3001:3001
-p 3002:3002
-v $(pwd)/config:/config
ghcr.io/bradsjm/chrome-mcp:latest -
Verify the container is running: docker ps
-
(Optional) Build locally if you prefer to create the image yourself: docker build -t chrome-mcp .
-
Access the web desktop at http://localhost:3000 and the Playwright MCP server at http://localhost:3002/mcp or http://localhost:3002/sse.
Additional notes
Notes and tips:
- Architecture: The container is built for linux/amd64 (x86_64) due to Chrome requirements.
- Browser: Chrome is provided inside the Playwright environment; the desktop runs non-headless Chrome for manual use.
- Output directory: Results and artifacts are saved under /config/output inside the container, mapped to your host via -v $(pwd)/config:/config.
- MCP endpoints: Use SSE at http://localhost:3002/sse or the streaming HTTP endpoint at http://localhost:3002/mcp for automation clients.
- If you encounter port binding issues, ensure no other services are using ports 3000, 3001, or 3002 on the host.
- If you need to customize configuration, modify /config/config.json inside the mounted directory.
- This setup includes Xterm and a GUI desktop; ensure your client supports VNC/desktop access if you intend to interact with the browser manually.
Related MCP Servers
web-eval-agent
An MCP server that autonomously evaluates web applications.
VibeShift
[MCP Server] The Security Agent for AI assisted coding
mcp-aoai-web-browsing
A minimal Model Context Protocol 🖥️ server/client🧑💻with Azure OpenAI and 🌐 web browser control via Playwright.
comet
React with TypeScript Component Library based on USWDS 3.0
searxng
An MCP sse implementation of the Model Context Protocol (MCP) server integrated with SearXNG for providing AI agents with powerful, privacy-respecting search capabilities.
cstrike
Autonomous offensive security platform — 6-container Docker stack, real-time web dashboard, AI-driven 9-phase attack pipeline, 35+ tools. Multi-provider AI (OpenAI, Anthropic, Ollama, Grok) with MCP tool server, nftables VPN kill switch, Metasploit RPC, KasmVNC remote browser, and pre-built VM images. For authorized red team ops.