Skip to main content
Glama
andrewlwn77

undetected-chrome-mcp

by andrewlwn77

Undetected ChromeDriver MCP Server

Python 3.8+ License: MIT

A Model Context Protocol (MCP) server providing browser automation capabilities using undetected-chromedriver for enhanced anti-detection compared to standard Puppeteer implementations.

๐Ÿš€ Features

  • ๐Ÿ•ต๏ธ Enhanced Anti-Detection: Uses undetected-chromedriver to bypass modern anti-bot protections

  • ๐Ÿ”„ Drop-in Replacement: 100% API compatible with server-puppeteer

  • โšก High Performance: Optimized session management and resource cleanup

  • ๐Ÿ›ก๏ธ Production Ready: Comprehensive error handling and logging

  • ๐ŸŽฏ 14 Powerful Tools: Complete browser automation and network monitoring toolkit

  • ๐ŸŒ Network Traffic Monitoring: Capture and analyze all network requests/responses

Related MCP server: cloakbrowser-mcp

๐Ÿ› ๏ธ Available Tools

Core Browser Automation

Tool

Description

chrome_navigate

Navigate to URLs with anti-detection

chrome_screenshot

Capture page or element screenshots

chrome_click

Click page elements

chrome_fill

Fill input fields

chrome_select

Select dropdown options

chrome_hover

Hover over elements

chrome_evaluate

Execute JavaScript code

Network Traffic Monitoring

Tool

Description

start_network_monitoring

Begin capturing network requests and responses

stop_network_monitoring

Stop network traffic capture

get_network_requests

Retrieve captured requests with filtering

get_network_responses

Get response data and headers

get_response_body

Extract specific response content

get_network_summary

Get network activity statistics

clear_network_data

Clear captured network data

๐Ÿ“ฆ Installation

Prerequisites

  • Python 3.8+

  • Chrome/Chromium browser

  • Git

pip install undetected-chrome-mcp-server

Option 2: Install with uvx (Isolated Environment)

# Install with uvx for isolated execution
uvx --from undetected-chrome-mcp-server undetected-chrome-mcp-server

# Or run directly without installation
uvx undetected-chrome-mcp-server

Option 3: Install from Source

# Clone the repository
git clone https://github.com/andrewlwn77/undetected-chrome-mcp-server.git
cd undetected-chrome-mcp-server

# Create virtual environment (recommended for Docker)
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install the package
pip install -e .

Dependencies

  • mcp>=1.0.0 - Model Context Protocol

  • undetected-chromedriver>=3.5.0 - Anti-detection Chrome automation

  • selenium>=4.15.0 - WebDriver framework

  • Pillow>=10.0.0 - Image processing for screenshots

โš™๏ธ Configuration

Environment Variables

Variable

Description

Default

CHROME_EXECUTABLE_PATH

Path to Chrome executable

/opt/google/chrome/google-chrome

CHROME_DRIVER_LOG_LEVEL

Logging level

INFO

CHROME_SESSION_TIMEOUT

Session timeout (seconds)

300

CHROME_MAX_SESSIONS

Max concurrent sessions

5

CHROME_MAX_NETWORK_ENTRIES

Max network requests/responses stored

1000

MCP Configuration

Add to your .mcp.json:

Option 1: Using PyPI Installation

{
  "mcpServers": {
    "undetected-chrome": {
      "command": "python",
      "args": ["-m", "undetected_chrome_mcp.server"],
      "env": {
        "CHROME_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome",
        "CHROME_DRIVER_LOG_LEVEL": "INFO",
        "CHROME_MAX_NETWORK_ENTRIES": "1000"
      }
    }
  }
}

Option 2: Using uvx

{
  "mcpServers": {
    "undetected-chrome": {
      "command": "uvx",
      "args": ["undetected-chrome-mcp-server"],
      "env": {
        "CHROME_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome",
        "CHROME_DRIVER_LOG_LEVEL": "INFO",
        "CHROME_MAX_NETWORK_ENTRIES": "1000"
      }
    }
  }
}

Option 3: Using Virtual Environment (Docker/Development)

{
  "mcpServers": {
    "undetected-chrome": {
      "command": "/path/to/project/venv/bin/python",
      "args": ["/path/to/project/run_mcp_server.py"],
      "cwd": "/path/to/project",
      "env": {
        "CHROME_EXECUTABLE_PATH": "/opt/google/chrome/google-chrome",
        "CHROME_DRIVER_LOG_LEVEL": "INFO",
        "CHROME_SESSION_TIMEOUT": "300",
        "CHROME_MAX_SESSIONS": "5",
        "CHROME_MAX_NETWORK_ENTRIES": "1000"
      }
    }
  }
}

๐Ÿš€ Usage

Command Line

