Browser Use über den privaten Reverse Proxy anbieten #21

Closed
opened 2026-07-17 11:56:55 +02:00 by frank · 1 comment
Owner

Ziel

MCP-Agenten können einen realen Browser im privaten Proxy-Netz starten und kontrolliert für JavaScript-lastige Seiten, Navigation und Interaktionen verwenden. Sämtliche Browser-Netzwerkzugriffe verlassen das System über die private Proxy-Maschine.

Open-Source-Basis und Architekturentscheidung

Vor der Implementierung wird eine kurze ADR zwischen zwei Open-Source-Varianten erstellt:

  1. Bevorzugter Go-nativer MVP: chromedp
    • MIT-lizenziert
    • direkte Integration in den Go-Prozess
    • steuert Chromium über das Chrome DevTools Protocol
  2. Funktionsreichere Sidecar-Option: microsoft/playwright-mcp beziehungsweise Playwright
    • Apache-2.0
    • Chromium, Firefox und WebKit
    • vorhandene agentengerechte Accessibility-Snapshots und Browser-Tools
    • benötigt einen isolierten Node-/Browser-Sidecar und eine explizite Bridge in das bestehende Reverse-Tunnel-Modell

Rod kann als weitere MIT-lizenzierte Go-CDP-Alternative bewertet werden. Die ADR entscheidet anhand von Wartungsstand, Packaging, Session-Isolation, Tool-Semantik, Ressourcenverbrauch und Sicherheitsgrenzen.

Scope

  • Browser-Backend läuft ausschließlich auf der privaten Proxy-Seite.
  • Adapter-Schnittstelle definieren, damit MCP-Tool-Schemas nicht fest an eine konkrete Browser-Bibliothek gekoppelt sind.
  • Tool-Grundumfang:
    • browser_open beziehungsweise navigate
    • browser_snapshot mit Accessibility-/DOM-Sicht
    • browser_click
    • browser_type
    • browser_wait
    • browser_screenshot
    • browser_close
  • Opaque browser_session_id zur expliziten Zustandsübergabe zwischen Tool-Aufrufen.
  • Isolierte Inkognito-Kontexte als Default; keine persistente Profil- oder Cookie-Wiederverwendung ohne explizite Betreiberkonfiguration.
  • Harte Limits für Sessions, Tabs, Laufzeit, Speicher, Downloads, Screenshots und parallele Aktionen.
  • SSRF-/Netzwerk-Policy auf jede Navigation, Subresource und jeden Redirect anwenden; file-, data- und chrome-interne URLs standardmäßig sperren.
  • Downloads standardmäßig deaktivieren oder in ein isoliertes, quotiertes Temp-Verzeichnis leiten.
  • JavaScript-Ausführung nur über klar begrenztes Tool; keine beliebige lokale Prozess- oder Dateisystemausführung.
  • Browserprozess sandboxen, als unprivilegierter Benutzer betreiben und bei Timeout/Disconnect zuverlässig beenden.
  • Browser-/Backend-Fähigkeiten beim Proxy-Handshake ankündigen, damit der MCP-Server Tools nur bei verfügbarer Capability anbietet.
  • Screenshots und große Snapshots über begrenzte Artefakte oder Resource Links transportieren statt unbegrenzt im JSON-RPC-Body.
  • Strukturierte Logs und Metriken ohne Seiteninhalte, Formulardaten, Cookies oder Tokens.

Akzeptanzkriterien

  • ADR mit begründeter Backend-Wahl ist im Wiki dokumentiert.
  • Ein End-to-End-Test navigiert über MCP und Reverse-Tunnel zu einer JavaScript-Testseite, interagiert mit einem Element und liest das Ergebnis.
  • Der Zielserver sieht die IP des privaten Proxy-Hosts.
  • Zwei Sessions sind hinsichtlich Cookies, Storage und Tabs voneinander isoliert.
  • Abbruch oder Tunnelverlust beendet die zugehörige Browser-Session innerhalb einer festen Frist.
  • SSRF-Tests decken Hauptnavigation, Redirects und Subresources ab.
  • Keine Browser-Debug-Schnittstelle wird ungeschützt im Netzwerk exponiert.
  • Installation und benötigte Chromium-/Node-Artefakte sind reproduzierbar und versioniert.

Abhängigkeiten

  • funktionsfähiger Private-Proxy-Modus
  • Tunnel-Multiplexing und Cancel/Deadline
  • Netzwerk-Policy und SSRF-Schutz
  • Observability und Graceful Shutdown

Referenzen

