ProBrowser
ProBrowser
Real-Browser-Automatisierungs-MCP-Server für KI-Agenten — Anti-Erkennung
29 Tools · CDP-Anbindung an deinen echten Opera/Chrome · Menschliche Eingabe · DOM + Vision-Hybrid
Funktionen • Pipeline • Schnellstart • Verwendung • Konfiguration • Architektur • Projektstruktur • Anti-Erkennung
🌐 Sprache: Deutsch | Tiếng Việt
[!WARNUNG] Nur auf Arch Linux entwickelt und getestet Kernel
Linux 7.1.5-arch1-2· DE: KDE Plasma Andere Distributionen/Desktops sind ungetestet — Ergebnisse können abweichen.
Ein MCP-Server, der es KI-Agenten (Kilo, Claude Code, …) ermöglicht, den echten Browser des Benutzers über das Model Context Protocol zu steuern. Kein Headless-Modus, keine Wegwerf-Profile — der Agent verbindet sich über CDP mit dem laufenden Opera/Chrome, wobei alle Sitzungen, Cookies und Logins erhalten bleiben, und steuert ihn dann mit menschlichem Timing und einer DOM-first-/Vision-Fallback-Strategie.
✨ Funktionen
Funktion | Beschreibung |
🔌 Echte Browser-Steuerung |
|
🧰 29 MCP-Tools | Navigation, Tabs, Klicken/Tippen/Hovern/Tastatur, Scrollen, Drag & Drop, DOM/Text-Extraktion, JS-Eval, 3 Screenshot-Varianten, CAPTCHA-Toolkit, Systemerkennung. |
🕒 Menschliche Eingabe | Gauß-verteilte Tastenintervalle (45–75 WPM), natürliche mousedown↔mouseup-Abstände, kubisches Ease-out-Scrolling — als Timing-Middleware geschichtet, null JS-Injektion. |
🔍 Hybrid DOM + Vision | Strukturierte DOM-Extraktion ( |
🎯 Positionsvalidierung | Vor jedem Koordinaten-Klick: annotierter Screenshot mit roten X/Y-Achsen, die sich exakt im Ursprung O=(x,y) kreuzen + Element-Probe, Warnungen ( |
🧩 CAPTCHA-Toolkit | Erkennt automatisch reCAPTCHA/hCaptcha/Turnstile/Cloudflare nach der Navigation; Bildraster-Lösung über Agenten-Vision ( |
🗂️ Tab-Verwaltung | Tabs auflisten / wechseln / öffnen / schließen — Multi-Tab-Workflows in einem echten Browser. |
🚨 Aktionsfähige Fehler | Jeder Fehler liefert strukturiertes |
📚 Selbstdokumentierend |
|
✅ Getestet | 87 Unit-Tests (Fake-Seiten, kein Browser nötig) + Integrationstests mit echtem Browser ( |
Related MCP server: selenium-mcp
🏭 Pipeline
┌──────────┐ ┌────────────┐ ┌─────────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ CONNECT │ → │ ORIENT │ → │ SEE │ → │ PLAN │ → │ ACT │ → │ VERIFY │
│ check_ │ │ navigate + │ │ screenshot │ │ selector │ │ click / │ │ re-read │
│ browser │ │ wait idle │ │ get_dom │ │ or coords│ │ type │ │ state │
└──────────┘ └────────────┘ └─────────────┘ └──────────┘ └──────────┘ └──────────┘
│ │
▼ not running ▼ DOM miss
┌──────────────┐ ┌──────────────────────────┐
│ open_browser │ │ validate_position(x, y) │
│ (real profile│ │ → annotated O=(x,y) shot │
│ + CDP flag) │ │ → click_position(x, y) │
└──────────────┘ └──────────────────────────┘Tool-Ausführungsablauf (Beispiel browse_click):
agent call → pre-click Gaussian delay (~80ms)
→ PhantomWright Actionability Engine (visible? enabled? stable? unobscured?)
→ CDP Input.dispatchMouseEvent (trusted gesture, NOT element.click())
→ post-click pause (~150ms)
→ result JSON (+ optional verification screenshot)Automatischer CAPTCHA-/Werbe-Overlay-Scan läuft nach jedem browse_navigate / browse_wait.
🚀 Schnellstart
Voraussetzungen
Arch Linux (Entwicklungs-/Testplattform) — Kernel
7.1.5-arch1-2, KDE PlasmaPython 3.11+ — prüfen mit
python --versionEin Chromium-basierter Browser — Opera (empfohlen), Chrome, Chromium oder Brave
Ein MCP-Client — Kilo CLI, Claude Code oder alles, was MCP stdio spricht
Installation
# 1. Clone
git clone https://github.com/YOUR_USER/probrowser.git
cd probrowser
# 2. Setup (venv + deps + verify)
./setup.sh
# ...or manually:
python -m venv .venv
.venv/bin/pip install -r requirements.txtBei deinem MCP-Client registrieren
kilo.json (Projektwurzel):
{
"mcp": {
"probrowser": {
"type": "local",
"command": ["/absolute/path/to/probrowser/.venv/bin/python", "-m", "src"],
"enabled": true,
"timeout": 120000
}
}
}Claude-Code-Benutzer: derselbe Server über .mcp.json. Starte den Client neu, damit die 29 browse_*-Tools geladen werden.
Erster Start
# Option A — start Opera yourself with CDP enabled:
opera --remote-debugging-port=9222
# Option B — let the agent do it (real profile, cookies intact):
browse_check_browser() # → not connected?
browse_open_browser(browser="opera")Sprich dann einfach mit deinem Agenten: „Öffne YouTube und spiele One of These Nights" — er verbindet sich, navigiert, klickt und überprüft die Wiedergabe von selbst.
💻 Verwendung
Tool-Gruppen
Gruppe | Tools |
Navigation & Tabs |
|
Interaktion |
|
Extraktion |
|
Screenshots |
|
CAPTCHA |
|
System |
|
Meta |
|
Vollständige Parameterreferenz: docs/tools-reference.md oder browse_help(topic="tools-reference") zur Laufzeit.
Beispielablauf
→ browse_check_browser()
← { connected: false } # nothing on :9222 yet
→ browse_open_browser(browser="opera")
← { launched: true, profile: "~/.config/opera", cdp_url: "...:9222" }
→ browse_navigate(url="https://youtube.com/...")
← { success: true, title: "..." } # auto CAPTCHA scan ran here
→ browse_get_dom(search="One of These Nights")
← { count: 10, elements: [{type: "link", selector: "a[aria-label=...]"}] }
→ browse_click(selector="a[aria-label=...]")
← { success: true }
→ browse_eval(expression="() => {const v=document.querySelector('video'); return {paused: v.paused, time: v.currentTime}}")
← { paused: false, time: 3.1 } # verified: audio is playing 🎵Eigenständiger Server
PROBROWSER_CDP_URL=http://localhost:9222 .venv/bin/python -m src⚙️ Konfiguration
Die gesamte Laufzeitkonfiguration wird über Umgebungsvariablen gesteuert:
Variable | Standard | Beschreibung |
|
| CDP-Endpunkt für die Verbindung beim Start |
|
| Hartes Limit pro Tool-Aufruf (gemeinsamer Event-Loop-Schutz) |
|
| Hauptschalter für das CAPTCHA-Subsystem |
|
| Automatischer Scan auf CAPTCHAs/Werbung nach der Navigation |
| — | 2Captcha-API-Schlüssel (Text-Challenge-Autolösung; Rasterlösung erfolgt über Agenten-Vision) |
|
| Maximale Wartezeit für API-gestützte Lösung |
MCP-clientseitige Einstellungen (timeout, enabled) befinden sich in kilo.json — absichtlich aus Git ausgeschlossen (siehe .gitignore).
🏛️ Architektur
┌──────────────────────────────────────────────────────────┐
│ AI Agent (Kilo / Claude Code) │
│ plan → browse_* tool call → evaluate → repeat │
└───────────────────────┬──────────────────────────────────┘
│ MCP Protocol (stdio, JSON-RPC)
▼
┌──────────────────────────────────────────────────────────┐
│ ProBrowser MCP Server (Python) │
│ tool registry (29) → action coordinator → humanize.py │
│ (Gaussian delays · WPM typing · scroll easing) │
│ analyzer/: dom_parser · hybrid_strategy · captcha │
└───────────────────────┬──────────────────────────────────┘
│ CDP — Input.dispatch* events only
▼
┌──────────────────────────────────────────────────────────┐
│ User's Real Browser (Opera/Chrome, port 9222) │
│ sessions · cookies · logins preserved │
└──────────────────────────────────────────────────────────┘Wichtige Designentscheidungen
Entscheidung | Begründung |
Alles in Python | PhantomWright + |
PhantomWright statt OS-Eingabe | Keine ydotool/xdotool/KWin-Hacks; CDP-Ereignisse funktionieren unter Wayland und blockieren nie Benutzereingaben |
CDP-Eingabe statt JS-Injektion |
|
| Die Sitzung des Benutzers IST das Produkt — kein erneutes Anmelden, keine verlorenen Cookies |
Agent besitzt die Vision | Der Server extrahiert Geometrie/Screenshots; das eigene Vision-Modell des Agenten entscheidet die Koordinaten |
📁 Projektstruktur
probrowser/
├── main entry
│ ├── src/__main__.py # python -m src → stdio MCP loop
│ └── src/server.py # registry (29 tools) + dispatch + timeouts + captcha hooks
├── core
│ ├── src/browser/connection.py # connect_over_cdp, session persistence, page recovery
│ ├── src/browser/tab_manager.py # tab discovery / switching
│ ├── src/humanize.py # Gaussian timing middleware
│ ├── src/errors.py # classify_exception → structured error codes
│ ├── src/config.py # env-driven configuration
│ └── src/logging.py # per-action latency/success logging
├── tools (src/tools/, 29 modules)
│ ├── navigate · wait · list_tabs · switch_tab · open_tab · close_tab
│ ├── click · validate_position · click_position · type · hover · keyboard
│ ├── scroll · drag_drop
│ ├── get_dom · find · get_text · eval_js
│ ├── screenshot · screenshot_viewport · screenshot_save
│ ├── check_captcha · captcha_grid · solve_captcha
│ └── detect_browsers · check_browser · open_browser · help · list_tools
├── analyzer (src/analyzer/)
│ ├── dom_parser.py # DOM → simplified JSON (interactive + visible only)
│ ├── hybrid_strategy.py # DOM-first, vision fallback
│ └── captcha.py # CAPTCHA/ad-overlay detection
├── captcha (src/captcha/)
│ ├── grid.py # grid geometry + cropped screenshot extraction
│ └── solver.py # tile clicking + verify flow
├── docs/ # 11 topics served via browse_help()
├── tests/ # 87 unit tests + integration suite
├── AGENTS.md / CLAUDE.md # operating guide injected into agents
└── dev-phase-mcp-server.md # dev-phase principles🛡️ Anti-Erkennung
Browser-Umgehungs-Stack
Ebene | Implementierung | Detail |
Engine | PhantomWright (gepatchter Playwright-Treiber) |
|
Patches | Stealth-Patches vor jedem Seiten-JS |
|
Eingabe | CDP | Nicht |
Sitzung | Echtes Benutzerprofil + echte IP + Erweiterungen | Am Fingerabdruck ändert sich nichts |
Timing | Humanize-Middleware bei jeder Aktion | Gauß-Verzögerungen, natürliche WPM, sanftes Scrollen |
Was weiterhin funktioniert
Deine Logins, Cookies, Erweiterungszustand, IP-Reputation, Canvas/WebGL/Audio-Fingerprints — alles bleibt nativ, weil der Browser deiner ist.
Einschränkungen
Aggressive Anti-Bot-Dienste (Cloudflare Turnstile, hCaptcha-Verhaltensanalyse) können weiterhin an der IP-Reputation scheitern. Fallback-Pfad: Screenshots + validate_position → click_position, plus das CAPTCHA-Toolkit.
🧪 Testen
# Unit suite — fake pages, no browser required (87 tests)
.venv/bin/python -m pytest tests/ -q
# Integration suite — needs Opera running with CDP
.venv/bin/python -m pytest tests/test_integration.py -m integrationTính năng
Feature | Beschreibung |
🌐 Steuerung eines echten Browsers | An laufenden Opera/Chrome über CDP anbinden – Session, Cookies und Login bleiben erhalten |
🧰 29 MCP-Tools | Navigation, Tabs, Klick/Tippen/Hover/Tastatur, Scrollen, Drag-and-Drop, DOM/Text extrahieren, JS, Screenshot, CAPTCHA |
🕒 Menschliche Simulation | Gaußsche Verzögerung zwischen den Tasten (45–75 WPM), natürlicher Klick-Rhythmus, Scroll-Ease-out |
🔍 Hybrid-DOM + Vision | Bevorzugt strukturiertes DOM; nur wenn fehlt, Wechsel zu Screenshot + Koordinaten |
🎯 Koordinaten-Verifizierung | Bild mit X/Y-Achsen annotieren, die sich genau bei O=(x,y) schneiden, vor dem Koordinaten-Klick |
🧩 CAPTCHA-Verarbeitung | Automatische Erkennung nach Navigation; Grid per Agent-Vision lösen; Auto-Solve über 2Captcha |
🚨 Fehler mit Aktion | Jeder Fehler gibt |
✅ Getestet | 87 Unit-Tests + Integrationstests auf echtem Browser |
Schnelle Installation
git clone https://github.com/YOUR_USER/probrowser.git && cd probrowser
./setup.sh # venv + dependencies + verify
opera --remote-debugging-port=9222 # hoặc để agent tự mởServer in kilo.json deklarieren (siehe Quick Start), Client neu starten, fertig.
Erstellt mit 🎵 auf Arch Linux · MIT License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables AI agents to directly control your real Chrome browser with full context including login sessions, cookies, and open tabs. It provides tools for page scanning, JavaScript execution, CDP control, screenshots, and physical mouse/keyboard input for authentic browser automation.20239MIT
- AlicenseBqualityAmaintenanceEnables browser automation through the Model Context Protocol, allowing AI agents to control Chrome, Firefox, or Edge for tasks like navigation, clicking, typing, and screenshots.3948MIT

Browseagent MCPofficial
AlicenseAqualityDmaintenanceEnables AI agents to control web browsers through the Model Context Protocol, supporting navigation, clicking, typing, and screenshots.12101MIT- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create and control real, isolated browser profiles with engine-level fingerprinting and per-profile proxies, providing antidetect browsing capabilities through a Model Context Protocol interface.MIT
Related MCP Connectors
Reliable web access for AI agents: smart HTTP, rotating proxies, and full-browser rendering.
Live browser debugging for AI assistants — DOM, console, network via MCP.
A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/momadhuynh04/probrowser'
If you have feedback or need assistance with the MCP directory API, please join our Discord server