/ Verzeichnis / Playground / iOS Simulator MCP
● Community joshuayoes ⚡ Sofort

iOS Simulator MCP

von joshuayoes · joshuayoes/ios-simulator-mcp

xcrun simctl + idb von Claude aus steuern — Simulator starten, .app installieren, tippen, tippen, screenshoten, Video aufnehmen, alles ohne Xcode zu öffnen.

iOS Simulator MCP kapselt Apples xcrun simctl und Facebooks idb, um Claude den iOS-Simulator bedienen zu lassen. Ideal für UI-Test-Loops, Bug-Reproduktion und Screenshot/Video-Erfassung für Issue-Tickets — genau die Arbeit, bei der das Wechseln zwischen Xcode und Chat lästig ist.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

ios-simulator-mcp.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ios-simulator-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ]
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ios-simulator-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ]
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ios-simulator-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ]
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ios-simulator-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ]
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ios-simulator-mcp",
      "command": "npx",
      "args": [
        "-y",
        "ios-simulator-mcp"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "ios-simulator-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "ios-simulator-mcp"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add ios-simulator-mcp -- npx -y ios-simulator-mcp

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: iOS Simulator MCP

App-Store-Screenshots für mehrere Geräte generieren

👤 iOS-Entwickler, die ein Release vorbereiten ⏱ ~25 min intermediate

Wann einsetzen: 6,5", 6,7" und iPad-Screenshots in Hell + Dunkel werden schnell benötigt.

Voraussetzungen
  • Xcode + simctl — Standard-Xcode-Installation
  • idb installiertbrew tap facebook/fb && brew install idb-companion
  • .app-Bundle gebautxcodebuild -scheme YourApp -destination 'platform=iOS Simulator' build
Ablauf
  1. Geräte einrichten
    iPhone 15 Pro Max und iPad Pro 13-inch Simulatoren starten. Auflisten, wenn bereit.✓ Kopiert
    → list_simulators zeigt beide als Booted
  2. Status-Leiste setzen
    Status-Leiste auf 9:41, vollem Akku, vollem Signal auf beiden setzen. App-Store-Stil.✓ Kopiert
    → status_bar_set erfolgreich; sauberes Aussehen
  3. Installieren + Screenshots
    MyApp.app auf beiden installieren. Starten, zu Home → Profil → Einstellungen navigieren, jeden Schritt in Hell- und Dunkel-Modus screenshoten. Unter /screenshots/<device>/<mode>/ speichern.✓ Kopiert
    → Ordner pro Gerät, mit Hell- und Dunkel-Varianten jedes Bildschirms

Ergebnis: Komplettes App-Store-Screenshot-Paket in ca. 10 Min, ohne manuelles Erfassen.

Fallstricke
  • Simulator startet, aber App stürzt beim Start ab — simctl-Log ziehen; auf fehlende Entitlements prüfen
  • Dynamic Island überdeckt Status-Leisten-Anpassungen — Auf Pro Max gilt status_bar_set trotzdem unter dem DI
Kombinieren mit: filesystem

Sauberes Repro-Video für einen UI-Bug erfassen

👤 iOS-Entwickler / QA ⏱ ~10 min beginner

Wann einsetzen: Bug reproduziert sich nur im Simulator; ein Video für das Ticket soll erstellt werden.

Ablauf
  1. Aufnahme starten
    iPhone 15 starten. build.app installieren. Bildschirmaufnahme starten.✓ Kopiert
    → record_video_start gibt recording_id zurück
  2. Reproduzieren
    App öffnen. Auf Profil tippen, dann auf den Bearbeiten-Stift. "Test" in das Namensfeld eingeben. Auf Speichern tippen. 2 Sekunden warten.✓ Kopiert
    → Sequenz ausgeführt; Bug sichtbar, wenn er auftritt
  3. Stoppen und anhängen
    Aufnahme stoppen, als bug-1234.mov in /tickets/ speichern.✓ Kopiert
    → MOV gespeichert

Ergebnis: Repro-Video bereit zum Anhängen an das Ticket.

Fallstricke
  • Tipp verfehlt, weil Layout anders als erwartet — Zuerst describe_ui verwenden, um aktuelle Frames zu finden
Kombinieren mit: filesystem · github

Smoke-Test-Loop nach jedem Rebuild ausführen

👤 iOS-Entwickler im engen Build/Test-Zyklus ⏱ ~15 min intermediate

Wann einsetzen: An einem Bildschirm wird iteriert und nach jedem Rebuild soll ein 30-Sekunden-Smoke-Test laufen.

Ablauf
  1. Rebuild + Neuinstallation
    xcodebuild für Schema MyApp Debug ausführen, dann auf dem gestarteten Simulator neu installieren.✓ Kopiert
    → Installation erfolgreich mit neuem Bundle
  2. Smoke-Pfad durchlaufen
    App öffnen, mit Test-Account anmelden, zum bearbeiteten Bildschirm navigieren, screenshoten.✓ Kopiert
    → Screenshot sieht richtig aus; keine Abstürze im Log

Ergebnis: Schnellerer Build/Test-Zyklus ohne manuelles Tippen.

Fallstricke
  • Anmeldeflow hat ein Captcha — Captcha-Bypass-Build verwenden oder Auth-Flow stubben

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

ios-simulator-mcp + filesystem

Screenshots in das Repository speichern

Screenshots aller Hauptbildschirme erfassen, in /design/screenshots/ speichern.✓ Kopiert
ios-simulator-mcp + github

Bug-Issue mit Repro-Video öffnen

Bug aufnehmen, dann GitHub-Issue mit der MOV-Datei und Repro-Schritten erstellen.✓ Kopiert
ios-simulator-mcp + xcodebuildmcp

Bauen und sofort Smoke-Test ausführen

XcodeBuild: Debug bauen. Simulator: installieren + starten + screenshoten.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
list_simulators (keine) Erster Schritt kostenlos
boot_simulator device_id: str Simulator einschalten kostenlos
install_app device_id, path: str (.app) Build übertragen kostenlos
launch_app device_id, bundle_id: str App öffnen kostenlos
tap device_id, x, y Koordinate antippen kostenlos
type_text device_id, text: str Text eingeben kostenlos
screenshot device_id, path? Zustand erfassen kostenlos
record_video_start device_id, path: str Video beginnen kostenlos
record_video_stop recording_id Video beenden kostenlos
describe_ui device_id Tipp-Koordinaten finden kostenlos
status_bar_set device_id, time, battery, signal Saubere App-Store-Screenshots kostenlos

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Keine — lokal
Tokens pro Aufruf
100–800; Screenshots werden per Pfad referenziert, nicht eingebettet
Kosten in €
Kostenloser Open Source
Tipp
describe_ui einmal zum Finden von Tipp-Koordinaten verwenden, statt wiederholt zu raten

Sicherheit

Rechte, Secrets, Reichweite

Minimale Scopes: simctl + idb ausführen
Credential-Speicherung: Keine — aber App-Daten im Simulator gehören dem Benutzer
Datenabfluss: Nur lokal
Niemals gewähren: root / Kernel-Zugriff

Fehlerbehebung

Häufige Fehler und Lösungen

idb nicht gefunden

brew tap facebook/fb && brew install idb-companion; auch pip install fb-idb

Prüfen: idb list-targets
Tipp landet nicht

describe_ui verwenden; Koordinaten unterscheiden sich je nach Gerätegröße; Element könnte in einem Sheet sein

Simulator gestartet aber bleibt schwarz

Simulator herunterfahren + zurücksetzen; manchmal muss Xcode Runtime neu heruntergeladen werden

Aufnahme beschädigt

Direkt simctl io recordVideo verwenden; der idb-Wrapper schlägt gelegentlich bei macOS-Schlaf fehl

Alternativen

iOS Simulator MCP vs. andere

AlternativeWann stattdessenKompromiss
XcodeBuildMCP (Sentry)Build + Simulator in einem MCP gewünschtSchwerer; breiterer Umfang
MaestroVollständige UI-Test-DSL gewünschtStandardmäßig nicht LLM-gesteuert
Xcode Cloud / FastlaneProduktions-CIAndere Schicht; nicht interaktiv

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen