mcpField
A
appstore-connect

appstore-connect

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

appstore-connect について

appstore-connect は、App Store Connect で Apple プラットフォーム向けアプリを管理する開発者向けの MCP サーバーです。一般的な管理ツールに加え、Apple の OpenAPI 仕様に基づく API 操作へのアクセスを提供し、ツールグループの選択と読み取り専用モードに対応します。

主な機能

  1. 01App Store Connect API 操作へのアクセス
  2. 02バージョンと申請の管理
  3. 03TestFlight グループとテスターの管理
  4. 04ローカライズ、スクリーンショット、アプリ内購入の編集
  5. 05分析、売上、診断レポートの確認
  6. 06ツールグループの選択と読み取り専用モード

活用シーン

  1. 01アプリの審査提出の準備
  2. 02TestFlight グループとテスターの管理
  3. 03ストアの説明、キーワード、画像の更新
  4. 04アプリ分析と売上レポートの確認

MCP 対応

Claude や Cursor などの MCP クライアントに、App Store Connect の管理ツールを提供します。ツールグループを選択でき、読み取り専用モードでは書き込みリクエストを拒否します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"sardorbekr-appstore-connect": {
"command": "npx",
"args": [
"-y",
"asc-mcp"
]
}
}
}
起動コマンドnpx -y asc-mcp

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

パッケージ
npmasc-mcp2.0.4

ツール

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

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

詳細

App Store Connect MCP Server

npm version License: MIT Node.js Version

Apple の App Store Connect API 向け Model Context Protocol(MCP)サーバーです。Claude、Cursor、または MCP 対応クライアントから、iOS、macOS、tvOS、visionOS のアプリを直接管理できます。

機能

  • あらゆる API 操作 - asc_api_request を通じて 1,303 件の App Store Connect API 操作を呼び出せます。Apple の OpenAPI 仕様に照らして検証され、検索や内容の確認には asc_api_search と asc_api_describe を使用できます
  • 提出とリリース - バージョンメタデータ(著作権、バージョン文字列、リリースタイプ)の編集、ビルドの添付、App Review の詳細、審査への提出、段階的リリースと手動リリース、輸出コンプライアンス
  • アプリ情報 - カテゴリ、年齢制限指定、アプリ情報のローカライズ、カスタム EULA
  • App Store のローカライズ - バージョン説明、キーワード、「新機能」の完全な CRUD
  • アプリ管理 - すべてのプラットフォームのアプリの一覧表示と確認
  • バージョン管理 - App Store バージョンの作成と管理
  • TestFlight - グループ、ビルドへのアクセス、テスターと招待、「テスト内容」のメモ、ベータ版アプリのローカライズ、ベータ版審査への提出
  • スクリーンショットとプレビュー - スクリーンショットとアプリプレビューのアップロード、並べ替え、削除。サブスクリプションとアプリ内課金のスクリーンショットの審査
  • カスタマーレビュー - レビューの閲覧と返信の公開または削除
  • バンドル ID の管理 - バンドル ID の完全な CRUD
  • デバイス管理 - 登録済みデバイスの一覧表示と確認
  • ユーザー管理 - チームユーザーの一覧表示と確認
  • ビルド管理 - アプリビルドの一覧表示と確認
  • カテゴリと価格 - カテゴリの確認、価格と提供状況の確認
  • 価格設定と PPP - 購買力平価(PPP)に対応した地域ごとの価格設定
  • サブスクリプション - グループ、サブスクリプション、ローカライズ、価格設定と PPP、提供状況、プロモーション、導入時および再獲得オファー、オファーコード
  • アプリ内課金 - 1 回限りの購入(買い切り/非消費型、消費型、非更新型)の作成と管理:メタデータ、ローカライズ、価格設定と PPP、提供状況、オファーコード、審査用スクリーンショット、審査への提出
  • カスタムプロダクトページ - ページ、バージョン、ロケールごとのプロモーションテキスト
  • 分析レポート - アプリ分析レポート(エンゲージメント、コマース、使用状況、パフォーマンス)のリクエストとダウンロード
  • 売上と財務 - 売上、トレンド、財務レポートのダウンロード
  • パフォーマンスと診断 - アプリ/ビルドの電力とパフォーマンスのメトリクス、診断ログ
  • ツールセットと読み取り専用モード - 必要なツールグループのみを公開するか、ASC_READ_ONLY=1 ですべての書き込みをブロックできます
  • デフォルトで安全 - 自動トークン更新とログ内の認証情報の秘匿化に対応した ES256 JWT 認証

目次

クイックスタート

  1. App Store Connect API キーを取得します(前提条件を参照)。
  2. npx -y asc-mcp@latest と認証情報を使って、MCP クライアントにサーバーを追加します(MCP クライアントの設定を参照)。
  3. クライアントを再起動します。新しいリリースは再起動のたびに反映されます。

インストール

npx(推奨)
npx -y asc-mcp@latest

MCP クライアントがこのコマンドを実行します(MCP クライアントの設定を参照)。npx はクライアントの起動時に最新リリースを取得するため、常に最新の状態を保てます。

グローバルインストール
npm install -g asc-mcp

次に、クライアント設定で "command": "asc-mcp" を使用します。グローバルインストールは自動では更新されないため、更新するには npm install -g asc-mcp@latest を実行してください。

更新
  • npx: MCP クライアントを再起動してください。実行中のクライアントは、起動時のバージョンをそのまま使用します。
  • グローバルインストール: npm install -g asc-mcp@latest を実行してから、クライアントを再起動してください。
  • 安定性を重視する場合は、asc-mcp@latest の代わりに [email protected](または任意のバージョン)を指定して、バージョンを固定してください。

サーバーは1日に1回、起動を遅らせることなく、バックグラウンドで npm に最新バージョンを問い合わせます。お使いのバージョンが古い場合、次回のサーバー起動時にアシスタントへ通知し、アシスタントがそのことを1度だけお知らせします。この問い合わせ以外の情報は送信せず、インストールも行いません。無効にするには ASC_DISABLE_UPDATE_CHECK=1 を設定してください。

ソースからのインストール
git clone https://github.com/SardorbekR/appstore-connect-mcp.git
cd appstore-connect-mcp
npm install
npm run build

