App Store Connect MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ASC_KEY_ID | Yes | Your App Store Connect API Key ID. | |
| ASC_ISSUER_ID | Yes | Your App Store Connect API Issuer ID. | |
| ASC_VENDOR_NUMBER | No | Optional vendor number required for sales reports. | |
| ASC_PRIVATE_KEY_PATH | Yes | Path to the downloaded .p8 private key file. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_appsB | List all apps in the App Store Connect account, with optional name/bundleId filtering. |
| get_appC | Get details for a single app by its App Store Connect app ID. |
| list_app_store_versionsB | List the App Store version records (releases) for an app. |
| get_app_store_versionA | Get details for a single App Store version record by its ID. |
| list_buildsA | List builds for an app, optionally filtered by version string or processing state. |
| get_buildA | Get details for a single build by its ID. |
| expire_buildA | Mark a TestFlight build as expired so it can no longer be installed by testers. |
| submit_version_for_reviewA | Create an App Store review submission for an app store version, moving it into Apple's review queue. |
| download_sales_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). |
| get_game_center_detailA | Get the gameCenterDetail resource ID for an app. This ID is required by every other Game Center tool. |
| list_game_center_leaderboardsB | List all leaderboards for a Game Center detail. |
| create_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. |
| delete_game_center_leaderboardB | Permanently delete a Game Center leaderboard. |
| list_game_center_leaderboard_versionsB | List the version resources for a leaderboard (needed to add localizations). |
| create_game_center_leaderboard_localizationB | Add a localized name/format for a leaderboard version, for one locale. |
| list_game_center_achievementsB | List all achievements for a Game Center detail. |
| create_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. |
| delete_game_center_achievementB | Permanently delete a Game Center achievement. |
| list_game_center_achievement_versionsB | List the version resources for an achievement (needed to add localizations). |
| create_game_center_achievement_localizationA | Add a localized name/description for an achievement version, for one locale. |
| appstore_connect_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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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.