App Store Connect MCP Server
Provides tools to interact with the App Store Connect API, enabling management of app metadata, builds and releases, submission for review, sales and analytics reports, and Game Center leaderboards and achievements.
Click on "Deploy 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., "@App Store Connect MCP Server List my apps and their latest build status"
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.
App Store Connect MCP Server
An MCP (Model Context Protocol) server that lets Claude talk to the App Store Connect API: app metadata, builds & releases, sales/analytics reports, and Game Center leaderboards/achievements.
1. Get App Store Connect API credentials
Go to App Store Connect → Users and Access → Integrations → App Store Connect API.
Click Generate API Key. You need Admin or App Manager access (Admin recommended, since sales reports and Game Center need broader access).
Download the
.p8private key immediately — Apple only lets you download it once.Note the Issuer ID (top of the page) and the Key ID (next to your new key).
For sales reports, also grab your Vendor Number from Payments and Financial Reports.
Related MCP server: appstore-connect-mcp
2. Configure
npm install
cp .env.example .envEdit .env with your Issuer ID, Key ID, the path to your .p8 file, and (optionally) your vendor number.
3. Build
npm run build4. Connect it to Claude
Claude Code:
claude mcp add appstore-connect -- node "/absolute/path/to/AppStoreConnectMCP/build/index.js"Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"appstore-connect": {
"command": "node",
"args": ["/absolute/path/to/AppStoreConnectMCP/build/index.js"],
"env": {
"ASC_ISSUER_ID": "...",
"ASC_KEY_ID": "...",
"ASC_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_XXXX.p8",
"ASC_VENDOR_NUMBER": "..."
}
}
}
}(If you use a .env file instead, the server loads it automatically from the project's own install directory, regardless of the working directory it's launched from — so either approach works for GUI apps too.)
Tools
Apps
list_apps,get_applist_app_store_versions,get_app_store_version
Builds & releases
list_builds,get_build,expire_buildsubmit_version_for_review
Sales & analytics reports
download_sales_report— downloads and decodes SALES/SUBSCRIPTION/etc. reports (requiresASC_VENDOR_NUMBER)
Game Center
get_game_center_detaillist_game_center_leaderboards,create_game_center_leaderboard,delete_game_center_leaderboard,list_game_center_leaderboard_versions,create_game_center_leaderboard_localizationlist_game_center_achievements,create_game_center_achievement,delete_game_center_achievement,list_game_center_achievement_versions,create_game_center_achievement_localization
Escape hatch
appstore_connect_request— call any App Store Connect endpoint directly (method/path/query/body) for anything not covered above.
Notes
Tokens are generated per-request and cached for ~19 minutes (Apple's JWTs expire after 20).
Game Center leaderboards and achievements use Apple's v2 API, which requires creating an initial "version" resource alongside the leaderboard/achievement — the create tools handle this automatically and return the version ID so you can immediately localize it.
Never commit your
.p8file or.env— both are gitignored.
Available Tools
21 toolsappstore_connect_requestRaw App Store Connect API requestA
Escape hatch for any App Store Connect API endpoint not covered by a dedicated tool. Path must start with '/v1/' or '/v2/'. See https://developer.apple.com/documentation/appstoreconnectapi for the full resource reference.
Inputs: path (required), body, query, method.
create_game_center_achievementCreate a Game Center achievementA
Create a new Game Center achievement. This also creates the initial achievement version required by the API, and returns that version's ID so you can immediately add localizations with create_game_center_achievement_localization.
Inputs: points (required), repeatable (required), referenceName (required), showBeforeEarned (required), +2 more.
create_game_center_achievement_localizationAdd an achievement localizationA
Add a localized name/description for an achievement version, for one locale.
Inputs: name (required), locale (required), versionId (required), afterEarnedDescription (required), +1 more.
create_game_center_leaderboardCreate a Game Center leaderboardA
Create a new Game Center leaderboard. This also creates the initial leaderboard version required by the API, and returns that version's ID so you can immediately add localizations with create_game_center_leaderboard_localization.
Inputs: referenceName (required), scoreSortType (required), submissionType (required), defaultFormatter (required), +5 more.
create_game_center_leaderboard_localizationAdd a leaderboard localizationB
Add a localized name/format for a leaderboard version, for one locale.
Inputs: name (required), locale (required), versionId (required), description, +3 more.
delete_game_center_achievementDelete a Game Center achievementB
Permanently delete a Game Center achievement.
Inputs: achievementId (required).
delete_game_center_leaderboardDelete a Game Center leaderboardB
Permanently delete a Game Center leaderboard.
Inputs: leaderboardId (required).
download_sales_reportDownload a sales/financial reportA
Download and decode a sales or subscription report (TSV) from App Store Connect. Returns the report as parsed rows (truncated to the first 500 for readability).
Inputs: frequency (required), reportDate (required), reportType (required), reportSubType (required), +1 more.
expire_buildExpire a buildA
Mark a TestFlight build as expired so it can no longer be installed by testers.
Inputs: buildId (required).
get_appGet app detailsC
Get details for a single app by its App Store Connect app ID.
Inputs: appId (required).
get_app_store_versionGet App Store version detailsA
Get details for a single App Store version record by its ID.
Inputs: versionId (required).
get_buildGet build detailsA
Get details for a single build by its ID.
Inputs: buildId (required).
get_game_center_detailGet Game Center detail for an appA
Get the gameCenterDetail resource ID for an app. This ID is required by every other Game Center tool.
Inputs: appId (required).
list_appsList appsB
List all apps in the App Store Connect account, with optional name/bundleId filtering.
Inputs: name, limit, bundleId.
list_app_store_versionsList App Store versionsB
List the App Store version records (releases) for an app.
Inputs: appId (required), limit.
list_buildsList buildsA
List builds for an app, optionally filtered by version string or processing state.
Inputs: appId (required), limit, version, processingState.
list_game_center_achievementsList Game Center achievementsB
List all achievements for a Game Center detail.
Inputs: gameCenterDetailId (required).
list_game_center_achievement_versionsList an achievement's versionsB
List the version resources for an achievement (needed to add localizations).
Inputs: achievementId (required).
list_game_center_leaderboardsList Game Center leaderboardsB
List all leaderboards for a Game Center detail.
Inputs: gameCenterDetailId (required).
list_game_center_leaderboard_versionsList a leaderboard's versionsB
List the version resources for a leaderboard (needed to add localizations).
Inputs: leaderboardId (required).
submit_version_for_reviewSubmit app version for App Store reviewA
Create an App Store review submission for an app store version, moving it into Apple's review queue.
Inputs: appId (required), versionId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Each dedicated tool maps cleanly to a distinct resource and action (apps, versions, builds, Game Center, sales), and the escape hatch is explicitly generic. There is no realistic confusion between tools like list_builds and list_app_store_versions because their targets are clearly different.
Almost every tool follows a consistent lowercase verb_noun pattern such as list_*, get_*, create_*, delete_*, and expire_*. The only deviation is appstore_connect_request, which is intentionally a generic escape hatch rather than a verb_noun operation.
At 21 tools, the set is on the heavier side, but the breadth of App Store Connect justifies it: apps, versions, builds, sales reports, and Game Center leaderboards/achievements each receive focused coverage. The single escape hatch also prevents the count from becoming bloated with many one-off endpoint tools.
The set covers core reads and Game Center lifecycle operations, but notable App Store operations are missing as first-class tools, such as updating a version, assigning a build to a version, or editing localizations once created. The appstore_connect_request escape hatch helps agents work around these gaps, but it does not make them first-class.
Related MCP Connectors
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Run App Store Connect from your IDE: pricing, listings, screenshots, releases, AI visibility.
Run Apple Search Ads from Claude: performance, recommendations, keywords, budgets, launches.
Read products, sales, subscribers and offer codes; verify, enable and disable product licenses.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Apple App Store Connect through the official API, including apps, metadata, reviews, TestFlight, provisioning, users, and reports.MIT
- AlicenseBqualityDmaintenanceEnables management of App Store Connect operations such as listing apps, managing builds, submitting for review, and handling in-app purchases through Claude Code.2528 npmMIT
- AlicenseAqualityCmaintenanceProvides AI assistants direct access to Apple's App Store Connect API, enabling them to manage apps, provisioning data, TestFlight builds, and App Store versions, including creating versions, attaching builds, and submitting for review.14MIT
- AlicenseAqualityAmaintenanceConnects Claude to Apple's App Store Connect API, letting you manage apps, builds, TestFlight beta groups and testers, customer reviews and replies, sales and finance reports, and team users through natural language. Write actions such as invites, beta review submissions, and review responses require confirmation before anything is sent.22447 npm1MIT