App Store Connect MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APP_STORE_CONNECT_KEY_ID | Yes | Your App Store Connect API Key ID | |
| APP_STORE_CONNECT_P8_PATH | Yes | Path to the downloaded .p8 API key file | |
| APP_STORE_CONNECT_ISSUER_ID | Yes | Your App Store Connect API Issuer ID | |
| APP_STORE_CONNECT_VENDOR_NUMBER | No | Optional vendor number. When set, the sales and finance report tools are enabled. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_appsA | Get a list of all apps in App Store Connect |
| get_app_infoB | Get detailed information about a specific app |
| list_beta_groupsA | Get a list of all beta groups (internal and external) |
| list_group_testersB | Get a list of all testers in a specific beta group |
| add_tester_to_groupB | Add a new tester to a beta group |
| remove_tester_from_groupB | Remove a tester from a beta group |
| list_beta_feedback_screenshotsB | List all beta feedback screenshot submissions for an app. This includes feedback with screenshots, device information, and tester comments. You can identify the app using either appId or bundleId. |
| get_beta_feedback_screenshotA | Get detailed information about a specific beta feedback screenshot submission. By default, downloads and returns the screenshot image. |
| create_app_store_versionB | Create a new app store version for an app |
| list_app_store_versionsB | Get all app store versions for a specific app |
| list_app_store_version_localizationsB | Get all localizations for a specific app store version |
| get_app_store_version_localizationA | Get detailed information about a specific app store version localization |
| update_app_store_version_localizationB | Update a specific field in an app store version localization |
| create_app_store_version_localizationB | Create a new localization for an app store version (e.g. to add a new language) |
| list_app_info_localizationsA | List all app info localizations (localized app name/subtitle) for an app. Resolves the current (non-REPLACED) app info automatically. |
| create_app_info_localizationA | Create a new app info localization (localized app name/subtitle). Provide either appInfoId directly, or appId to resolve the current (non-REPLACED) app info automatically. |
| update_app_info_localizationB | Update a specific field in an app info localization (localized app name/subtitle) |
| list_app_screenshot_setsB | List all screenshot sets for an app store version localization |
| create_app_screenshot_setA | Create a new screenshot set for an app store version localization. The screenshotDisplayType must carry the APP_ prefix, e.g. APP_IPHONE_65, APP_IPHONE_67, APP_IPAD_PRO_3GEN_129 (a bare value like IPHONE_65 is rejected with a 409 error). |
| list_app_screenshotsB | List all screenshots in a screenshot set |
| delete_app_screenshotC | Delete a screenshot from a screenshot set |
| upload_app_screenshotB | Upload a local PNG file to a screenshot set. Runs the full three-step flow: reserve the screenshot, upload the file chunks, then commit with the md5 checksum. |
| create_bundle_idB | Register a new bundle ID for app development |
| list_bundle_idsB | Find and list bundle IDs that are registered to your team |
| get_bundle_id_infoB | Get detailed information about a specific bundle ID |
| enable_bundle_capabilityB | Enable a capability for a bundle ID |
| disable_bundle_capabilityB | Disable a capability for a bundle ID |
| list_devicesC | Get a list of all devices registered to your team |
| list_usersB | Get a list of all users registered on your App Store Connect team |
| create_analytics_report_requestC | Create a new analytics report request for an app |
| list_analytics_reportsC | Get available analytics reports for a specific report request |
| list_analytics_report_requestsA | List existing analytics report requests for an app (check before creating; only one ONGOING request is allowed per app) |
| list_analytics_report_instancesA | List generated instances (daily/weekly/monthly files) of an analytics report. Flow: request -> reports -> instances -> segments -> download |
| list_analytics_report_segmentsB | Get segments of an analytics report instance (contains download URLs) |
| download_analytics_report_segmentB | Download an analytics report segment and return it as TSV text (gzip is decompressed) |
| list_schemesB | List all available schemes in an Xcode project or workspace |
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 36 tools
Most tools target distinct resources and actions, with clear descriptions separating similar-sounding tools like list_app_info_localizations and list_app_store_version_localizations. However, the presence of multiple localization and analytics tools with similar names could cause misselection without careful reading.
All tool names follow a consistent snake_case verb_noun pattern (e.g., list_apps, create_bundle_id, update_app_info_localization). Verbs are standard and used uniformly across resources.
With 36 tools, the set is heavy for an MCP server, though the breadth of App Store Connect resources justifies some granularity. Many operations are resource-specific and could potentially be consolidated, making the count borderline excessive.
The server covers many resources but lacks full CRUD for several key areas: no app creation/update/delete, no beta group management (only tester add/remove), no device registration, and no user management. These notable gaps will limit agents in end-to-end workflows.