asc-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@asc-mcpshow my latest customer reviews"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
asc-mcp
An unofficial MCP server for the App Store Connect API — automate releases, App Review, metadata, screenshots, TestFlight, product page experiments, diagnostics, reports, reviews, and ASO analysis.
App Store Connect API 用の非公式MCPサーバー。Claude CodeなどのMCP対応エージェントから、自分のアプリの運営・分析データを直接扱えるようにする。
できること
App Store Connectに登録されているアプリの一覧取得
カスタマーレビューの取得(並び順・国・星評価でフィルタ)とデベロッパー返信の投稿
TestFlightビルド一覧の取得(処理状態・有効期限つき)
App Storeバージョン一覧の取得(審査状況・リリースタイプ)
売上サマリーレポートの取得(日次・週次・月次・年次)
App Storeでのキーワード検索順位チェック(認証不要・単体で使える)
Analytics Reportsの取得(インプレッション・プロダクトページ閲覧・流入元別ダウンロードなどのASO分析データ)
App Storeバージョン作成、ローカライズ、ビルド紐付け、審査情報更新、審査提出
スクリーンショットセット作成、ローカル画像の分割アップロード、一覧・削除
手動・自動・予約リリース、段階的リリース、配信国、アプリ価格の管理
TestFlightグループ・テスター・ビルド・What to Test・外部テスト審査の管理
カスタムプロダクトページとProduct Page Optimizationの作成・更新
クラッシュ・ハングの診断ログ、起動時間などのパフォーマンス指標の取得
課金アイテム、サブスクリプション、Webhookの管理は対象外。
Related MCP server: asc-mcp
クイックスタート
1. App Store Connect APIキーを用意する
App Store Connect の Users and Access > Integrations > App Store Connect API > Team Keys でAPIキーを作成し、.p8 ファイルをダウンロードする。ロールは売上レポート(asc_get_sales_report)を使うなら Admin、使わないなら App Manager で足りる。秘密鍵は一度しかダウンロードできない点に注意。あわせて同ページで Issuer ID と Key ID を控える。詳細はAPIキー作成の詳細を参照。
2. ビルドする
git clone https://github.com/Hiru-ge/asc-mcp.git
cd asc-mcp
npm install
npm run build3. MCPクライアントに登録する
Claude Codeの場合:
claude mcp add --scope user app-store-connect \
-e ASC_KEY_ID=xxx \
-e ASC_ISSUER_ID=xxx \
-e ASC_PRIVATE_KEY_PATH=/path/to/AuthKey_xxx.p8 \
-- node /path/to/asc-mcp/dist/index.js/path/to/asc-mcp はクローンしたディレクトリの絶対パスに置き換える。売上レポートを使う場合は -e ASC_VENDOR_NUMBER=xxxxx も追加する(Vendor Numberの場所)。
4. 動かしてみる
新しいセッションでエージェントにそのまま聞けばよい。
直近のカスタマーレビューを5件見せて
「カフェ 開拓」で検索したときのうちのアプリの順位は?
App Store Connect APIキーの作成
App Store Connect にログインする。
Users and Access > Integrations > App Store Connect API > Team Keys を開く。
「キーを生成」から新しいAPIキーを作成する。ロールの選び方は次のとおり。
App Manager: アプリ情報・レビュー取得と返信・ビルド・バージョン・Analytics Reportsをカバーする。売上レポートには権限が足りない(HTTP 403になる)
Admin または Sales: 売上レポート(
asc_get_sales_report)も使う場合はこちら。SalesロールはSales and Trendsへのアクセスに特化しているが、レビュー返信など他ツールの権限が不足する場合があるため、全ツールを1つのキーで使うなら Admin が確実。キーのロールは作成後に変更できない
生成後に表示される
.p8ファイルをダウンロードする。この秘密鍵は一度しかダウンロードできない。紛失した場合はキーを失効させて再発行する必要がある。ダウンロードしたファイルは安全な場所に保管すること(Gitリポジトリにコミットしない)。
Issuer ID / Key ID の場所
Issuer ID: 同じ Integrations > App Store Connect API ページの上部に表示される(例:
57246542-96fe-1a63-e053-0824d011072a)。チーム全体で共通の値。Key ID: 作成したキーの一覧に表示される10文字程度の識別子(例:
2X9R4HXF34)。.p8ファイル名にもAuthKey_<Key ID>.p8の形で含まれる。
Vendor Number(売上レポート用)
asc_get_sales_report を使う場合のみ必要。App Store Connect の Payments and Financial Reports ページに表示される、契約ごとのベンダー番号(数字のみ)。
環境変数
変数名 | 必須 | 説明 |
| 必須 | APIキーのKey ID |
| 必須 | Issuer ID |
| 必須 | ダウンロードした |
| 任意 | 売上レポート取得( |
いずれかの必須環境変数が欠けている場合、サーバー自体は起動するが、各ツール呼び出し時に「どの環境変数が欠けているか」を明示したエラーメッセージが返る。
ツール一覧
ツール名 | 用途 |
| App Store Connectに登録されているアプリ一覧を取得する(id・name・bundleId・sku・primaryLocale) |
| 指定アプリのカスタマーレビュー一覧を取得する。並び順・国・星評価でフィルタ可能 |
| カスタマーレビューにデベロッパー返信を投稿する |
| 指定アプリにアップロードされたビルド一覧を取得する(アップロード日時降順) |
| 指定アプリのApp Storeバージョン一覧を取得する(審査状況・リリースタイプなど) |
| 売上サマリーレポート(SALES/SUMMARY/version 1.0)をTSVとして取得し、パースして返す。 |
| 公開iTunes Search APIを使ったキーワード順位チェック。App Store Connect認証(JWT)は不要で、この1ツール単体で使える |
| Analytics Reportsのリクエスト(ONGOINGアクセス)をensureする。既存があれば再利用し、なければ新規作成する |
|
|
|
|
| 新しいApp Storeバージョンを作成する |
| バージョンのローカライズを作成する |
| 説明文、キーワード、更新内容などをロケール別に取得する |
| バージョンのローカライズを部分更新する |
| アプリ名、サブタイトル、プライバシーポリシーURLをロケール別に取得する |
| アプリ情報のローカライズを部分更新する |
| App Storeバージョンへ審査対象ビルドを紐付ける |
| App Reviewの連絡先、デモアカウント、審査メモを取得する |
| App Review情報を作成する |
| App Review情報を部分更新する |
| Review Submissionを作り、バージョンを追加して審査へ提出する |
| Product Page Optimization実験またはカスタムページを審査へ提出する |
| 通常ページ、実験、カスタムページ用のスクリーンショットセットを作る |
| ローカライズに属するスクリーンショットセットを取得する |
| セット内のスクリーンショットと処理状態を取得する |
| ローカル画像を予約、分割アップロード、コミットする |
| スクリーンショットまたはセットを削除する |
| リリース方式、公開予定日時、著作権などを更新する |
| 7日間の段階的リリースを有効にする |
| 段階的リリースを開始、一時停止、再開、完了する |
| 承認済みの手動リリース待ちバージョンを公開する |
| 配信国ごとの価格候補と収益額を取得する |
| 現在と予約済みの価格、価格ポイントIDを取得する |
| 基準国の価格を即時変更または予約変更する |
| 国別の配信状況、公開日、予約注文設定を取得する |
| 全配信国の設定をページネーション付きで取得する |
| 1つの国で配信可否や公開日を更新する |
| TestFlightグループを取得する |
| TestFlightグループを作成する |
| TestFlightテスターを取得する |
| TestFlightテスターを作成・招待する |
| テスターまたはビルドをグループへ追加する |
| ロケール別のWhat to Testを取得する |
| ロケール別のWhat to Testを作成・更新する |
| TestFlightビルドの内部・外部テスト状態を取得する |
| 外部テスト開始時の自動招待を更新する |
| ビルドを外部TestFlight向け審査へ提出する |
| Product Page Optimization実験を取得する |
| Product Page Optimization実験を作成する |
| 実験の配分、状態、名前を更新する |
| 実験のTreatmentを作成する |
| 実験のTreatmentを取得する |
| Treatmentのローカライズを作成する |
| カスタムプロダクトページを取得する |
| カスタムプロダクトページを作成する |
| カスタムプロダクトページの名前や表示状態を更新する |
| カスタムプロダクトページの編集可能バージョンを作成する |
| カスタムプロダクトページのバージョンを取得する |
| カスタムプロダクトページのディープリンクを更新する |
| カスタムページのローカライズを作成する |
| アプリまたはビルドの電力・パフォーマンス指標を取得する |
| ビルドのクラッシュ、ハングなどの診断シグネチャを取得する |
| 診断シグネチャの匿名化ログとコールスタックを取得する |
各list系ツールは limit(デフォルト20、最大200)と nextUrl(前回のレスポンスに含まれる nextUrl をそのまま渡すと次ページを取得)でページネーションに対応する。
リリース提出の基本フロー
asc_create_app_store_versionでバージョンを作る。asc_create_version_localizationまたはasc_update_version_localizationで更新内容などを入れる。必要なら
asc_create_screenshot_setとasc_upload_screenshotで画像を更新する。asc_set_version_buildで処理済みビルドを紐付ける。asc_create_review_detailsまたはasc_update_review_detailsで審査メモなどを整える。asc_submit_app_store_versionで審査へ提出する。
asc_upload_screenshot の filePath はMCPサーバープロセスから読めるローカルファイルの絶対パスを渡す。Product Page Optimization用のセットでは localizationType に experimentTreatment、カスタムプロダクトページ用では customProductPage を指定する。
ASO分析ツールの使い方
asc_search_rankingは認証情報なしで単体利用できる。ASC_KEY_ID等が未設定でも動作する。Analytics Reports系は
asc_request_analytics_reports→asc_list_analytics_reports→asc_get_analytics_report_dataの順に呼び出す3段階フロー。asc_request_analytics_reportsで初めてONGOINGリクエストを作成した場合、実際にレポートが生成されるまで最大48時間かかる。生成前にasc_list_analytics_reportsを呼んでも空になる。2回目以降は既存のONGOINGリクエストが再利用されるため、
requestIdを控えておけば毎回作成し直す必要はない。
セキュリティ上の注意
asc_list_customer_reviewsが返すレビュー本文(title/body)は、第三者ユーザーが自由に書き込める未検証テキスト。この本文をLLMが読み取る過程で、レビュー文中に埋め込まれた指示(プロンプトインジェクション)に従ってしまう可能性がある。同じサーバーに公開返信を投稿する
asc_reply_to_reviewが同居しているため、悪意あるレビュー本文がエージェントへの指示を含んでいた場合、確認なしに公開返信が投稿される経路が成立しうる。asc_reply_to_reviewはMCPクライアントの自動承認(auto-approve)設定に含めず、実行内容を必ず人間が確認してから承認すること。審査提出、公開、価格、配信国、スクリーンショット削除を行うツールは本番のApp Store Connectデータを変更する。これらも自動承認へ追加せず、対象アプリ、バージョン、国、価格を実行前に確認すること。
実装メモ
JWTは
joseのimportPKCS8/SignJWTでES256署名する。有効期限はApp Store Connect APIの上限20分に対し19分に設定し、モジュール内でキャッシュ。残り2分を切ったら自動的に再生成する。list系ツールのレスポンスはJSON:APIの
attributesを平坦化した配列で返し、トークン消費を抑える。売上レポートは
Accept: application/a-gzipでリクエストし、node:zlibのgunzipSyncでTSVに展開してパースする。行数が多い場合は先頭50行と総行数のみを返す。asc_search_rankingはhttps://itunes.apple.com/searchを素のfetchで叩く(JWT不使用)。iTunes Search APIには目安で約20リクエスト/分のレート制限があり、超過するとHTTP 403が返ることがある。Analytics Reportsのセグメントデータ(
analyticsReportInstances/{id}/segmentsのurl)は署名付きURLのため、Authorizationヘッダを付けずに素のfetchでダウンロードし、gunzipSyncで展開する。セグメントはCSVまたはTSVで、先頭行にタブを含むかで区切り文字を判定する。複数セグメントは行を結合し、先頭50行と総行数のみを返す(services/tsv.tsのparseAnalyticsSegments)。
免責事項
本ツールは非公式のオープンソースプロジェクトであり、Apple Inc.とは無関係。Apple・App Store Connect・iTunesは各社の商標。
ライセンス
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/Hiru-ge/asc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server