Integrations
Provides tools for iOS simulator management including listing simulators, booting them, installing apps, launching apps, capturing logs, automating UI interactions, and taking screenshots.
Supports building and running applications on macOS, including app launching and bundle ID extraction for macOS applications.
Integrates with Sentry for error monitoring and diagnostics to track issues, crashes, and unexpected errors, with options to disable this functionality.
Ein Model Context Protocol (MCP)-Server, der Xcode-bezogene Tools für die Integration mit KI-Assistenten und anderen MCP-Clients bereitstellt.
Inhaltsverzeichnis
- Überblick
- Warum?
- Merkmale
- Erste Schritte
- Inkrementelle Build-Unterstützung
- Fehlerbehebung
- Datenschutz
- Selektive Werkzeugregistrierung
- Demos
- Beitragen
- Lizenz
Überblick
Dieses Projekt implementiert einen MCP-Server, der Xcode-Operationen als Tools bereitstellt, die von KI-Agenten über das MCP-Protokoll aufgerufen werden können. Es ermöglicht die programmatische Interaktion mit Xcode-Projekten über eine standardisierte Schnittstelle, die für agentengesteuerte Entwicklungsabläufe optimiert ist.
Warum?
Das XcodeBuild MCP-Tool dient in erster Linie dazu, die Interaktion zwischen KI-Agenten und Xcode-Projekten zu optimieren und zu standardisieren. Durch die Bereitstellung dedizierter Tools für gängige Xcode-Operationen entfällt die Abhängigkeit von manuellen oder möglicherweise fehlerhaften Befehlszeilenaufrufen.
Dies gewährleistet einen zuverlässigen und effizienten Entwicklungsprozess und ermöglicht es Agenten, die Funktionen von Xcode nahtlos zu nutzen und gleichzeitig das Risiko von Konfigurationsfehlern zu reduzieren.
Entscheidend ist, dass dieses MCP es KI-Agenten ermöglicht, Codeänderungen selbstständig zu validieren, indem sie Projekte erstellen, Fehler prüfen und autonom iterieren. Im Gegensatz zu benutzergesteuerten Tools wie Sweetpad ermöglicht XcodeBuild MCP Agenten die effektive Automatisierung dieser Workflows.
Merkmale
Der XcodeBuildMCP-Server bietet die folgenden Toolfunktionen:
Xcode-Projektmanagement
- Projekte entdecken : Entdeckung von Xcode-Projekten und Arbeitsbereichen
- Build-Operationen : Plattformspezifische Build-Tools für macOS, iOS-Simulator und iOS-Geräteziele
- Projektinformationen : Tools zum Auflisten von Schemata und Anzeigen von Build-Einstellungen für Xcode-Projekte und -Arbeitsbereiche
- Clean Operations : Bereinigen Sie Build-Produkte mit der nativen Clean-Aktion von xcodebuild
- Inkrementelle Build-Unterstützung : Blitzschnelle Builds mit inkrementeller Build-Unterstützung (experimentell, Opt-in erforderlich)
Simulatorverwaltung
- Simulatorsteuerung : iOS-Simulatoren auflisten, starten und öffnen
- App-Bereitstellung : Installieren und starten Sie Apps auf iOS-Simulatoren
- Protokollerfassung : Erfassen Sie Laufzeitprotokolle von einem Simulator
- UI-Automatisierung : Interagieren Sie mit Simulator-UI-Elementen (Beta)
- Screenshot : Screenshots von einem Simulator aufnehmen (Beta)
App-Dienstprogramme
- Bundle-ID-Extraktion : Extrahieren Sie Bundle-IDs aus iOS- und macOS-App-Bundles
- App-Start : Starten Sie erstellte Anwendungen sowohl auf Simulatoren als auch auf macOS
Erste Schritte
Voraussetzungen
- macOS 14.5 oder höher
- Xcode 16.x oder höher
- mise
Einzeiliges Setup mit Mise
So installieren Sie Mise:
Weitere Informationen zu Mise finden Sie in der offiziellen Dokumentation .
Konfigurieren von MCP-Clients
Konfigurieren Sie Ihren MCP-Client (Windsurf, Cursor, Claude Desktop usw.) für die Verwendung des XcodeBuildMCP-Servers, indem Sie die MCP-Konfiguration Ihrer Clientanwendung ändern und die Versionsnummer so ändern, dass sie mit der Version übereinstimmt, die Sie verwenden möchten:
[!NOTE] Vermeiden Sie bei der Verwendung von mise die Verwendung des @latest-Tags, da mise das Paket zwischenspeichert und möglicherweise nicht automatisch auf die neueste Version aktualisiert. Verwenden Sie stattdessen lieber eine explizite Versionsnummer.
[!WICHTIG] Bitte beachten Sie, dass XcodeBuildMCP xcodebuild auffordert, die Makrovalidierung zu überspringen. Dies dient dazu, Fehler beim Erstellen von Projekten mit Swift-Makros zu vermeiden.
Mit einem Klick in VS Code installieren
Aktivieren der UI-Automatisierung (Beta)
Für UI-Automatisierungsfunktionen (Tippen, Wischen, Screenshot usw.) müssen Sie idb_companion von Facebook installieren:
Der idb-Client wird ebenfalls benötigt, XcodeBuildMCP versucht jedoch, ihn für Sie zu installieren. Sollten die UI-Automatisierungsfunktionen weiterhin nicht verfügbar sein, können Sie den Client manuell mit dem folgenden Befehl installieren (vorausgesetzt, Sie haben Python installiert):
[!WICHTIG] Bitte beachten Sie, dass sich die Funktionen zur UI-Automatisierung derzeit in der Betaphase befinden und daher noch einige Unvollständigkeiten aufweisen können. Sollten Sie auf Probleme stoßen, melden Sie diese bitte im Issue Tracker .
[!NOTE] Das Anzeigen von Bildern in Tool-Antworten und deren Einbettung in den Chat-Kontext wird möglicherweise nicht von allen MCP-Clients unterstützt. Derzeit ist bekannt, dass dies in Cursor unterstützt wird.
Inkrementelle Build-Unterstützung
XcodeBuildMCP bietet experimentelle Unterstützung für inkrementelle Builds. Diese Funktion ist standardmäßig deaktiviert und kann durch Setzen der Umgebungsvariable INCREMENTAL_BUILDS_ENABLED
auf true
aktiviert werden:
Um inkrementelle Builds zu aktivieren, setzen Sie die Umgebungsvariable INCREMENTAL_BUILDS_ENABLED
auf true
:
Beispiel für eine MCP-Clientkonfiguration:
[!WICHTIG] Bitte beachten Sie, dass die Unterstützung inkrementeller Builds derzeit experimentell ist und Ihre Ergebnisse variieren können. Bitte melden Sie auftretende Probleme im Issue Tracker .
Fehlerbehebung
Wenn bei XcodeBuildMCP Probleme auftreten, kann das Diagnosetool Ihnen bei der Identifizierung des Problems helfen, indem es detaillierte Informationen zu Ihrer Umgebung und Ihren Abhängigkeiten bereitstellt.
Diagnosetool
Das Diagnosetool ist ein eigenständiges Dienstprogramm, das Ihre Systemkonfiguration überprüft und den Status aller von XcodeBuildMCP benötigten Abhängigkeiten meldet. Es ist besonders nützlich bei der Meldung von Problemen.
Verwendung mit Mise
Verwendung mit npx
Das Diagnosetool gibt umfassende Informationen aus über:
- System- und Node.js-Umgebung
- Xcode-Installation und -Konfiguration
- Erforderliche Abhängigkeiten (xcodebuild, idb usw.)
- Umgebungsvariablen, die XcodeBuildMCP beeinflussen
- Status der Funktionsverfügbarkeit
Wenn Sie Probleme auf GitHub melden, fügen Sie bitte die vollständige Ausgabe des Diagnosetools bei, um die Fehlerbehebung zu erleichtern.
MCP-Serverprotokolle
Es kann hilfreich sein, Zugriff auf die Protokollmeldungen des MCP-Servers zu haben, um etwaige Probleme zu identifizieren. Die Protokolle werden von der Client-Anwendung erfasst, beispielsweise in Cursor:
Cursor:
Wenn Ihr MCP-Client keine Protokolldateien hat, können Sie den Server direkt mit dem MCP Inspector-Tool ausführen. Weitere Informationen hierzu finden Sie unter Debuggen . Nach dem Ausführen des MCP-Tools werden alle Protokollmeldungen im Fehlerbereich angezeigt, was bei der Diagnose hilfreich sein kann.
Datenschutz
Dieses Projekt verwendet Sentry zur Fehlerüberwachung und -diagnose. Sentry hilft uns, Probleme, Abstürze und unerwartete Fehler zu verfolgen, um die Zuverlässigkeit und Stabilität von XcodeBuildMCP zu verbessern.
Was wird an Sentry gesendet?
- Standardmäßig werden nur Protokolle auf Fehlerebene und Diagnoseinformationen an Sentry gesendet.
- Fehlerprotokolle können Details wie Fehlermeldungen, Stacktraces und (in einigen Fällen) Dateipfade oder Projektnamen enthalten. Sie können die Quellen in diesem Repository überprüfen, um genau zu sehen, was protokolliert wird.
Abmeldung von Sentry
- Wenn Sie keine Fehlerprotokolle an Sentry senden möchten, können Sie dies ablehnen, indem Sie die Umgebungsvariable
SENTRY_DISABLED=true
festlegen.
Beispiel für eine MCP-Clientkonfiguration:
Selektive Werkzeugregistrierung
Standardmäßig sind alle Tools aktiviert. Für manche Clients kann es jedoch sinnvoll sein, nur bestimmte Tools zu aktivieren, um die an den Client gesendete Kontextmenge zu reduzieren. Dies kann durch das Setzen bestimmter Umgebungsvariablen in der MCP-Konfiguration Ihres Clients erreicht werden.
Sobald Sie ein oder mehrere Tools oder Toolgruppen aktiviert haben, werden alle anderen Tools deaktiviert. Um beispielsweise nur die Simulator-bezogenen Tools zu aktivieren, können Sie die Umgebungsvariable auf XCODEBUILDMCP_GROUP_IOS_SIMULATOR_WORKFLOW=true
setzen. Dadurch werden nur Tools zum Erstellen, Ausführen und Debuggen auf Simulatoren verfügbar.
Eine Liste der verfügbaren Tools und detaillierte Anweisungen zum Aktivieren dieser Tools finden Sie in der Datei TOOL_OPTIONS.md .
Demos
Autonomes Beheben von Build-Fehlern im Cursor
Nutzung der neuen UI-Automatisierungs- und Bildschirmaufnahmefunktionen
Erstellen und Ausführen einer iOS-App in Claude Desktop
https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086
Beitragen
Beiträge sind willkommen! So können Sie XcodeBuildMCP verbessern.
Weitere Informationen zum Konfigurieren Ihrer lokalen Umgebung und zum Beitragen zum Projekt finden Sie in unserem Dokument „ BEITRAGEN“ .
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .
MCP-Serverüberprüfung
Glama.ai
MseeP.a
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
XcodeBuildMCP
Related MCP Servers
- AsecurityFlicenseAqualityAn MCP server to communicate with the App Store Connect API for iOS DevelopersLast updated -13017TypeScript
- AsecurityAlicenseAqualityBridges Claude AI with Xcode, enabling AI-powered code assistance, project management, and automated development tasks securely on your local machine.Last updated -9132164TypeScriptMIT License
- AsecurityAlicenseAquality🍎 Build iOS Xcode workspace/project and feed back errors to llm.Last updated -245PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants to build and test Xcode projects directly through a standardized interface, with capabilities for running tests, monitoring progress, and accessing logs in real-time.Last updated -29TypeScript