ChatGPT iPhone Bridge
ChatGPT iPhone Bridge
Steuern Sie Mobile Safari auf einem echten per USB verbundenen iPhone von ChatGPT aus über den OpenAI Secure MCP Tunnel und Appium MCP.
Dies ist eine inoffizielle, experimentelle lokale Brücke. Sie öffnet keinen öffentlichen eingehenden Port und setzt Appium nicht direkt dem Internet aus.
Architektur
ChatGPT
-> OpenAI Secure MCP Tunnel
-> tunnel-client on your Mac
-> Appium MCP over stdio
-> XCUITest / WebDriverAgent
-> USB-connected iPhone
-> Mobile SafariRelated MCP server: Simulator MCP
Voraussetzungen
macOS mit Xcode 16 oder neuer
Node.js 22 oder neuer
ein gekoppeltes iPhone mit aktiviertem Entwicklermodus
Einstellungen -> Apps -> Safari -> Fortgeschritten -> Web Inspector auf dem iPhone aktiviert
Einstellungen -> Apps -> Safari -> Fortgeschritten -> Remote Automation auf dem iPhone aktiviert
eine Apple-ID/ein Personal Team in Xcode
ein gültiges Entwicklungsprofil, dessen Bundle-ID
*ist oder auf.xctrunnerendetein OpenAI Secure MCP Tunnel, der der Ziel-Plattform-Organisation und dem ChatGPT-Workspace zugeordnet ist
ein Runtime-API-Schlüssel mit Tunnels Read + Use
Zugriff auf die ChatGPT-App im Entwicklermodus
Offizielle Tunnel-Dokumentation: OpenAI Secure MCP Tunnel.
1. Bootstrap
bash scripts/bootstrap-local.shDas Repository legt appium-mcp auf 1.92.7 fest. Das Bootstrap validiert die Toolchain, installiert das exakte Paket, führt einen direkten MCP-Handshake aus, listet Xcode-Geräte auf und meldet die Signierbereitschaft.
Falls die Signierung fehlt, fügen Sie die Apple-ID unter Xcode -> Einstellungen -> Accounts hinzu und wählen Sie das Personal Team aus. Erzeugen Sie dann das exakte WDA-Runner-Profil aus dem gebündelten Projekt:
IOS_DEVICE_UDID=<connected UDID> \
DEVELOPMENT_TEAM=<Apple team ID> \
bash scripts/prepare-ios-signing.shDie Standard-Bundle-ID des Runner-Profils ist com.kapunakap.chatgptiphonebridge.WebDriverAgentRunner.xctrunner. Überschreiben Sie die Basis bei Bedarf mit WDA_BUNDLE_ID_BASE; lassen Sie das Suffix .xctrunner weg, da Xcode es zum Runner hinzufügt.
Führen Sie es dann erneut aus:
bash scripts/ios-signing-status.shVertrauen Sie vor dem ersten WDA-Start der Developer App auf dem iPhone unter Einstellungen -> Allgemein -> VPN & Geräteverwaltung.
Falls die Erstellung der Safari-Sitzung meldet, dass der Remote-Debugger nicht geantwortet hat, überprüfen Sie sowohl Web Inspector als auch Remote Automation erneut, schließen Sie alle modalen Safari-Dialoge oder den Erststart-Bildschirm und halten Sie das Telefon entsperrt. about:blank muss funktionieren, bevor Sie eine Anwendungs-URL testen.
2. Einen dedizierten Tunnel bereitstellen
Erstellen Sie einen Tunnel in der OpenAI Platform und ordnen Sie ihn dem ChatGPT-Workspace zu, der ihn verwenden wird. Speichern Sie seinen Runtime-Schlüssel außerhalb dieses Repositorys:
mkdir -p "$HOME/.config/chatgpt-iphone-bridge"
chmod 700 "$HOME/.config/chatgpt-iphone-bridge"
umask 077
cat > "$HOME/.config/chatgpt-iphone-bridge/runtime-api-key"
# paste the runtime key, then press Ctrl-D
chmod 600 "$HOME/.config/chatgpt-iphone-bridge/runtime-api-key"Übergeben Sie den Rohschlüssel niemals als Befehlszeilenargument und committen Sie ihn nicht.
3. Verbinden
CONTROL_PLANE_TUNNEL_ID=tunnel_... bash scripts/connect-tunnel.shStandardwerte:
Tunnel-Alias:
local-iphoneRuntime-Schlüssel:
~/.config/chatgpt-iphone-bridge/runtime-api-keyScreenshots:
~/Library/Application Support/chatgpt-iphone-bridge/screenshots
4. Die ChatGPT-App erstellen
In den Plugins des ChatGPT-Entwicklermodus:
Erstellen Sie eine App namens Local iPhone.
Wählen Sie Tunnel.
Wählen Sie den dedizierten iPhone-Tunnel.
Wählen Sie No Auth für die MCP-App selbst.
Ein lokaler Health-Check ist keine Abnahme durch die gehostete Umgebung. Vergewissern Sie sich, dass ChatGPT die Appium-Tools erkennen und aufrufen kann, bevor Sie der Brücke vertrauen.
5. Das echte Gerät vorbereiten
Bitten Sie ChatGPT, Local iPhone in dieser Reihenfolge zu verwenden:
Rufen Sie
select_devicemitplatform=iosundiosDeviceType=realauf.Rufen Sie
appium_prepare_ios_real_deviceohne eine Profil-UUID auf.Wählen Sie ein zurückgegebenes Profil, das mit
recommendedForWda=truemarkiert ist.Rufen Sie das Vorbereitungstool erneut mit dieser Profil-UUID auf.
Erstellen Sie eine Sitzung mit
platform=iosund einem JSON-Capabilities-String, der Folgendes enthält:
{
"browserName": "Safari",
"appium:usePreinstalledWDA": true,
"appium:prebuiltWDAPath": "<returned path>",
"appium:wdaLaunchTimeout": 30000,
"appium:initialDeeplinkUrl": "<exact test URL>"
}Verwenden Sie die exakt zurückgegebenen Werte. Nach erfolgreicher Auswahl oder Vorbereitung des echten Geräts injiziert die Brücke die nur zur Laufzeit verfügbare iPhone-UDID, wenn eine echte WDA-Sitzung appium:udid auslässt. Eine explizite UDID bleibt erhalten. Speichern Sie keine Geräte-IDs, Team-IDs, Profil-UUIDs oder WDA-Pfade in diesem Repository.
Betrieb
npm test
bash scripts/status.sh
bash scripts/stop.shÜbergeben Sie bei einem lokalen einmaligen MCP-Toolaufruf die Argumente über stdin, damit gerätespezifische Werte nicht in den Prozessargumenten erscheinen:
printf '%s\n' '{"platform":"ios","iosDeviceType":"real"}' \
| npm run tool -- select_deviceLöschen Sie die aktive Appium-Sitzung, bevor Sie den Tunnel stoppen, falls möglich.
Sitzungssicherheit
Diese Brücke setzt den Standard-Server über die unterstützte Plugin-API von appium-mcp/core zusammen, ohne Appium-Tools hinzuzufügen oder zu ersetzen. Sie behält die Upstream-Schnittstelle mit 31 Tools bei und fügt nur Laufzeit-Schutzmaßnahmen hinzu:
eine Auswahl des echten Geräts bleibt für die spätere Erstellung von WDA-Sitzungen verfügbar;
explizite iPhone-UDIDs bleiben erhalten;
Simulator- und Nicht-iOS-Sitzungs-Capabilities bleiben unverändert;
gleichzeitige oder doppelte Erstellung von Appium-eigenen Sitzungen schlägt sicher fehl.
Gerätekennungen verbleiben ausschließlich im Speicher und werden niemals in das Repository geschrieben.
Sicherheit
Diese Brücke kann ein echtes entsperrtes Telefon und alle angemeldeten Safari-Sitzungen steuern. Lesen Sie SECURITY.md, bevor Sie sie verbinden.
Lizenz
MIT. Siehe LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Let your AI agent control real iPhones: screenshots, tap, swipe, type and open apps.
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
Give an AI agent an iPhone to see, tap and type on over MCP. Free early access (Simulator).
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides AI assistants with Safari browser automation and developer tools access, enabling LLMs to control Safari, access console logs, monitor network activity, and perform browser automation tasks.139 npm33MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI to control iOS simulators through the MCP protocol. Supports device management, UI automation, and network interception including screenshot capture, text input, and HTTP request mocking.-
- AlicenseAqualityAmaintenanceMCP Bridge is a local-first Linux/Windows desktop app connecting ChatGPT to approved files and Chrome through authorized OpenAI tunnels, with optional shell tools. The Glama-hosted v0.1.0 release is a restricted READ-ONLY documentation demo: five tools can access only bundled public examples, not your computer, browser, credentials, shell, or files.526 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to operate a real iPhone from a Mac by reading the screen over USB and sending taps, swipes, typing, and app launches over Bluetooth, with every action returning a fresh screenshot so the agent can verify its work. Runs as a local MCP server, so agents can test iOS apps on physical devices and automate everyday phone tasks.43 npm10MIT