
Chrome Debug Protocol
Connects to Chrome's debugging protocol to automate browsers for web scraping, testing, and automation tasks. Maintains persistent sessions and login states across operations.
Provides browser automation capabilities through Chrome's debugging protocol with session persistence, enabling web scraping, testing, and automation tasks with tools for screenshots, navigation, element interaction, and content retrieval.
What it does
- Take real-time screenshots during automation
- Navigate web pages with intelligent tab management
- Click elements and input text on web pages
- Scroll and resize browser windows
- Extract HTML content from pages
- Maintain persistent login sessions
Best for
About Chrome Debug Protocol
Chrome Debug Protocol is a community-built MCP server published by rainmen-xia that provides AI assistants with tools and capabilities via the Model Context Protocol. Automate Chrome for web scraping, testing, and content retrieval using browser automation studio, with session persisten It is categorized under browser automation, search web. This server exposes 10 tools that AI clients can invoke during conversations and coding sessions.
How to install
You can install Chrome Debug Protocol in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
Chrome Debug Protocol is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Tools (10)
启动浏览器连接,连接到Chrome调试端口以保持登录状态
关闭浏览器连接
导航到指定URL,智能管理标签页(相同域名复用标签页)
在指定坐标位置点击
输入文本内容
Chrome Debug MCP Server
A Model Context Protocol (MCP) server for Chrome browser automation via debugging protocol, specifically designed to connect to Chrome debugging ports and enable browser automation with persistent login sessions.
🎯 Project Advantages
🚀 Core Technical Advantages
-
🔧 Zero-Dependency Deployment
- No Chrome extensions required
- No Chrome Web Store approval needed
- Fully autonomous in enterprise environments
-
📦 Container-Friendly
- Perfect support for Docker/Kubernetes deployment
- No extension permission or installation issues
- Ideal for cloud-native architecture
-
⚡ Two-Step Launch
# Launch with just two commands # 1. Start Chrome in debug mode /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug # 2. Run MCP server npx chrome-debug-mcp -
🛡️ Enterprise-Grade Security
- Based on standard Chrome DevTools Protocol
- No third-party extension permissions required
- Complete local operation
🚀 Quick Start
Option 1: Direct Usage (Recommended)
Launch with npx - no installation required:
# 1. Start Chrome in debug mode
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# 2. Run MCP server directly
npx chrome-debug-mcp
Option 2: Local Development
git clone https://github.com/rainmenxia/chrome-debug-mcp.git
cd chrome-debug-mcp
npm install
npm run build
npm start
Core Features
- ✅ Chrome Debug Port Connection: Based on standard Chrome DevTools Protocol, no extensions required
- 🏢 Enterprise-Grade Deployment: Zero-dependency deployment, no Chrome Web Store approval needed
- 📱 Intelligent Tab Management: Reuse tabs for same domains, avoid duplicate openings
- 🖼️ Real-time Screenshot Feedback: Automatic screenshots after each operation for visual feedback
- 🌐 Network Activity Monitoring: Auto-wait for page load completion
- 🐳 Native Docker Support: Perfect support for containerized Chrome instances, no extension limitations
- ⚡ Two-Step Launch: Start Chrome in debug mode then run
npx chrome-debug-mcp, no complex installation required - 🔍 Smart Browser Discovery: Auto-discover Chrome instances in local and Docker environments
Configuration & Usage
1. Start Chrome Debug Mode (Required)
The server needs to connect to a Chrome instance with debugging port enabled:
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# Windows
chrome.exe --remote-debugging-port=9222 --user-data-dir=c:\temp\chrome-debug
# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
Important Notes:
--user-data-dirparameter points to a temporary directory, ensuring Chrome starts in debug mode- After startup, you can log into websites normally, and login sessions will be preserved
- The server will reuse this Chrome instance, no need to re-login
2. Configure MCP Client
Add the following configuration to your MCP client:
{
"mcpServers": {
"browser-automation": {
"command": "npx",
"args": ["chrome-debug-mcp"]
}
}
}
That's it! No installation, no downloads, no complex path configuration needed.
💡 Alternative Installation Methods:
Global Installation:
npm install -g chrome-debug-mcp{ "mcpServers": { "browser-automation": { "command": "chrome-debug-mcp" } } }Local Project Installation:
npm install chrome-debug-mcp{ "mcpServers": { "browser-automation": { "command": "npx", "args": ["chrome-debug-mcp"] } } }
Available Tools
1. launch_browser
Connect to Chrome debug port and initialize browser session.
{
"name": "launch_browser",
"arguments": {
"remote_host": "http://localhost:9222" // optional
}
}
2. navigate_to
Navigate to specified URL with intelligent tab management.
{
"name": "navigate_to",
"arguments": {
"url": "https://example.com"
}
}
3. click
Click at specified coordinates.
{
"name": "click",
"arguments": {
"coordinate": "100,200"
}
}
4. type_text
Input text content.
{
"name": "type_text",
"arguments": {
"text": "Hello World"
}
}
5. scroll_down / scroll_up
Scroll the page.
{
"name": "scroll_down",
"arguments": {}
}
6. hover
Hover mouse at specified position.
{
"name": "hover",
"arguments": {
"coordinate": "100,200"
}
}
7. resize_browser
Resize browser window.
{
"name": "resize_browser",
"arguments": {
"size": "1200,800"
}
}
8. get_page_content
Get current page HTML content.
{
"name": "get_page_content",
"arguments": {}
}
9. close_browser
Close browser connection.
{
"name": "close_browser",
"arguments": {}
}
Typical Use Cases
1. Social Media Automation
# Manually log into Twitter/Weibo in Chrome first
# Then use MCP tools for automation
launch_browser -> navigate_to -> click -> type_text
2. E-commerce Operations
# Keep logged-in state for Taobao/JD
# Automate product search, price monitoring, etc.
launch_browser -> navigate_to -> type_text -> click
3. Data Scraping
# Scrape data from login-required websites
# Bypass login verification, direct operations
launch_browser -> navigate_to -> get_page_content
Advanced Features
Intelligent Tab Management
- Same domains (e.g.,
example.com) reuse existing tabs - Different domains automatically create new tabs
- Avoid duplicate openings of same websites
Auto-wait Mechanisms
- Monitor network activity, wait for complete page loading
- HTML content stability detection
- Automatic handling of dynamic content loading
Error Recovery
- Auto-reconnect on connection drops
- Cache successful connection endpoints
- Detailed error logs and feedback
Docker Environment Support
If Chrome runs in a Docker container:
# Start Chrome in Docker
docker run -d --name chrome-debug \
-p 9222:9222 \
--shm-size=2gb \
zenika/alpine-chrome \
--no-sandbox \
--disable-dev-shm-usage \
--remote-debugging-address=0.0.0.0 \
--remote-debugging-port=9222
The server will automatically discover Chrome instances in Docker environments.
Troubleshooting
Chrome Connection Failed
- Confirm Chrome is started with
--remote-debugging-port=9222 - Check if port 9222 is occupied:
lsof -i :9222 - Ensure no other Chrome instances are running
Operation Timeout
- Check network connection
- Increase page load timeout
- Confirm target website is accessible
Screenshot Failed
- Confirm page is fully loaded
- Check browser window size settings
- Try refreshing page and retry operation
Technical Architecture
MCP Client ←→ stdio ←→ MCP Server ←→ Chrome Debug Port ←→ Chrome Browser
- Transport Protocol: stdio (standard input/output)
- Browser Engine: Puppeteer + Chrome DevTools Protocol
- Connection Method: WebSocket (Chrome debug port)
- Image Format: WebP/PNG base64 encoding
Development & Debugging
# Watch mode compilation
npm run dev
# View MCP communication logs
DEBUG=mcp* npm start
Publishing to npm
# Build project
npm run build
# Publish to npm
npm publish
Acknowledgments
This project's design philosophy and core concepts were inspired by the RooCode project. RooCode is an excellent browser automation MCP server implementation that provided valuable technical references and design insights.
Special thanks to the RooCode team for their contributions in the following areas:
- 🎯 MCP Protocol Integration: Provided technical solutions for combining MCP servers with browser automation
- 🔗 Browser Connection: Demonstrated elegant browser connection and session management
- 📋 Tool API Design: Provided reference frameworks for standardizing browser operations
Building upon RooCode's foundation, this project further focuses on browser automation with persistent login sessions, achieving more practical automation capabilities by connecting to existing Chrome debug ports to maintain user sessions.
License
MIT License
Core Advantage: The biggest feature of this MCP server is its ability to connect to existing Chrome instances and maintain login sessions, making it ideal for automation scenarios requiring user authentication. Through Chrome debug ports, it can take over user-logged browser sessions, achieving true "session-persistent" browser automation.
Alternatives
Related Skills
Browse all skillsBrowser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.
This skill should be used for browser automation tasks using Chrome DevTools Protocol (CDP). Triggers when users need to launch Chrome with remote debugging, navigate pages, execute JavaScript in browser context, capture screenshots, or interactively select DOM elements. No MCP server required.
Automate web browser interactions using natural language via CLI commands. Use when the user asks to browse websites, navigate web pages, extract data from websites, take screenshots, fill forms, click buttons, or interact with web applications. Triggers include "browse", "navigate to", "go to website", "extract data from webpage", "screenshot", "web scraping", "fill out form", "click on", "search for on the web". When taking actions be as specific as possible.
Unblock websites and bypass CAPTCHAs and 403 errors using Aluvia mobile proxies. Enables web search and content extraction without browser automation.
Control headless Chrome via Cloudflare Browser Rendering CDP WebSocket. Use for screenshots, page navigation, scraping, and video capture when browser automation is needed in a Cloudflare Workers environment. Requires CDP_SECRET env var and cdpUrl configured in browser.profiles.
Allows to interact with web pages by performing actions such as clicking buttons, filling out forms, and navigating links. It works by remote controlling Google Chrome or Chromium browsers using the Chrome DevTools Protocol (CDP). When Claude needs to browse the web, it can use this skill to do so.