設定

前提条件:Apple API の認証情報を取得する
  1. App Store Connect にサインインします
  2. Users and Access → Integrations → App Store Connect API に移動します
  3. Generate API Key をクリックします(または既存のキーを使用します)
  4. 適切なロールを選択します(Admin または App Manager を推奨)
  5. .p8 ファイルをダウンロードします。ダウンロードできるのは1回だけです!
  6. Key ID(キーの一覧に表示されています)を控えます
  7. Issuer ID(ページ上部に表示されています)を控えます
環境変数
変数必須説明
APP_STORE_CONNECT_KEY_IDはいAPI Key ID(例:ABC123DEFG)
APP_STORE_CONNECT_ISSUER_IDはいIssuer ID(UUID 形式)
APP_STORE_CONNECT_P8_PATHはい*.p8 秘密鍵ファイルへのパス
APP_STORE_CONNECT_P8_CONTENTはい*.p8 キーの内容(パスの代わりに指定)

*P8_PATH または P8_CONTENT のいずれかが必要です。

任意の設定:

変数デフォルト説明
ASC_TOOLSETSall公開するツールグループをカンマ区切りで指定します:apps、versions、media、testflight、pricing、subscriptions、iap、reviews、product-pages、provisioning、users、analytics、api。ツールの数を減らすと、利用可能なツール数が少ないクライアントで使用するコンテキストを減らせます。api グループでは、ほかのグループに含まれない操作も含め、すべての操作を実行できます。
ASC_READ_ONLYoff1 を指定すると読み取りツールのみを公開し、すべての GET 以外のリクエストをクライアントが拒否します
ASC_MAX_RESPONSE_CHARS80000asc_api_request の結果に対するサイズ上限です。上限を超える結果はページの境界で終了し、続きの取得に使う cursor が返されます
ASC_DISABLE_UPDATE_CHECKoff1 を指定すると、新しい asc-mcp リリースを1日1回確認する処理をスキップします
MCP クライアントの設定
Claude Desktop

Claude Desktop の設定ファイルに追加します:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": ["-y", "asc-mcp@latest"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_P8_PATH": "/absolute/path/to/AuthKey.p8"
      }
    }
  }
}
Cursor

Cursor の MCP 設定(Settings → MCP Servers)に追加します:

{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": ["-y", "asc-mcp@latest"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_P8_PATH": "/absolute/path/to/AuthKey.p8"
      }
    }
  }
}
Continue を使用する VS Code

Continue の設定に追加します:

{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": ["-y", "asc-mcp@latest"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_P8_PATH": "/absolute/path/to/AuthKey.p8"
      }
    }
  }
}
パスの代わりに P8 の内容を使用する

CI/CD 環境やコンテナ環境では、キーの内容を直接渡すことができます:

{
  "mcpServers": {
    "app-store-connect": {
      "command": "npx",
      "args": ["-y", "asc-mcp@latest"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_P8_CONTENT": "-----BEGIN PRIVATE KEY-----\nMIGT...your key here...AB12\n-----END PRIVATE KEY-----"
      }
    }
  }
}

利用可能なツール

アプリ
ツール説明パラメーター
list_appsアカウント内のすべてのアプリを一覧表示しますlimit?(数値、1~200)
get_app特定のアプリの詳細を取得しますappId(文字列、必須)
バージョン
ツール説明パラメーター
list_app_versionsアプリのすべてのバージョンを一覧表示しますappId、platform?、versionState?、limit?
get_app_versionバージョンの詳細を取得しますversionId
create_app_version新しいアプリのバージョンを作成しますappId、platform、versionString、releaseType?
バージョンのローカライズ
ツール説明パラメーター
list_version_localizationsバージョンのローカライズを一覧表示versionId, limit?
get_version_localizationローカライズの詳細を取得localizationId
create_version_localization新しいロケールを追加versionId, locale, description?, keywords?, whatsNew?
update_version_localizationローカライズを更新localizationId, description?, keywords?, whatsNew?, promotionalText?
delete_version_localizationロケールを削除localizationId
アプリ情報のローカライズ
ツール説明パラメーター
list_app_infosアプリ情報レコードを一覧表示appId, limit?
list_app_info_localizations名前/サブタイトルのローカライズを一覧表示appInfoId, limit?
update_app_info_localizationアプリ名とサブタイトルを更新localizationId, name?, subtitle?, privacyPolicyUrl?
ベータテスト(TestFlight)
ツール説明パラメーター
list_beta_groupsアプリのベータグループを一覧表示appId, limit?
list_beta_testersグループ内のテスターを一覧表示betaGroupId, limit?
add_beta_testerグループにテスターを追加betaGroupId, email, firstName?, lastName?
remove_beta_testerグループからテスターを削除betaGroupId, betaTesterId
スクリーンショット
ツール説明パラメーター
list_screenshot_setsスクリーンショットセットを一覧表示localizationId, limit?
list_screenshotsセット内のスクリーンショットを一覧表示screenshotSetId, limit?
upload_screenshot新しいスクリーンショットをアップロードscreenshotSetId, fileName, fileSize, filePath
バンドル ID
ツール説明パラメーター
list_bundle_idsすべてのバンドル ID を一覧表示limit?, platform?
get_bundle_idバンドル ID の詳細を取得bundleIdId
create_bundle_id新しいバンドル ID を登録identifier, name, platform
update_bundle_idバンドル ID の名前を更新bundleIdId, name
delete_bundle_idバンドル ID を削除bundleIdId
デバイス
ツール説明パラメーター
list_devices登録済みデバイスを一覧表示limit?, platform?, status?
get_deviceデバイスの詳細を取得deviceId
ユーザー
ツール説明パラメーター
list_usersチームのユーザーを一覧表示limit?, roles?
get_userユーザーの詳細を取得userId
ビルド
ツール説明パラメーター
list_buildsアプリのビルドを一覧表示appId, limit?
get_buildビルドの詳細を取得buildId
カテゴリと価格設定
ツール説明パラメーター
list_app_categoriesアプリのカテゴリを一覧表示limit?, platform?
get_app_price_scheduleアプリの価格情報を取得appId
get_app_availabilityアプリの提供地域を取得appId
価格設定(PPP)
ツール説明パラメーター
list_territories通貨情報付きですべての地域を一覧表示limit?
list_app_price_pointsアプリで利用可能な価格帯を一覧表示appId, territory?, limit?
get_price_point_equalizations各国の PPP 換算価格を取得pricePointId, territories?, limit?
set_app_prices地域ごとの手動価格を設定(価格スケジュール全体を置き換えます)appId, baseTerritory, manualPrices
アプリ内課金(買い切り/非消耗型)