## Ziel MCP-Agenten können einen realen Browser im privaten Proxy-Netz starten und kontrolliert für JavaScript-lastige Seiten, Navigation und Interaktionen verwenden. Sämtliche Browser-Netzwerkzugriffe verlassen das System über die private Proxy-Maschine. ## Open-Source-Basis und Architekturentscheidung Vor der Implementierung wird eine kurze ADR zwischen zwei Open-Source-Varianten erstellt: 1. Bevorzugter Go-nativer MVP: chromedp - MIT-lizenziert - direkte Integration in den Go-Prozess - steuert Chromium über das Chrome DevTools Protocol 2. Funktionsreichere Sidecar-Option: microsoft/playwright-mcp beziehungsweise Playwright - Apache-2.0 - Chromium, Firefox und WebKit - vorhandene agentengerechte Accessibility-Snapshots und Browser-Tools - benötigt einen isolierten Node-/Browser-Sidecar und eine explizite Bridge in das bestehende Reverse-Tunnel-Modell Rod kann als weitere MIT-lizenzierte Go-CDP-Alternative bewertet werden. Die ADR entscheidet anhand von Wartungsstand, Packaging, Session-Isolation, Tool-Semantik, Ressourcenverbrauch und Sicherheitsgrenzen. ## Scope - Browser-Backend läuft ausschließlich auf der privaten Proxy-Seite. - Adapter-Schnittstelle definieren, damit MCP-Tool-Schemas nicht fest an eine konkrete Browser-Bibliothek gekoppelt sind. - Tool-Grundumfang: - browser_open beziehungsweise navigate - browser_snapshot mit Accessibility-/DOM-Sicht - browser_click - browser_type - browser_wait - browser_screenshot - browser_close - Opaque browser_session_id zur expliziten Zustandsübergabe zwischen Tool-Aufrufen. - Isolierte Inkognito-Kontexte als Default; keine persistente Profil- oder Cookie-Wiederverwendung ohne explizite Betreiberkonfiguration. - Harte Limits für Sessions, Tabs, Laufzeit, Speicher, Downloads, Screenshots und parallele Aktionen. - SSRF-/Netzwerk-Policy auf jede Navigation, Subresource und jeden Redirect anwenden; file-, data- und chrome-interne URLs standardmäßig sperren. - Downloads standardmäßig deaktivieren oder in ein isoliertes, quotiertes Temp-Verzeichnis leiten. - JavaScript-Ausführung nur über klar begrenztes Tool; keine beliebige lokale Prozess- oder Dateisystemausführung. - Browserprozess sandboxen, als unprivilegierter Benutzer betreiben und bei Timeout/Disconnect zuverlässig beenden. - Browser-/Backend-Fähigkeiten beim Proxy-Handshake ankündigen, damit der MCP-Server Tools nur bei verfügbarer Capability anbietet. - Screenshots und große Snapshots über begrenzte Artefakte oder Resource Links transportieren statt unbegrenzt im JSON-RPC-Body. - Strukturierte Logs und Metriken ohne Seiteninhalte, Formulardaten, Cookies oder Tokens. ## Akzeptanzkriterien - ADR mit begründeter Backend-Wahl ist im Wiki dokumentiert. - Ein End-to-End-Test navigiert über MCP und Reverse-Tunnel zu einer JavaScript-Testseite, interagiert mit einem Element und liest das Ergebnis. - Der Zielserver sieht die IP des privaten Proxy-Hosts. - Zwei Sessions sind hinsichtlich Cookies, Storage und Tabs voneinander isoliert. - Abbruch oder Tunnelverlust beendet die zugehörige Browser-Session innerhalb einer festen Frist. - SSRF-Tests decken Hauptnavigation, Redirects und Subresources ab. - Keine Browser-Debug-Schnittstelle wird ungeschützt im Netzwerk exponiert. - Installation und benötigte Chromium-/Node-Artefakte sind reproduzierbar und versioniert. ## Abhängigkeiten - funktionsfähiger Private-Proxy-Modus - Tunnel-Multiplexing und Cancel/Deadline - Netzwerk-Policy und SSRF-Schutz - Observability und Graceful Shutdown ## Referenzen - chromedp: https://github.com/chromedp/chromedp - Chrome DevTools Protocol: https://chromedevtools.github.io/devtools-protocol/ - Microsoft Playwright: https://github.com/microsoft/playwright - Microsoft Playwright MCP: https://github.com/microsoft/playwright-mcp - Rod: https://github.com/go-rod/rod
Author
Owner

🤖 forge agent started

  • Agent: codex
  • Model: gpt-5.6-sol
  • Mode: pr
  • Trigger: assignee=agent|+5 mapped

Browser Use über den privaten Reverse Proxy anbieten — MCP-Agenten können einen realen Browser im privaten Proxy-Netz starten und kontrolliert für JavaScript-lastige Seiten, Navigation und Interaktionen verwenden. Sämtliche Browser-Netzwerkzugriffe…

🤖 **forge agent started** - Agent: `codex` - Model: `gpt-5.6-sol` - Mode: `pr` - Trigger: `assignee=agent|+5 mapped` Browser Use über den privaten Reverse Proxy anbieten — MCP-Agenten können einen realen Browser im privaten Proxy-Netz starten und kontrolliert für JavaScript-lastige Seiten, Navigation und Interaktionen verwenden. Sämtliche Browser-Netzwerkzugriffe…
frank closed this issue 2026-07-17 15:46:00 +02:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
ai-tools/private-proxy-mcp#21
No description provided.