mcpField
A
axiom-asc-mcp

axiom-asc-mcp

github.com/charleswiltgen開発1.2k98 回インストール今日更新
リポジトリ

axiom-asc-mcp について

Claude Code で asc-mcp を使い、App Store Connect のリリース、TestFlight、レビュー、指標、複数チームを管理するためのスキルです。ワークフローとツールの選択方法も説明します。

主な機能

  1. 01アプリのバージョンとビルドの提出
  2. 02TestFlight ビルドの配布
  3. 03レビューの一覧表示と返信
  4. 04ビルド診断と指標の確認
  5. 05複数企業アカウントの切り替え
  6. 06Worker 単位のツール選択

活用シーン

  1. 01アプリのバージョンを審査に提出
  2. 02ビルドを TestFlight グループに配布
  3. 03評価の確認とレビューへの返信
  4. 04App Store Connect チームの切り替え

MCP 対応

Claude Code で asc-mcp を MCP サーバーとして設定し、App Store Connect の認証情報を使って接続する方法と、読み込む Worker やツールの選択方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/charleswiltgen/axiom --skill axiom-asc-mcp

インストール後、Claude Code で/axiom-asc-mcpを入力して読み込まれたか確認します。

詳細

App Store Connect MCP 統合

基本原則:asc-mcp を設定すると、Claude Code を離れることなく App Store Connect のワークフロー全体を管理できます。ビルドの提出、TestFlight への配布、レビューへの返信、指標のプログラムによるモニタリングが可能です。

セットアップ

インストール
brew install mint
mint install zelentsov-dev/[email protected]
API キーの作成
  1. App Store Connect → Users and Access → Integrations → API を開きます
  2. Admin または App Manager の役割でキーを生成します
  3. .p8 ファイルをダウンロードします(ダウンロードは一度限りです。安全な場所に保存してください)
  4. Key ID と Issuer ID を控えます
Claude Code への追加
claude mcp add asc-mcp \
  -e ASC_KEY_ID=YOUR_KEY_ID \
  -e ASC_ISSUER_ID=YOUR_ISSUER_ID \
  -e ASC_PRIVATE_KEY_PATH=/path/to/AuthKey.p8 \
  -- ~/.mint/bin/asc-mcp
確認

Claude に company_current を呼び出すよう依頼します。チーム名が返されれば、接続されています。


ワーカーのフィルタリング

asc-mcp には 25 個のワーカー(約 208 個のツール)があります。すべてを読み込むとコンテキストを無駄に消費します。必要なものだけを読み込むには --workers を使用してください。

プリセット
プリセットワーカーツール用途
TestFlightapps,builds,beta_groups,beta_testers約 34ベータ配布
Releaseapps,builds,versions,reviews約 40App Store への提出
Monetizationapps,iap,subscriptions,offer_codes,pricing約 55IAP とサブスクリプション
Full(デフォルト、すべてのワーカー)約 208すべて

プリセットを使用するには、サーバーの登録時に --workers を追加します。

claude mcp add asc-mcp \
  -e ASC_KEY_ID=... \
  -e ASC_ISSUER_ID=... \
  -e ASC_PRIVATE_KEY_PATH=... \
  -- ~/.mint/bin/asc-mcp --workers apps,builds,versions,reviews

注:company と auth のワーカーは、--workers の指定にかかわらず常に読み込まれます。builds が有効な場合、build_processing と build_beta も自動的に含まれます。

ワーカー選択の判断ツリー
digraph workers {
    "What are you doing?" [shape=diamond];
    "TestFlight preset" [shape=box, label="--workers apps,builds,\nbeta_groups,beta_testers"];
    "Release preset" [shape=box, label="--workers apps,builds,\nversions,reviews"];
    "Monetization preset" [shape=box, label="--workers apps,iap,\nsubscriptions,offer_codes,pricing"];
    "Full (no flag)" [shape=box, label="No --workers flag\n(all 208 tools)"];

    "What are you doing?" -> "TestFlight preset" [label="distributing beta builds"];
    "What are you doing?" -> "Release preset" [label="submitting to App Store"];
    "What are you doing?" -> "Monetization preset" [label="managing IAP/subscriptions"];
    "What are you doing?" -> "Full (no flag)" [label="multiple tasks or unsure"];
}

ワークフロー:リリースパイプライン

新しいバージョンを App Store に提出します。

