App Store MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APP_STORE_CONNECT_KEY_ID | Yes | The 10-character App Store Connect API key ID. | |
| APP_STORE_CONNECT_ISSUER_ID | No | Issuer UUID for a team key. Omit this for an individual key. | |
| APP_STORE_CONNECT_PRIVATE_KEY_PATH | Yes | Absolute path to the App Store Connect .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 apps accessible to the API key. Follow links.next for more pages. |
| get_appB | Read an App Store Connect app by its resource ID. |
| list_versionsC | List App Store versions and states for an app. |
| get_versionC | Read an App Store version, optionally including its assigned build. |
| list_buildsB | List processed builds for an app. Uploaded binaries may take time to appear. |
| get_buildB | Read a processed build and its processing state. |
| list_build_uploadsB | List build upload records for an app, including upload processing states. |
| get_build_uploadB | Read a build upload record and its processing state. |
| upload_ipaA | MUTATES App Store Connect: upload a local iOS .ipa through Apple Build uploads API. Provide the IPA version and build number. Returns upload IDs; processing is asynchronous, so poll get_build_upload and list_builds before assigning the build. |
| list_reviewsC | List customer reviews for an app, with Apple pagination. |
| get_reviewB | Read a customer review by its resource ID. |
| get_review_responseC | Read the developer response for a customer review. |
| reply_to_reviewA | MUTATES public App Store content: create or replace the developer response to a customer review. |
| list_localizationsB | List version-level App Store metadata localizations. |
| get_localizationC | Read one version localization. |
| list_app_infosC | List app-level information records, including the editable next-version record. |
| list_app_info_localizationsC | List app-level localized names, subtitles, and privacy URLs. |
| create_app_info_localizationB | MUTATES app-level metadata: add a locale with name and optional subtitle. Add the same locale to the version before submission. |
| update_app_info_localizationC | MUTATES localized app-level metadata such as name and subtitle. |
| update_localizationB | MUTATES App Store version metadata for a localization. Apple may restrict edits based on version state. |
| create_localizationB | MUTATES version metadata: add a locale to an App Store version. Add the same locale to app info before submission. |
| list_screenshot_setsC | List display-type screenshot sets for a version localization. |
| create_screenshot_setC | MUTATES version metadata: create a screenshot set for a locale and display type. |
| list_screenshotsC | List screenshots in a screenshot set. |
| upload_screenshotA | MUTATES App Store version metadata: upload a local PNG or JPEG to an existing screenshot set. The server follows Apple asset reservation, byte upload, and commit steps. |
| list_beta_groupsC | List TestFlight beta groups for an app. |
| create_beta_groupC | MUTATES TestFlight: create an internal or external beta group for an app. |
| list_beta_testersC | List TestFlight testers for an app. |
| create_beta_testerA | MUTATES TestFlight: create a beta tester and assign them to a beta group. Apple may send an invitation. |
| add_build_to_beta_groupC | MUTATES TestFlight access: assign a processed build to a beta group. |
| add_tester_to_beta_groupA | MUTATES TestFlight access: add an existing tester to a beta group. |
| create_versionC | MUTATES app draft state: create a new App Store version for an app and platform. |
| assign_build_to_versionB | MUTATES app draft state: attach a processed build to an App Store version. |
| list_review_submissionsC | List recent and current App Review submissions for an app. |
| create_review_submissionB | MUTATES App Review draft state: create a submission container for an app. |
| add_version_to_submissionB | MUTATES App Review draft state: add an App Store version to a review submission. |
| submit_reviewB | SUBMITS all items in a review submission to Apple for review. Requires confirmSubmit=true. |
| release_versionA | PUBLISHES an approved version in PENDING_DEVELOPER_RELEASE state. This cannot be canceled. Requires confirmPublish=true. |
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 38 tools
Most tools target a distinct resource+action, and the MUTATES/SUBMITS prefixes plus hints like 'poll get_build_upload before assigning the build' clarify sequencing and side effects. A few pairs remain easy to confuse: list_builds vs list_build_uploads, create_localization vs create_app_info_localization, and add_build_to_beta_group vs assign_build_to_version, where the target (beta group vs version) must be read carefully.
All names use consistent snake_case verb_noun form (list_apps, get_build, create_beta_tester, upload_screenshot, add_tester_to_beta_group, submit_review). Verb choice tracks semantics predictably (list/get for reads, create/update/upload for writes, add_* for membership), so an agent can infer behavior from the name alone.
At 38 tools the surface is heavy, sitting well above the comfortable 3-15 range, though this reflects a genuinely large domain (apps, versions, builds, TestFlight, metadata assets, review submission). Each tool maps to a real App Store Connect operation, but the breadth makes discovery and correct selection harder than it needs to be.
The happy path from upload_ipa through assign_build_to_version to submit_review and release_version is fully covered, including TestFlight and screenshot/localization metadata. However, the surface has no delete or remove operations at all (no delete_screenshot, delete_localization, remove build/tester from a beta group, cancel review submission), and there is no update_app_info for app-level fields like privacy URLs, leaving agents with dead ends.