mcpField
A
app-store-connect-mcp

app-store-connect-mcp

ローカル
github.com/chrischall開発ツール12 日前に更新

app-store-connect-mcp について

app-store-connect-mcpはClaudeをApp Store Connectに接続し、アプリ、TestFlight、レビュー、売上・財務レポート、チームユーザーを操作します。書き込み操作には確認手順があり、App Store Connect APIキーが必要です。

主な機能

  1. 01アプリとリリースの閲覧
  2. 02ビルドとTestFlightテスターの管理
  3. 03レビューの閲覧と返信
  4. 04売上・財務レポートの取得
  5. 05チームユーザーの閲覧と招待
  6. 06書き込み操作の確認

活用シーン

  1. 01最近のアプリビルドの確認
  2. 02ベータテスターの招待や管理
  3. 03評価の確認とユーザーへの返信
  4. 04売上または財務レポートの取得

MCP 対応

App Store Connectの操作をClaude向けMCPツールとして提供します。書き込み操作を送信する前に確認が必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"chrischall-app-store-connect": {
"command": "npx",
"args": [
"-y",
"@chrischall/app-store-connect-mcp"
],
"env": {
"APP_STORE_CONNECT_KEY_ID": "<APP_STORE_CONNECT_KEY_ID>",
"APP_STORE_CONNECT_ISSUER_ID": "<APP_STORE_CONNECT_ISSUER_ID>",
"APP_STORE_CONNECT_PRIVATE_KEY_PATH": "<APP_STORE_CONNECT_PRIVATE_KEY_PATH>",
"APP_STORE_CONNECT_PRIVATE_KEY": "<APP_STORE_CONNECT_PRIVATE_KEY>"
}
}
}
}
起動コマンドnpx -y @chrischall/app-store-connect-mcp
設定が必要な環境変数
APP_STORE_CONNECT_KEY_IDシークレット10-character App Store Connect API Key ID (e.g. ABC1234567).
APP_STORE_CONNECT_ISSUER_IDTeam Issuer ID (UUID) from App Store Connect → Users and Access → Integrations.
APP_STORE_CONNECT_PRIVATE_KEY_PATHシークレットAbsolute path to your downloaded .p8 private key file. Either this or APP_STORE_CONNECT_PRIVATE_KEY is required.
APP_STORE_CONNECT_PRIVATE_KEYシークレットPEM contents of your .p8 private key. Either this or APP_STORE_CONNECT_PRIVATE_KEY_PATH is required.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@chrischall/app-store-connect-mcp1.3.2

ツール

22

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
namestringいいえアプリ名の完全一致フィルター
limitintegerいいえ返すアプリの最大数(デフォルトは 50)。auto_paginate が無効の場合は API の1ページ分(最大200件)に制限され、有効の場合は全ページの合計数になります。
bundleIdstringいいえbundle ID の完全一致フィルター(例:com.example.MyApp)
auto_paginatebooleanいいえlimit に達するまで links.next をたどってページを取得します(デフォルトは false)。has_more は結果のページネーションブロックで確認してください。

詳細

App Store Connect MCP

CI license

Claude を App Store Connect に接続し、アプリ、ビルド、TestFlight のベータグループとテスター、カスタマーレビュー、売上・財務レポート、チームユーザーに自然言語でアクセスできるようにする Model Context Protocol サーバーです。

警告

AI 開発プロジェクトです。 このコードベースは全面的に Claude Code によって構築され、現在も積極的に保守されています。実装を監査した人間はいません。使用する前に、すべてのコードとツールの権限を確認してください。

できること

Claude に次のようなことを尋ねられます。

  • 「自分のアプリを一覧表示して」
  • 「アプリ 1234567890 の最新ビルドを表示して」
  • 「TestFlight の招待を承諾していないのは誰?」
  • 「[email protected] を External Beta グループに招待して」
  • 「ビルド 9876 をベータ審査に提出して」
  • 「今月の日本での平均評価は?」
  • 「あの星 1 つのレビューに謝罪の返事をして」
  • 「ベンダー 80012345 の昨日の日次売上レポートを取得して」
  • 「App Manager の役割で新しい開発者を招待して」

必要条件

インストール

オプション A — npm
npx -y @chrischall/app-store-connect-mcp

Claude の設定(.mcp.json または Claude Desktop の設定)に追加します。

{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": ["-y", "@chrischall/app-store-connect-mcp"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "ABC1234567",
        "APP_STORE_CONNECT_ISSUER_ID": "57246542-96fe-1a63-e053-0824d011072a",
        "APP_STORE_CONNECT_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_ABC1234567.p8"
      }
    }
  }
}
オプション B — ソースから
git clone https://github.com/chrischall/app-store-connect-mcp.git
cd app-store-connect-mcp
npm install
npm run build

Claude Desktop の設定に追加します。

  • Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "app-store-connect": {
      "command": "node",
      "args": ["/absolute/path/to/app-store-connect-mcp/dist/bundle.js"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "ABC1234567",
        "APP_STORE_CONNECT_ISSUER_ID": "57246542-96fe-1a63-e053-0824d011072a",
        "APP_STORE_CONNECT_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_ABC1234567.p8"
      }
    }
  }
}