1. apps_search(query: "MyApp")           → get app ID
2. builds_list(appId, limit: 5)          → find latest processed build
3. app_versions_create(appId, platform: "IOS", versionString: "2.1.0")
4. app_versions_attach_build(versionId, buildId)
5. app_versions_set_review_details(versionId, { contactEmail, notes, ... })
6. app_versions_submit_for_review(versionId)
7. (After approval) app_versions_create_phased_release(versionId)

手順 3 の前:バージョン文字列がすでに存在していてはいけません。app_versions_list で確認してください。

手順 4 の前:ビルドの処理状態が VALID である必要があります。builds_get_processing_state で確認してください。

手順 6 の前:バージョンの状態が PREPARE_FOR_SUBMISSION である必要があります。ビルドの添付とレビュー詳細の設定は前提条件です。


ワークフロー:TestFlight 配布

ベータテスターにビルドを配布します。

1. apps_search(query: "MyApp")           → get app ID
2. builds_list(appId, limit: 5)          → find latest build
3. builds_set_beta_localization(buildId, locale: "en-US", whatsNew: "Bug fixes")
4. beta_groups_list(appId)               → find or create group
   OR beta_groups_create(appId, name: "Internal Testers", isInternal: true)
5. beta_groups_add_builds(groupId, [buildId])
6. builds_send_beta_notification(buildId) → notify testers (optional)

ヒント:内部テスター(最大 100 人)にはビルドがすぐに届きます。外部テスター(最大 10,000 人)には、各バージョンの最初のビルドについて Beta App Review が必要です。


ワークフロー:レビュー管理

App Store のレビューをモニタリングして返信します。

1. apps_search(query: "MyApp")           → get app ID
2. reviews_list(appId, sort: "-createdDate", limit: 20)
   OR reviews_list(appId, filterRating: "1,2")  → negative reviews only
3. reviews_stats(appId)                  → rating distribution summary
4. reviews_create_response(reviewId, responseBody: "Thank you for...")

返信のガイドライン:

  • 否定的なレビューには 24~48 時間以内に返信します
  • プロフェッショナルな対応を心がけ、具体的なサポートを提示します
  • 返信を更新すると以前の返信が置き換わります(ユーザーには「Developer Response」と表示されます)

ワークフロー:フィードバックのトリアージ

TestFlight のフィードバックをビルド診断情報と関連付けます。

1. builds_list(appId, limit: 10)         → recent builds
2. builds_get_beta_testers(buildId)      → who tested this build
3. metrics_build_diagnostics(buildId)    → crash signatures for this build
4. metrics_get_diagnostic_logs(signatureId) → individual crash logs

制限事項:TestFlight のテキストフィードバックとスクリーンショットは、App Store Connect API では利用できません。フィードバックの内容を確認するには、Xcode Organizer または ASC の Web ダッシュボードを使用してください。


ワークフロー:複数の会社

App Store Connect のチームを切り替えます。

