home / mcp / undetected chromedriver mcp server

Undetected Chromedriver MCP Server

undetected-chromedriver server.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "dragons96-mcp-undetected-chromedriver": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@dragons96/mcp-undetected-chromedriver",
        "--config",
        "{}"
      ]
    }
  }
}

You have an MCP server that wraps undetected-chromedriver to automate Chrome while reducing anti-bot detection. This makes web automation, testing, and data gathering more reliable on sites with strict bot defenses by providing a straightforward API surface built on a robust browser driver.

How to use

To use this MCP server, connect via an MCP client and call the browser APIs to navigate pages, interact with elements, take screenshots, and extract content. You can drive a single browser instance through a sequence of API calls, including navigating to URLs, clicking elements, filling forms, dragging, and saving pages as PDFs. The client interactions are designed around a clear set of endpoints that resemble typical browser automation tasks.

How to install

Prerequisites you need before installing are Python 3.11+ and the Chrome browser. You will also use Node tools to install the MCP server via the Smithery CLI.

# Install the MCP server via Smithery for Claude Desktop
npx -y @smithery/cli install @dragons96/mcp-undetected-chromedriver --client claude

# Optional: ensure Python and Chrome are available for local dependencies

Configuration to enable the server via MCP client

Use the following MCP configuration to run the Undetected Chromedriver server through the MCP client. This setup tells the MCP system how to start the server process and how to pass configuration.

{
  "mcpServers": {
    "mcp-undetected-chromedriver": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@dragons96/mcp-undetected-chromedriver",
        "--config",
        "{}"
      ]
    }
  }
}

Additional setup with uv (optional local runtime)

If you prefer to run dependencies in a Python virtual environment, you can install the project using uv.

# Create virtual environment
uv venv

# Activate virtual environment
# Windows
.venv\Scripts\activate
# Linux/MacOS
source .venv/bin/activate

# Install dependencies
uv pip install -e .

Notes on requirements

Ensure you have Python 3.11 or newer and the Chrome browser installed before starting. The server relies on undetected-chromedriver under the hood to bypass common anti-bot detections.

Additional sections

This MCP server provides a commandable API surface that includes operations for navigating pages, taking screenshots, clicking elements, interacting with iframes, filling inputs, selecting options, hovering, evaluating JavaScript, and saving pages as PDFs. It is designed to work alongside other MCP tools and can manage a global browser instance that is created as needed by the first API call that requires a browser.

Code usage example

The following Python example demonstrates how you can interact with the MCP server from a client to perform common browser actions.

from mcp.client import Client

# Create MCP client
client = Client()
client.start("undetected-chromedriver-mcp-server")

# Navigate to website
response = client.call("browser_navigate", {"url": "https://example.com"})
print(response)

# Take a screenshot
response = client.call("browser_screenshot", {"name": "example"})
print(response)

# Get page text
response = client.call("browser_get_visible_text")
print(response.content[0].text)

# Close the browser
client.call("browser_close")

Available tools

browser_navigate

Navigate the browser to a specified URL.

browser_screenshot

Capture a screenshot of the current page and save it with a given name.

browser_click

Click on a page element identified by a selector.

browser_iframe_click

Click on elements inside an iframe without manually switching frames.

browser_fill

Fill content into input fields matched by selectors.

browser_select

Select options within dropdown menus.

browser_hover

Hover the mouse over a specified element.

browser_evalute

Execute JavaScript code within the current page context.

browser_close

Close the active browser instance.

browser_get_visible_text

Retrieve the visible text content from the page.

browser_get_visible_html

Retrieve the visible HTML of the page.

browser_go_back

Navigate backward in the browser history.

browser_go_forward

Navigate forward in the browser history.

browser_drag

Drag elements on the page.

browser_press_key

Simulate key presses in the active page.

browser_save_as_pdf

Save the current page as a PDF file.