# Run the MCP server
python -m undetected_chrome_mcp.server

# Or use the installed command
undetected-chrome-mcp-server

Example Tool Calls

Navigate to a webpage:

{
  "tool": "chrome_navigate",
  "arguments": {
    "url": "https://example.com",
    "timeout": 30000
  }
}

Take a screenshot:

{
  "tool": "chrome_screenshot",
  "arguments": {
    "name": "example_page",
    "encoded": true,
    "fullPage": true
  }
}

Execute JavaScript:

{
  "tool": "chrome_evaluate",
  "arguments": {
    "script": "return document.title;"
  }
}

๐ŸŒ Network Traffic Monitoring

The undetected-chrome-mcp-server v1.1.0+ includes powerful network traffic monitoring capabilities using Chrome DevTools Protocol (CDP):

Basic Network Monitoring Workflow

// 1. Start monitoring
{
  "tool": "start_network_monitoring"
}

// 2. Navigate and interact with pages
{
  "tool": "chrome_navigate",
  "arguments": {"url": "https://example.com"}
}

// 3. Get captured requests
{
  "tool": "get_network_requests",
  "arguments": {"url_filter": "api"}
}

// 4. Get response data
{
  "tool": "get_network_responses",
  "arguments": {"url_filter": "example.com"}
}

// 5. Extract specific response content
{
  "tool": "get_response_body",
  "arguments": {"request_id": "123.456"}
}

Key Features

  • Full Traffic Capture: Captures all HTTP/HTTPS requests and responses

  • Memory Protection: Configurable circular buffer (default: 1000 entries)

  • Thread Safe: Concurrent access with proper locking

  • Filtering: URL pattern filtering for requests/responses

  • Complete Data: Headers, POST data, timestamps, status codes, response bodies

  • Performance: Optimized for high-volume traffic capture

Use Cases

  • API Data Extraction: Capture dynamic content loaded via AJAX/fetch

  • Authentication Token Harvesting: Extract JWT tokens, session cookies

  • Performance Analysis: Monitor request timing and response sizes

  • Debugging: Inspect network calls for troubleshooting

  • Data Mining: Collect structured data from API endpoints

๐Ÿงช Testing

The project includes test scripts to validate functionality:

# Available test scripts in root directory:
python test_functions.py        # Basic function validation
python test_reddit_automation.py   # Reddit anti-detection tests
python test_undetected_chrome.py   # Core driver tests

Test Results

  • โœ… Navigation: Successfully loads protected pages

  • โœ… JavaScript Execution: Full DOM access and data extraction

  • โœ… Screenshots: High-quality image capture

  • โœ… Anti-Detection: Bypasses modern bot protection (tested on Reddit)

๐Ÿ—๏ธ Architecture

The server follows a layered architecture:

  1. MCP Protocol Layer - Handles MCP communication

  2. Browser Management Layer - Manages Chrome sessions

  3. Anti-Detection Layer - Implements stealth capabilities

  4. Operation Execution Layer - Executes browser operations

๐Ÿ›ก๏ธ Anti-Detection Features

  • Undetected ChromeDriver: Advanced stealth automation

  • User Agent Rotation: Randomized browser fingerprints

  • Viewport Randomization: Human-like window sizing

  • Human-like Delays: Natural interaction timing

  • JavaScript Stealth: Removes automation indicators

  • Session Isolation: Clean state between operations

๐ŸŽฏ Comparison with server-puppeteer

Feature

server-puppeteer

undetected-chrome-mcp

Anti-Detection

Basic

Advanced

Bot Protection Bypass

Limited

Excellent

API Compatibility

N/A

100% Compatible

Performance

Good

Optimized

Resource Management

Basic

Advanced

๐Ÿค Contributing

  1. Fork the repository

  2. Create a feature branch: git checkout -b feature-name

  3. Commit changes: git commit -am 'Add feature'

  4. Push to branch: git push origin feature-name

  5. Create a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

This project builds upon excellent open source work:

Special thanks to the open source community for creating these foundational tools that make advanced browser automation accessible to everyone.

๐Ÿ“ž Support


Built with โค๏ธ by andrewlwn77

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Undetectable browser automation server for MCP-compatible AI agents, offering 225 tools across 32 sections to navigate, extract, clone pages, and bypass antibot systems like Cloudflare.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Stealth browser automation for AI agents, using source-patched Chromium to bypass bot detection systems like Cloudflare, reCAPTCHA, and FingerprintJS.
    28
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Enables browser automation with anti-detection features, including navigation, interaction, form filling, and session management.
    22
    38 PyPI
    10
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI-powered undetectable browser automation for data harvesting, bypassing protections like Cloudflare, and intercepting network traffic, with 90 tools for element interaction, extraction, and network debugging.
    2
    -