app-store-connect-mcp について
app-store-connect-mcpは、Apple App Store Connect APIを操作するMCPサーバーです。開発者やチーム向けに、公式OpenAPIの操作から生成したツールと、複数アカウントや長時間処理向けの補助機能を提供します。
主な機能
- 01公式API操作から生成したツール
- 02複数アカウント登録とプロジェクト単位の固定
- 03TestFlightとXcode Cloudの操作
- 04Game Center、App Clips、アプリ内課金
- 05アップロード、レポート、ビルド監視の補助
活用シーン
- 01TestFlightのテスターとビルドの管理
- 02Xcode Cloudのビルド実行の調整
- 03アプリ内課金とサブスクリプションの更新
- 04分析、売上、財務レポートの確認
MCP 対応
App Store Connect APIの操作をMCPツールとして互換クライアントに公開し、アカウント管理と認証の補助ツールも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1000掲載時のツール一覧 · 1 週間前に更新
このツールにパラメーターはありません。
詳細
app-store-connect-mcp
Apple の App Store Connect API に対応する、包括的な Model Context Protocol(MCP)サーバーです。 1316 個のツール。カバレッジは 100%。Apple の公式 OpenAPI 仕様にある非推奨ではないすべての操作を網羅しています。TestFlight、Xcode Cloud、Game Center、App Clips、アプリ内購入、サブスクリプション、審査提出、分析、プロビジョニングなど、Apple が公開するすべての機能に対応します。Claude、Cursor、VS Code Copilot、Codex CLI、Gemini CLI、Windsurf など、あらゆる MCP クライアントで動作します。
こちらもご覧ください: google-play-developer-mcp — Google Play Console 向けの、同じ理念に基づく MCP サーバーです。
目次
- 開発の背景
- 機能一覧
- クイックスタート
- 手順に沿ったセットアップ
- MCP クライアントへの登録
- 使用例
asc-mcp(zelentsov-dev)からの移行- セキュリティ
- 設計上の注意点
- コントリビューション
- バージョン履歴
- 参考資料
開発の背景
App Store Connect は非常に大規模です。Apple 独自の OpenAPI 仕様には現在、203 のリソースグループにわたる 1303 個の操作が記載されています。TestFlight、Xcode Cloud、Game Center、App Clips、アプリ内購入、サブスクリプション、オファーコード、審査提出、代替配信(EU DMA)、分析、メトリクス、プライバシーマニフェスト、プロビジョニング、ユーザーなど、数えきれません。
コミュニティ製の MCP サーバーは、どれも一部の機能しかカバーしていません。すべてを網羅するものはありません。
app-store-connect-mcp はすべてを網羅します。
| 項目 | このサーバー | 一般的なコミュニティ製 MCP サーバー |
|---|---|---|
| App Store Connect API のカバレッジ | ✅ 1300 個以上のツール(仕様 v4.5.1 の 100%) | 部分的(通常 50~150 個のツール) |
| Xcode Cloud | ✅ ciProducts / ciWorkflows / ciBuildRuns / ciBuildActions / ciArtifacts / ciIssues / ciTestResults のすべて | ❌ |
| Game Center | ✅ 実績、リーダーボード、グループ、マッチメイキング、語彙 | ❌ |
| App Clips | ✅ デフォルトおよび高度なエクスペリエンス、審査の詳細、ヘッダー画像 | ❌ |
| Review Submissions v2 | ✅ | 従来の appStoreVersionSubmissions をまだ使用している場合が多い |
| 代替配信(EU DMA) | ✅ | ❌ |
| アプリデータの使用状況(プライバシー) | ✅ | ❌ |
| 複数アカウント(開発者アカウントの切り替え) | ✅ ローカルレジストリ + プロジェクトごとの ASC_ACCOUNT 固定 | 通常は 1 つ |
| 認証情報の安全性 | リポジトリに .p8 の内容を含めず、プロセスキャッシュにキーを保存せず、厳格な .gitignore を設定 | さまざま |
| 仕様駆動 — 新しい仕様に合わせて自動再生成 | ✅ npm run codegen | ❌ |
AI アシスタントを使って App Store Connect を操作する場合 — 提出の自動化、TestFlight の管理、IAP / サブスクリプションのカタログ、審査のトリアージ、分析、Xcode Cloud のオーケストレーションなど — このサーバーを 1 回インストールするだけで、アシスタントにすべてのツールを提供できます。
機能一覧
ツールは合計 1316 個です(仕様 v4.5.1 時点):
- 6
accounts_*— ローカルの複数アカウントレジストリ(追加/一覧表示/切り替え/削除/更新/現在のアカウント) - 2
auth_*—auth_status(準備状況)およびauth_revoke_cache - 1303 公式の App Store Connect OpenAPI 仕様から自動生成された、各操作につき1つのツール。すべてのリソースグループを網羅しています:
- Apps / App Infos / App Store Versions / App Store Version Localizations / Phased Releases / Version Submissions
- Review Submissions (v2) + Review Submission Items + App Store Review Attachments + App Store Review Details
- TestFlight:Beta Groups、Beta Testers、Beta App Review Details/Submissions、Beta App Localizations、Beta Build Localizations、Beta License Agreements、Beta Feedback Screenshot/Crash Submissions、Beta Invitees、Builds、Build Bundles、Build Bundle File Sizes
- Xcode Cloud:Ci Products、Ci Workflows、Ci Build Runs、Ci Build Actions、Ci Artifacts、Ci Issues、Ci Test Results、Ci Xcode Versions、Ci Mac Os Versions、Ci Scm Repositories / References / Pull Requests / Providers
- Game Center:Achievements、Leaderboards、Leaderboard Sets、Groups、Matchmaking Queues / Rule Sets / Rules / Teams、Activities、Player Scores / Achievements、App Versions、Enabled Versions、Details、Vocabularies、およびすべての Localizations / Images / Releases
- App Clips:App Clips、Default / Advanced Experiences、Default / Advanced Experience Localizations、Header Images、Advanced Experience Images、App Store Review Details
- In-App Purchases:IAP v2、Subscriptions、Subscription Groups、Subscription Offer Codes(カスタムおよび1回限りの使用)、Subscription Prices、Subscription Promotional Offers、Subscription Introductory Offers、Subscription Availabilities、Win-back Offers、Promoted Purchases
- Pricing & Availability:App Prices、App Price Points、App Price Schedules、App Availabilities V2、Territories、Territory Availabilities
- Custom Product Pages + PPO(A/B テスト):App Custom Product Pages、Versions、Localizations、App Store Version Experiments V2 + Treatments + Localizations
- Screenshots & Previews:App Screenshots、App Screenshot Sets、App Previews、App Preview Sets、App Event Screenshots、App Event Video Clips
- Provisioning:Bundle Ids、Bundle Id Capabilities、Certificates、Devices、Profiles、Pass Type Ids
- Users & Access:Users、User Invitations、Actors、Sandbox Testers
- Encryption / Compliance:App Encryption Declarations + Documents、Age Rating Declarations、App Data Usages + Categories + Purposes + Data Protections + Publish State、Accessibility Declarations、End User License Agreements
- Alternative Distribution(EU DMA):Alternative Distribution Keys、Domains、Packages、Package Versions / Variants / Deltas、Marketplace Search Details、Marketplace Webhooks
- Analytics:Analytics Reports、Report Requests、Report Instances、Report Segments、Diagnostic Signatures
- Metrics:App Perf、Build Perf、Power Perf、Diagnostic Logs
- Sales & Finance:Sales Reports、Finance Reports
- Reviews:Customer Reviews、Customer Review Responses
- Routing App Coverages、App Categories、App Events + Localizations、Android ↔ iOS App Mapping、External Purchase Collectors…
- 仕様 4.5 で追加:App Asset Libraries(画像、動画、配置)、V2 のローカライゼーションと画像を含む In-App Purchase / Subscription / Subscription Group Versions、Subscription Plan Availabilities、Game Center Score Moderations and Blocked Players、App Performance Overviews
- 5 手書きのヘルパー。単一の操作にきれいに対応しないワークフロー向けです:
asset_upload_file— 3段階のアセットアップロードプロトコルのステップ2(スクリーンショット、プレビュー、審査用添付ファイル、IAP 審査用スクリーンショット、App Clip ヘッダー画像、Game Center 画像、Routing App Coverages)sales_reports_download— 販売レポートをダウンロードして gzip を展開し、解析済み TSV を返しますfinance_reports_download— 財務レポートに対して同じ処理を行いますanalytics_report_instance_wait— レポートがCOMPLETED/FAILEDになるまでポーリングしますci_build_run_wait— Xcode Cloud のビルド実行が完了するまでポーリングしますauth_statusを実行し、次にapps_get_collectionを実行してエンドツーエンドで確認します。
クイックスタート
npmからインストールします:
npm install -g apple-app-store-connect-mcp
インストールせずに実行することもできます:
npx -y apple-app-store-connect-mcp
パッケージ名について。 npm上のパッケージ名は
apple-app-store-connect-mcpです。インストール後、$PATH上のコマンドはapp-store-connect-mcp(bin名)になります。以下のMCPクライアント設定では、この名前を指定しています。
次に、MCPクライアントの設定に追加します(例:Claude Code):
{
"mcpServers": {
"app-store-connect": {
"command": "app-store-connect-mcp"
}
}
}
最後に、App Store Connect APIキーを登録します(詳細は以下を参照):
accounts_add
name: my-app
keyId: AB12CD34EF
issuerId: 69a6de70-...
keyFile: /Users/you/.config/app-store-connect-mcp/AuthKey_AB12CD34EF.p8
セットアップ手順
1. App Store Connect APIキーを作成する
- App Store Connectを開きます。
- ユーザーとアクセス → 統合 → App Store Connect APIを選択します。
- APIキーを生成をクリックします(アカウント所有者または管理者のロールが必要です)。
- 名前を付け、必要なアクセスレベル(管理者、開発者、財務、マーケティングなど)を選択して、生成をクリックします。
- キーIDと発行者ID(ページ上部に表示)をコピーします。
- APIキーをダウンロードをクリックします。
AuthKey_<KEYID>.p8ファイルがダウンロードされます。このファイルをダウンロードできるのは一度だけです。 Gitリポジトリの外に保存してください。たとえば、~/.config/app-store-connect-mcp/AuthKey_AB12CD34EF.p8に保存し、chmod 600を実行します。
2. このMCPサーバーにキーを登録する
サーバーを設定済みの任意のMCPクライアントを起動し、次を呼び出します:
accounts_add
name: my-app
keyId: <the 10-char Key ID>
issuerId: <the UUID shown above the API keys list>
keyFile: /absolute/path/to/AuthKey_XXXXXXXXXX.p8
description: (optional)
3. 確認する
auth_status
{ source: "accounts", tokenAcquired: true, expiresAt: ... }が返されるはずです。
apps_get_collection
キーから参照できるアプリの一覧を表示します。
4. 複数のアカウントを管理する
accounts_add name: client-a keyId: ... issuerId: ... keyFile: ...
accounts_add name: client-b keyId: ... issuerId: ... keyFile: ...
accounts_switch name: client-b
accounts_list
以降の呼び出しはすべて、現在選択されているアカウントを対象にします。
5. プロジェクトごとにアカウントを固定する(ASC_ACCOUNT)
currentAccountはaccounts.json内の単一のグローバル値であり、マシン上のすべてのMCPクライアントで共有されます。複数のApp Store Connectアカウントを使う場合、これは問題の原因になります。あるプロジェクトでaccounts_switchを実行すると、他のすべてのプロジェクトの対象アカウントも通知なく切り替わり、プロジェクトAのアシスタントがプロジェクトBのアプリに書き込んでしまう可能性があります。
サーバープロセスごとにアカウントを固定してください。MCPクライアントの設定でASC_ACCOUNTを設定します:
{
"mcpServers": {
"app-store-connect": {
"command": "app-store-connect-mcp",
"env": { "ASC_ACCOUNT": "acme-app" }
}
}
}
アカウントを固定すると、次のようになります:
currentAccountの値にかかわらず、すべての呼び出しは固定したアカウントに解決されます。- 他のアカウントへの
accounts_switchは、対象を通知なく切り替える代わりに、明確なエラーで失敗します。 accounts_removeは固定したアカウントの削除を拒否します。auth_statusとaccounts_currentはpinnedToを報告するため、セッションがどのアカウントを対象としているか常に確認できます。
ASC_ACCOUNTで指定したアカウントが登録されていない場合、他のアカウントにフォールバックせず、明確なエラーが発生します。
各プロジェクトに個別のアカウントを固定すれば、どのプロジェクトも共有のグローバル値に依存しなくなります。
環境変数の互換モード
以前のセットアップ(例:zelentsov-dev/asc-mcp)との互換性のため、サーバーは次の環境変数も受け付けます:
ASC_KEY_ID="..."
ASC_ISSUER_ID="..."
ASC_PRIVATE_KEY_PATH="/absolute/path/to/AuthKey_XXX.p8"
accounts_addでアカウントが登録されていない場合、サーバーはこれらの環境変数にフォールバックします。accounts_*ツールが常に優先されます。
MCPクライアントへの登録
Claude Desktop
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"app-store-connect": {
"command": "app-store-connect-mcp"
}
}
}
Claude Code
claude mcp add app-store-connect app-store-connect-mcp
または、~/.claude.jsonを編集します:
{
"mcpServers": {
"app-store-connect": {
"command": "app-store-connect-mcp"
}
}
}
複数のApp Store Connectアカウントを使う場合は、代わりに各プロジェクトの.mcp.jsonにサーバーを設定して、アカウントを固定してください。プロジェクトごとにアカウントを固定するを参照してください:
{
"mcpServers": {
"app-store-connect": {
"command": "app-store-connect-mcp",
"env": { "ASC_ACCOUNT": "acme-app" }
}
}
}
Cursor
設定 → MCP → 新しいMCPサーバーを追加:
{
"app-store-connect": {
"command": "app-store-connect-mcp"
}
}
VS Code(GitHub Copilotのエージェントモード)
.vscode/mcp.json:
{
"servers": {
"app-store-connect": {
"type": "stdio",
"command": "app-store-connect-mcp"
}
}
}
Codex CLI / Gemini CLI / Windsurf / Continue
MCP準拠のクライアントであれば、同じcommandエントリを使用できます。グローバルにインストールしたapp-store-connect-mcpバイナリを指定するか、ソースから実行する場合はnode /path/to/dist/index.jsを指定してください。
ソースから実行する(グローバルインストールなし)
git clone https://github.com/devinwang/app-store-connect-mcp.git
cd app-store-connect-mcp
npm install
npm run build
次に、MCPクライアントの設定に追加します:
{
"mcpServers": {
"app-store-connect": {
"command": "node",
"args": ["/absolute/path/to/app-store-connect-mcp/dist/index.js"]
}
}
}
使用例
キーから参照できるアプリを確認する
accounts_switch name: my-app
auth_status
apps_get_collection
バージョンと buildNumber を指定してビルドを取得し、TestFlight に送信する
builds_get_collection
"filter[preReleaseVersion.version]": "1.2.0"
"filter[version]": "147"
beta_groups_get_collection
"filter[app]": <APP_ID>
"fields[betaGroups]": "name,publicLinkEnabled"
builds_beta_groups_create_to_many_relationship
id: <BUILD_ID>
body:
data:
- type: betaGroups
id: <BETA_GROUP_ID>
builds_update_instance
id: <BUILD_ID>
body:
data:
type: builds
id: <BUILD_ID>
attributes:
expired: false
スクリーンショットをアップロードする(3 ステップのアセットフロー)
app_screenshots_create_instance
body:
data:
type: appScreenshots
attributes:
fileName: "en-US-iphone-6_9-1.png"
fileSize: 2415122
relationships:
appScreenshotSet:
data: { type: appScreenshotSets, id: <SET_ID> }
# → response includes the new `data.id` (asset is now AWAITING_UPLOAD)
asset_upload_file
filePath: /abs/path/to/screenshot.png
assetType: appScreenshots # preferred: tool fetches uploadOperations
assetId: <SCREENSHOT_ID> # server-side (signature stays server-side)
# (legacy: pass `uploadOperations: [...]` from the create response instead)
app_screenshots_update_instance
id: <SCREENSHOT_ID>
body:
data:
type: appScreenshots
id: <SCREENSHOT_ID>
attributes:
uploaded: true
sourceFileChecksum: <MD5>
Xcode Cloud のビルドを開始し、完了まで待機する
ci_build_runs_create_instance
body:
data:
type: ciBuildRuns
relationships:
workflow:
data: { type: ciWorkflows, id: <WORKFLOW_ID> }
# → response includes `data.id`
ci_build_run_wait
id: <BUILD_RUN_ID>
timeoutMs: 3600000
顧客レビューに返信する
customer_reviews_get_collection
"filter[app]": <APP_ID>
"sort": "-createdDate"
"limit": 10
customer_review_responses_v1_create_instance
body:
data:
type: customerReviewResponses
attributes:
responseBody: "Thanks for the feedback — we fixed this crash in 1.2.1. Please give it another try!"
relationships:
review:
data: { type: customerReviews, id: <REVIEW_ID> }
売上レポートを取得する(1 日分)
sales_reports_download
"filter[frequency]": DAILY
"filter[reportType]": SALES
"filter[reportSubType]": SUMMARY
"filter[vendorNumber]": "12345678"
"filter[reportDate]": "2026-04-20"
解析済みの行を返します。未加工の TSV を取得するには、parse: false を追加します。
サブスクリプションを作成して有効化する
subscription_groups_create_instance
body: { data: { type: subscriptionGroups, attributes: { referenceName: "Premium" }, relationships: { app: { data: { type: apps, id: <APP_ID> } } } } }
subscriptions_create_instance
body: { data: { type: subscriptions, attributes: { productId: "com.example.premium.monthly", name: "Premium Monthly", subscriptionPeriod: "ONE_MONTH" }, relationships: { group: { data: { type: subscriptionGroups, id: <GROUP_ID> } } } } }
subscription_prices_create_instance
body: { data: { type: subscriptionPrices, relationships: { subscription: { data: { type: subscriptions, id: <SUB_ID> } }, territory: { data: { type: territories, id: "USA" } }, subscriptionPricePoint: { data: { type: subscriptionPricePoints, id: <PRICE_POINT_ID> } } } } }
asc-mcp(zelentsov-dev)からの移行
このサーバーは github.com/zelentsov-dev/asc-mcp に代わるものです。主な違いは次のとおりです。
- 範囲。 このサーバーは約 90 個のツールを実装していますが、こちらはヘルパーを含む仕様上の全 1303 操作を実装しています。
- ツール名。
zelentsov-dev/asc-mcpはapps_search、reviews_list、app_versions_submit_for_reviewのような簡略化された名前を使用します。このサーバーでは、Apple の公式operationIdをスネークケースにした名前(apps_get_collection、customer_reviews_get_collection、review_submissions_create_instance)を使用します。自動変換はありません。古い名前を前提としていたプロンプトやスクリプトは更新してください。 - 認証情報の互換性。 同じ環境変数(
ASC_KEY_ID、ASC_ISSUER_ID、ASC_PRIVATE_KEY_PATH)を引き続き使用できるため、移行時に.p8を移動する必要はありません。複数アカウントのサポートのためにaccounts_addで登録することを推奨する警告が、stderr に一度だけ表示されます。 company_*からaccounts_*へ。 考え方を変更してください。旧サーバーの「company」は、こちらでは「account」です。
名前ごとの詳細な対応表は docs/MIGRATION.md に記載されています。
セキュリティ
このリポジトリには認証情報が一切含まれていません。App Store Connect API の .p8 はご自身で用意してください。サーバーが記録するのはそのパスのみです。
ディスク上に保存されるもの/されないもの
| 場所 | 内容 |
|---|---|
~/.app-store-connect-mcp/accounts.json | アカウント名、キー ID、発行者 ID、キーファイルのパス、説明。秘密情報は含まれません。権限 0600 で書き込まれ、ディレクトリの権限は 0700 です。 |
AuthKey_*.p8 を配置した場所 | 実際の秘密鍵です。コミットされることはありません。 1 回の JWT 署名を超えてサーバーのメモリにコピーされることはありません。 |
| リポジトリの内容 | コードのみです。フィクスチャ、サンプルキー、実際のキー ID は含まれません。 |
メモリ上に保存されるもの
| タイミング | 内容 |
|---|---|
| JWT の署名時 | .p8 の内容は readFileSync で読み込まれて jwt.sign に渡され、その直後にバッファーが fill(0) で消去され、参照が解除されます。 |
| 呼び出しの合間 | 有効期限 20 分の署名済み JWT が、token-cache.ts のローカル変数にキャッシュされます。これはメモリ内のみで、ディスクには保存されません。accounts_switch、accounts_update、accounts_remove、auth_revoke_cache の実行時に破棄されます。 |
| ツールの出力内 | 出力前にすべて redact() を通します。JWT に似た文字列、PEM ブロック、Bearer トークン、長い 16 進数トークンは [REDACTED …] に置き換えられます。これは、誤ってログに記録されるあらゆるコード経路に対する多層防御です。 |
.gitignore でブロックされるもの
*.p8、AuthKey_*、AuthKey_*.p8*.pem、*.p12、*.pfx、*.key、id_rsa*accounts.json、.app-store-connect-mcp/credentials/、keys/、secrets/.env、.env.*(.env.exampleは除外されません)
推奨されるセキュリティ対策
.p8は、マシン上の Git リポジトリの外に保管してください。- ワークフローに必要な最小限のロールを API キーに付与してください。
Adminを付与すると、この MCP はストアのメタデータの削除を含むすべての操作を実行できます。適切な範囲に制限してください。 - キーは定期的にローテーションしてください。App Store Connect → Users and Access → Integrations で古いキーを取り消して新しいキーを生成し、
accounts_update --keyFile <newPath>を実行します。 auth_statusが返すのは、キー ID、発行者 ID、ブール値、JWT の有効期限のタイムスタンプのみです。JWT や.p8の内容は返しません。- このリポジトリの CI ワークフローは、
dist/内で秘密鍵の素材に一致する正規表現が検出された場合、ビルドを失敗させます。
監査証跡
Apple はキー ID ごとにすべての API 呼び出しを記録します。不正使用が疑われる場合は、App Store Connect → Users and Access → Integrations を開いてキーを取り消してください。そのキーで署名された未失効の JWT は、直ちに機能しなくなります。
設計上の注意事項
- 仕様主導です。 1316 個のツールのうち 1303 個は、Apple の公式 OpenAPI 仕様(
spec/app-store-connect-openapi.json)から自動生成されています。Apple が新しいバージョンを公開したら、npm run spec:download && npm run codegen && npm run buildを実行するだけで更新できます。 - operationId と 1 対 1 で対応する命名です。 ツール名は、Apple の
operationIdをsnake_caseに変換したものです。これにより、MCP の名前が公式 REST リファレンスと一致するため、LLM は Apple のドキュメントを読んで、翻訳せずに適切なツールを選べます。 - 実用性を重視した入力検証です。 パスパラメーターには型付きの zod 文字列(必須)、クエリパラメーターには型付きの zod フィールド(任意)を使用し、Apple が使う角括弧付きの名前(
filter[name]、fields[apps]、limit[appStoreVersions])をそのまま採用しています。リクエストボディにはz.record(z.unknown())を使用し、OpenAPI のコンポーネントスキーマを参照する説明を付けています。ASC がサーバー側で検証し、エラー変換機能が問題を明確に示します。すべての JSON:API エンベロープについて zod ツリー全体を生成すると、サーバーのサイズが 10 倍になり、価値はほとんど増えません。 - エラー変換です。
401は「JWT が拒否されました。キーをローテーションするか、クロックスキューを確認してください」、403は「このエンドポイントへのアクセスがキーに許可されていません」、422は ASC の応答に含まれる正確なsource.pointerを示し、429はチームごとのクォータについて説明し、5xxは https://developer.apple.com/system-status/ を案内します。 - ステートレスなトランスポートです。 stdio のみを使用します。ネットワークリスナーはなく、アカウントファイル以外に永続的な状態も保持しません。
- テレメトリーはゼロです。 サーバーが外部に通信することはありません。
貢献
PR を歓迎します。提出する前に、以下を確認してください。
- Node 18/20/22 で
npm run typecheckとnpm run buildが成功すること(CI でも実行されます)。 - 実際の
.p8、keyId、issuerId、JWT を、issue、PR、フィクスチャー、サンプルに絶対に含めないでください。 - 新しい OpenAPI 仕様バージョンに更新する場合:
npm run spec:downloadnpm run codegen—src/tools/generated/とspec/coverage-report.txtを再生成しますnpm run buildspec/coverage-report.txtの差分を確認してください。ツール数が 10 個以上変わる場合や、新しいトップレベルのタグが追加される場合は、CHANGELOG に記載してください。
- 新しい手書きツールは
src/tools/overrides.tsに配置し、生成済みの名前と重複しない名前を付けてください。
バージョン履歴
0.1.0 — 2026-04-21(初回公開リリース)
- 1221 個の MCP ツール: アカウント 6 個、認証 2 個、Apple の App Store Connect OpenAPI 仕様 v4.3 から自動生成されたもの 1208 個、手書きのヘルパー 5 個(アセットのアップロード、売上/財務レポートのダウンロード、ポーリング)。
- 仕様のカバレッジ 100% — 仕様内の非推奨ではないすべてのオペレーションにツールがあり、非推奨のオペレーションも
[DEPRECATED]プレフィックス付きで引き続き公開されています。 - リポジトリに認証情報はゼロです。 厳格な
.gitignore、.p8の内容はプロセスメモリにキャッシュされず、JWT キャッシュはメモリ内のみで、すべての出力を一律に秘匿します。 ~/.app-store-connect-mcp/accounts.jsonを使ったマルチアカウント対応(保存するのはパスのみ)。ASC_KEY_ID/ASC_ISSUER_ID/ASC_PRIVATE_KEY_PATH環境変数との互換モード(zelentsov-dev/asc-mcpのセットアップをそのまま置き換えられます)。npm run codegenによる仕様主導の再生成。- よくある ASC の障害モードすべてに対応したエラー変換。
参考資料
- App Store Connect API — ドキュメントのトップページ
- App Store Connect API — REST リファレンス
- App Store Connect OpenAPI 仕様(ZIP)
- API リクエストを承認するための API キーの作成
- API リクエスト用トークンの生成(JWT 形式)
- Model Context Protocol 仕様
- Anthropic Claude — MCP ドキュメント
License
MIT — see LICENSE.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。