Nodriver β€” undetected browser automation logo

Nodriver β€” undetected browser automation

Undetected, anti-bot-resistant Chrome automation. 57 tools. Stealth chrome-devtools-mcp alternative.

Install Nodriver β€” undetected browser automation

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "nodriver-undetected-browser-automation": {
      "command": "uvx",
      "args": [
        "nodriver-mcp"
      ]
    }
  }
}

Settings β†’ Developer β†’ Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passedβ€” started and listed 70 tools correctly (24d ago).

Overview

Tools70

What Nodriver β€” undetected browser automation lets your agent do. Expand a tool for its parameters.

Verified live~24.6k tokens of context

Security & health

What it can reach and how reliably it runs β€” from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

19/22 checks healthy over the last 90d

What it can do

From the 70 tools this server returned when we ran it; 70 declare their own safety hints.

Can delete or modify data Β· 12Writes files Β· 1Handles credentials Β· 20Makes network requests Β· 33Read-only tools Β· 57
Network at startup2 connections
Files written at startupNone

Observed 2026-10-15 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 7d ago via OSV.dev Β· nodriver-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks β€” not a rating.

GitHub stars7Stargazers on the source repository.
Last commit23d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed70Callable tools this server registers over MCP.
Directory activity8 viewsConfig copies, upvotes, and views on AllMCPs.

From the project README

nodriver-mcp β€” browser-tab monogram

nodriver-mcp-server

Give your AI agent a full Chrome workspace. Browse, fill forms, extract data and inspect the requests behind a page with 70 MCP tools, powered by nodriver. Keep your logins, run isolated browsers side by side, and pick up where you left off with automatic tab restoration. One-command setup for Claude, Claude Code, Cursor, Windsurf, Codex and other Model Context Protocol clients.

PyPI CI License: MIT Python 3.12+ MCP compatible Tools: 70 Stars

Keywords: MCP server Β· browser automation Β· undetected chromedriver Β· anti-bot Β· Cloudflare bypass Β· web scraping Β· Claude Β· Cursor Β· nodriver Β· chrome-devtools-mcp alternative Β· Playwright/Puppeteer alternative Β· AI agent tools.

More browsing, less setup

  • Log in once, come back ready. Persistent profiles keep cookies and logins between sessions.
  • Start your way. Open a fresh tab, a set of favorite URLs, or the tabs you left open β€” configurable through MCP, per profile.
  • Give each task its own browser. Run up to 12 isolated browser sessions without sharing tabs, cookies or the selected page.
  • Get the data behind the page. Read accessibility snapshots, inspect API traffic and save response bodies for later search.
  • Automate real Chrome directly. nodriver, the successor of undetected-chromedriver, uses CDP without Selenium or a ChromeDriver binary and is designed to reduce common automation signals.

Explore the 70-tool reference, or get started with uvx nodriver-mcp.

Does it actually pass? Here is the evidence

Claiming "undetected" is easy, so here is what the standard fingerprint suite reports when this server drives the page itself. Reproduce it in one line: point your agent at https://bot.sannysoft.com and take a snapshot.

bot.sannysoft.com results: all checks green

CheckResult
bot.sannysoft.com β€” Intoli + fingerprint suite58 checks, 0 failed
navigator.webdriverfalse β€” a boolean on Navigator.prototype, not an own property, exactly as in a normal browser
window.chromepresent
navigator.plugins5
navigator.languages4 entries
User agentno Headless token

Measured on Chrome 151 / Windows 11, headful, with the default profile. The current functional test suite uses Chrome 155 and nodriver 0.50.6. See Scope and limitations for how to interpret the fingerprint result.

