Skip to main content
Glama
kapunakap

ChatGPT iPhone Bridge

by kapunakap

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 Safari

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 .xctrunner endet

  • ein 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.sh

Das 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.sh

Die 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.sh

Vertrauen 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.sh

Standardwerte:

  • Tunnel-Alias: local-iphone

  • Runtime-Schlüssel: ~/.config/chatgpt-iphone-bridge/runtime-api-key

  • Screenshots: ~/Library/Application Support/chatgpt-iphone-bridge/screenshots

4. Die ChatGPT-App erstellen

In den Plugins des ChatGPT-Entwicklermodus:

  1. Erstellen Sie eine App namens Local iPhone.

  2. Wählen Sie Tunnel.

  3. Wählen Sie den dedizierten iPhone-Tunnel.

  4. 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:

  1. Rufen Sie select_device mit platform=ios und iosDeviceType=real auf.

  2. Rufen Sie appium_prepare_ios_real_device ohne eine Profil-UUID auf.

  3. Wählen Sie ein zurückgegebenes Profil, das mit recommendedForWda=true markiert ist.

  4. Rufen Sie das Vorbereitungstool erneut mit dieser Profil-UUID auf.

  5. Erstellen Sie eine Sitzung mit platform=ios und 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_device

Lö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.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent

  • A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

View all MCP Connectors

Latest Blog Posts

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/kapunakap/chatgpt-iphone-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server