xcode-cloud-mcp
xcode-cloud-mcp
Minimaler MCP-Server zum Entdecken von Xcode-Cloud-Produkten, zum Inspizieren und Bearbeiten von Workflows, zum Überwachen von Build-Läufen und zum Abrufen von Build-Problemen, Logs, Testzusammenfassungen und UI-Test-Artefakten über die App Store Connect API.
Funktionen
Funktion | Tool(s) | Beispielverwendung | Beispielrückgabe |
Produkte entdecken |
| „Zeig mir die Xcode-Cloud-Produkte, die in diesem Konto verfügbar sind.“ |
|
Workflows entdecken |
| „Liste die Workflows für Produkt |
|
Workflow-Konfiguration anzeigen |
| „Zeig mir die vollständigen Workflow-Details für |
|
Laufende oder aktuelle Builds überwachen |
| „Zeig mir die laufenden Builds für Workflow |
|
Workflow aktivieren oder deaktivieren |
| „Deaktiviere Workflow |
|
Name, Beschreibung oder Clean-Modus aktualisieren |
| „Benenne Workflow |
|
Startbedingungen explizit aktualisieren |
| „Ändere Workflow | aktualisiertes |
Workflow-Aktionsliste ersetzen |
| „Entferne die Archiv-Aktion aus Workflow |
|
Build-Status schnell einsehen |
| „Was ist beim letzten fehlgeschlagenen Build für Workflow |
|
Kompakte Build-Log-Zusammenfassungen lesen |
| „Rufe Logs von Build |
|
Logs für lokales grep materialisieren |
| „Lade die Logs für Build |
|
Testergebnisse zusammenfassen |
| „Fasse die Testergebnisse für den letzten fehlgeschlagenen Build zusammen.“ |
|
Direkt zu fehlgeschlagenen Tests springen |
| „Welche Tests sind in Build |
|
UI-Test-Artefakte abrufen |
| „Zeig mir die Screenshots und Videos des letzten fehlgeschlagenen UI-Testlaufs.“ |
|
Lokale temporäre Dateien bereinigen |
| „Entferne gespeicherte Logs, die älter als 24 Stunden sind.“ |
|
Die Build-Suche ist workflowbezogen. Abruf-Tools akzeptieren eine direkte buildRunId, oder eine workflowId plus buildNumber, oder eine workflowId plus buildSelector: "latest" | "latestFailing".
list_products und list_workflows paginieren automatisch durch alle Ergebnisse.
list_build_runs unterstützt status: "all" | "failed" | "succeeded" | "running" | "pending" und ein optionales limit, das standardmäßig 20 beträgt, sodass Agenten aktive Workflows abfragen können, ohne jeden Lauf lokal nachzubearbeiten oder die MCP-Antwortgröße aufzublähen.
Related MCP server: appstore-release-mcp
Anforderungen
Node.js
20+App Store Connect API-Anmeldedaten mit Zugriff auf Xcode Cloud
Umgebungsvariablen
Primäre Namen:
APPSTORE_CONNECT_API_KEY_IDAPPSTORE_CONNECT_API_ISSUER_IDAPPSTORE_CONNECT_API_KEY_CONTENT
Kompatibilitäts-Aliase:
APP_STORE_KEY_IDAPP_STORE_ISSUER_IDAPP_STORE_PRIVATE_KEY
Der private Schlüssel kann als wörtlicher mehrzeiliger PEM-Inhalt oder als Zeichenfolge mit maskiertem \n übergeben werden.
Claude-Einrichtung
claude mcp add xcode-cloud \
--env APPSTORE_CONNECT_API_KEY_ID="$APPSTORE_CONNECT_API_KEY_ID" \
--env APPSTORE_CONNECT_API_ISSUER_ID="$APPSTORE_CONNECT_API_ISSUER_ID" \
--env APPSTORE_CONNECT_API_KEY_CONTENT="$APPSTORE_CONNECT_API_KEY_CONTENT" \
-- npx -y @thatfactory/xcode-cloud-mcpCodex-Einrichtung
codex mcp add xcode-cloud \
--env APPSTORE_CONNECT_API_KEY_ID="$APPSTORE_CONNECT_API_KEY_ID" \
--env APPSTORE_CONNECT_API_ISSUER_ID="$APPSTORE_CONNECT_API_ISSUER_ID" \
--env APPSTORE_CONNECT_API_KEY_CONTENT="$APPSTORE_CONNECT_API_KEY_CONTENT" \
-- npx -y @thatfactory/xcode-cloud-mcpVerfügbare Tools
list_products()list_workflows(productId)get_workflow_details(workflowId)list_build_runs(workflowId, limit?, status?)set_workflow_enabled(workflowId, enabled)update_workflow_general(workflowId, name?, description?, clean?)update_workflow_start_conditions(workflowId, branchStartCondition?, manualBranchStartCondition?, pullRequestStartCondition?, manualPullRequestStartCondition?, scheduledStartCondition?, tagStartCondition?, manualTagStartCondition?)update_workflow_actions(workflowId, actions)get_build_issues(buildRunId? workflowId? buildNumber? buildSelector?)get_build_logs(buildRunId? workflowId? buildNumber? buildSelector?, maxCharacters?)materialize_build_logs(buildRunId? workflowId? buildNumber? buildSelector?)get_test_results(buildRunId? workflowId? buildNumber? buildSelector?)get_failed_tests(buildRunId? workflowId? buildNumber? buildSelector?)get_test_artifacts(buildRunId? workflowId? buildNumber? buildSelector?)cleanup_saved_logs(buildRunId?, maxAgeHours?)
Verhalten beim Log-Abruf
get_build_logs hält die MCP-Antwort absichtlich kompakt:
Es lädt und extrahiert textähnliche Build-Log-Artefakte in ein temporäres lokales Verzeichnis.
Es gibt
savedLogsDirectoryundsavedLogszurück, damit lokale Agenten die extrahierten Dateien mitrg,grepodercatuntersuchen können.Es gibt eine kompakte
failedTests-Zusammenfassung,highlightsund einen begrenztenexcerptzurück.Selbst wenn ein Aufrufer ein sehr großes
maxCharactersübergibt, wird der Inline-Auszug begrenzt, um übermäßig große MCP-Antworten zu vermeiden.
Empfohlener Agenten-Workflow:
Rufe
get_failed_testsoderget_build_logsauf.Lies
savedLogsDirectory.Verwende
rgin diesem Verzeichnis, um den genauen fehlgeschlagenen Test oder die Assertion zu untersuchen.Falls nötig, rufe
cleanup_saved_logsauf, wenn die Untersuchung abgeschlossen ist.
Temporäre Logs werden unter dem System-Temp-Verzeichnis in einem Pfad wie folgt geschrieben:
/tmp/xcode-cloud-mcp/build-logs/<buildRunId>Auf macOS wird dies normalerweise zu einem Pfad unter /var/folders/.../T/ aufgelöst.
Bereinigungsrichtlinie:
Jeder neue Aufruf für dieselbe
buildRunIdlöscht und erstellt zuerst das build-spezifische temporäre Verzeichnis neu.Ältere Build-Verzeichnisse werden automatisch entfernt, wenn sie älter als 24 Stunden sind.
Sie können
cleanup_saved_logsauch direkt für einebuildRunIdoder für alle Verzeichnisse aufrufen, die älter als ein gewähltes Aufbewahrungsfenster sind.
Beispiel-Prompts
Retrieve logs of the latest failing build for workflow abc123.Retrieve logs of build 81, then inspect the returned savedLogsDirectory and grep for Expectation failed.Get the failed tests for build 81, then open the saved logs directory and inspect the failing test in context.Retrieve logs of build number 42 for workflow abc123.Show me the latest failing UI test artifacts for workflow abc123.List the workflows for product def456 and then summarize the latest build.Show me the full workflow details for workflow abc123, including environment, start conditions, actions, and whether it is enabled.Disable workflow abc123, remove the archive action, then restore the original action list after the experiment.Verhalten der Workflow-Details
get_workflow_details gibt die Live-Workflow-Konfiguration zurück, die von App Store Connect bereitgestellt wird, gruppiert in:
generalenvironmentstartConditionsactionspostActions
Hinweise:
environmententhält Repository,xcodeVersionundmacOsVersion, wenn App Store Connect sie zurückgibt.actionsenthält Aktionstyp, Schema, Plattform, Ziel, erforderlichen Bestehensstatus und Testplan-Details, falls vorhanden.postActionswird derzeit als leeres Array mit einem Hinweis zurückgegeben, da die App Store Connect-Workflow-Payload in der beobachteten API-Antwort keine separaten Post-Aktionen enthält.
Verhalten bei Workflow-Aktualisierungen
Die Workflow-Aktualisierungstools sind bewusst explizit:
set_workflow_enabledschaltet nurisEnabledum.update_workflow_generaländert nurname,descriptionundclean.update_workflow_start_conditionsändert nur die von dir übergebenen Startbedingungsobjekte.update_workflow_actionsersetzt das gesamteactions-Array, daher sollten Aufrufer zuerst den aktuellen Workflow abrufen und dann die endgültige gewünschte Aktionsliste senden.
Wichtige Einschränkung:
Wenn der Workflow in Xcode Cloud
Restrict Editingaktiviert hat, können Änderungen fehlschlagen, selbst wenn der App Store Connect-API-Schlüssel überApp Manager-Zugriff verfügt.Damit MCP-Änderungen zuverlässig funktionieren, deaktiviere das Kontrollkästchen
Restrict Editingfür diesen Workflow, bevor du die Schreibwerkzeuge verwendest.Wenn Apple die Anfrage danach weiterhin ablehnt, verwende eine stärkere API-Schlüsselrolle wie
Admin.
Lokale Entwicklung
Abhängigkeiten installieren:
npm installTests ausführen:
npm testPaket erstellen:
npm run buildMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceAn MCP server to communicate with the App Store Connect API for iOS Developers2582330MIT
- AlicenseAqualityBmaintenanceAn MCP server that drives the full App Store release cycle for iOS and macOS apps: version bump, archive + TestFlight upload, metadata, review submission, and status.8228MIT
- AlicenseNot gradedqualityAmaintenanceApp Store Connect MCP Server (Swift) that manages apps, builds, TestFlight, metadata, reviews natively on macOSMIT
- AlicenseNot gradedqualityAmaintenanceThis MCP server provides access to Apple's App Store Connect API. It allows users to inspect apps, versions, builds, TestFlight groups, sales, users, and optionally edit metadata and manage testers.566MIT
Related MCP Connectors
MCP server for Appcircle mobile CI/CD platform.
MCP server for interacting with the Supabase platform
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/thatfactory/xcode-cloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server