API キーの取得

  1. App Store Connect → Users and Access → Integrations → App Store Connect API にサインインします。
  2. + をクリックしてキーを生成します。Claude に実行させたい操作に適した役割を選択してください。読み取り専用の参照には Developer で十分です。TestFlight の管理には App Manager、ユーザーの招待やほとんどの書き込み操作には Admin が必要です。
  3. .p8 ファイルをダウンロードします(ダウンロードできるのは一度だけです)。Key ID と Issuer ID も控えておきます。
  4. APP_STORE_CONNECT_PRIVATE_KEY_PATH に保存した .p8 ファイルのパスを指定するか、PEM の内容を APP_STORE_CONNECT_PRIVATE_KEY に貼り付けます(改行をエスケープしても構いません)。

このキーは、必要に応じて有効期間の短い(20 分間)ES256 JWT に署名します。外部にトークンを保存することはなく、Apple 以外に送信されるものはありません。

ツール

ツール機能
list_appsアカウント内のアプリを一覧表示します(bundleId/name で絞り込み)
get_appID で単一のアプリを取得します
list_app_store_versionsアプリの App Store リリースを一覧表示します
get_app_infosアプリの年齢制限レーティングとストアの状態に関する情報を取得します
list_builds最近のビルドを新しい順に表示します(アプリ/状態/バージョンで絞り込み)
get_build単一のビルドの詳細を取得します
list_beta_groupsTestFlight の内部/外部ベータグループを一覧表示します
list_beta_testersベータテスターを一覧表示します(アプリ/グループ/メールアドレスで絞り込み)
invite_beta_tester新しいテスターを追加します。グループ/ビルドへの追加も指定できます
delete_beta_testerチームからテスターを削除します
add_testers_to_beta_group既存のテスターをグループに追加します
remove_testers_from_beta_groupテスターをグループから削除します
submit_build_for_beta_reviewTestFlight のベータ審査にビルドを提出します
list_customer_reviewsApp Store のレビューを一覧表示します(評価/地域で絞り込み)
get_customer_reviewデベロッパーの返信を含む単一のレビューを取得します
respond_to_reviewデベロッパーの返信を投稿または更新します
download_sales_report日次/週次/月次/年次のユニット数と売上の TSV をダウンロードします
download_finance_report地域別の財務/収益金額の TSV をダウンロードします。Total_* の末尾行は別の summary に含まれます
list_usersApp Store Connect チームのユーザーを一覧表示します
list_user_invitations保留中のチーム招待を一覧表示します
invite_userロールを指定して新しいチームメンバーを招待します。アプリの表示範囲は明示的に指定する必要があります(allAppsVisible: true または空でない visibleAppIds。すべてのアプリを対象とするデフォルト設定はありません)
asc_healthcheck認証情報と上流への到達性を確認します。失敗は例外ではなくデータとして報告します

環境

変数必須備考
APP_STORE_CONNECT_KEY_IDはい10 文字の Key ID(例:ABC1234567)
APP_STORE_CONNECT_ISSUER_IDはいチームの Issuer ID(UUID)
APP_STORE_CONNECT_PRIVATE_KEYいずれか一方.p8 の PEM コンテンツ全体。改行エスケープ(\n)も使用できます。
APP_STORE_CONNECT_PRIVATE_KEY_PATHいずれか一方.p8 ファイルの絶対パス

確認

書き込み操作(invite_beta_tester、delete_beta_tester、add_testers_to_beta_group、remove_testers_from_beta_group、submit_build_for_beta_review、respond_to_review、invite_user)は、送信前に毎回確認を求めます。確認プロンプトを表示できるクライアント(Claude Code)では、実際のリクエスト内容を示すプロンプトが表示されます。確認プロンプトを表示できないクライアントでは、最初の呼び出しでは何も送信されず、実行するメソッド、パス、JSON ボディを含むプレビューと confirmToken が返されます。同じ引数とそのトークンを使って再度呼び出した場合にのみ、書き込みが実行されます。トークンは 1 回のみ使用でき、有効期限があり、プレビュー後に引数が変更されている場合は拒否されます。

変数デフォルト
MCP_CONFIRM_MODEask-user確認プロンプトを表示できないクライアント(claude.ai、Claude Desktop)での書き込み操作の動作です。ask-user:2 段階で実行します。最初の呼び出しでは何も行わず、プレビューとトークンを返します。モデルはチャットでユーザーの承認を得てから、そのトークンを使って再度呼び出す必要があります。auto:同じく 2 段階で実行しますが、モデルはプレビューを自ら確認した後にトークンを使用できます。refuse:そのようなクライアントでは書き込みを拒否します。プロンプトを表示できるクライアント(Claude Code)では、MCP_CONFIRM_ELICITATION=off の場合を除き、常に実際のプロンプトが表示されます。認識されない値は refuse として扱われます。
MCP_CONFIRM_ELICITATIONonoff の場合、確認プロンプトは送信されないため、すべてのクライアントで MCP_CONFIRM_MODE の手順が適用されます。プロンプトを表示できると宣言しているものの実際には表示しないクライアント(ゲートされた呼び出しが停止します。opencode 2.0.x)で設定してください。それ以外の値では on のままとなり、stderr に警告が表示されます。
MCP_CONFIRM_TTL_SECONDS600トークンの有効期間です。
MCP_CONFIRM_SECRETプロセスごとにランダム署名キーです。サーバーの再起動後もトークンを有効にする必要がある場合にのみ設定してください。

開発

npm install
npm test               # vitest run
npm run test:watch     # watch mode
npm run build          # tsc + esbuild bundle
npm run dev            # node --env-file=.env dist/index.js

テストでは client.request/client.requestRaw をモックするため、実際の App Store Connect 呼び出しは行われません。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。