1. company_list                          → see configured accounts
2. company_switch(companyId: "client-a") → switch active account
3. (All subsequent calls use client-a's credentials)
複数会社のセットアップ

~/.config/asc-mcp/companies.json に追加します。

{
  "companies": [
    {
      "id": "my-company",
      "name": "My Company",
      "key_id": "KEY_ID_1",
      "issuer_id": "ISSUER_1",
      "key_path": "/Users/you/.keys/AuthKey1.p8"
    },
    {
      "id": "client-a",
      "name": "Client A",
      "key_id": "KEY_ID_2",
      "issuer_id": "ISSUER_2",
      "key_path": "/Users/you/.keys/AuthKey2.p8"
    }
  ]
}

または、番号付きの環境変数を使用します:ASC_COMPANY_1_NAME、ASC_COMPANY_1_KEY_ID など。


主要ツールのクイックリファレンス

アプリとビルド
ツールパラメーター戻り値
apps_searchqueryApp ID、名前、bundleId、プラットフォーム
apps_listlimitアカウント内のすべてのアプリ
builds_listappId、limit、sortビルド番号、バージョン、処理状態
builds_find_by_numberappId、buildNumber指定したビルドの詳細
builds_get_processing_statebuildIdPROCESSING、VALID、INVALID など
builds_check_readinessbuildIdビルドが配布可能かどうか
バージョンと提出
ツールパラメーター戻り値
app_versions_createappId, platform, versionStringPREPARE_FOR_SUBMISSION 状態の新しいバージョン
app_versions_attach_buildversionId, buildIdビルドを添付済み
app_versions_set_review_detailsversionId, contactEmail, notes, etc.審査の詳細
app_versions_submit_for_reviewversionId審査に提出済み
app_versions_cancel_reviewversionId審査をキャンセル済み
app_versions_releaseversionId手動リリース
app_versions_create_phased_releaseversionId7 日間の段階的リリース
TestFlight
ツールパラメーター戻り値
beta_groups_createappId, name, isInternal新しいグループ
beta_groups_add_testersgroupId, testerIds更新済みグループ
beta_groups_add_buildsgroupId, buildIdsビルドを配布済み
builds_set_beta_localizationbuildId, locale, whatsNew「テストする内容」のテキスト
builds_send_beta_notificationbuildIdテスターに通知済み
レビューとメトリクス
ツールパラメーター戻り値
reviews_listappId, sort, filterRating, limitレビュー項目
reviews_statsappId評価の分布
reviews_create_responsereviewId, responseBody開発者の返信
metrics_app_perfappIdアプリレベルのパフォーマンスメトリクス
metrics_build_diagnosticsbuildIdビルドごとのクラッシュシグネチャ

API の制約

制約詳細
メタデータに絵文字を使用できないバージョンの「What’s New」、説明、キーワードには、絵文字ではなく単語を使用してください
バージョンの状態編集できるのは PREPARE_FOR_SUBMISSION 状態のバージョンのみです。提出後に変更するには、新しいバージョンを作成してください。
JWT の有効期間トークンの有効期間は 20 分です。asc-mcp によって自動更新されます
レート制限Apple はアカウントごとの制限を適用します。asc-mcp は 429 エラー時に指数バックオフで再試行します。
ロケール形式標準コードを使用します:en-US、ja、de-DE、zh-Hans、ru
ビルド処理新しくアップロードしたビルドの処理には 15~30 分かかります。添付する前に builds_get_processing_state をポーリングしてください。
段階的リリース承認後のみ利用できます。app_versions_update_phased_release で一時停止/再開できます。

注意点

注意点詳細
ビルドが見つからないビルドの処理中である可能性があります。builds_get_processing_state を確認してください。状態は VALID である必要があります。
「バージョンはすでに存在します」重複するバージョン文字列は作成できません。まず app_versions_list で確認してください。
添付に失敗するビルドの処理が完了しており、バージョンが PREPARE_FOR_SUBMISSION 状態である必要があります。
審査の詳細が却下される連絡先情報の各フィールドには形式要件があります。メールアドレスは有効な形式で、電話番号には国番号を含める必要があります。
アプリの選択間違いapps_search はあいまい検索です。返された bundleId が対象のアプリと一致することを確認してください。
複数企業の取り違え変更を加える前に、必ず最初に company_current を呼び出し、どのアカウントがアクティブかを確認してください。
ベータ版アプリの審査バージョンごとに、最初の外部 TestFlight ビルドには審査が必要です。同じバージョンへの後続のビルドは自動承認されます。
分析データがないanalytics_* ツールを使用するには、会社の設定に vendor_number が必要です。設定されていない場合、売上/財務レポートはエラーを表示せずに失敗します。

過度な合理化を避ける

考え実際のところ
「ASC の Web ダッシュボードを使えばいいだけ」MCP ツールを使うと、繰り返し行うタスクをよりすばやく実行できます。20 件のレビューへの返信、5 つのグループへの配布、複数のアプリでのバージョン作成などが可能です。
「ワーカーフィルタリングは不要」208 個のツールで約 30K トークンのコンテキストを消費します。必要なものに絞ってください。
「レビューの詳細を入力せずに提出すればいい」提出に失敗します。app_versions_submit_for_review の前に、app_versions_set_review_details が必要です。
「アカウントは 1 つしかないので、company_current は省略していい」複数企業の設定はセッション間で保持されます。必ず確認してください。
「フィードバックのトリアージは API 経由でも同じ」テキストのフィードバックとスクリーンショットは ASC API に含まれていません。フィードバックの内容には Organizer を、クラッシュ診断には MCP を使用してください。

asc-mcp が利用できない場合

asc-mcp が設定されていない場合は、手動のワークフローに切り替えてください。

  • クラッシュ分析:Xcode Organizer(axiom-testflight-triage を参照)、または App Store Connect Web ダッシュボード(axiom-app-store-connect-ref を参照)を使用します
  • TestFlight の配布:Xcode → Product → Archive → Distribute、または xcodebuild + altool を使用します
  • レビュー管理:App Store Connect Web ダッシュボードを使用します
  • 提出:Xcode → Product → Archive → Distribute to App Store を使用します

リソース

スキル:axiom-app-store-submission、axiom-app-store-ref、axiom-app-store-connect-ref、axiom-testflight-triage

エージェント:crash-analyzer、security-privacy-scanner、iap-auditor

コメント