Apple の In-App Purchases v2 API を使用した一度限りの購入です。create_in_app_purchase のデフォルトは NON_CONSUMABLE(「買い切り」)です。公開するには、作成 → ローカライズを追加 → 価格を設定 → 配信可能地域を設定 → 審査に提出、の順に行います。

注: App Review では通常、アプリ内課金の審査用スクリーンショットが必要です。IAP の審査用スクリーンショットのアップロードは、これらのツールではまだサポートされていません。submit_in_app_purchase_for_review がスクリーンショット不足で却下された場合は、App Store Connect で追加してください。

ツール説明パラメーター
list_in_app_purchasesアプリのアプリ内課金を一覧表示します。種類による絞り込みも可能ですappId、inAppPurchaseType?、limit?
get_in_app_purchase1 件のアプリ内課金の詳細と状態を取得しますinAppPurchaseId
create_in_app_purchaseIAP を作成します(デフォルトは NON_CONSUMABLE/買い切り)appId、name、productId、inAppPurchaseType?、familySharable?、reviewNote?
update_in_app_purchase名前、ファミリー共有、または審査メモを更新します(productId/種類は変更不可)inAppPurchaseId、name?、familySharable?、reviewNote?
delete_in_app_purchaseアプリ内課金を削除しますinAppPurchaseId
list_in_app_purchase_localizationsローカライズされた名前と説明を一覧表示しますinAppPurchaseId、limit?
create_in_app_purchase_localizationローカライズされた表示名(および説明)を追加しますinAppPurchaseId、locale、name、description?
update_in_app_purchase_localizationローカライズを更新しますlocalizationId、name?、description?
delete_in_app_purchase_localizationローカライズを削除しますlocalizationId
list_in_app_purchase_price_points価格ポイント(顧客価格と収益)を一覧表示しますinAppPurchaseId、territory?、limit?、offset?
get_in_app_purchase_price_point_equalizations基準価格ポイントに対する Apple の PPP 相当価格ポイントを取得しますpricePointId、territories?、limit?
set_in_app_purchase_price価格を設定します(価格スケジュールを置き換えます。1 つの基準地域を指定して自動調整するか、PPP の全価格を指定します)inAppPurchaseId、baseTerritory、manualPrices
list_in_app_purchase_prices地域ごとの現在の価格を確認します(手動設定。自動設定価格は任意)inAppPurchaseId、territory?、includeAutomatic?、limit?
get_in_app_purchase_availability地域ごとの配信状況を取得しますinAppPurchaseId
set_in_app_purchase_availability地域ごとの配信状況を設定しますinAppPurchaseId、availableInNewTerritories、territories?
submit_in_app_purchase_for_reviewIAP を App Review に提出します(アプリのバージョンとは独立しています)inAppPurchaseId
アナリティクスレポート
ツール説明パラメーター
create_analytics_report_requestアナリティクスレポートをリクエストします(継続的なレポートまたは一度限りのスナップショット)appId、accessType
list_analytics_report_requestsアプリのアナリティクスレポートリクエストを一覧表示しますappId
get_analytics_report_requestアナリティクスレポートリクエストを取得しますrequestId
delete_analytics_report_requestアナリティクスレポートリクエストを削除しますrequestId
list_analytics_reportsリクエストで利用可能なレポートを一覧表示しますrequestId
list_analytics_report_instancesレポートのインスタンス(日付別)を一覧表示しますreportId
list_analytics_report_segmentsレポートインスタンスのダウンロード可能なセグメントを一覧表示しますinstanceId
download_analytics_report_segmentレポートのセグメントをダウンロードしますurl
売上と財務
ツール説明パラメーター
get_sales_report売上/トレンドレポートをダウンロードしますvendorNumber、reportType、reportSubType、frequency、reportDate
get_finance_report財務レポートをダウンロードしますvendorNumber、regionCode、reportDate、reportType
パフォーマンスと診断
ツール説明パラメーター
get_app_perf_metricsアプリの電力とパフォーマンスのメトリクスを取得しますappId、metricType
get_build_perf_metricsビルドのパフォーマンスメトリクスを取得しますbuildId、metricType
list_diagnostic_signaturesビルドの診断シグネチャを一覧表示しますbuildId
list_diagnostic_logsシグネチャの診断ログを一覧表示しますsignatureId
任意の API 操作(汎用)
ツール説明パラメーター
asc_api_request任意の App Store Connect API 操作(Apple の OpenAPI 4.5.1 に基づく 1303 件の操作)を呼び出します。method?、path?、query?、body?、paginate?、maxItems?、cursor?、allowUnknown?
asc_api_searchApp Store Connect API 操作インデックスをキーワードで検索します(パス、操作 ID、リソースタイプに一致)。例:「段階的リリース」、「カスタマーレビュー」、「オファーコード」。query、method?、limit?
asc_api_describeApp Store Connect API 操作を 1 つ説明します。クエリパラメーターと許可される値、本文属性(型、列挙値、必須項目)、リレーションシップ、および最小限の本文テンプレートを示します。method、path
サブスクリプション
ツール説明パラメーター
list_subscription_groupsアプリのすべてのサブスクリプショングループを一覧表示します。appId、limit?
get_subscription_groupIDを指定して、特定のサブスクリプショングループの詳細を取得します。subscriptionGroupId
create_subscription_groupアプリに新しいサブスクリプショングループを作成します。appId、referenceName
update_subscription_groupサブスクリプショングループの参照名を更新します。subscriptionGroupId、referenceName
list_subscription_group_localizationsサブスクリプショングループのローカライズを一覧表示します。subscriptionGroupId、limit?
get_subscription_group_localizationIDを指定して、単一のサブスクリプショングループのローカライズを取得します。localizationId
create_subscription_group_localizationサブスクリプショングループのローカライズを作成します。subscriptionGroupId、name、locale、customAppName?、customAppDescription?
update_subscription_group_localization既存のサブスクリプショングループのローカライズを更新します。localizationId、name?、customAppName?、customAppDescription?
list_subscriptionsサブスクリプショングループ内のすべての自動更新サブスクリプションを一覧表示します。subscriptionGroupId、limit?
get_subscriptionIDを指定して、特定の自動更新サブスクリプションの詳細を取得します。subscriptionId
create_subscriptionサブスクリプショングループ内に新しい自動更新サブスクリプションを作成します。subscriptionGroupId、name、productId、subscriptionPeriod、familySharable?、reviewNote?、groupLevel?
update_subscription既存の自動更新サブスクリプションのメタデータを更新します。subscriptionId、name?、familySharable?、subscriptionPeriod?、reviewNote?、groupLevel?
delete_subscription自動更新サブスクリプションを削除します。subscriptionId
list_subscription_localizationsサブスクリプションのすべてのローカライズ(翻訳された名前と説明)を一覧表示します。subscriptionId、limit?
create_subscription_localization特定のロケールで、サブスクリプションのローカライズされた名前と説明を作成します。subscriptionId、name、locale、description?
update_subscription_localizationサブスクリプションのローカライズにおけるローカライズされた名前または説明を更新します。localizationId、name?、description?
delete_subscription_localizationサブスクリプションのローカライズを削除します。localizationId
list_subscription_price_pointsサブスクリプションで利用可能な価格ポイントを一覧表示し、顧客価格と開発者の収益を示します。subscriptionId、territory?、limit?、offset?
list_subscription_prices価格階層や地域の詳細を含め、サブスクリプションに現在設定されている価格を一覧表示します。subscriptionId、territory?、limit?
get_subscription_availabilityサブスクリプションの地域ごとの提供状況設定を取得します。利用可能な地域と、新しい地域で自動的に提供されるかどうかを示します。subscriptionId
set_subscription_availabilityサブスクリプションの地域ごとの提供状況を設定します。subscriptionId、availableInNewTerritories、territories?
create_subscription_price特定の地域におけるサブスクリプションの価格を設定します。subscriptionId、subscriptionPricePointId、startDate?、preserveCurrentPrice?
list_promotional_offersサブスクリプションに設定されているすべてのプロモーションオファーを一覧表示します。subscriptionId、limit?
create_promotional_offerサブスクリプションのプロモーションオファーを作成します。subscriptionId、name、offerCode、duration、offerMode、periodCount、prices?
update_promotional_offerプロモーションオファーの地域ごとの価格リストを置き換えます。promotionalOfferId、prices
delete_promotional_offerサブスクリプションからプロモーションオファーを削除します。promotionalOfferId
list_promotional_offer_prices解決済みの価格階層と地域の詳細を含め、プロモーションオファーに設定された価格を一覧表示します。promotionalOfferId、limit?
バージョン管理とアプリ審査の詳細
ツール説明パラメーター
update_app_versionApp Store バージョンのバージョン文字列、著作権、リリースタイプ、またはリリース予定日を更新します。versionId、versionString?、copyright?、releaseType?、earliestReleaseDate?
delete_app_versionApp Store バージョンを削除します。versionId
get_app_version_buildApp Store バージョンに紐付けられたビルドを取得します(紐付けられていない場合は null)。versionId
set_app_version_buildビルドを App Store バージョンに紐付けます。versionId、buildId
get_review_detailバージョンの App Review 詳細(連絡先、デモアカウント、審査メモ)を取得します。versionId
create_review_detailApp Review 詳細がまだないバージョンに詳細を作成します。contactFirstName と contactPhone は必須です。versionId、contactFirstName、contactPhone、contactLastName?、contactEmail?、demoAccountName?、demoAccountPassword?、demoAccountRequired?、notes?
update_review_detailApp Review 詳細(連絡先、デモアカウント、メモ)を更新します。reviewDetailId、contactFirstName?、contactLastName?、contactPhone?、contactEmail?、demoAccountName?、demoAccountPassword?、demoAccountRequired?、notes?
リリースと輸出コンプライアンス
ツール説明パラメーター
get_phased_releaseApp Store バージョンの段階的リリース(段階的な配信)を取得します。versionId
create_phased_releaseApp Store バージョンの段階的リリースを作成します。versionId、phasedReleaseState?
update_phased_release段階的リリースを ACTIVE、PAUSED、または COMPLETE に変更します。phasedReleaseId、phasedReleaseState、confirmReleaseToAll?
delete_phased_releaseApp Store バージョンの段階的リリースを削除します。phasedReleaseId
release_app_version承認済みで、デベロッパーによるリリース待ち(PENDING_DEVELOPER_RELEASE)の App Store バージョンをリリースします。versionId
list_encryption_declarationsアプリの輸出コンプライアンス(暗号化)申告を一覧表示します。appId、limit?
get_encryption_declarationID を指定して、輸出コンプライアンス(暗号化)申告を 1 件取得します。declarationId
create_encryption_declarationアプリの輸出コンプライアンス(暗号化)申告を作成します。appId、appDescription、containsProprietaryCryptography、containsThirdPartyCryptography、availableOnFrenchStore
assign_builds_to_encryption_declarationビルドを暗号化申告に紐付けます。declarationId、buildIds
update_buildビルドの usesNonExemptEncryption フラグや暗号化申告を更新するか、ビルドを期限切れにします。buildId、expired?、confirmExpire?、usesNonExemptEncryption?、appEncryptionDeclarationId?
App Review の提出
ツール説明パラメーター
list_review_submissionsアプリの審査提出を一覧表示します。状態またはプラットフォームで絞り込むこともできます。appId、state?、platform?、limit?
get_review_submission含まれる項目とともに審査提出を取得します。submissionId
create_review_submissionアプリの 1 つのプラットフォーム向けに審査提出を作成します。appId、platform
add_review_submission_item審査提出に項目を 1 件追加します。submissionId、itemType、itemId
remove_review_submission_item審査提出から項目を削除します。itemId
submit_review_submission審査提出を App Review に提出します。submissionId、expectedItemIds
cancel_review_submission進行中の審査提出をキャンセルします。submissionId
アプリ情報:カテゴリ、年齢制限、EULA
ツール説明パラメーター
get_app_info_categoriesアプリ情報レコードのメインカテゴリとサブカテゴリ、およびサブカテゴリを取得します。appInfoId
set_app_categoriesアプリ情報レコードのApp Storeカテゴリとサブカテゴリを設定またはクリアします。appInfoId, primaryCategoryId?, primarySubcategoryOneId?, primarySubcategoryTwoId?, secondaryCategoryId?, secondarySubcategoryOneId?, secondarySubcategoryTwoId?
list_app_subcategoriesApp Storeカテゴリのサブカテゴリを一覧表示します。例:GAMESのサブカテゴリ。categoryId, limit?
get_age_rating_declarationアプリ情報レコードの年齢制限に関する質問への回答を取得します。appInfoId
update_age_rating_declaration年齢制限に関する質問への回答を更新します。declarationId, attributes
create_app_info_localizationロケール用のアプリ情報ローカライズ(名前、サブタイトル、プライバシー関連リンク)を作成します。appInfoId, locale, name, subtitle?, privacyPolicyUrl?, privacyChoicesUrl?, privacyPolicyText?
delete_app_info_localizationアプリ情報のローカライズを削除します。localizationId
get_eulaアプリのカスタムエンドユーザーライセンス契約を取得します。appId
create_eula指定した地域(例:)に適用する、アプリのカスタムエンドユーザーライセンス契約を作成します。appId, agreementText, territories
update_eulaアプリのカスタムEULAテキストや地域を更新します。eulaId, agreementText?, territories?
delete_eulaアプリのカスタムエンドユーザーライセンス契約を削除します。eulaId
メディア:スクリーンショットセット、アプリプレビュー、審査用スクリーンショット
ツール説明パラメーター
create_screenshot_setApp Storeバージョンのローカライズで、1つのデバイス画面サイズ用のスクリーンショットセットを作成します。localizationId, screenshotDisplayType
delete_screenshot_setスクリーンショットセットと、その中のすべてのスクリーンショットを削除します。screenshotSetId
delete_screenshotスクリーンショットセットから1つのスクリーンショットを削除します。screenshotId
reorder_screenshotsセット内のスクリーンショットの表示順を設定します。screenshotIdsには、セット内の現在のすべてのスクリーンショットを、新しい順序でそれぞれ1回ずつ指定する必要があります。IDはlist_screenshotsで取得できます。screenshotSetId, screenshotIds
list_preview_setsApp Storeバージョンのローカライズに含まれるアプリプレビューセット(デバイスタイプごとに1つ)を一覧表示します。localizationId, limit?
create_preview_setApp Storeバージョンのローカライズで、1つのデバイスタイプ用のアプリプレビューセットを作成します。localizationId, previewType
delete_preview_setアプリプレビューセットと、その中のすべてのアプリプレビューを削除します。previewSetId
list_previewsアプリプレビューセット内のアプリプレビュー(動画)を一覧表示します。previewSetId, limit?
upload_app_preview.mov、.m4v、または.mp4形式の動画をアプリプレビューとしてアップロードします。previewSetId, filePath, fileName?, previewFrameTimeCode?, waitForProcessing?
delete_app_previewプレビューセットから1つのアプリプレビューを削除します。previewId
reorder_previewsプレビューセット内のアプリプレビューの表示順を設定します。previewIdsには、セット内の現在のすべてのプレビューを、新しい順序でそれぞれ1回ずつ指定する必要があります。IDはlist_previewsで取得できます。previewSetId, previewIds
upload_subscription_review_screenshotローカルファイルからサブスクリプションのApp Review用スクリーンショットをアップロードします。subscriptionId, filePath, fileName?
upload_iap_review_screenshotローカルファイルからアプリ内課金のApp Review用スクリーンショットをアップロードします。inAppPurchaseId, filePath, fileName?
TestFlight グループ
ツール説明パラメーター
get_beta_groupパブリック TestFlight リンクなど、ベータグループの設定を取得します。betaGroupId
create_beta_groupアプリのベータグループを作成します。appId, name, isInternalGroup?, hasAccessToAllBuilds?, publicLinkEnabled?, publicLinkLimitEnabled?, publicLinkLimit?, feedbackEnabled?
update_beta_groupベータグループの設定を更新します。betaGroupId, name?, publicLinkEnabled?, publicLinkLimitEnabled?, publicLinkLimit?, feedbackEnabled?, iosBuildsAvailableForAppleSiliconMac?, iosBuildsAvailableForAppleVision?
delete_beta_groupベータグループを削除します。betaGroupId
list_beta_group_buildsベータグループで利用できるビルドを一覧表示します。betaGroupId, limit?
add_builds_to_beta_group1 つ以上のビルドをベータグループで利用できるようにします。betaGroupId, buildIds
remove_builds_from_beta_group1 つ以上のビルドをベータグループから削除します。betaGroupId, buildIds
add_testers_to_beta_groupテスター ID を指定して、既存のベータテスターをベータグループに追加します。betaGroupId, betaTesterIds
delete_beta_testerアカウントからベータテスターを削除します。betaTesterId
invite_beta_testerアプリのテストに招待するため、既存のベータテスターに招待を送信します。appId, betaTesterId
TestFlight ビルドとベータレビュー
ツール説明パラメーター
list_beta_build_localizationsビルドの TestFlight「テスト内容」メモを、ロケールごとに一覧表示します。buildId, limit?
create_beta_build_localization1 つのロケールで、ビルドの「テスト内容」メモを追加します。buildId, locale, whatsNew?
update_beta_build_localizationビルドのローカライズに設定された「テスト内容」メモを置き換えます。localizationId, whatsNew
delete_beta_build_localization1 つのロケールについて、ビルドの「テスト内容」メモを削除します。localizationId
list_beta_app_localizationsアプリの TestFlight アプリ詳細(説明、フィードバック用メールアドレス、URL)を、ロケールごとに一覧表示します。appId, limit?
create_beta_app_localization1 つのロケールで、アプリの TestFlight アプリ詳細を追加します。appId, locale, description?, feedbackEmail?, marketingUrl?, privacyPolicyUrl?, tvOsPrivacyPolicy?
update_beta_app_localization1 つのロケールの TestFlight アプリ詳細を更新します。localizationId, description?, feedbackEmail?, marketingUrl?, privacyPolicyUrl?, tvOsPrivacyPolicy?
delete_beta_app_localization1 つのロケールの TestFlight アプリ詳細を削除します。localizationId
get_beta_app_review_detailアプリの TestFlight ベータ App Review の詳細(連絡先、デモアカウント、メモ)を取得します。appId
update_beta_app_review_detailTestFlight ベータ App Review の詳細(連絡先、デモアカウント、メモ)を更新します。reviewDetailId, contactFirstName?, contactLastName?, contactPhone?, contactEmail?, demoAccountName?, demoAccountPassword?, demoAccountRequired?, notes?
submit_build_for_beta_review外部テスターと共有できるよう、ビルドを TestFlight ベータ App Review に提出します。buildId
list_beta_review_submissions必要に応じてレビューステートで絞り込み、ビルドの TestFlight ベータ App Review への提出を一覧表示します。buildId, betaReviewState?, limit?
get_build_beta_detailビルドの TestFlight 設定と処理状態(自動通知、内部および外部の状態)を取得します。buildId
update_build_beta_detailビルドのテスターへの自動通知を有効または無効にします。buildBetaDetailId, autoNotifyEnabled
list_pre_release_versionsアプリの TestFlight プレリリースバージョン(バージョン文字列とプラットフォーム)を一覧表示します。appId, limit?
カスタマーレビュー
ツール説明パラメーター
list_customer_reviewsアプリのカスタマーレビューを一覧表示します。開発者からの返信がある場合は、各レビューとともに表示します。appId、rating?、territory?、sort?、hasResponse?、limit?
get_customer_reviewIDでカスタマーレビューを1件取得します。開発者からの返信がある場合は、その返信も含みます。reviewId
get_review_responseカスタマーレビューへの開発者からの返信を取得します(返信がない場合は null)。reviewId
create_review_responseカスタマーレビューへの開発者からの返信を公開します。reviewId、responseBody
delete_review_responseカスタマーレビューへの開発者からの返信を削除します。responseId
サブスクリプションオファー(導入オファーと再獲得オファー)
ツール説明パラメーター
list_introductory_offersサブスクリプションの導入オファーを、テリトリー ID と価格ポイント ID とともに一覧表示します。subscriptionId、territoryId?、limit?
create_introductory_offer1つのテリトリーで、サブスクリプションの導入オファーを作成します。subscriptionId、duration、offerMode、numberOfPeriods、startDate?、endDate?、targetSubscriptionPlanType?、territoryId?、pricePointId?
update_introductory_offer導入オファーの終了日を変更します。introductoryOfferId、endDate
delete_introductory_offerIDで導入オファーを削除します。introductoryOfferId
list_win_back_offersサブスクリプションの再獲得オファーを一覧表示します。subscriptionId、limit?
create_win_back_offer解約したサブスクライバー向けの再獲得オファーを作成します。テリトリーごとに価格エントリーを1つ設定します。subscriptionId、referenceName、offerId、duration、offerMode、periodCount、customerEligibilityPaidSubscriptionDurationInMonths、customerEligibilityTimeSinceLastSubscribedInMonths、startDate、priority、prices、customerEligibilityWaitBetweenOffersInMonths?、endDate?、promotionIntent?、targetSubscriptionPlanType?
update_win_back_offer再獲得オファーの適格条件、日付、優先度、またはプロモーションの意図を更新します。winBackOfferId、customerEligibilityPaidSubscriptionDurationInMonths?、customerEligibilityTimeSinceLastSubscribedInMonths?、customerEligibilityWaitBetweenOffersInMonths?、startDate?、endDate?、priority?、promotionIntent?
delete_win_back_offerIDで再獲得オファーを削除します。winBackOfferId
list_win_back_offer_prices再獲得オファーのテリトリーごとの価格を、テリトリー ID と価格ポイント ID とともに一覧表示します。winBackOfferId、territoryId?、limit?
サブスクリプションのオファーコード
ツール説明パラメーター
list_subscription_offer_codesサブスクリプションのオファーコードを一覧表示します。必要に応じて、USA などのテリトリーコードで絞り込めます。subscriptionId、territories?、limit?
get_subscription_offer_codeID を指定して、コード数や状態など、サブスクリプションのオファーコードを 1 件取得します。offerCodeId
create_subscription_offer_codeサブスクリプションのオファーコードを作成します。subscriptionId、name、customerEligibilities、offerEligibility、duration、offerMode、numberOfPeriods、autoRenewEnabled?、targetSubscriptionPlanType?、prices?
update_subscription_offer_codeサブスクリプションのオファーコードを有効化または無効化します。offerCodeId、active
create_subscription_one_time_codesサブスクリプションのオファーコード用に、1 回限り使用できる引き換えコードをまとめて生成します。offerCodeId、numberOfCodes、expirationDate、environment?
list_subscription_one_time_code_batchesサブスクリプションのオファーコード用に生成された、1 回限り使用できるコードのバッチを一覧表示します。offerCodeId、limit?
get_subscription_one_time_code_values1 回限り使用できるコードのバッチの引き換えコードを CSV として取得します。インラインで返すか、大きなバッチの場合は savePath を指定して新しいファイルに保存します。oneTimeUseCodeBatchId、savePath?
create_subscription_custom_codeサブスクリプションのオファーコード用に、有効期限を設定してカスタム(バニティ)引き換えコードを作成します。offerCodeId、customCode、numberOfCodes、expirationDate?
list_subscription_custom_codesサブスクリプションのオファーコード用に作成されたカスタムコードを一覧表示します。offerCodeId、limit?
アプリ内課金のオファーコード
ツール説明パラメーター
list_iap_offer_codesアプリ内課金に設定されたオファーコードを一覧表示します。inAppPurchaseId、limit?
get_iap_offer_codeID を指定して、アプリ内課金のオファーコードを 1 件取得します。offerCodeId
create_iap_offer_codeテリトリーごとの価格を設定して、アプリ内課金のオファーコードを作成します。inAppPurchaseId、name、customerEligibilities、prices
update_iap_offer_codeアプリ内課金のオファーコードを有効化または無効化します。offerCodeId、active
create_iap_one_time_codesオファーコード用に、1 回限り使用できる引き換えコードをまとめて生成します。offerCodeId、numberOfCodes、expirationDate、environment?
list_iap_one_time_code_batchesオファーコード用に生成された、コード数と有効期限を含む、1 回限り使用できるコードのバッチを一覧表示します。offerCodeId、limit?
get_iap_one_time_code_values1 回限り使用できるコードのバッチの引き換えコードを CSV として取得します。空でない行数とともに、インラインで返すか、大きなバッチの場合は savePath を指定して新しいファイルに保存します。oneTimeUseCodeBatchId、savePath?
create_iap_custom_codeオファーコード用にカスタム引き換えコードを作成します。offerCodeId、customCode、numberOfCodes、expirationDate?
list_iap_custom_codesオファーコード用のカスタム引き換えコードを、引き換え回数と有効期限とともに一覧表示します。offerCodeId、limit?
Custom Product Pages
ToolDescriptionParameters
list_custom_product_pagesList the custom product pages of an app, optionally filtered by visibility.appId, visible?, limit?
get_custom_product_pageGet one custom product page by ID.customProductPageId
create_custom_product_pageCreate a custom product page for an app, with its first version and one localization (the app's primary locale unless locale is given).appId, name, locale?, promotionalText?, deepLink?
update_custom_product_pageUpdate a custom product page's name or visibility.customProductPageId, name?, visible?
delete_custom_product_pageDelete a custom product page by ID.customProductPageId
list_cpp_versionsList the versions of a custom product page, optionally filtered by review state.customProductPageId, states?, limit?
create_cpp_versionCreate a new version of a custom product page, optionally with a deep link.customProductPageId, deepLink?
list_cpp_localizationsList the per-locale localizations of a custom product page version, optionally filtered by locale.versionId, locales?, limit?
create_cpp_localizationAdd a locale with promotional text to a custom product page version.versionId, locale, promotionalText?
update_cpp_localizationSet the promotional text of a custom product page localization.localizationId, promotionalText
delete_cpp_localizationDelete a custom product page localization by ID.localizationId

Usage Examples

List Your Apps

"Show me all my apps in App Store Connect"

Claude will use list_apps to retrieve and display your apps.

Update App Description

"Update the English description for version 2.0 of MyApp to: 'A revolutionary app that simplifies your daily tasks.'"

Claude will:

  1. Find the app using list_apps
  2. Get the version using list_app_versions
  3. Find the English localization using list_version_localizations
  4. Update it using update_version_localization
Add Japanese Localization

"Add Japanese localization to MyApp version 2.0 with description '素晴らしいアプリです' and keywords 'アプリ,便利,簡単'"

Claude will use create_version_localization with locale ja.

Add a Beta Tester

"Add [email protected] as a beta tester to the Internal Testing group for MyApp"

Claude will:

  1. Find the app and beta group using list_beta_groups
  2. Add the tester using add_beta_tester
Set PPP Pricing

"Show me the equivalent prices for my $9.99 tier in India, Brazil, and Turkey"

Claude will:

  1. Find the $9.99 price point using list_app_price_points
  2. Get equivalent prices using get_price_point_equalizations
  3. Show you the PPP-adjusted prices in each territory

"Set my app to $9.99 in the US and use PPP pricing for India and Brazil"

Claude will use set_app_prices with the appropriate price point IDs for each territory.

Create a Lifetime Purchase

"Add a $99.99 lifetime unlock to MyApp with PPP pricing for India and Brazil"

Claude will:

  1. Create a non-consumable IAP with create_in_app_purchase
  2. Add a display name with create_in_app_purchase_localization
  3. Find the $99.99 tier with list_in_app_purchase_price_points, then PPP equivalents with get_in_app_purchase_price_point_equalizations
  4. Apply per-territory pricing with set_in_app_purchase_price and open availability with set_in_app_purchase_availability
  5. Confirm the result with list_in_app_purchase_prices
Check Version Status

"What's the status of all versions of MyApp?"

Claude will use list_app_versions to show version states (PREPARE_FOR_SUBMISSION, IN_REVIEW, READY_FOR_SALE, etc.)

バージョンを準備して提出する

「MyApp 2.1 の著作権を『2026 Example Inc.』に設定し、ビルド 42 を添付して、審査メモを追加し、審査に提出してください」

Claude は update_app_version、set_app_version_build(有効なビルドのみ添付できます)、update_review_detail の順に使用します。その後、create_review_submission、add_review_submission_item、submit_review_submission を使用します。提出内容に想定外の項目が含まれている場合、最後のツールは処理を拒否します。

専用ツールがない場合

「MyApp の次のバージョンで Game Center を有効にしてください」

Claude は asc_api_search で操作を検索し、asc_api_describe でリクエスト本文を確認してから、asc_api_request で呼び出します。

セキュリティ

認証情報の取り扱い
  • 秘密鍵がログやエラーメッセージに記録されたり、表示されたりすることはありません
  • JWT トークンは、エラー出力から自動的にマスキングされます
  • Issuer IDはエラーメッセージと詳細からマスキングされます。デモアカウントのパスワードは返されず、エラーからもマスキングされます
  • 読み取り専用モード(ASC_READ_ONLY=1)は、ツール一覧だけでなく HTTP クライアント自体で書き込みをブロックします
  • 汎用リクエストは App Store Connect ホスト上の相対 /v1~/v3 パスにのみ到達します。.. を含むパス、エンコードされたパス、絶対パスは拒否されます。また、allowUnknown が設定されていない限り、Apple の仕様に準拠する必要があります。デモアカウントのパスワードと Webhook シークレットはレスポンスでマスキングされます
  • オファーコードの CSV ファイルは新しいファイルにのみ書き込まれ(savePath、所有者のみのアクセス権限)、既存のファイルを上書きすることはありません
  • トークンのキャッシュにより、鍵の使用を最小限に抑えます(トークンの有効期間は 15 分、10 分後に更新)
パスの検証
  • P8 ファイルのパスは、ディレクトリトラバーサル攻撃を防ぐために検証されます(.. は使用できません)
  • 絶対パスのみ解決されます
ベストプラクティス
  1. 認証情報をコミットしないでください — 環境変数またはシークレット管理ツールを使用します
  2. API キーの権限を制限してください — 必要最小限のロールを使用します(ほとんどの操作では App Manager)
  3. キーを定期的にローテーションしてください — 新しい API キーを生成し、古いキーを無効にします
  4. .p8 ファイルを安全に保管してください — ファイル権限を 600(所有者のみ読み取り/書き込み可能)に設定します
chmod 600 /path/to/AuthKey.p8

トラブルシューティング

「Configuration error: APP_STORE_CONNECT_KEY_ID environment variable is required」

必要な環境変数がすべて設定されていることを確認してください。

  • APP_STORE_CONNECT_KEY_ID
  • APP_STORE_CONNECT_ISSUER_ID
  • APP_STORE_CONNECT_P8_PATH または APP_STORE_CONNECT_P8_CONTENT
「Failed to read private key」
  1. APP_STORE_CONNECT_P8_PATH のパスが正しく、絶対パスであることを確認します
  2. ファイルの権限を確認します:ls -la /path/to/AuthKey.p8
  3. Apple の有効な .p8 ファイルであることを確認します(-----BEGIN PRIVATE KEY----- で始まります)
「Authentication failed」

通常、次のいずれかを意味します。

  1. App Store Connect で API キーが無効化されています
  2. Key ID または Issuer ID が .p8 ファイルと一致していません
  3. .p8 ファイルが破損しているか、不完全です
「Rate limit exceeded」

サーバーにはレート制限(1 分あたり 50 リクエスト)が組み込まれています。Apple の制限に達した場合は、次の手順を実行してください。

  1. 指定された再試行時間まで待ちます
  2. 可能な場合は操作をまとめて実行します
  3. サーバーは指数バックオフで自動的に再試行します
Claude にツールが表示されない場合
  1. サーバーが稼働していることを確認します:Claude Desktop のログを確認してください
  2. ご利用の OS に応じて、設定ファイルのパスが正しいことを確認します
  3. 設定を変更した後、Claude Desktop を再起動します

開発

前提条件
  • Node.js 20+
  • npm または pnpm
セットアップ
# Clone the repository
git clone https://github.com/SardorbekR/appstore-connect-mcp.git
cd appstore-connect-mcp

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Lint
npm run lint

# Type check
npm run typecheck
プロジェクト構成
src/
├── index.ts          # MCP server entry point
├── auth/
│   └── jwt.ts        # JWT token generation & caching
├── api/
│   ├── client.ts     # HTTP client with retry logic and read-only guard
│   ├── upload.ts     # Shared asset upload (reserve, upload chunks, commit, poll)
│   └── types.ts      # TypeScript interfaces
├── openapi/
│   ├── schema-index.json  # Operation index generated from spec/openapi.oas.json
│   └── index.ts           # Match, search, and describe operations
├── tools/
│   ├── index.ts      # Tool registry (toolsets, read-only filtering)
│   ├── api.tools.ts  # Generic asc_api_* tools
│   ├── apps.tools.ts
│   ├── versions.tools.ts
│   ├── localizations.tools.ts
│   ├── app-info.tools.ts
│   ├── beta.tools.ts
│   ├── screenshots.tools.ts
│   ├── bundle-ids.tools.ts
│   ├── devices.tools.ts
│   ├── users.tools.ts
│   ├── builds.tools.ts
│   ├── categories.tools.ts
│   └── ...           # One file per domain (subscriptions, release, media, ...)
└── utils/
    ├── errors.ts     # Error classes with redaction
    └── validation.ts # Zod schemas
OpenAPI 仕様

spec/openapi.oas.json は Apple の App Store Connect OpenAPI 仕様を固定したものです(spec/README.md を参照)。テストでは、ツールが送信するすべてのリクエストをこの仕様と照合します。

npm run check-openapi   # fail if src/openapi/schema-index.json is stale
npm run update-openapi  # download Apple's latest spec and regenerate the index
npx tsx scripts/spec-sheet.ts "PATCH /v1/appInfos/{id}"  # print an operation's resolved shape
ローカルでの実行
# Development mode with auto-reload
npm run dev

# Or run the built version
npm start
リリース

バージョンタグがプッシュされると、GitHub Actions(.github/workflows/publish.yml)からリリースが公開されます。npm では信頼されたパブリッシング(OIDC、トークン不要、プロベナンス付与)を使用し、MCP Registry では GitHub OIDC を使用します。

  1. package.json と package-lock.json(npm version X.Y.Z --no-git-tag-version)、server.json の両方のフィールド、および src/index.ts の SERVER_VERSION に新しいバージョンを設定します
  2. main にマージします
  3. git tag vX.Y.Z && git push origin vX.Y.Z を実行します
  4. 実行を承認します。公開ジョブは release 環境で待機するため、必須レビュアーがワークフローの実行を開き、Review deployments → Approve をクリックします

いずれかのバージョンフィールドがタグと異なる場合、または型チェック、Lint、テスト、OpenAPI インデックスのチェックに失敗した場合、ワークフローは公開を拒否します。

コントリビューション
  1. リポジトリをフォークします
  2. 機能ブランチを作成します:git checkout -b feature/my-feature
  3. 変更を加え、テストを追加します
  4. npm test と npm run lint を実行します
  5. プルリクエストを送信します

謝辞

汎用 API ツール、OpenAPI インデックス形式、およびワークフローの詳細の一部(レビューの送信、アセットのアップロード、オファーの価格設定)は、rorkai/App-Store-Connect-CLI(MIT)に準拠しています。

ライセンス

MIT License。詳細は LICENSE をご覧ください。

リンク

コメント

MCP は初めてですか?

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

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