Features

  • πŸ•΅οΈ Direct CDP automation β€” nodriver avoids Selenium and a ChromeDriver binary and is designed to reduce common automation signals.
  • ☁️ Cloudflare checkbox helper (cf_verify, needs the [cf] extra); success depends on the challenge and browser configuration.
  • πŸ–ΌοΈ Frames are not a blind spot β€” list_frames plus a frame argument on the readers, and take_snapshot splices each iframe's tree in under the element hosting it, so a payment field or consent wall inside one gets a uid and can be clicked and filled like anything else.
  • πŸ” A network log that says what happened β€” status, response headers, a DevTools-style timing breakdown (DNS, connect, TLS, time to first byte, download), the script and line that started each request, transfer size, redirect hops and failures, plus WebSocket frames and server-sent events. A 500, a 404, a redirect and a DNS failure are different lines, not the same one.
  • πŸ’Ύ Response capture to disk β€” capture_bodies captures matching responses from tabs, workers and service workers before later navigation or buffer eviction can discard them. A JSON index records URL, POST data, status and headers; search_bodies searches saved traffic. Capture status reports saved bodies, skips and errors.
  • πŸ›‘οΈ Passive security review built in β€” audit_security checks security headers (with a real CSP analysis: nonces, strict-dynamic, multiple policies), CORS, TLS and certificates of every origin, cookie flags, responses a CDN could serve to the wrong user, every first and third party the page talks to, and lists what Chrome's own Issues panel reports: CSP violations, mixed content, rejected cookies. inspect_storage inventories localStorage, sessionStorage, IndexedDB, Cache Storage and service workers, and decodes tokens it finds there. export_har writes everything to a HAR file for Burp, ZAP or DevTools β€” with the wire headers, Cookie and Set-Cookie included.
  • πŸ‘₯ Several isolated browsers at once β€” pass browser: "agent-a" to any tool and that name gets its own Chrome, in its own process, with its own cookies, tabs and uids. Parallel agents stop stealing each other's selected tab. Omit it and nothing changes: the default browser runs in the server process, exactly as before. How it works
  • 🧩 70 tools covering navigation, input, snapshots, screenshots, content/PDF export, network + console inspection, device emulation, cookies/storage, sessions, profiles, and performance tracing.
  • 🧠 Schemas written for the agent, not just the compiler β€” every parameter carries a description, fixed-value options are real enums, and each tool declares read-only/destructive hints. See why this matters.
  • πŸ“„ Compact accessibility-tree snapshots (take_snapshot) β€” searchable page text with a uid per element. Measured on the Hacker News front page: 27 KB against 97 KB unfiltered, 72% smaller, with every link, URL and text preserved. Same-origin URLs are printed relative to the page, which is lossless because the root node keeps the absolute one. That saving lands on every single agent step.
  • πŸ”— Attach to a browser you are already signed into (use_running_browser) β€” drive your real Chrome profile over its debugging port instead of rebuilding logins in a fresh one.
  • πŸ“± Device emulation (Pixel 7, iPad) with correct UA / client hints.
  • βœ… Actions that verify themselves β€” fill reads the value back, set_checked reads the checked state back, and click, press_key and type_text report when no input event reached the page. A tool that cannot confirm what it did says so instead of reporting success.
  • πŸ’Ύ Session save/restore β€” persist logins across runs.
  • 🧬 Ephemeral by default, persistent when needed β€” each session gets its own temporary Chrome profile. Named persistent profiles retain logins and offer configurable startup: a new tab (default), specified URLs, or the previous tabs without a restore-button click.
  • ⚑ One-command setup for 15+ MCP clients.

Installation

bash
# Recommended: isolated install, won't touch your global Python environment
uv tool install nodriver-mcp

# or with pip
pip install nodriver-mcp

# or run it without installing anything
uvx nodriver-mcp

Requires uv for the first and third form. To track the development branch instead of a release:

bash
uv tool install "nodriver-mcp @ git+https://github.com/andresolbach/nodriver-mcp-server.git@main"

Also listed in the official MCP Registry as io.github.andresolbach/nodriver-mcp-server, so clients and marketplaces that read the registry can find and install it directly.

Uses upstream nodriver >=0.50.6, tested against Chrome 155. uv tool install keeps dependencies isolated from your global Python environment.

You'll also need a local installation of Google Chrome (auto-detected).

Upgrade

bash
uv tool upgrade nodriver-mcp

Requirements & tested versions

The automated suite runs schema, documentation and behavior checks plus real-browser integration tests. The current Windows browser test environment is Chrome 155 / nodriver 0.50.6 / Python 3.12.11. CI also runs the non-browser suite on macOS and Linux. Future Chrome or nodriver releases can require compatibility updates.

ComponentRequirementVerified version
Python3.12+3.12.11
Google Chromeany recent stable155.0.8059.79
Operating systemWindows / macOS / LinuxWindows 11
nodriver>= 0.50.60.50.6
mcp (MCP SDK)>= 1.26.0, < 21.26.0
pillow>= 12.1.112.1.1
tomli-w>= 1.0.01.2.0

Runtime dependency ranges and tested versions are listed in requirements.txt. uv tool install creates an isolated installation; contributors can use uv sync --locked --group dev in this repository to reproduce the committed dependency set.

One-command MCP client setup

bash
# Interactive client selector (terminal TUI)
nodriver-mcp install

# Install to specific clients
nodriver-mcp install claude,cursor,kiro

Reviews

No reviews yet β€” be the first to share how it worked for you.

Frequently Asked Questions about Nodriver β€” undetected browser automation

nodriver β€” undetected browser automation is an MCP server that provides Chrome browser automation for MCP clients and AI agents. Powered by nodriver, it aims to reduce automation fingerprinting by communicating through CDP without ChromeDriver or Selenium/WebDriver markers. It supports browsing, scraping, and automation as a stealth alternative to chrome-devtools-mcp.

It communicates with Chrome through the CDP protocol directly, without using a ChromeDriver binary or Selenium/WebDriver markers. This is intended to reduce detectable automation signals, including the typical navigator.webdriver value associated with WebDriver-based automation.

It can reduce detection caused by the automation stack, but it cannot defeat every protection or solve image and text captchas. Its cf_verify tool handles a common Cloudflare checkbox challenge, but the server is not a captcha-solving service.

It is designed for MCP-compatible clients, including Claude, Claude Code, Cursor, and Windsurf. The server exposes browser automation tools through the Model Context Protocol.

Yes, it is presented as a stealth alternative to chrome-devtools-mcp.

Related MCP servers

Add a badge to your READMEShow it’s listed β€” live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewNodriver β€” undetected browser automation AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/nodriver-undetected-browser-automation?style=directory)](https://allmcps.com/mcp/nodriver-undetected-browser-automation)
HTML Embed
<a href="https://allmcps.com/mcp/nodriver-undetected-browser-automation"><img src="https://allmcps.com/api/badge/nodriver-undetected-browser-automation?style=directory" alt="Nodriver β€” undetected browser automation on AllMCPs" /></a>