app-store-connect-mcp について
App Store Connect のデータ照会と Xcode Cloud のビルド管理を行う MCP サーバーです。レビュー、TestFlight のクラッシュ、分析レポート、ビルド結果を扱うモジュール型ツールを備え、Apple の OpenAPI 仕様からモデルを生成します。
主な機能
- 01レビューの一覧、検索、詳細取得
- 02TestFlight のクラッシュとログ取得
- 03分析レポートの取得とデータダウンロード
- 04Xcode Cloud のビルドとテスト結果管理
- 05OpenAPI 仕様に基づく API モデル
活用シーン
- 01評価やバージョン別の顧客フィードバック確認
- 02ベータ版のクラッシュレポートとログの調査
- 03アプリ分析データの TSV ダウンロード
- 04ビルドの開始と結果の確認
MCP 対応
stdio 経由で MCP クライアントに App Store Connect と Xcode Cloud の操作ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx app-store-connect-mcpAPP_STORE_KEY_IDシークレットApp Store Connect API Key IDAPP_STORE_ISSUER_IDシークレットApp Store Connect Issuer IDAPP_STORE_PRIVATE_KEY_PATHシークレットPath to the .p8 private key file for App Store Connect authenticationAPP_STORE_APP_IDDefault App ID for operations (optional)APP_STORE_KEY_TYPEシークレットKey type: 'team' or 'individual' (defaults to 'team')APP_STORE_SCOPEComma-separated list of OAuth scopes (optional)APP_STORE_SUBJECTSubject for individual keys (optional)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
App Store Connect MCP サーバー
アプリについて App Store Connect に問い合わせられます。モジュール式のツール、非同期 I/O、OpenAPI に基づく型定義により、Apple の仕様変更に合わせてエージェントの回答を正確に保ちます。
このサーバーの特長
- 仕様を認識:フィールドと列挙値は実行時に Apple の OpenAPI 仕様から導出されるため、仕様とのずれや予期しない破損を軽減します。
- デフォルトで高速:非同期の
httpxクライアント、サーバー側フィルタリング、スマートなページネーションにより、ペイロードを軽量に保ちます。 - スマートなフィルタリング:複雑なクエリに対応する、連結可能なフィルターエンジンを使い、サーバー側とクライアント側の両方でフィルタリングします。
- モジュール式のドメイン:ツールのスキーマとハンドラーを明確に分離しています。コアに手を加えずに新しいドメインを追加でき、LLM による検出と利用に最適化されています。
- MCP ネイティブ:stdio トランスポート、機能宣言、ツールの配線は、公式 SDK の Python SDK README に準拠しています。
インストール
PyPI から
pip install app-store-connect-mcp
ソースから
git clone https://github.com/gjeltep/app-store-connect-mcp.git
cd app-store-connect-mcp
uv pip install -e ".[dev]"
設定
次の環境変数を設定します。
# Required
export APP_STORE_KEY_ID="YOUR_KEY_ID"
export APP_STORE_ISSUER_ID="YOUR_ISSUER_ID"
export APP_STORE_PRIVATE_KEY_PATH="/path/to/AuthKey_XXXXX.p8"
# Optional
export APP_STORE_APP_ID="YOUR_APP_ID"
export APP_STORE_KEY_TYPE="team" # or "individual"
使用方法
環境変数を設定して実行します(推奨)。
app-store-connect-mcp
または、開発中は .env ファイルを使用します。
# Copy and configure .env file
cp .env.example .env
# Edit .env with your credentials
# Run with --env-file flag
app-store-connect-mcp-dev --env-file .env
# Validate configuration without starting server
app-store-connect-mcp-dev --env-file .env --validate-only
MCP 対応のクライアントであればどれでも使用できます。サーバーはツールを通知し、stdio 経由で呼び出しを処理します。
API モデルの生成または更新
モデルは Apple の公式 OpenAPI 仕様から生成されます(Apple の開発者向けサイトから自動的に取得します)。
APP_STORE_CONNECT_OPENAPI_URL を使って、ローカルの JSON ファイルを指定することもできます。
uv pip install -e .[dev]
python scripts/generate_models.py
開発
開発環境のセットアップ、テスト、コントリビューションのガイドラインについては、CONTRIBUTING.md を参照してください。
ツール
ツールには、検出しやすいようカテゴリタグを付けた、リソース優先の命名規則(resource.verb)を使用します。
アプリのツール
- reviews.list:フィルター(
rating、territory、appStoreVersion)を指定して、カスタマーレビューを一覧表示します。 - reviews.search:評価の範囲、地域の照合、日付の期間、コンテンツ検索を使って高度な検索を行います。
- reviews.get:レビューの詳細情報を取得します。
TestFlight のツール
- crashes.list:フィルター(
device_model、os_version、app_platform、device_platform、build_id、tester_id)を指定して、ベータテスターからのクラッシュ報告を一覧表示します。 - crashes.search:次の条件を使って高度な検索を行います。
- サーバー側フィルター(
appPlatform、deviceModel、osVersion) - 後処理フィルター:OS の範囲(最小/最大)、デバイスモデルの部分文字列(例:「iPhone 15」)、日付の期間(
created_since_days、created_after、created_before)。
- サーバー側フィルター(
- crashes.get_by_id:特定のクラッシュ報告の詳細情報を取得します。
- crashes.get_log:特定の報告のクラッシュログの生テキストを取得します。
アナリティクスツール
リクエスト:
- analytics_report_requests.list:フィルター(
access_type)を指定して、アプリのアナリティクスレポートリクエストを一覧表示します。 - report_requests.create:特定のメトリクスと期間を指定して、新しいアナリティクスレポートリクエストを作成します。
- report_requests.get:特定のアナリティクスレポートリクエストの詳細情報を取得します。
レポート:
- report_requests.list_reports:フィルター(
name、category)を指定して、リクエスト内で利用可能なレポートを一覧表示します。 - reports.get:特定のアナリティクスレポートの情報を取得します。
- reports.list_instances:フィルター(
granularity、processing_date)を指定して、レポートインスタンスを一覧表示します。 - report_instances.get:特定のレポートインスタンスの詳細情報を取得します。
セグメント:
- report_instances.list_segments:レポートインスタンスのデータセグメントを一覧表示します。
- report_segments.get:セグメントのダウンロード情報(チェックサム、URL、サイズ)を取得します。
- report_instances.download_data:アナリティクスレポートデータをTSVファイルにダウンロードします。
Xcode Cloud ツール
製品とワークフロー:
- products.list:フィルター(
product_type)を指定して、Xcode Cloud のすべての製品を一覧表示します。 - products.get:特定の製品の詳細情報を取得します。
- workflows.list:フィルター(
is_enabled)を指定して、製品のワークフローを一覧表示します。 - workflows.get:ワークフローの詳細情報を取得します(安全上、作成/更新/削除操作には対応していません)。
ビルド:
- builds.list:フィルター(
execution_progress、completion_status、is_pull_request_build)を指定して、製品またはワークフローのビルドを一覧表示します。 - builds.get:ステータス、所要時間、課題数など、ビルドの詳細情報を取得します。
- builds.start:任意でブランチ/タグまたはプルリクエストを指定して、ワークフローの新しいビルドを開始します。
ビルド成果物と結果:
- artifacts.list:ビルドでダウンロード可能な成果物を一覧表示します。
- issues.list:ビルドまたはワークフローの課題(エラー、警告)を一覧表示します。
- test_results.list:ステータス、所要時間、失敗メッセージなどのテスト結果を一覧表示します。
SCM 連携:
- scm_providers.list:設定済みの SCM プロバイダー(GitHub、GitLab、Bitbucket)を一覧表示します。
- repositories.list:SCM プロバイダーの Git リポジトリを一覧表示します。
- pull_requests.list:リポジトリのプルリクエストを一覧表示します。
- git_references.list:リポジトリのブランチとタグを一覧表示します。
アーキテクチャ
graph TD
%% Entry Point
subgraph "Entry Point"
SERVER[server.py<br/>MCP stdio server]
end
%% Domain Implementations
subgraph "Domain Handlers"
TESTFLIGHT[testflight/handlers.py<br/>TestFlight crash<br/>management]
APP[app/handlers.py<br/>App Store review<br/>management]
ANALYTICS[analytics/handlers.py<br/>Analytics report<br/>management]
XCODE_CLOUD[xcode_cloud/handlers.py<br/>Xcode Cloud CI/CD<br/>management]
end
%% Core Architecture
subgraph "Core Components"
subgraph "Core Framework"
PROTOCOLS[protocols.py<br/>Abstract interfaces]
BASE_HANDLER[base_handler.py<br/>Abstract base class]
QUERY_BUILDER[query_builder.py<br/>Fluent query construction]
FILTERS[filters.py<br/>Chainable filter engine]
RESPONSE_HANDLER[response_handler.py<br/>API response processing]
CONTAINER[container.py<br/>Dependency injection]
ERRORS[errors.py<br/>Structured error handling]
end
subgraph "API Layer"
ASC_CLIENT[app_store_connect.py<br/>App Store Connect client<br/>with JWT auth]
HTTP_CLIENT[http_client.py<br/>Base HTTP client]
MODELS[app_store_connect_models.py<br/>Auto-generated Pydantic<br/>models from OpenAPI spec]
end
subgraph "Data & Tools"
OPENAPI[app_store_connect_api_openapi.json<br/>Apple's OpenAPI spec]
GENERATE_SCRIPT[scripts/generate_models.py<br/>Model generation script]
end
end
%% Vertical Stack Relationships
SERVER -->|"routes to"| ANALYTICS
ANALYTICS -->|"uses"| ASC_CLIENT
%% Styling
classDef entry fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef core fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef domain fill:#fce4ec,stroke:#880e4f,stroke-width:2px
class SERVER entry
class PROTOCOLS,BASE_HANDLER,QUERY_BUILDER,FILTERS,RESPONSE_HANDLER,CONTAINER,ERRORS,ASC_CLIENT,HTTP_CLIENT,MODELS,OPENAPI,GENERATE_SCRIPT core
class TESTFLIGHT,APP,ANALYTICS,XCODE_CLOUD domain
クレジット
公式の Model Context Protocol Python SDK を基盤に構築されています。ドキュメントとサンプルについては、 python‑sdk READMEをご覧ください。
協力をご希望の場合は、CONTRIBUTING.mdをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。