mcpField
A
app-store-connect-mcp

app-store-connect-mcp

ローカル
github.com/gjeltep開発ツール143 週間前に更新

app-store-connect-mcp について

App Store Connect のデータ照会と Xcode Cloud のビルド管理を行う MCP サーバーです。レビュー、TestFlight のクラッシュ、分析レポート、ビルド結果を扱うモジュール型ツールを備え、Apple の OpenAPI 仕様からモデルを生成します。

主な機能

  1. 01レビューの一覧、検索、詳細取得
  2. 02TestFlight のクラッシュとログ取得
  3. 03分析レポートの取得とデータダウンロード
  4. 04Xcode Cloud のビルドとテスト結果管理
  5. 05OpenAPI 仕様に基づく API モデル

活用シーン

  1. 01評価やバージョン別の顧客フィードバック確認
  2. 02ベータ版のクラッシュレポートとログの調査
  3. 03アプリ分析データの TSV ダウンロード
  4. 04ビルドの開始と結果の確認

MCP 対応

stdio 経由で MCP クライアントに App Store Connect と Xcode Cloud の操作ツールを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"gjeltep-app-store-connect": {
"command": "uvx",
"args": [
"app-store-connect-mcp"
],
"env": {
"APP_STORE_KEY_ID": "<APP_STORE_KEY_ID>",
"APP_STORE_ISSUER_ID": "<APP_STORE_ISSUER_ID>",
"APP_STORE_PRIVATE_KEY_PATH": "<APP_STORE_PRIVATE_KEY_PATH>",
"APP_STORE_APP_ID": "<APP_STORE_APP_ID>",
"APP_STORE_KEY_TYPE": "<APP_STORE_KEY_TYPE>",
"APP_STORE_SCOPE": "<APP_STORE_SCOPE>",
"APP_STORE_SUBJECT": "<APP_STORE_SUBJECT>"
}
}
}
}
起動コマンドuvx app-store-connect-mcp
設定が必要な環境変数
APP_STORE_KEY_IDシークレットApp Store Connect API Key ID
APP_STORE_ISSUER_IDシークレットApp Store Connect Issuer ID
APP_STORE_PRIVATE_KEY_PATHシークレットPath to the .p8 private key file for App Store Connect authentication
APP_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiapp-store-connect-mcp0.3.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

App Store Connect MCP サーバー

Test PyPI Python Version MCP Registry

アプリについて 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をご覧ください。

コメント

MCP は初めてですか?

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

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