/ Directory / Playground / stealth-browser-mcp
● Community vibheksoni ⚡ Instant

stealth-browser-mcp

by vibheksoni · vibheksoni/stealth-browser-mcp

90-tool MCP browser automation that bypasses anti-bot systems — network hooks, UI cloning, and CDP control via natural language.

stealth-browser-mcp is an MCP server for undetectable browser automation using nodriver and Chrome DevTools Protocol. It provides 90 tools across 11 categories: browser management, element interaction, pixel-perfect UI cloning, network debugging with dynamic hooks, CDP functions, progressive cloning, cookies/storage, tabs, and page analysis. Bypasses Cloudflare and similar protections. Works with Claude, Cursor, and other MCP clients.

Why use it

Key features

Live Demo

What it looks like in practice

stealth-browser-mcp.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "stealth-browser-mcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/vibheksoni/stealth-browser-mcp"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "stealth-browser-mcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/vibheksoni/stealth-browser-mcp"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "stealth-browser-mcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/vibheksoni/stealth-browser-mcp"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "stealth-browser-mcp": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/vibheksoni/stealth-browser-mcp"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "stealth-browser-mcp",
      "command": "TODO",
      "args": [
        "See README: https://github.com/vibheksoni/stealth-browser-mcp"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "stealth-browser-mcp": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/vibheksoni/stealth-browser-mcp"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add stealth-browser-mcp -- TODO 'See README: https://github.com/vibheksoni/stealth-browser-mcp'

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use stealth-browser-mcp

How to scrape data from a Cloudflare-protected site for authorized research

👤 Researchers and data analysts who need data from protected sites they have permission to access ⏱ ~15 min intermediate

When to use: You need to extract data from a site you're authorized to access but standard scraping tools get blocked.

Prerequisites
  • stealth-browser-mcp installed — Clone repo, pip install -r requirements.txt
  • Authorization to access the target site — Ensure you have permission to scrape the site
Flow
  1. Navigate to the site
    Open a stealth browser and navigate to https://example.com/data. Wait for the page to fully load.✓ Copied
    → Page loaded successfully, bypassing protection
  2. Extract data
    Query all elements matching the product listing cards. Extract titles, prices, and URLs.✓ Copied
    → Structured data from the page

Outcome: Data extracted from the protected site for authorized analysis.

Pitfalls
  • Running too many concurrent browsers — Keep to 1-2 browser instances at a time to avoid detection patterns
Combine with: filesystem

Clone a UI element pixel-perfect for design reference

👤 Frontend developers who want to study and replicate a UI pattern ⏱ ~10 min intermediate

When to use: You see a UI component you like and want the complete HTML/CSS for reference.

Prerequisites
  • stealth-browser-mcp running — Start the MCP server
Flow
  1. Navigate and identify
    Open https://example.com and take a screenshot. I want to clone the navigation header.✓ Copied
    → Screenshot with page rendered
  2. Clone the element
    Clone the nav header element completely — HTML structure, CSS styles, events, and animations. Save to a file.✓ Copied
    → Complete element clone saved with all styles and assets

Outcome: A self-contained HTML/CSS clone of the UI element for reference.

Pitfalls
  • Cloned elements may depend on external fonts or scripts — Use extract_element_assets to also capture referenced resources
Combine with: filesystem

Combinations

Pair with other MCPs for X10 leverage

stealth-browser-mcp + filesystem

Save scraped data and cloned UI elements to organized files

Scrape all product data from the page and save it as JSON to ~/data/products.json.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
spawn_browser options?: obj Launch a new stealth browser instance 0
navigate url: str Navigate to a URL 0
query_elements selector: str Find elements by CSS selector 0
clone_element_complete selector: str Pixel-perfect clone of a DOM element with all styles 0
create_dynamic_hook hook_function: str Create a Python function to intercept network traffic 0
take_screenshot selector?: str Capture a screenshot of the page or specific element 0
execute_script script: str Execute JavaScript in the page context 0

Cost & Limits

What this costs to run

API quota
N/A — runs locally
Tokens per call
200–2000 tokens per tool call
Monetary
Free
Tip
Use core mode (22 tools) if your client struggles with the full 90-tool set.

Security

Permissions, secrets, blast radius

Credential storage: No credentials stored by the server. If accessing authenticated sites, manage cookies via get/set_cookie tools.
Data egress: Connects to whatever URLs you navigate to via Chrome

Troubleshooting

Common errors and fixes

Chrome not found

The server uses nodriver which manages its own Chrome. Ensure Chrome is installed or let nodriver download it.

Verify: which google-chrome || which chromium
Anti-bot detection still triggered

Try adding delays between actions, reduce concurrent requests, or use different browser profiles.

Verify: Check the page for CAPTCHA or block messages
Element clone incomplete

Some elements use shadow DOM or iframe isolation. Use execute_cdp_command for low-level access.

Verify: Inspect the element in DevTools to check for shadow roots

Alternatives

stealth-browser-mcp vs others

AlternativeWhen to use it insteadTradeoff
playwright MCPYou don't need anti-bot bypass and want standard browser automationStandard Playwright with no stealth features but broader community support

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills