Skip to main content

mithwire-mcp

🤖 Build, test, and debug web automations with AI agents.
An MCP server that gives LLM agents direct control over stealth Chromium browsers.
Dual Engine (CDP + CloakBrowser) • Live Debugging • Proxy Alignment • Persistent Profiles

PyPI Python versions MCP License mithwire engine


💡 What is Mithwire MCP?

mithwire is a production-ready anti-detect browser engine. Mithwire MCP is the Model Context Protocol server that exposes Mithwire's stealth browser capabilities directly to AI models like Claude, Cursor, and autonomous agents.

Instead of manually writing fragile browser-automation glue code, you can hand over the MCP server to an AI agent to build, execute, test, and debug web automations autonomously.

Your AI agent can invoke structured MCP tools (session_start, browser_navigate, browser_click, browser_snapshot, browser_solve_cloudflare) to explore pages, handle logins and captchas, capture console and network logs, and inspect DOM state in real time.


🛠️ Built for Developing & Debugging Automations

Mithwire MCP was designed specifically as an interactive development harness for AI agents and human developers:

  • 🤖 Autonomous Automation Authoring: Give your AI agent a high-level prompt ("Build a script that logs into service X and downloads report Y"). The agent uses MCP tools to navigate, find selectors, verify state, and iterate until the script works.
  • 🔍 Live Inspection & Diagnostics: Agents can capture DOM snapshots, monitor JavaScript console errors, record full CDP network traces, and read storage/cookies at any point during execution.
  • 🖥️ Visual VNC Debugging: Pre-packaged with an embedded noVNC web viewer (http://localhost:6080/vnc.html). Watch your AI agent interact with the browser live in your desktop browser.
  • 🧪 E2E Test Prototyping: Rapidly prototype and debug resilient scrapers and workflows without getting blocked by anti-bot protections.

💥 The Problem for AI Agents

When AI agents attempt web operations using traditional tools (Playwright, Puppeteer, Selenium, or standard web fetchers), they immediately hit anti-bot walls:

  • ❌ Instant Anti-Bot Blocks: Standard automation frameworks leak navigator.webdriver = true and ChromeDriver artifacts, triggering Cloudflare, Akamai, and DataDome challenges.
  • ❌ Proxy & IP Mismatches: Agents using proxies often leak their host IP via STUN/WebRTC or present timezone/locale settings that contradict their proxy exit location.
  • ❌ State Loss Across Turns: AI agents frequently lose cookies, session state, or local storage between execution turns or subagent invocations.

🛡️ The Mithwire MCP Solution

Mithwire MCP solves these challenges natively for AI agent workflows:

  1. 🥷 Stealth by Design: Operates on Mithwire—no WebDriver, no Selenium, zero navigator.webdriver leaks, with built-in Cloudflare Turnstile bypass.
  2. ⚡ Dual Stealth Engines: Support for both lightweight cdp mode (standard Chrome) and C++-patched stealth mode (CloakBrowser) per session.
  3. 🌍 Automatic Proxy & Egress Alignment: Auto-probes proxy health before launching Chromium and aligns timezone, locale, languages, and geolocation to match the proxy exit IP.
  4. 👤 Persistent Profiles & State Store: Reusable browser profiles (profiles/) store cookies, localStorage, proxies, and persisted fingerprints across agent runs.
  5. 🔒 WebRTC Leak Protection: Automatically guards STUN/UDP queries against leaking the host's real IP address.

⚡ Engine Modes & Capabilities

Configure stealth levels on a per-session or per-profile basis:

Engine Mode Binary Capabilities Best Suited For
cdp (Default) Stock Chrome / Chromium Fast, reliable CDP Emulation overrides for timezone, locale, geo, UA, platform, and device metrics. Local workstations, remote Linux servers (same-OS profiles or standard targets), fast script prototyping.
stealth [CloakBrowser] C++ source code patches for Canvas, WebGL GPU strings, AudioContext, native fonts, and TLS signatures. Cross-OS profiles (e.g. Windows profile on a Linux VPS), cloud agents, high-security anti-bot targets.

✨ Key Features & Capabilities

  • 🤖 Complete Agent Toolset: Full toolsuite covering navigation, DOM querying, clicking, typing, scrolling, screenshots, network capture, and JS evaluation.
  • 🧩 Cloudflare Bypass: Solves Cloudflare Turnstile challenges on command via browser_solve_cloudflare.
  • 🗂️ Centralized State Store: Default ~/.mithwire-mcp directory manages persistent profiles, proxy registries, and cookie import/export files.
  • 🛰️ Proxy Registry & Alignment: Store proxy credentials once and reference them by name. Automatically validates proxy health and aligns timezone/locale/geo before Chromium launches.
  • 🐳 Docker-Ready with Visual Debugging: Pre-configured Docker container with Xvfb, CloakBrowser, and noVNC web viewer (http://localhost:6080/vnc.html).

🚀 Installation

# Standard install (CDP mode)
pip install mithwire-mcp

# With Stealth Mode support (CloakBrowser)
pip install "mithwire-mcp[stealth]"

💻 MCP Client Configuration

Add Mithwire MCP to your MCP client config (e.g. Cursor, Claude Desktop):

{
  "mcpServers": {
    "mithwire-mcp": {
      "command": "mithwire-mcp",
      "args": ["--transport", "stdio"]
    }
  }
}

🐳 Running in Docker (With Visual VNC Debugging)

For isolated execution or local visual observation:

# Pull public Docker image
docker pull ghcr.io/codeisalifestyle/mithwire-mcp:latest

# Run local dev container with noVNC enabled
docker compose -f docker-compose.dev.yml up -d --build

Endpoints:

  • 🔌 MCP Server (Streamable HTTP): http://localhost:7867
  • 🖥️ noVNC Visual Viewer: http://localhost:6080/vnc.html

🧰 Available MCP Tools Reference

🔁 Session Lifecycle
  • session_start - Launch a new browser session (ephemeral or persistent profile)
  • session_list - List active browser sessions
  • session_get - Get session status and identity metadata
  • session_set_fingerprint - Override the active session fingerprint
  • session_rotate_proxy - Rotate the proxy exit IP and optionally re-align identity
  • session_state_paths - Show state directory layout (profiles, proxies, cookies)
  • session_set_policy / session_get_policy - Set or read per-session security policy
  • session_set_download_dir - Change the session download directory
  • session_warmup - Warm up a session for more natural browsing patterns
  • session_stop - Close a specific session
  • session_stop_all - Terminate all running sessions
👤 Profile & Proxy Management
  • session_profile_list / session_profile_get / session_profile_set / session_profile_delete - CRUD for persistent profiles
  • session_profile_regenerate_fingerprint - Regenerate a profile's fingerprint via BrowserForge
  • session_proxy_list / session_proxy_get / session_proxy_set / session_proxy_delete - Proxy registry CRUD
🎮 Browser Navigation & DOM Actions
  • browser_url - Get the current page URL
  • browser_navigate / browser_back / browser_forward / browser_reload - Navigation
  • browser_snapshot - Take interactive DOM snapshot with element references
  • browser_query - Find elements by CSS selector or text
  • browser_click / browser_mouse_click / browser_mouse_move / browser_press_hold / browser_type - User interactions
  • browser_scroll - Scroll the page or an element
  • browser_handle_dialog - Accept or dismiss browser dialogs
  • browser_set_file_input - Set files on a file input element
  • browser_take_screenshot - Capture page screenshot
  • browser_solve_cloudflare - Automatically solve Cloudflare Turnstile challenge
🗂️ Tabs
  • browser_tab_list / browser_tab_current - List open tabs or get the active tab
  • browser_tab_new / browser_tab_switch / browser_tab_close - Create, switch, or close tabs
⏳ Waits
  • browser_wait - Wait for a fixed duration
  • browser_wait_for_selector - Wait until a CSS selector appears
  • browser_wait_for_text - Wait until text appears on the page
  • browser_wait_for_url - Wait until the URL matches a pattern
  • browser_wait_for_function - Wait until a JS expression returns truthy
  • browser_wait_for_network_idle - Wait until network activity settles
📡 Cookies, Storage & Network
  • browser_cookies_get / browser_cookies_set / browser_cookies_save / browser_cookies_clear
  • browser_storage_get / browser_storage_set / browser_storage_clear
  • browser_console_messages - Read captured console log messages
  • browser_network_requests - List captured network requests
  • browser_network_capture_start / browser_network_capture_get / browser_network_capture_stop / browser_network_capture_status
  • browser_downloads - List downloaded files
🔧 Advanced: HTML, JS Evaluation & Tracing
  • browser_html - Get the raw HTML of the current page or an element
  • browser_evaluate - Execute arbitrary JavaScript in the page context
  • session_trace_start / session_trace_stop / session_trace_get - Record and inspect CDP traces
  • session_trace_export / session_trace_replay - Export or replay recorded traces

🧹 No Orphaned Chrome

Every session owns the Chrome process it launched, and the server makes sure none outlives it:

  • A session_start that fails, times out or is cancelled by the client tears down its half-started browser (no more empty windows left behind).
  • session_stop, session_stop_all and server shutdown close browsers concurrently and delete their temporary profiles.
  • On SIGTERM/SIGHUP/SIGINT the server stops every browser immediately and exits instead of hanging.
  • If the server itself is killed outright (SIGKILL, OOM, a crash), a tiny watchdog process from the engine terminates exactly its browsers and removes their temporary profiles. Set MITHWIRE_NO_EXIT_GUARD=1 to disable it.

scripts/smoke_process_lifecycle.py checks all of this against a real stdio server and a real Chrome (it also runs in CI).


📜 License

Distributed under the MIT License. Powered by mithwire (AGPL-3.0).

Metadata

Release files for mithwire-mcp 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mithwire-mcp 0.5.1
File Size Uploaded
mithwire_mcp-0.5.1.tar.gz 130.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mithwire-mcp 0.5.1
File Interpreter ABI Platform
mithwire_mcp-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 214.9 kB

Release files / mithwire_mcp-0.5.1.tar.gz

Download URL mithwire_mcp-0.5.1.tar.gz
Size 130.7 kB
Tags Source
SHA-256 checksum
How to use checksums
73e50fe9fbb4629cb81b860b62c3f9c9187e8ec5159e4800e25c1a2fce56324f
BLAKE2b-256 checksum
How to use checksums
853fdb8943f118cda30a147dd7ec2c8eb2f2d372c62966c3162d0cbb417f82b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / mithwire_mcp-0.5.1-py3-none-any.whl

Download URL mithwire_mcp-0.5.1-py3-none-any.whl
Size 84.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d87ba154a64be91c631f876045b5606e661e7861017ea044ce0265daaa00ff2
BLAKE2b-256 checksum
How to use checksums
433b0bf559f22fc1c14d25d14e862a07852f262bc5616e3ccaeaa617fcadf278
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page