asc-mcp
Übersicht
asc-mcp ist ein auf Swift basierender MCP-Server, der einen lokalen macOS-MCP-Client mit der App Store Connect API verbindet. Er stellt 502 Tools aus 33 App-Store-Tool-Domänen + 2 Kerndomänen bereit und ermöglicht es Ihnen, iOS- und macOS-Release-Workflows über natürliche Sprache zu automatisieren.
Konfigurationsbeispiele sind für Codex, Claude Code, Claude Desktop, Gemini CLI, VS Code mit GitHub Copilot, Continue, Cursor und Devin Desktop (ehemals Windsurf) enthalten. Die Client-Konfiguration ist dokumentiert; die Release-CI verifiziert Installation, MCP-Initialisierung und Tool-Erkennung auf macOS, anstatt jeden Drittanbieter-Client zu starten.
Neu hier? Folgen Sie dem Quick Start. Die übrigen Abschnitte sind Referenzmaterial für erweiterte Konfiguration, Tool-Auswahl und Mitwirkende.
Wichtigste Funktionen
Release und Metadaten — Versionen, Lokalisierungen, Builds, Review-Einreichungen, gestaffelte Veröffentlichung und Xcode Cloud
TestFlight und Uploads — Beta-Gruppen, Tester, Feedback, Rekrutierung, Build-Auslieferung, Verarbeitung und Export-Compliance
Monetarisierung — In-App-Käufe, Abonnements, Preise, Verfügbarkeit, Angebotscodes und Werbeangebote
Marketing — Screenshots, Vorschauen, benutzerdefinierte Produktseiten, Produktseiten-Optimierung und beworbene Käufe
Konten und Provisioning — mehrere App-Store-Connect-Teams, Benutzer, Bundle-IDs, Geräte, Zertifikate, Profile und Capabilities
Feedback und Betrieb — Kundenbewertungen, Webhooks, Barrierefreiheitserklärungen, Analysen, Metriken und Diagnosen
Sicherere Automatisierung — Nur-Lese-Modus, Bestätigungsschutz, strikte Paginierung und Hinweise zur Wiederherstellung nach Mutationen
Prüfbare API-Abdeckung — ein versionierter Apple-OpenAPI-Vertrag und Drift-Prüfungen zur Release-Zeit
Related MCP server: App Store Connect MCP
Plattformunterstützung
asc-mcp ist ein lokaler stdio-Server: Der MCP-Client startet ihn auf demselben Computer. Dass ein Client unter Linux oder Windows verfügbar ist, macht diesen Swift-Server nicht plattformübergreifend.
Umgebung | Status | Hinweise |
macOS 15.6+ mit Xcode 26.x | Empfohlen | Die Release-CI verwendet speziell den macOS-15-Runner von GitHub mit Xcode 26.2 |
macOS 14.0-15.5 | Nur deklariertes Deployment-Ziel | Build und Laufzeit sind unverifiziert; eine separat installierte Swift-6.2+-Toolchain kann erforderlich sein |
Linux | Noch nicht unterstützt | Portierungsarbeiten und Linux-CI sind nicht abgeschlossen |
Windows | Nicht unterstützt | Die aktuellen Quellabhängigkeiten und der Swift-MCP- |
Die von jeder Xcode-Version unterstützten macOS-Versionen finden Sie in den Systemanforderungen von Apple für Xcode.
Web- und Cloud-Sitzungen übernehmen eine lokale MCP-Konfiguration nicht automatisch. Führen Sie den MCP-Client lokal auf einem kompatiblen Mac aus, oder nutzen Sie eine Client-Funktion, die die Ausführung ausdrücklich auf diesem Mac belässt.
Quick Start
Die empfohlene Einrichtung speichert die App-Store-Connect-Anmeldedaten einmalig in einer privaten lokalen Datei. MCP-Clients benötigen dann nur noch den Pfad zur asc-mcp-ausführbaren Datei.
1. asc-mcp installieren
brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6
~/.mint/bin/asc-mcp --version2. App-Store-Connect-API-Schlüssel erstellen
Öffnen Sie App Store Connect → Benutzer und Zugriff → Integrationen → Team-Keys.
Generieren Sie einen Schlüssel mit der Rolle mit den geringsten Rechten, die Ihren Workflow abdeckt. App Manager oder Administrator wird nur benötigt, wenn die entsprechenden Vorgänge dies erfordern.
Laden Sie die
.p8-Datei herunter. Apple erlaubt nur einen einzigen Download.Kopieren Sie die Key ID und die Issuer ID.
3. Anmeldedaten lokal speichern
Erstellen Sie private Konfigurationsverzeichnisse und verschieben Sie dann die heruntergeladene .p8-Datei nach ~/.keys/. Ersetzen Sie Quellpfad und Dateinamen im zweiten Befehl:
mkdir -p ~/.config/asc-mcp ~/.keys
chmod 700 ~/.config/asc-mcp ~/.keys
mv /path/to/downloaded/AuthKey_XXXXXXXXXX.p8 ~/.keys/Erstellen Sie ~/.config/asc-mcp/companies.json:
{
"companies": [
{
"id": "my-company",
"name": "My Company",
"key_id": "XXXXXXXXXX",
"issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8"
}
]
}Ersetzen Sie /Users/you durch den tatsächlichen Pfad Ihres Home-Verzeichnisses. Bewahren Sie beide Dateien außerhalb des Repositorys auf und schränken Sie den Zugriff ein:
chmod 600 ~/.config/asc-mcp/companies.json
chmod 600 /Users/you/.keys/AuthKey_XXXXXXXXXX.p8[!CAUTION] Committen Sie
companies.json, einen.p8-Schlüssel oder Roh-Anmeldedaten niemals in Git. Widerrufen Sie den App-Store-Connect-Schlüssel sofort, wenn er offengelegt wurde.
4. MCP-Client verbinden
Wählen Sie einen Client. Sie müssen nicht jeden Client konfigurieren.
Codex
codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp listClaude Code
claude mcp add \
--transport stdio \
--scope user \
asc-mcp \
-- ~/.mint/bin/asc-mcp
claude mcp get asc-mcp
claude mcp listFür Claude Desktop, Gemini CLI, VS Code, Continue, Cursor und Devin Desktop verwenden Sie die kopierfertigen Beispiele unter MCP-Client-Einrichtung.
5. Ausprobieren
Starten Sie einen GUI-Client nach einer Konfigurationsänderung neu, öffnen Sie seine MCP-Tool-Liste und fragen Sie:
List my App Store Connect apps.Wenn die Verbindung oder Anfrage fehlschlägt, lesen Sie Fehlerbehebung.
Installation
Mint unter macOS (empfohlen)
Mint installiert die festgepinnte Version aus dem Quellcode und legt die ausführbare Datei unter ~/.mint/bin/asc-mcp ab.
brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6Aktualisieren oder neu installieren Sie die festgepinnte Version:
mint install zelentsov-dev/asc-mcp@v4.1.6 --forceStabile Nutzer sollten ein Versions-Tag installieren. Die Installation von main oder develop ist nur für Maintainer und Pre-Release-Tests vorgesehen.
Aus dem Quellcode bauen
Verwenden Sie Xcode 26.x auf einer kompatiblen macOS-Version oder installieren Sie eine eigenständige Swift-6.2+-Toolchain.
git clone https://github.com/zelentsov-dev/asc-mcp.git
cd asc-mcp
swift build -c releaseDie ausführbare Datei ist .build/release/asc-mcp. Wenn Sie sie woandershin kopieren, kopieren Sie auch das benachbarte Ressourcen-Bundle:
cp .build/release/asc-mcp /usr/local/bin/asc-mcp
cp -R .build/release/asc-mcp_asc-mcp.bundle /usr/local/bin/Das Bundle enthält den versionierten OpenAPI-Operationsvertrag, der für Release-Prüfungen verwendet wird.
Upgrade von einer älteren Version
Version 4.1 behält jeden vorhandenen Tool-Namen, jede erforderliche Eingabe, jeden Projektionsschlüssel und jede Array-Form bei. Die Lese-Tools für Xcode Cloud lehnen nun undokumentierte Argumente ab und validieren zurückgegebene Links, Paginierung, Beziehungskette und enthaltene Ressourcen strenger. Neue *Present-Projektionsfelder unterscheiden von Apple ausgelassene Arrays von vorhandenen leeren Arrays, während ältere Array-Felder Arrays bleiben. Neu verfügbare verschachtelte *_limit-Eingaben müssen mit dem passenden include-Wert kombiniert werden, und Fortsetzungsaufrufe müssen den ursprünglichen Anforderungsumfang unverändert wiederholen. Die neuen Lösch-Tools für Produkte und Workflows verwenden standardmäßig eine sichere Vorschau und erfordern vor dem endgültigen Löschen die neueste Vorschau-Quittung sowie eine exakte Bestandsbestätigung.
Version 4 behält jeden vorhandenen Tool-Namen und Worker-Filter bei, aber destruktive Marketing- und Review-Anhang-Aufrufe erfordern nun vor jeder Apple-Anfrage eine exakte Bestätigungs-ID:
Vorhandenes Tool | Neu erforderliche Bestätigung |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ppo_update_experiment erfordert außerdem confirm_experiment_id, wenn state angegeben wird. Aufrufe, die nur den Namen oder den Traffic-Anteil aktualisieren, bleiben unverändert. Verwenden Sie nach einem unknown- oder committed_unverified-Mutationsergebnis die zurückgegebene Prüfaktion, bevor Sie es erneut versuchen.
Entfernen Sie undokumentierte Top-Level-Argumente aus vorhandenen Marketing- und Review-Anhang-Aufrufen. Version 4 lehnt unbekannte Schlüssel vor jeder Netzwerkanfrage ab, anstatt sie stillschweigend zu ignorieren.
Konfiguration
Anmeldedaten
Die im Quick Start gezeigte Standarddatei ~/.config/asc-mcp/companies.json wird empfohlen, weil sie konsistent für Terminal- und GUI-Clients funktioniert, ohne Geheimnisse in jeder Client-Konfiguration zu duplizieren.
Für mehrere Unternehmen fügen Sie weitere Einträge hinzu:
{
"companies": [
{
"id": "my-company",
"name": "My Company",
"key_id": "XXXXXXXXXX",
"issuer_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"key_path": "/Users/you/.keys/AuthKey_XXXXXXXXXX.p8",
"vendor_number": "YOUR_VENDOR_NUMBER"
},
{
"id": "client-company",
"name": "Client Company",
"key_id": "YYYYYYYYYY",
"issuer_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
"key_path": "/Users/you/.keys/AuthKey_YYYYYYYYYY.p8"
}
]
}vendor_number ist nur für analytics_sales_report, analytics_financial_report und analytics_app_summary erforderlich. Sie finden es unter App Store Connect → Verkäufe und Trends → Berichte.
Umgebungsvariablen sind für die Automatisierung nützlich, aber über den Finder gestartete GUI-Apps übernehmen möglicherweise nicht Ihre Shell-Umgebung. Die dateibasierte Einrichtung oben ist für die meisten Nutzer einfacher.
Ein Unternehmen:
export ASC_KEY_ID=XXXXXXXXXX
export ASC_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_PRIVATE_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8
export ASC_COMPANY_NAME="My Company" # optional
export ASC_VENDOR_NUMBER=YOUR_VENDOR_NUMBER # optional, analytics onlyMehrere Unternehmen:
export ASC_COMPANY_1_NAME="My Company"
export ASC_COMPANY_1_KEY_ID=XXXXXXXXXX
export ASC_COMPANY_1_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
export ASC_COMPANY_1_KEY_PATH=/Users/you/.keys/AuthKey_XXXXXXXXXX.p8
export ASC_COMPANY_2_NAME="Client Company"
export ASC_COMPANY_2_KEY_ID=YYYYYYYYYY
export ASC_COMPANY_2_ISSUER_ID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
export ASC_COMPANY_2_KEY_PATH=/Users/you/.keys/AuthKey_YYYYYYYYYY.p8Die Nummerierung beginnt bei 1. Jeder aufeinanderfolgende Eintrag muss sowohl ASC_COMPANY_{N}_KEY_ID als auch ASC_COMPANY_{N}_ISSUER_ID bereitstellen; das Scannen stoppt beim ersten fehlenden Paar.
Der Server löst die Anmeldedaten in dieser Reihenfolge auf:
--companies /absolute/path/to/companies.jsonKonstruktorparameter für die programmatische Einbettung
ASC_MCP_COMPANIES=/absolute/path/to/companies.jsonStandard-Speicherorte für Konfigurationsdateien, einschließlich
~/.config/asc-mcp/companies.jsonASC_COMPANY_1_KEY_IDund die anderen nummerierten Multi-Company-VariablenASC_KEY_ID,ASC_ISSUER_IDund eine Private-Key-Variable für ein Unternehmen
MCP-Client-Einrichtung
Alle folgenden Beispiele setzen eine Mint-Installation und die empfohlene Anmeldedatei companies.json voraus. Ersetzen Sie /Users/you durch den tatsächlichen Pfad Ihres Home-Verzeichnisses. GUI-Clients erfordern in der Regel einen absoluten Pfad zur ausführbaren Datei.
Client | Konfigurationsbereich | Hinweise |
Codex | Benutzerkonfiguration per CLI; optionale Konfiguration für vertrauenswürdige Projekte | Wird von lokalen Codex-Clients auf demselben Mac gemeinsam genutzt |
Claude Code |
|
|
Claude Desktop | Desktop-Konfiguration auf Benutzerebene | Nach dem Bearbeiten neu starten |
Gemini CLI | Benutzereinstellungen | Lokaler |
VS Code with GitHub Copilot | Benutzerprofil oder | Serververtrauen beim ersten Start bestätigen |
Continue | Arbeitsbereich | Getrennt von der nativen VS Code MCP-Konfiguration |
Cursor | Benutzer- oder Projekt- | Verwenden Sie einen absoluten Befehlspfad |
Devin Desktop (formerly Windsurf) | Benutzer-MCP-Konfiguration | Nicht mehr als 100 aktive Tools beibehalten |
Empfohlene CLI-Registrierung:
codex mcp add asc-mcp -- ~/.mint/bin/asc-mcp
codex mcp list
codex mcp get asc-mcp --jsonDieselbe lokale MCP-Konfiguration wird von Codex-Clients auf diesem Mac gemeinsam genutzt. Die Benutzerkonfiguration ist $CODEX_HOME/config.toml, standardmäßig ~/.codex/config.toml:
[mcp_servers.asc-mcp]
command = "/Users/you/.mint/bin/asc-mcp"
startup_timeout_sec = 20
tool_timeout_sec = 60
enabled = trueFür eine projektspezifische Einrichtung platzieren Sie dieselbe Tabelle in .codex/config.toml; Codex lädt die Projektkonfiguration erst, nachdem das Projekt als vertrauenswürdig eingestuft wurde. Wenn Sie Shell-Anmeldeinformationen anstelle von companies.json verwenden, leiten Sie diese explizit weiter:
env_vars = ["ASC_KEY_ID", "ASC_ISSUER_ID", "ASC_PRIVATE_KEY_PATH"]Starten Sie einen GUI-Client nach der Änderung der Konfiguration neu und verwenden Sie dann seine MCP-Ansicht oder /mcp, um zu bestätigen, dass asc-mcp aktiv ist. Siehe die offizielle Codex-MCP-Dokumentation.
Einmal für alle lokalen Projekte registrieren:
claude mcp add \
--transport stdio \
--scope user \
asc-mcp \
-- ~/.mint/bin/asc-mcp
claude mcp get asc-mcp
claude mcp listVerwenden Sie --scope local nur für das aktuelle Projekt oder --scope project, um eine gemeinsame .mcp.json zu erstellen. Projektserver erfordern eine Vertrauensbestätigung. Legen Sie niemals rohe App-Store-Connect-Anmeldeinformationen in einer committeten .mcp.json ab.
Claude speichert user- und local-MCP-Einträge in ~/.claude.json; .claude/settings.json ist nicht die globale MCP-Registry. Verwenden Sie /mcp in Claude Code, um den Server zu überprüfen oder erneut zu verbinden. Siehe die offizielle Claude-Code-MCP-Dokumentation.
Fügen Sie den Server zu ~/Library/Application Support/Claude/claude_desktop_config.json hinzu:
{
"mcpServers": {
"asc-mcp": {
"command": "/Users/you/.mint/bin/asc-mcp"
}
}
}Beenden Sie Claude Desktop und öffnen Sie es nach dem Speichern der Datei erneut.
Fügen Sie den Server zu ~/.gemini/settings.json hinzu:
{
"mcpServers": {
"asc-mcp": {
"command": "/Users/you/.mint/bin/asc-mcp"
}
}
}Das standardmäßige Gemini-MCP-Timeout wird absichtlich beibehalten. Siehe die offizielle Gemini-CLI-MCP-Dokumentation.
Führen Sie MCP: Add Server über die Befehlspalette aus und wählen Sie für eine persönliche Einrichtung das Benutzerprofil. Für eine Arbeitsbereichseinrichtung erstellen Sie .vscode/mcp.json:
{
"servers": {
"asc-mcp": {
"type": "stdio",
"command": "/Users/you/.mint/bin/asc-mcp"
}
}
}Bestätigen Sie, dass Sie dem lokalen Server vertrauen, wenn VS Code ihn zum ersten Mal startet. Committen Sie keine benutzerspezifischen Pfade oder Geheimnisse in eine gemeinsame Arbeitsbereichsdatei. Siehe die offizielle VS Code MCP-Dokumentation.
Continue verwendet keine .vscode/mcp.json. Erstellen Sie .continue/mcpServers/asc-mcp.json im Arbeitsbereich:
{
"mcpServers": {
"asc-mcp": {
"command": "/Users/you/.mint/bin/asc-mcp"
}
}
}MCP-Tools sind im Continue-Agentenmodus verfügbar. Siehe die offizielle Continue-MCP-Dokumentation.
Verwenden Sie ~/.cursor/mcp.json für alle Projekte oder .cursor/mcp.json für ein einzelnes Projekt:
{
"mcpServers": {
"asc-mcp": {
"command": "/Users/you/.mint/bin/asc-mcp"
}
}
}Starten Sie den MCP-Server nach dem Bearbeiten der Datei über die Cursor-Einstellungen neu oder aktualisieren Sie ihn. Siehe die offizielle Cursor-MCP-Dokumentation.
Fügen Sie den Server zu ~/.codeium/windsurf/mcp_config.json hinzu. Dieses Beispiel aktiviert eine Teilmenge von 72 Tools für die Veröffentlichung, unterhalb des 100-Tool-Limits von Cascade:
{
"mcpServers": {
"asc-mcp": {
"command": "/Users/you/.mint/bin/asc-mcp",
"args": [
"--workers",
"apps,builds,export_compliance,versions,reviews"
]
}
}
}Sie können auch einzelne Tools im Client deaktivieren. Serverseitiges Worker-Filtering wird empfohlen, da es den aktiven Katalog vorhersehbar hält. Siehe die offizielle Devin-Desktop-MCP-Dokumentation.
[!IMPORTANT]
commandmuss auf die tatsächliche ausführbare Datei zeigen. GUI-Clients übernehmen häufig keine Shell-Aliasse, PATH-Änderungen oder Umgebungsvariablen. Verwenden Sie einen absoluten Pfad und bevorzugen Sie die standardmäßigecompanies.json-Anmeldedatei.
Worker-Filterung
Der Server stellt 502 Tools über 33 App-Store-Tool-Domänen + 2 Kerndomänen bereit. Einige MCP-Clients legen ein Tool-Limit fest; Cascade in Devin Desktop erlaubt derzeit 100 aktive Tools. Verwenden Sie die 35 --workers-Filterschlüssel, um nur die benötigten Worker zu aktivieren:
# Only load apps, builds, and version lifecycle tools
asc-mcp --workers apps,builds,versions
# App Store release preparation subset (99 tools, including always-on and build sub-workers)
asc-mcp --workers apps,accessibility,builds,export_compliance,versions,app_info,screenshots
# TestFlight review helpers can be loaded separately (49 tools)
asc-mcp --workers apps,builds,beta_app,pre_release
# Monetization focus
asc-mcp --workers apps,iap,subscriptions,pricing,promoted,review_submissionscompany- und auth-Worker sind immer aktiviert, unabhängig vom Filter (sie bieten die zentrale Multi-Konto- und Authentifizierungsfunktionalität).
Wenn builds aktiviert ist, werden automatisch die Unter-Worker build_processing und build_beta eingeschlossen.
Schreibgeschützter Modus
Verwenden Sie --read-only, wenn Sie eine sichere Überprüfung ohne Änderungen an App Store Connect wünschen:
asc-mcp --read-only
asc-mcp --read-only --workers apps,builds,reviews,analyticsIn diesem Modus bleiben Lesetools wie *_list, *_get, *_search, *_status, *_verify, *_parse, *_triage, auth_*, Analytik und Metriken verfügbar. Tools, die App Store Connect erstellen, aktualisieren, hochladen, einreichen, veröffentlichen, löschen, widerrufen, leeren, abbrechen oder anderweitig verändern können, werden blockiert, bevor ihr Worker-Handler ausgeführt wird. company_switch bleibt verfügbar, da es nur den lokal aktiven Unternehmenskontext ändert.
OpenAPI-Vertrag und Drift-Tooling
Verwenden Sie den Befehl operation-contract, um den tatsächlichen, anmeldefreien WorkerManager-Katalog mit dem semantischen Manifest und der festgelegten Apple-App-Store-Connect-OpenAPI-Spezifikation zu vergleichen. Das Produktionsmanifest zeichnet exakte Apple-operationId, HTTP-Methode, Pfad, auf den Aufruf bezogene Eingabebindungen, typisierte feste Werte, Antwort-Abstammung, lokale Workflows, Implementierungsstatus, veraltete Aliase und bewusst aufgeschobene Operationen auf. Der Befehl lädt keine App-Store-Connect-Anmeldeinformationen und startet den MCP-Server nicht.
rm -rf /tmp/asc-openapi
mkdir -p /tmp/asc-openapi
curl -L --fail -o /tmp/asc-openapi/spec.zip \
https://developer.apple.com/sample-code/app-store-connect/app-store-connect-openapi-specification.zip
spec_entry="$(unzip -Z1 /tmp/asc-openapi/spec.zip | grep -E '(^|/)openapi\.oas[^/]*\.json$')"
test "$(echo "$spec_entry" | grep -c .)" -eq 1
unzip -p /tmp/asc-openapi/spec.zip "$spec_entry" > /tmp/asc-openapi/openapi.oas.json
swift run asc-mcp openapi-contract-check \
--spec /tmp/asc-openapi/openapi.oas.json \
--json-output /tmp/asc-openapi/operation-contract.json \
--markdown-output /tmp/asc-openapi/operation-contract.md \
--strictDas Manifest ist über Version, SHA-256, Pfadanzahl und Operationsanzahl auf Apple API 4.4.1 fixiert. Es bildet derzeit 476 Apple-Operationen ab, schiebt 424 explizit auf und klammert 363 aus, wobei alle 1.263 Operationen ohne Überschneidung abgedeckt werden. CI schlägt fehl, wenn sich das Apple-Dokument ändert, eine abgebildete Operation verschoben wird oder verschwindet, ein öffentliches Tool oder ein Worker vom Manifest abweicht, ein Eingabefeld seine Bindung verliert, die Antwort-Abstammung ungültig wird oder eine aufgeschobene Entscheidung abläuft. Nicht offengelegte optionale Apple-Parameter werden als Warnungen behandelt, damit sie im generierten Backlog sichtbar bleiben.
Manifest-Schema v2 berücksichtigt außerdem jede optionale Apple-Abfrage- und Request-Body-Eingabe als öffentlich gebunden, intern kontrolliert, absichtlich mit einem geprüften Grund ausgelassen oder noch unklassifiziert. Das eingecheckte optionalInputCoveragePin zeichnet die genauen aktuellen Gesamtzahlen und einen SHA-256-Digest der sortierten Eingabeidentitäten und -dispositionen auf; --strict weist eine fehlende Pin oder eine Abweichung auf Anzahl- oder Identitätsebene zurück. Die Pin macht eine schrittweise Behebung prüfbar und regressionssicher, ist aber keine Behauptung, dass jede optionale Apple-Eingabe bereits öffentlich ist. Die v4.1.3-Pin umfasst insgesamt 2.905: 1.122 gebunden, 40 intern kontrolliert, 1.743 absichtlich ausgelassen und 0 unklassifiziert. Ihr Identitäts-SHA-256 ist c975f4e4eebb62ec87864a73fbf72bb8841f644108e54e6ffb25168bcf2a2766.
--strict ist das Release-Gate zum Zeitpunkt von Merge und Tag. Jedes deklarierte target- oder broken-Tool bleibt in Berichten ein Fehler, und ein Regressionstest fixiert ihren genauen Zustand. Die aktuelle Basislinie enthält keine target- oder broken-Implementierungen und keine Implementierungsabweichung. Daher blockiert jede Implementierung, die asBuilt verlässt, jeder strukturelle Vertragsfehler oder jede Abweichung bei der Abdeckung optionaler Eingaben sowohl Merges als auch Releases. --structural-strict bleibt nur für lokale schrittweise Behebungsarbeiten verfügbar.
Dieses Gate weist die Operationsidentität, den Besitz der MCP-Felder auf oberster Ebene, erforderliche Apple-Eingaben, typisierte interne Werte und die Quelle/Zeiger-Abstammung der Antworten nach. Die vollständige MCP-Typ-/Enum-/Bereichs-Parität und vollständige typisierte Antwortschemata bleiben separate Optimierungsphasen; der aktuelle Mapping-Status ist 469 partiell und 33 veraltet.
Der ältere Befehl openapi-coverage bleibt für den High-Level-Domänenbericht in ASC-OPENAPI-COVERAGE-GENERATED.md verfügbar. Der Befehl operation-contract ist das maßgebliche Release-Gate.
Verfügbare Workernamen:
Worker | Prefix | Tools | Beschreibung |
|
| 3 | Multi-Konto-Verwaltung |
|
| 4 | JWT-Token-Werkzeuge |
|
| 10 | App-Listung, Metadaten, Lokalisierungen, Suchbegriff-IDs |
|
| 6 | App-Store-Barrierefreiheitserklärungen |
|
| 11 | Webhook-Benachrichtigungen, Zustellungsdiagnose und Empfänger-Hilfsfunktionen |
|
| 42 | Xcode-Cloud-Produkte, Workflow-Verwaltung, Build-Ausführungen, Artefakte, Probleme, Testergebnisse und SCM |
|
| 4 | Build-Verwaltung |
|
| 10 | Übergeordnete Build-Uploads, Dateien, sichere Übertragungen und Wiederherstellung |
|
| 4 | Build-Status, Verschlüsselung |
|
| 11 | Verschlüsselungserklärungen, Dokument-Uploads, Build-Verknüpfung, Bereitschaft |
|
| 11 | TestFlight-Lokalisierungen, Benachrichtigungen |
|
| 17 | Versionslebenszyklus, Altersfreigaben, Einreichen, Veröffentlichen |
|
| 8 | Kundenbewertungen und Antworten |
|
| 15 | TestFlight-Gruppen und Rekrutierungskriterien für öffentliche Links |
|
| 8 | TestFlight-Feedback-Screenshots, Absturzübermittlungen, Absturzprotokolle |
|
| 12 | Tester-Verwaltung |
|
| 59 | In-App-Käufe, versionierte Metadaten, Preise, Verfügbarkeit, Angebotscodes, Review-Assets |
|
| 99 | Abonnement- und Gruppenversionen, Preise, Planverfügbarkeit, Angebote, Assets |
|
| 3 | Sandbox-Tester |
|
| 10 | Beta-App-Lokalisierungen und Review |
|
| 3 | Vorabversionen |
|
| 3 | Beta-Lizenzvereinbarungen |
|
| 17 | Bundle-IDs, Geräte, Zertifikate |
|
| 10 | App-Informationen, Kategorien, EULA |
|
| 9 | Gebiete, Preise |
|
| 10 | Teammitglieder, Rollen |
|
| 9 | In-App-Events, Lokalisierungen |
|
| 11 | Verkaufs-/Finanzberichte, Analysen |
|
| 19 | Screenshots, Vorschauen, Sets und verifizierte Reihenfolge |
|
| 17 | Benutzerdefinierte Produktseiten, Versionen, Lokalisierungen und Suchbegriffe |
|
| 15 | Experimente zur Produktseitenoptimierung, Treatments und Lokalisierungen |
|
| 10 | Beworbene In-App-Käufe und verifizierte Reihenfolge |
|
| 4 | App-Store-Review-Anhänge |
|
| 9 | Allgemeine App-Store-Review-Einreichungen und Einreichungselemente |
|
| 9 | Leistungsmetriken, Diagnosen und TestFlight-Nutzungsmetriken |
Größe des Tool-Katalogs
Wenn ein MCP-Client alle Tool-Definitionen sofort lädt, beträgt der ungefähre Schema-Umfang:
Konfiguration | Tools | ~Tokens |
Alle Worker (Standard) | 502 | ~60,000 |
Release-Workflow: | ~72 | ~8,900 |
Monetarisierung: | 184 | ~21,100 |
TestFlight: | ~63 | ~7,100 |
Marketing: | ~78 | ~8,800 |
| 17 | ~2,100 |
Schwerste Worker: Subscriptions (99 Tools), InAppPurchases (59 Tools), Xcode Cloud (42 Tools), Screenshots (19 Tools), Provisioning (17 Tools).
Die genauen Kosten hängen von der Serialisierung, dem Tokenizer und der Tool-Erkennungsstrategie des MCP-Hosts ab. Moderne Clients verschieben Schemas möglicherweise, bis sie benötigt werden. Verwenden Sie --workers, wenn der Client ein Tool-Limit erzwingt oder wenn Sie einen kleineren, fokussierteren Katalog wünschen.
Verfügbare Tools
502 Tools organisiert über 33 App-Store-Tool-Domänen + 2 Kerndomänen (verwenden Sie die 35 --workers-Filterschlüssel – siehe Worker-Filterung):
Tool | Beschreibung |
| Alle konfigurierten Unternehmen auflisten |
| Aktives Unternehmen für API-Operationen wechseln |
| Informationen zum aktuell aktiven Unternehmen abrufen |
Tool | Beschreibung |
| JWT-Token für den API-Zugriff generieren |
| Ein Standard-Team-Key-JWT lokal validieren: ES256-Signatur, konfigurierte |
| JWT-Token-Aktualisierung erzwingen |
| JWT-Token-Cache-Status abrufen |
Tool | Description |
| Alle Apps mit Filterung auflisten |
| Detaillierte App-Informationen abrufen |
| Apps nach Name oder Bundle-ID durchsuchen |
| Alle Versionen mit Status auflisten |
| Lokalisierte Metadaten für eine Version abrufen |
| Kanonische App-Store-Suchbegriff-IDs für Custom-Page-Targeting auflisten |
| Metadaten aktualisieren (What's New, Beschreibung usw.) |
| Lokalisierungen mit Inhaltsstatus auflisten |
| Neue Lokalisierung für eine Version erstellen |
| Lokalisierung aus einer Version löschen |
Tool | Description |
| Barrierefreiheitserklärungen für eine App auflisten |
| Eine Barrierefreiheitserklärung abrufen |
| Erklärung für eine Gerätefamilie erstellen |
| Support-Flags aktualisieren oder Erklärung veröffentlichen |
| Erklärung löschen |
| Beziehungs-IDs von Erklärungen für eine App auflisten |
Tool | Description |
| Webhooks für eine App auflisten |
| Webhook anhand der ID abrufen |
| Webhook-Konfiguration erstellen |
| Webhook-Felder aktualisieren |
| Webhook löschen |
| Zustellversuche auflisten |
| Vorhandene Zustellung erneut zustellen |
| Test-Ping senden |
|
|
| Rohen Webhook-Benachrichtigungs-Payload parsen und normalisieren |
| Aktionsfähigen Triage-Plan für Webhook-Ereignisse oder Zustellfehler erstellen |
Tool | Description |
| Xcode-Cloud-Produkte auflisten |
| Xcode-Cloud-Produkt abrufen |
| Xcode-Cloud-Produkt mit Bestätigungsschutz in der Vorschau anzeigen oder endgültig löschen |
| Mit einer App verknüpftes Xcode-Cloud-Produkt abrufen |
| Mit einem Xcode-Cloud-Produkt verknüpfte App abrufen |
| Primäre Repositorys eines Produkts auflisten |
| Zusätzliche Repositorys eines Produkts auflisten |
| Workflows für ein Produkt auflisten |
| Build-Runs für ein Produkt auflisten |
| Workflow abrufen |
| Xcode-Cloud-Workflow erstellen |
| Xcode-Cloud-Workflow aktualisieren |
| Workflow mit Bestätigungsschutz in der Vorschau anzeigen oder endgültig löschen |
| Von einem Workflow verwendetes Repository abrufen |
| Build-Runs für einen Workflow auflisten |
| Build-Run abrufen |
| Xcode-Cloud-Build starten oder neu erstellen |
| Build-Aktionen für einen Run auflisten |
| Von einem Run erstellte App-Store-Connect-Builds auflisten |
| Build-Aktion abrufen |
| Build-Run abrufen, dem eine Build-Aktion gehört |
| Artefakte für eine Aktion auflisten |
| Probleme für eine Aktion auflisten |
| Testergebnisse für eine Aktion auflisten |
| Artefakt abrufen |
| Problem abrufen |
| Testergebnis abrufen |
| Verfügbare Xcode-Versionen auflisten |
| Xcode-Version abrufen |
| Mit einer Xcode-Version kompatible macOS-Versionen auflisten |
| Verfügbare macOS-Versionen auflisten |
| macOS-Version abrufen |
| Mit einer macOS-Version kompatible Xcode-Versionen auflisten |
| SCM-Anbieter auflisten |
| SCM-Anbieter abrufen |
| Repositorys für einen SCM-Anbieter auflisten |
| SCM-Repositorys auflisten |
| SCM-Repository abrufen |
| Git-Referenzen des Repositorys auflisten |
| Pull-Requests des Repositorys auflisten |
| Git-Referenz abrufen |
| Pull-Request abrufen |
Tool | Description |
| Beta-Absturz-Feedback-Einsendungen auflisten |
| Eine Beta-Absturz-Feedback-Einsendung abrufen |
| Absturzprotokoll für eine Einsendung lesen |
| Absturzprotokoll anhand der Absturzprotokoll-ID lesen |
| Beta-Absturz-Feedback-Einsendung löschen |
| Beta-Screenshot-Feedback-Einsendungen auflisten |
| Eine Beta-Screenshot-Feedback-Einsendung abrufen |
| Beta-Screenshot-Feedback-Einsendung löschen |
Tool | Description |
| Builds mit Verarbeitungsstatus auflisten |
| Detaillierte Build-Informationen abrufen |
| Build anhand der Versionsnummer finden |
| Builds für eine bestimmte App-Version abrufen |
Tool | Beschreibung |
| Listet die Build-Upload-Elternobjekte einer App mit Filtern, Sparse Fields, Includes und strikter Paginierung auf |
| Ruft einen Build-Upload mit Verarbeitungsdiagnose und optionalen enthaltenen Ressourcen ab |
| Erstellt ein Build-Upload-Elternobjekt ohne Wiedergabe eines mehrdeutigen POST |
| Löscht ein Build-Upload-Elternobjekt nach Bestätigung der exakten ID |
| Listet Dateireservierungen unter einem Build-Upload mit strikter Paginierung auf |
| Ruft eine Build-Upload-Datei und ihren Bereitstellungsstatus ab |
| Reserviert eine exakte Datei ohne Wiedergabe eines mehrdeutigen POST |
| Übernimmt Prüfsummen- oder Upload-Statusänderungen, wobei Auslassung und Null getrennt erhalten bleiben |
| Überträgt eine neue oder bestehende Reservierung aus einem unveränderlichen lokalen Snapshot |
| Führt Elternobjekt-Erstellung, Reservierung, Übertragung, Commit und Verarbeitungsabgleich aus |
Compound-Uploads behalten denselben MD5-Fingerabdruck in Kleinbuchstaben von der Reservierung bis zur Wiederherstellung. Explizite Fortsetzungs- und Wiederherstellungsanweisungen tragen expected_md5; der nächste Aufruf prüft einen frischen unveränderlichen Snapshot dagegen, bevor eine Apple-Anfrage oder Übertragung erfolgt. Eine vorhandene Reservierung, die bereits als UPLOAD_COMPLETE oder COMPLETE markiert ist, wird nur akzeptiert, wenn der MD5-Wert von Apples sourceFileChecksums.file mit diesem Snapshot übereinstimmt; fehlende, nicht unterstützte oder abweichende Nachweise werden zur Prüfung aufbewahrt, ohne erneute Übertragung, Commit oder Löschung. Vorsignierte Operationen werden nur wiederholt, wenn ihre Methode PUT ist; Weiterleitungen, POST und unbekannte Methoden werden nicht erneut ausgeführt. Wenn ein mehrdeutiger Create eindeutig wiederhergestellt wird, stoppt der Workflow und gibt seine Ressourcen-ID für die explizite Fortsetzung zurück. Übertragungsanmeldedaten bleiben geschwärzt, es sei denn, include_sensitive_details wird bei einem direkten Lesevorgang explizit aktiviert.
Tool | Beschreibung |
| Aktuellen Verarbeitungsstatus abrufen |
| Verschlüsselungskonformität festlegen |
| Detaillierten Verarbeitungsstatus abrufen |
| Prüfen, ob der Build für die Einreichung bereit ist |
Tool | Beschreibung |
| Listet die Verschlüsselungserklärungen einer App mit strikter Paginierung auf |
| Ruft eine Erklärung ohne veraltete Dokument-URL-Felder ab |
| Erstellt einen Fragebogen zur Verschlüsselungserklärung für eine App |
| Reserviert, überträgt, führt den Commit aus und pollt ein Dokument aus einem unveränderlichen lokalen Snapshot |
| Ruft sichere Bereitstellungsmetadaten ohne signierte URLs, Tokens oder Upload-Header ab |
| Wendet einen Low-Level-Patch für eine nullable Prüfsumme oder den Upload-Status an |
| Setzt eine AWAITING_UPLOAD-Reservierung mit exakten Bytes und deren MD5-Beleg in Kleinbuchstaben fort |
| Prüft das Vorhandensein des Dokuments und klassifiziert seinen Bereitstellungsstatus |
| Ruft die aktuell an einem Build angehängte Erklärung ab |
| Hängt eine genehmigte Erklärung an und verifiziert die Beziehung |
| Bewertet nur das Export-Compliance-Release-Gate des Builds |
Tool | Beschreibung |
| TestFlight-Konfiguration für Build abrufen |
| TestFlight-Einstellungen aktualisieren |
| Neuerungen für TestFlight festlegen |
| Alle TestFlight-Lokalisierungen auflisten |
| Beta-Gruppen für einen Build abrufen |
| Einzeltester für einen Build abrufen |
| Benachrichtigung an Beta-Tester senden |
| Build zu Beta-Gruppen hinzufügen |
| Einzeltester zu einem Build hinzufügen |
| Einzeltester von einem Build entfernen |
| Einzeltester auflisten, die einem Build zugewiesen sind |
Tool | Beschreibung |
| TestFlight-Beta-Gruppen für eine App auflisten |
| Neue Beta-Gruppe erstellen |
| Einstellungen der Beta-Gruppe aktualisieren |
| Beta-Gruppe löschen |
| Tester zu einer Beta-Gruppe hinzufügen |
| Tester aus einer Beta-Gruppe entfernen |
| Tester in einer Beta-Gruppe auflisten |
| Builds zu einer Beta-Gruppe hinzufügen |
| Builds aus einer Beta-Gruppe entfernen |
| Die an einer Beta-Gruppe angehängten Rekrutierungskriterien für öffentliche Links abrufen |
| Rekrutierungskriterien für Gerätefamilie und OS-Version erstellen |
| Rekrutierungsfilter ersetzen oder explizit löschen |
| Rekrutierungskriterien nach Bestätigung der exakten Kriterien-ID löschen |
| Gerätefamilien und OS-Versionen auflisten, die Apple derzeit zulässt |
| Prüfen, ob eine Gruppe einen Build hat, der mit ihren Kriterien kompatibel ist |
Enthält Tools für Tester-Liste, -Suche, -Abruf, -Erstellung und -Löschung sowie App-Beziehungen, Einladungen, Beta-Gruppenzuweisung, Build-Zuweisung und App-Entfernung.
Tool | Beschreibung |
| Neue App-Version erstellen |
| Versionen mit Statusfilterung auflisten |
| Detaillierte Versionsinformationen abrufen |
| Fragebogen zur Altersfreigabe der App-Info lesen |
| Berechnete Altersfreigaben nach Gebiet auflisten |
| Versionsattribute aktualisieren |
| Build an Version anhängen |
| Zur App-Store-Prüfung einreichen |
| Laufende Prüfung abbrechen |
| Genehmigte Version veröffentlichen |
| Phased Release erstellen |
| Phased-Release-Informationen und ID abrufen |
| Rollout pausieren/fortsetzen/abschließen |
| Eine berechtigte geplante Phased-Release mit Bestätigung der exakten ID und Sicherheit bei unbekanntem Ausgang löschen |
| Kontaktinformationen des Prüfers festlegen |
| Altersfreigabe-Erklärung konfigurieren |
| Eine bearbeitbare App-Version mit Bestätigung der exakten ID und Sicherheit bei unbekanntem Ausgang löschen |
Tool | Description |
| Bewertungen mit Filtern und Paginierung abrufen |
| Details zu einer bestimmten Bewertung abrufen |
| Bewertungen für eine bestimmte Version abrufen |
| Aggregierte Bewertungsstatistiken |
| Auf eine Kundenbewertung antworten |
| Eine Antwort löschen |
| Antwort zu einer Bewertung abrufen |
| Bewertungsthemen und Bewertungswerte zusammenfassen |
Tool | Description |
| In-App-Käufe für eine App auflisten |
| IAP-Details abrufen |
| Neues IAP erstellen |
| IAP-Attribute aktualisieren |
| IAP löschen |
| IAP-Lokalisierungen auflisten |
| IAP-Lokalisierung erstellen |
| IAP-Lokalisierung aktualisieren |
| IAP-Lokalisierung löschen |
| IAP zur Überprüfung einreichen |
| Abonnementgruppen auflisten |
| Details zur Abonnementgruppe abrufen |
| KI-freundliches IAP-Inventar für eine App |
| Gebietsspezifische Preispunkte auflisten |
| Preispunkt-Angleichungen auflisten |
| Preisplan abrufen |
| Preisplan festlegen |
| Aktuelle und geplante Preise zusammenfassen |
| Preispunkt-Kandidaten für Angebote finden |
| Gebietsverfügbarkeit festlegen |
| Verfügbarkeit nach IAP oder Verfügbarkeits-ID abrufen |
| Verfügbare Gebiete auflisten |
| Status des beworbenen Kaufs abrufen |
| IAP-Angebotscodes auflisten |
| IAP-Angebotscode abrufen |
| IAP-Angebotscode erstellen |
| IAP-Angebotscode aktualisieren |
| IAP-Angebotscode deaktivieren |
| Gebietsspezifische Angebotspreise auflisten |
| Einmalige Angebotscodes generieren |
| Einmalcode-Chargen auflisten |
| Einmalcode-Charge abrufen |
| Einmalcode-Charge aktualisieren |
| Einmalcode-Charge deaktivieren |
| Generierte Einmalcode-Werte abrufen |
| Benutzerdefinierten Angebotscode erstellen |
| Details zum benutzerdefinierten Code abrufen |
| Benutzerdefinierten Code aktualisieren |
| Benutzerdefinierten Code deaktivieren |
| Screenshot zur Überprüfung abrufen |
| Screenshot zur Überprüfung hochladen |
| Screenshot zur Überprüfung löschen |
| Werbeimage hochladen |
| Werbeimage abrufen |
| Werbeimage löschen |
| Werbeimages auflisten |
| Überprüfbare IAP-Metadatenversion erstellen |
| IAP-Version und deren Überprüfungsstatus abrufen |
| Überprüfbare Versionen für ein IAP auflisten |
| Lokalisierungen einer IAP-Version auflisten |
| Lokalisierung für eine IAP-Version erstellen |
| Lokalisierung einer IAP-Version abrufen |
| Nullable-Text einer IAP-Versionslokalisierung aktualisieren |
| Lokalisierung einer IAP-Version löschen |
| Das einzelne Bild einer IAP-Version abrufen |
| Alle Bildressourcen einer IAP-Version mit strikter Fortsetzungsunterstützung auflisten |
| Unveränderliches IAP-Versionsbild hochladen, committen und abgleichen |
| Versionsbezogene IAP-Bildressource abrufen |
| Versionsbezogenes IAP-Bild löschen |
Die bisherigen produktbezogenen Lokalisierungs-, Einreichungs- und Bildtools bleiben aus Kompatibilitätsgründen aufrufbar. Apple 4.4.1 kennzeichnet iap_list_localizations, iap_create_localization, iap_update_localization, iap_delete_localization, iap_submit_for_review, iap_upload_image, iap_get_image, iap_delete_image und iap_list_images als veraltet; erfolgreiche Antworten weisen auf die versionierten Ersatztools hin. Verwenden Sie für die Erstellung von Lokalisierungen, den Upload von Werbeimages und die Einreichung zur Überprüfung zunächst iap_list_versions, rufen Sie iap_create_version nur auf, wenn eine neue Metadatenversion benötigt wird, und übergeben Sie diese Versions-ID an das nachgelagerte versionierte Tool. Diese Kompatibilitätsaufrufe erstellen oder wählen niemals automatisch eine Version aus.
Falls Apple eine Version oder Versionslokalisierung möglicherweise akzeptiert hat, die Antwort jedoch verloren gegangen ist oder nicht dekodiert werden kann, gibt das Tool write_outcome: not_confirmed und retrySafe: false zusammen mit der angeforderten Identität sowie Listen-/Abruf-Prüfschritten zurück. Prüfen Sie vor einem erneuten Versuch, um doppelte Metadatenressourcen zu vermeiden.
Umfasst Abonnement- und Gruppen-Metadatenversionen, versionsbezogene Lokalisierungen und Bilder, plantypabhängige Verfügbarkeit, gebietsspezifische Preise, Preispunkte und angepasste Angleichungen, Lesezugriffe auf beworbene Käufe, Inventar-/Preis-Hilfsfunktionen, Einführungsangebote, Werbeangebote, Angebotscodes, Einmal-/benutzerdefinierte Codes, Win-back-Angebote und Überprüfungs-Screenshots. Die gesamte bisherige öffentliche Funktionalität von offer_codes_*, intro_offers_*, promo_offers_* und winback_* wird über subscriptions_* bereitgestellt.
Apple 4.4.1 kennzeichnet außerdem die bisherigen produkt- oder gruppenbezogenen Lokalisierungs-, Bild- und Einreichungstools als veraltet. Sie bleiben aus Kompatibilitätsgründen aufrufbar, geben bei Erfolg explizite Hinweise auf Ersatztools zurück und erstellen oder wählen niemals automatisch eine Metadatenversion aus. Neue Integrationen sollten subscriptions_create_version oder subscriptions_create_group_version, die entsprechenden Versionslokalisierungs-/Bildtools sowie den generischen review_submissions_*-Workflow verwenden.
Erstellungen von Abonnementversionen, Gruppenversionen, Lokalisierungen und Planverfügbarkeiten verwenden denselben nicht-idempotenten Wiederherstellungsvertrag: Ein mehrdeutiger Apple-Schreibvorgang gibt write_outcome: not_confirmed, retrySafe: false, den angeforderten Fingerabdruck und deterministische Listen-/Abruf-Prüfhinweise zurück.
Die folgenden Namen bleiben aus Kompatibilitätsgründen verfügbar, aber Apple 4.4.1 kennzeichnet ihre bisherige subscriptionAvailability-Ressource zugunsten plantypabhängiger subscriptionPlanAvailabilities als veraltet:
Tool | Kompatibilitätsstatus |
| Veralteter Legacy-Verfügbarkeits-Lesezugriff |
| Veralteter Legacy-Verfügbarkeits-Schreibzugriff |
| Veraltete Legacy-Liste der Vertriebsgebiete |
| Veralteter Helfer; kann Abonnements über die erste enthaltene Beziehungsseite hinaus auslassen und ist kein maßgebliches vollständiges Inventar |
Tool | Beschreibung |
| Sandbox-Tester auflisten |
| Sandbox-Tester-Einstellungen aktualisieren |
| Kaufhistorie für Sandbox-Tester löschen |
Tool | Beschreibung |
| Beta-App-Lokalisierungen auflisten |
| Beta-App-Lokalisierung erstellen |
| Beta-App-Lokalisierung abrufen |
| Beta-App-Lokalisierung aktualisieren |
| Beta-App-Lokalisierung löschen |
| Build zur Beta-Überprüfung einreichen |
| Beta-Überprüfungseinreichungen auflisten |
| Beta-Überprüfungseinreichung abrufen |
| Details zur Beta-App-Überprüfung abrufen |
| Details zur Beta-App-Überprüfung aktualisieren |
Enthält Auflistung, Details und zugehörige Builds von Pre-Release-Versionen.
Enthält Auflisten, Abrufen und Aktualisieren von Beta-Lizenzvereinbarungen.
Tool | Beschreibung |
| Registrierte Bundle-Identifikatoren auflisten |
| Bundle-ID-Details abrufen |
| Neuen Bundle-Identifikator registrieren |
| Bundle-Identifikator löschen |
| Registrierte Geräte auflisten |
| Neues Gerät (UDID) registrieren |
| Gerätenamen oder -status aktualisieren |
| Signierzertifikate auflisten |
| Zertifikatsdetails abrufen |
| Zertifikat widerrufen |
| Provisioning-Profile auflisten |
| Profildetails abrufen |
| Profil löschen |
| Provisioning-Profil erstellen |
| Bundle-ID-Funktionen auflisten |
| Funktion aktivieren |
| Funktion deaktivieren |
Enthält App-Info-Listen-/Abruf-/Aktualisierungs-Tools, App-Info-Lokalisierungen sowie EULA-Abruf-/Erstellungs-/Aktualisierungs-Tools.
Enthält Tools für Vertriebsgebiete, Verfügbarkeit, Preispunkte, Preispläne und App-Store-Verfügbarkeit v2.
Enthält Tools zum Auflisten/Abrufen/Aktualisieren/Entfernen von Teammitgliedern, Einladungen, sichtbare Apps und Aktualisierungen der Beziehungen sichtbarer Apps.
Enthält CRUD für In-App-Events sowie Tools zum Auflisten/Erstellen/Aktualisieren/Löschen von Ereignislokalisierungen.
Enthält Tools für Verkäufe, Finanzen, App-Zusammenfassung, Analytics-Berichtsanfrage, Bericht, Instanz, Snapshot und Segmente.
Tool | Beschreibung |
| Screenshot-Sets auflisten |
| Screenshot-Set anhand der ID abrufen |
| Screenshot-Set erstellen |
| Screenshot-Set löschen |
| Screenshots in einem Set auflisten |
| Screenshot hochladen |
| Screenshot-Details abrufen |
| Screenshot löschen |
| Screenshots in einem Set neu anordnen |
| App-Preview-Sets auflisten |
| App-Preview-Set anhand der ID abrufen |
| Preview-Set erstellen |
| Preview-Set löschen |
| App-Preview hochladen |
| Preview-Details abrufen |
| Previews in einem Preview-Set auflisten |
| Jedes Preview in einem Set mit Mitgliedschaft und Postflight-Verifizierung neu anordnen |
| Screenshots in einem Stapel hochladen |
| Preview löschen |
Tool | Beschreibung |
| Benutzerdefinierte Produktseiten auflisten |
| Seitendetails abrufen |
| Benutzerdefinierte Seite erstellen |
| Benutzerdefinierte Seite aktualisieren |
| Benutzerdefinierte Seite löschen |
| Seitenversionen auflisten |
| Seitenversion anhand der ID abrufen |
| Seitenversion erstellen |
| Seitenversion aktualisieren |
| Versionslokalisierungen auflisten |
| Lokalisierung anhand der ID abrufen |
| Lokalisierung erstellen |
| Lokalisierung aktualisieren |
| Lokalisierung nach exakter Bestätigung löschen |
| Einer Lokalisierung zugewiesene Suchschlüsselwort-IDs auflisten |
| Suchschlüsselwort-Beziehungen hinzufügen |
| Suchschlüsselwort-Beziehungen nach exakter Bestätigung entfernen |
Tool | Beschreibung |
| A/B-Test-Experimente auflisten |
| V2-Experimente für eine App-Store-Version auflisten |
| Experimentdetails abrufen |
| Experiment erstellen |
| Experiment aktualisieren/starten/stoppen |
| Experiment löschen |
| Experiment-Treatments auflisten |
| Treatment anhand der ID abrufen |
| Treatment-Variante erstellen |
| Treatment-Variante aktualisieren |
| Treatment nach exakter Bestätigung löschen |
| Treatment-Lokalisierungen auflisten |
| Treatment-Lokalisierung anhand der ID abrufen |
| Treatment-Lokalisierung erstellen |
| Treatment-Lokalisierung nach exakter Bestätigung löschen |
Tool | Beschreibung |
| Beworbene Käufe für eine App auflisten |
| Details zur Promotion abrufen |
| Eine Promotion erstellen |
| Sichtbarkeit oder Aktivierungsstatus der Promotion aktualisieren |
| Eine Promotion löschen |
| Die vollständige Reihenfolge der beworbenen Käufe für eine App ersetzen und verifizieren |
| Veraltet: gibt Migrationshinweise zurück; der Endpunkt fehlt in der fixierten Apple OpenAPI 4.4.1 |
| Veraltet: gibt Migrationshinweise zurück; der Endpunkt fehlt in der fixierten Apple OpenAPI 4.4.1 |
| Veraltet: gibt Migrationshinweise zurück; der Endpunkt fehlt in der fixierten Apple OpenAPI 4.4.1 |
| Veraltet: gibt Migrationshinweise zurück; die Beziehung fehlt in der fixierten Apple OpenAPI 4.4.1 |
Enthält Tools zum Hochladen, Abrufen, Löschen und Auflisten von App-Store-Review-Anhängen.
Tool | Beschreibung |
| Generische Review-Einreichungen für eine App auflisten |
| Eine generische Review-Einreichung abrufen |
| Eine generische Review-Einreichung für eine App und Plattform erstellen |
| Elemente auflisten, die an einer Review-Einreichung angehängt sind |
| Eine überprüfbare Ressourcenversion an eine Einreichung anhängen |
| Den nullable-Status |
| Ein Element aus einer Einreichung entfernen |
| Alle angehängten Elemente zur Überprüfung einreichen |
| Eine eingereichte generische Review-Einreichung abbrechen |
review_submissions_add_item meldet Erfolg nur, wenn Apples Antwort eine gültige Element-ID sowie exakt den angeforderten Beziehungsnamen, den JSON:API-Typ und die Ressourcen-ID bestätigt. Jede Abweichung wird als unbestätigter Schreibvorgang mit Schritten zur Wiederherstellung der Einreichung und der Elementliste zurückgegeben.
Tool | Beschreibung |
| App-Leistungs-/Energiemetriken abrufen |
| Build-Leistungsmetriken abrufen |
| Diagnosen für einen Build auflisten |
| Diagnoseprotokolle abrufen |
| TestFlight-Absturz-, Sitzungs- und Feedback-Metriken einer App nach Beta-Tester abrufen |
| TestFlight-Absturz-, Sitzungs- und Feedback-Metriken einer Beta-Gruppe nach Beta-Tester abrufen |
| Aufrufe öffentlicher Links, Annahmeergebnisse, Kriterienfehler und Umfrageverhältnisse abrufen |
| TestFlight-Nutzungsmetriken eines Testers innerhalb einer App abrufen |
| TestFlight-Absturz-, Installations-, Sitzungs-, Feedback- und Einladungsmetriken eines Builds abrufen |
Verwendungsbeispiele
Vollständiger Release-Workflow
You: "Release version 2.2.0 of my app with build 456"
Claude will:
1. app_versions_create(app_id, platform: "IOS", version_string: "2.2.0")
2. app_versions_attach_build(version_id, build_id)
3. app_versions_set_review_details(version_id, contact_email: "...")
4. app_versions_submit_for_review(version_id)
5. app_versions_create_phased_release(version_id) # after approvalTestFlight-Verteilung
You: "Create a beta group 'External Testers' and distribute the latest build"
Claude will:
1. beta_groups_create(app_id, name: "External Testers")
2. builds_list(app_id, limit: 1) # find latest
3. builds_set_beta_localization(build_id, locale: "en-US", whats_new: "...")
4. beta_groups_add_testers(group_id, tester_ids: [...])Review-Verwaltung
You: "Show me all 1-star reviews from the last week and draft responses"
Claude will:
1. reviews_list(app_id, rating: 1, sort: "-createdDate", limit: 50)
2. reviews_create_response(review_id, response_body: "...") # for eachMulti-Company-Workflow
You: "Switch to ClientCorp and check their latest build status"
Claude will:
1. company_switch(company: "ClientCorp")
2. apps_list(limit: 5)
3. builds_list(app_id, limit: 1)
4. builds_get_processing_state(build_id)API-Einschränkungen
Einschränkung | Details |
Keine Emojis | Metadatenfelder (What's New, Description, Keywords) dürfen keine Emoji-Zeichen enthalten |
Versionsstatus | App Store Connect validiert die bearbeitbaren Status für Metadatenaktualisierungen. Abgelehnte und wegen Metadaten abgelehnte Versionen können für die erneute Einreichung bearbeitet werden; veröffentlichte oder in Prüfung befindliche Versionen können von Apple abgelehnt werden. |
JWT-Ablauf | Tokens laufen nach 20 Minuten ab — der Server aktualisiert sie automatisch |
Ratenlimits | Apple erzwingt Ratenlimits pro Konto (Dokumentation) |
Locale-Format | Verwenden Sie Standardcodes: |
Architektur
Sources/asc-mcp/
├── EntryPoint.swift # Entry point, --workers filtering
├── Core/
│ ├── Application.swift # MCP server setup & initialization
│ └── ASCError.swift # Custom error types
├── Helpers/ # JSON formatting, pagination, safe helpers
├── Models/ # API request/response models
│ ├── AppStoreConnect/ # Apps, versions, localizations
│ ├── Builds/ # Builds, beta details, beta groups
│ ├── AppLifecycle/ # Version lifecycle models
│ ├── InAppPurchases/ # IAP models
│ ├── Subscriptions/ # Subscriptions, offer codes, win-back
│ ├── Marketing/ # Screenshots, custom pages, PPO, promoted
│ ├── Metrics/ # Performance metrics, diagnostics
│ ├── Analytics/ # Sales/financial reports
│ ├── Provisioning/ # Bundle IDs, devices, certificates
│ ├── Shared/ # Shared upload/image types
│ └── ... # AppEvents, AppInfo, Pricing, Users
├── Services/
│ ├── HTTPClient.swift # Actor-based HTTP with retry logic
│ ├── JWTService.swift # ES256 JWT token generation
│ └── CompaniesManager.swift # Multi-account management
└── Workers/ # MCP tool implementations (39 Swift worker classes + MainWorker router)
├── MainWorker/WorkerManager # Central tool registry & routing
├── CompaniesWorker/ # company_* tools
├── AuthWorker/ # auth_* tools
├── AppsWorker/ # apps_* tools
├── AccessibilityWorker/ # accessibility_* tools
├── WebhooksWorker/ # webhooks_* tools
├── XcodeCloudWorker/ # xcode_cloud_* tools
├── BuildsWorker/ # builds_* tools
├── BuildUploadsWorker/ # build_uploads_* tools
├── BuildProcessingWorker/ # builds_*_processing tools
├── ExportComplianceWorker/ # export_compliance_* tools
├── BuildBetaDetailsWorker/ # builds_*_beta_* tools
├── AppLifecycleWorker/ # app_versions_* tools
├── ReviewsWorker/ # reviews_* tools
├── BetaGroupsWorker/ # beta_groups_* tools
├── BetaFeedbackWorker/ # beta_feedback_* tools
├── BetaTestersWorker/ # beta_testers_* tools
├── InAppPurchasesWorker/ # iap_* tools
├── SubscriptionsWorker/ # subscriptions_* tools
├── OfferCodesWorker/ # subscriptions offer-code tools
├── IntroductoryOffersWorker/ # subscriptions intro-offer tools
├── PromotionalOffersWorker/ # subscriptions promotional-offer tools
├── WinBackOffersWorker/ # subscriptions win-back tools
├── SandboxTestersWorker/ # sandbox_* tools
├── BetaAppWorker/ # beta_app_* tools
├── PreReleaseVersionsWorker/ # pre_release_* tools
├── BetaLicenseAgreementsWorker/ # beta_license_* tools
├── ProvisioningWorker/ # provisioning_* tools
├── AppInfoWorker/ # app_info_* tools
├── PricingWorker/ # pricing_* tools
├── UsersWorker/ # users_* tools
├── AppEventsWorker/ # app_events_* tools
├── AnalyticsWorker/ # analytics_* tools
├── ScreenshotsWorker/ # screenshots_* tools
├── CustomProductPagesWorker/ # custom_pages_* tools
├── ProductPageOptimizationWorker/ # ppo_* tools
├── PromotedPurchasesWorker/ # promoted_* tools
├── ReviewAttachmentsWorker/ # review_attachments_* tools
├── ReviewSubmissionsWorker/ # review_submissions_* tools
└── MetricsWorker/ # metrics_* toolsDesignprinzipien
Strikte Nebenläufigkeit in Swift 6 — alle Worker und Dienste sind
Sendable, mit korrekter Actor-IsolationActor-basierter HTTP-Client — threadsicher mit exponentiellem Backoff und Wiederholungslogik
Präfixbasiertes Routing —
WorkerManagerleitet Tool-Aufrufe anhand des Namenspräfixes weiter (keine Konfiguration erforderlich)Minimale Abhängigkeiten — nur das MCP Swift SDK
Fehlerbehebung
Führen Sie
~/.mint/bin/asc-mcp --versionaus, um die Installation unabhängig vom MCP-Client zu überprüfen.Stellen Sie sicher, dass der MCP-Client den absoluten Pfad zur installierten ausführbaren Datei verwendet.
Führen Sie für Codex
codex mcp listundcodex mcp get asc-mcp --jsonaus.Führen Sie für Claude Code
claude mcp get asc-mcpundclaude mcp listaus.Prüfen Sie entweder die konfigurierte Datei
companies.jsonoder die Umgebungsvariablen, die von Ihrer gewählten Einrichtung verwendet werden.Stellen Sie sicher, dass jeder
.p8-Schlüsselpfad absolut ist und die Datei existiert.Starten Sie GUI-Clients nach Änderungen an ihrer MCP-Konfiguration neu und prüfen Sie anschließend das MCP-Ausgabeprotokoll des Clients.
Stellen Sie sicher, dass Ihre Key ID und Issuer ID mit den Angaben in App Store Connect übereinstimmen
Stellen Sie sicher, dass die
.p8-Datei der ursprüngliche Download ist (nicht modifiziert)Prüfen Sie, ob der API-Schlüssel widerrufen wurde
JWT-Tokens aktualisieren sich automatisch, aber wenn der Schlüssel ungültig ist, schlagen alle Anfragen fehl
apps_update_metadata sendet den Metadaten-PATCH nach lokaler Text-, Locale- und URL-Validierung an App Store Connect. Apple entscheidet, ob der aktuelle Versionsstatus bearbeitbar ist. Abgelehnte und wegen Metadaten abgelehnte Versionen können bearbeitet und erneut eingereicht werden; veröffentlichte, in Prüfung befindliche oder anderweitig gesperrte Versionen können einen Apple-API-Fehler zurückgeben.
Verwenden Sie builds_get_processing_status, um den aktuellen Verarbeitungsstatus zu prüfen, und builds_check_readiness, um die App-Store-/TestFlight-Bereitschaft zu überprüfen. Die Build-Verarbeitung von Apple dauert in der Regel 5-30 Minuten, kann aber zu Spitzenzeiten länger dauern.
Der HTTP-Client wiederholt 429-Antworten automatisch mit exponentiellem Backoff. Wenn Sie regelmäßig an Grenzen stoßen, reduzieren Sie die Häufigkeit der API-Aufrufe oder verwenden Sie Paginierung mit kleineren Seitengrößen.
Hilfe erhalten
Bevor Sie ein Issue eröffnen, durchsuchen Sie die bestehenden Issues. Wenn das Problem neu ist, erstellen Sie ein Issue und geben Sie Folgendes an:
macOS-Version und Installationsmethode;
Name und Version des MCP-Clients;
den ausgewählten Wert für
--workers, falls vorhanden;die genaue Fehlermeldung und die kleinste reproduzierbare Anfrage.
Entfernen Sie Key IDs, Issuer IDs, private Schlüssel, signierte URLs, Tokens und Kontodaten aus Protokollen, bevor Sie sie veröffentlichen. Melden Sie Sicherheitslücken vertraulich, indem Sie SECURITY.md befolgen. Informationen zu Code-Beiträgen finden Sie in CONTRIBUTING.md.
Entwicklung
Erstellen
swift build # Debug build
swift build -c release # Release build (optimized)
swift package clean # Clean build artifactsTestmodus
.build/debug/asc-mcp --test # Runs built-in integration testsHinzufügen eines neuen Tools
Erstellen Sie eine Handler-Methode in der entsprechenden Datei
Worker+Handlers.swiftFügen Sie die Tool-Definition in
Worker+ToolDefinitions.swifthinzuRegistrieren Sie sie in der
getTools()-Methode des WorkersFügen Sie einen Routing-Fall im
handleTool()-Switch des Workers hinzuDer
WorkerManagerroutet automatisch anhand des Präfixes — dort sind keine Änderungen erforderlich
Hinzufügen eines neuen Workers
Erstellen Sie ein Verzeichnis:
Workers/MyWorker/Erstellen Sie 3 Dateien:
MyWorker.swift,MyWorker+ToolDefinitions.swift,MyWorker+Handlers.swiftFügen Sie die Worker-Eigenschaft und die Initialisierung in
WorkerManager.swifthinzuFügen Sie die Routing-Regel in
WorkerManager.registerWorkers()hinzuFügen Sie die Hilfsmethode
getMyTools()hinzu
Mitwirken
Wir freuen uns über Beiträge! Weitere Informationen finden Sie im Leitfaden für Mitwirkende.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie in der Datei LICENSE.
Danksagungen
Model Context Protocol — die Protokollspezifikation und das Swift SDK
App Store Connect API — Apples offizielle REST-API
Dies ist ein inoffizielles, von der Community gepflegtes Tool und steht in keiner Verbindung zu Apple Inc. und wird von Apple Inc. nicht unterstützt.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
- app-managerOAuthapp.lance
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Meta Ads and Google Ads MCP server: 250+ tools for Claude, ChatGPT, Cursor and Codex.
Related MCP Servers
- AlicenseAqualityBmaintenanceA Model Context Protocol (MCP) server for Apple's App Store Connect API. Manage your iOS, macOS, tvOS, and visionOS apps directly from Claude, Cursor, or any MCP-compatible client.52899 npm22MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that connects Cursor, Claude Desktop, and other MCP clients to the official App Store Connect API—so you can manage iOS/macOS apps, TestFlight, in-app subscriptions, and store metadata via chat or automated tool calls.6951 npm13MIT
- AlicenseAqualityAmaintenanceAn opinionated MCP server for App Store Connect that provides 13 curated tools, slash-command workflows, and a Claude Skill to manage apps, reviews, sales, and pre-submission audits via natural language.41263 npm1MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that exposes the entire Apple App Store Connect API (1,200+ operations) as MCP tools, enabling AI assistants to query apps, manage builds, handle submissions, read analytics, and more.6 npmMIT