- Home
- MCP servers
- Undetected Chromedriver
Undetected Chromedriver
- python
8
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
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.