Skip to main content
Glama
rodneyrdx

safari-ios-webinspector-mcp

by rodneyrdx

Safari iOS Web Inspector MCP

Ein macOS-only MCP-Server zum Inspizieren und Automatisieren von iPhone-Safari- und iPhone-Chrome-Sitzungen über Safari Web Inspector.

Status

Dieses Repository enthält eine funktionierende erste Implementierung von:

  • Umgebungsprüfungen für macOS, Xcode, idevice_id und ios_webkit_debug_proxy

  • Anreicherung vertrauenswürdiger Geräte mit physischen UDIDs und iOS-Versionen von libimobiledevice

  • Verwaltung des Lebenszyklus der iOS-WebKit-Brücke

  • Geräte- und Seitenermittlung über ios_webkit_debug_proxy

  • verwaltete iPhone-Safari-Sitzungen über Apples safaridriver

  • verwaltete iPhone-Safari-Sitzungen über die rohe WebKit-Automation-Domain

  • protokollgestützte Laufzeitauswertung, Konsolenaufzeichnung und Netzwerkereignis-Pufferung

  • DOM-Snapshot-Erstellung und Automatisierung auf Seitenebene durch zur Laufzeit injiziertes JavaScript

  • Safari/Web Inspector UI-Fallback für Absturzerkennung, Neuladeversuche und Screenshots

  • Debug-Bundle-Export

Aktuelle Einschränkung:

  • Die Brücke ist protokollorientiert und pragmatisch. Sie normalisiert mehrere WebKit-Ereignisformen, aber Unterschiede in den iOS-/WebKit-Protokollen können die pro Seite verfügbaren Fähigkeiten weiterhin einschränken.

  • Auf dem aktuell angeschlossenen echten iPhone werden gesunde Safari-Seiten auf transportMode: broker_only herabgestuft, sodass die Laufzeit-/Seitenautomatisierung bewusst deaktiviert ist und der Server auf Workflows für Beweissicherung und Wiederherstellung zurückfällt.

  • Der neue verwaltete safaridriver-Pfad bietet sichere reine Browserautomatisierung in einem neuen Safari-Automatisierungsfenster, bindet sich aber noch nicht an eine bestehende aktive Safari-Registerkarte an.

  • Der neue launch_automation_page-Pfad bietet ebenfalls sichere reine Browserautomatisierung in einem neuen isolierten Automatisierungskontext, übernimmt aber wie Safari WebDriver keine bestehende normale Safari-Registerkarte.

  • Konsolen- und Netzwerk-Streaming sind auf dem verwalteten safaridriver-Backend weiterhin nicht verfügbar.

  • Konsolen- und Netzwerk-Streaming sind auf dem verwalteten Backend der rohen Automation ebenfalls nicht verfügbar.

Sicherheitsgrenze:

  • dieses Projekt ist bewusst auf den Browser beschränkt

  • Reset, Wiederherstellung, Pairing-Mutation, Firmware oder allgemeine iPhone-Systemautomatisierung sind nicht im Umfang enthalten

Related MCP server: MCP Safari Server

Installation

npm install
npm run build

Lokal ausführen:

npm run dev

Nach dem Erstellen als MCP-Server verwenden:

[mcp_servers.safari-ios-webinspector]
command = "node"
args = ["/absolute/path/to/dist/src/index.js"]

Dokumentation

Testlauf

Einen Live-Geräte-Testlauf gegen das verbundene iPhone ausführen:

npm run shakeout

Einen rohen Broker-Trace gegen eine gesunde Seite erfassen:

npm run trace:broker

Den rohen iPhone-Automation-Shim direkt testen:

npm run probe:automation -- --udid <DEVICE_UDID>

Herkunft und Datenschutz

Dieses öffentliche Repository enthält eine unabhängig erstellte Implementierung, die auf dem dokumentierten Verhalten von WebKit und den öffentlichen Schnittstellen der deklarierten Abhängigkeiten basiert. Forschungsnotizen verlinken auf die Upstream-Projekte und Dokumentationen, die der Protokolluntersuchung zugrunde lagen.

Gerätekennungen, lokale Pfade, erfasste Seiten, Debug-Bundles und kunden- oder anwendungsspezifisches Material sind nicht enthalten. Die Tests verwenden synthetische Gerätedaten und example.com-URLs.

Lizenz

MIT. Siehe LICENSE. Pakete von Drittanbietern bleiben unter ihren jeweiligen Lizenzen, wie in package-lock.json und ihren Distributionen angegeben.

Related MCP Connectors

Related MCP Servers