Hızlı başlangıç
Heimdall, Node.js 20.19+'in çalıştığı her yerde çalışır — macOS, Linux ve Windows. Yalnızca bir özellik macOS'a özgüdür: .p8 anahtarını macOS Keychain'de saklamak. Linux ve Windows'ta anahtarı dosya yolu ya da inline PEM olarak verirsiniz; gerisi birebir aynıdır.
API anahtarı oluşturun
App Store Connect Users and Access → Integrations → Keys sayfasına gidin ve bir anahtar oluşturup, .p8 dosyasını indirin. Aynı sayfadan Key ID ve Issuer ID değerlerini not alın.
Müşteri işlemlerini de soracaksanız — satın alma geçmişi, hak sahipliği, iadeler (StoreKit 2) — uygulamanızın Bundle ID'sini de hazır tutun. Sihirbaz bunu monetization profilini seçtiğinizde sorar; seçmezseniz hiç sormaz.
setup'ı çalıştırana kadar güvenli bir yerde saklayın.
Anahtara verdiğiniz rol, bir agent'ın hangi yetkileri aldığını — ve bir istek ters giderse neyi bozabileceğini — belirler. Kullanım amacınızı karşılayan en dar rolü seçin; hangi rol neyi açar, Roller ve yetkiler'de.
Kurulum
Daha önce görmediğiniz bir MCP kurulum deneyimi yaşamaya hazır olun.
Terminali açın.
npx -y @erayendes/asc-mcp setup
Kimlik bilgisini bir kez kaydedin — Setup sihirbazı
Setup sihirbazı App Store Connect hesabına erişmek için bazı bilgiler ve anahtarlar ister.
- Yazarken
Key IDveIssuer IDformatları kontrol edilir. .p8yolu Finder'dan sürükle-bırakı kabul eder ve gerçek bir anahtar dosyasına işaret edene kadar tekrar sorulur.- Kaydetmeden önce bilgileri Apple'a doğrulatır. Apple reddederse yeniden girersiniz.
- Satış/finans raporlarına ulaşmak için opsiyonel olarak
Vendor numbersorulur. - İstemci seçici, profilleri hangi MCP istemcilerine kurmak istediğinizi sorar, cihazınızda bulunanlar işaretli olarak gelir. İstemcilerin config’leri önce yedeklenir, sonra düzenlenir.
- Profil seçicinin her satırı, profilin araç sayısını ve kabaca token maliyetini gösterir; zaten kayıtlı profiller önceden işaretlidir. Hangisini seçeceğiniz Profiller'de.
- Eğer
monetizationprofili seçerseniz, Bundle ID'yi ve StoreKit ortamını (Sandbox/Production) sorar. Monetization seçmezseniz hiç sorulmaz.
En sonunda planı gösterip bir kez sorduktan sonra seçtiğiniz her yere kaydeder. Bittiğinde istemcinizi yeniden başlatın ve "App Store Connect bağlantısını kontrol et" deyin — bu asc__status'u çağırır ve kimlik bilgilerinizi doğrular.
- Anahtar macOS Keychain'de saklanır. macOS dışında dosya yoluyla referanslanır.
- Gizli olmayan her şey
~/.config/asc-mcp/config.json'a yazılır. Her profil bu ortak yapılandırmayı okur.- Eğer Heimdall setup daha önce çalışmışsa, kayıtlı
Key/Issuer'ınızı bulur ve bunları yeniden kullanıp yalnızca profilleri yeniden seçmeyi önerir.- Xcode 27 eklentileri Git URL’sinden kurduğu için bir config dosyası yok. Bu yüzden Setup sihirbazında kendine yer bulamıyor.
Heimdall'ı bir AI agent mı kuracak?
Devir protokolü AGENTS.md'de: agent profilleri register ile ekler, anahtar için setup'ı siz çalıştırırsınız — özel anahtarınız sadece sizin gözleriniz için, AI agent göremez.
Nereye kaydedilir
Heimdall, setup profillerini, bulduğu her MCP istemcisine kaydeder. Bu istemcilerin hiçbiri config dosyasını paylaşmaz; yani bu adım olmasa her istemci için ayrı ayrı, her seferinde farklı biçimde elle yapılırdı.
| İstemci | Nereye | Nasıl yazılır |
|---|---|---|
| Claude Code | ~/.claude.json | claude mcp add |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | buradan düzenlenir |
| Codex | ~/.codex/config.toml | codex mcp add |
| Antigravity | ~/.gemini/config/mcp_config.json | buradan düzenlenir |
| Cursor | ~/.cursor/mcp.json | buradan düzenlenir |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | buradan düzenlenir |
| VS Code | kullanıcı MCP config'i | code --add-mcp |
Sonradan ekleme ve çıkarma
Birkaç profille başlayın, proje ihtiyaç duydukça ekleyin.
- Setup'ı yeniden çalıştırın —
npx -y @erayendes/asc-mcp setup. - Kimlik bilgilerinizi yeniden kullanır ve seçicileri tekrar gösterir.
- İstemciler ve profiller mevcut hâlleriyle işaretli gelir. İşaretleyin/kaldırın; seçtiğiniz her istemcide ekler ve siler.
Bir aracı yeniden başlatmadan kullanmak
Daralttığınız bir profil geri kalanını yine de bilir:
asc__describeprofilin sahip olduğu herhangi bir aracın tam şemasını döndürür — yüklü olsun olmasın.asc__callsadece okur. Fiyat listeler, uygulama getirir ama fiyat değiştirmez, sürüm göndermez.asc__loadoturum ortasında bütün bir alt profil ekler, araçları kullanılabilir hale getirir.
Peki araç bambaşka bir profildeyse? asc__search_tools tüm 982 işlemi artı StoreKit'i arar, yüklü olmayan her şey için sahibi olan kardeş sunucuyu adlandırır ve ekleme komutunu basar. Yalın kurun, sunucu size neyin eksik olduğunu söylesin.
Xcode 27'de Heimdall kullanmak
-
Henüz yapmadıysanız bir kez
npx -y @erayendes/asc-mcp setupçalıştırın. Anahtar bilgileriniz Keychain'e kaydedilir; eklentinin ona ulaşmasının başka yolu yok. -
Xcode → Settings → Intelligence → Plug-ins → Add Plug-in…
-
Add from URL seçin,
https://github.com/erayendes/app-store-connect-mcpyapıştırın.
-
Xcode her eklenti için onay kutulu bir "Choose Plug-ins" ekranı gösterir. Heimdall | ASC Skill'i ve ihtiyacınız olan alanları seçin.
-
İlk App Store Connect çağrısı, her agent aracı gibi izin sorar.
Bundan sonrası bildiğiniz Heimdall.
Aynı adresle yeniden Add from URL: ekran kurulu olanları "Already imported" diye gri gösterir; yenisini tikleyip Import deyin. Bir alanı atmak için listeden eklentisini açıp Delete Plug-in.
Eklentiler Xcode'un kendi chat'ine değil, agent'lara gider. Sohbetin model menüsünden yerleşik bir model değil, bir agent seçin. Seçtiğiniz agent sunucuları başlatır.
Sorun giderme
| Belirti | Ne oluyor | Çözüm |
|---|---|---|
401 Unauthorized | Key ID, Issuer ID ve .p8 aynı anahtara ait değil ya da anahtar iptal edilmiş. | setup'ı yeniden çalıştırın — kaydetmeden önce kimlik bilgilerini Apple'a doğrular. |
403 Forbidden | Anahtarın rolü o işlem için yeterli değil. | Roller ve yetkiler. asc__status'u check_capabilities: true ile çağırıp neyin kapalı olduğunu görün. |
Sürüm güncellemesinde 409 Conflict | App Store Connect düzenlemelere yalnızca belirli sürüm durumlarında izin verir. | İncelemede olan veya yayınlanmış bir sürüm kilitlidir. |
| Çok fazla araç / context tükendi | Birleşik sunucuyu ya da --domains=all çalıştırıyorsunuz. | Tek bir profil kaydedin. asc__search_tools yine de ihtiyacınız olanı bulur. |
| İhtiyacım olan araç listede yok | Başka bir profilde. | Agent'a arattırın: asc__search_tools kardeş sunucuyu adlandırır ve ekleme komutunu basar. |
429 Too Many Requests | İstekler Apple'ın saatte 3.600 limitine göre hızlandırılır ve backoff ile tekrar denenir. | Israrlı 429'lar, anahtarınızı başka bir şeyin de kullandığı anlamına gelir. |
| StoreKit araçları eksik | App Store Server API bir Bundle ID ister. | setup'ı yeniden çalıştırıp monetization altında Bundle ID'yi girin. |
Kaldırma
Önce kaydı silin. setup'ı yeniden çalıştırın, profil seçicisinde her şeyin işaretini kaldırın; seçtiğiniz her istemciden profilleri siler.
Sonra gerisi:
# Ortak kimlik bilgisi yapılandırması
rm -rf ~/.config/asc-mcp
# Kullandıysanız, macOS Keychain'deki anahtar
security delete-generic-password -s asc-mcp -a AuthKey_XXXXXXXXXX
# Paket, yalnızca global kurduysanız
npm uninstall -g @erayendes/asc-mcp
API anahtarının kendisini iptal etmek App Store Connect üzerinden yapılır. Yerel kopyayı silmek onu iptal etmez.