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

📜 License

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

Metadata

Release files for mithwire-mcp 0.5.0

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.0
File Size Uploaded
mithwire_mcp-0.5.0.tar.gz 119.4 kB Details

Built distribution (wheel)

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

Total release size: 199.0 kB

Release files / mithwire_mcp-0.5.0.tar.gz

Download URL mithwire_mcp-0.5.0.tar.gz
Size 119.4 kB
Tags Source
SHA-256 checksum
How to use checksums
972c71cfd6f047dd7f4fc04ff2e932ecc8936f72218bd6f67bbae3dcc3edf182
BLAKE2b-256 checksum
How to use checksums
fbb277c47a847f737e48e341701329d7f5fb272b3d29a484ce73107dfeed4ece
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 Sep 13, 2026.

Transparency log

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

Download URL mithwire_mcp-0.5.0-py3-none-any.whl
Size 79.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b6acc924272b7d783a96793112f03545f66a6b462c272426074f4bcae9ff2fff
BLAKE2b-256 checksum
How to use checksums
78fa5c8be5545289d14f97073bf36c05093bb00ec95cdbe335f3c464c7177914
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 Sep 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.1

2 release files

This release

0.5.0 This release

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