Skip to main content
Glama
tomoki013

appstore-connect-mcp

by tomoki013

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ASC_KEY_IDYesThe Key ID from your App Store Connect Team API Key.
ASC_ISSUER_IDYesThe Issuer ID from your App Store Connect Team API Key.
ASC_PRIVATE_KEY_PATHYesPath to the downloaded .p8 private key file.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
asc_apps_listA

Read-only. Lists all apps visible to this App Store Connect account: name, bundle id, SKU, primary locale, and App Store Connect app id. Use this to discover which apps exist before calling other tools.

asc_app_getA

Read-only. Gets details for a single app. Identify it by bundle id (e.g. io.tmkch.colorvia), app name (e.g. Colorvia), or numeric App Store Connect app id — you never need to know the numeric id yourself.

asc_builds_listA

Read-only. Lists uploaded builds for an app (build id, version/build number, upload date, processing state, whether it has expired), most recent first.

asc_build_getA

Read-only. Gets a single build by its App Store Connect build id or version/build number.

asc_build_statusA

Read-only. Gets just the processing state (e.g. PROCESSING, VALID, INVALID, FAILED) and expiration flag for a build — use this to poll after an upload.

asc_build_latestA

Read-only. Finds the highest build number (CFBundleVersion) already uploaded for an app — optionally scoped to a marketing version and/or platform — and suggests the next one. Use this before an Xcode MCP build/archive step to decide what build number to set, since this server never writes to the Xcode project itself.

asc_build_uploadA

Write. Uploads a build binary (.ipa for iOS/tvOS/visionOS, .pkg for macOS) to App Store Connect: creates the upload, sends the file in Apple's required chunks, and commits it with an MD5 checksum. Processing then continues on Apple's servers — poll asc_build_upload_status, then asc_builds_list, to see it finish and become a usable build.

asc_build_upload_statusA

Read-only. Gets the state (AWAITING_UPLOAD, PROCESSING, FAILED, COMPLETE) of a build upload started with asc_build_upload, plus any validation errors/warnings Apple reported.

asc_beta_groups_listA

Read-only. Lists TestFlight beta tester groups for an app (e.g. "Internal Testers"), including whether each is the internal group and whether public link sharing is enabled.

asc_beta_group_add_buildA

Write. Adds an already-uploaded build to a TestFlight beta group, making it available to that group's testers. The build must already exist in App Store Connect (see asc_builds_list) — this tool does not upload builds.

asc_beta_build_localization_getA

Read-only. Gets the per-locale TestFlight "What to Test" notes for a build. Returns all locales unless a specific one is given.

asc_beta_build_localization_updateA

Write. Updates the "What to Test" notes shown to testers for a build/locale. The localization must already exist for that locale (Apple creates these automatically after processing) — use asc_beta_build_localization_get to check first.

asc_beta_build_statusA

Read-only. Gets a build's processing state plus its internal/external TestFlight beta review state, for checking whether a build is ready to distribute to testers.

asc_versions_listA

Read-only. Lists all App Store versions for an app (version string, platform, App Store review state, created date, copyright, releaseType, earliestReleaseDate).

asc_version_getA

Read-only. Gets a single App Store version by its version string.

asc_version_createA

Write. Creates a new App Store Version for an app, e.g. "prepare 1.1 for review". Optionally sets copyright, releaseType (MANUAL/AFTER_APPROVAL/SCHEDULED), and earliestReleaseDate. This does not submit anything for review. Supports dryRun to preview without creating.

asc_version_updateA

Write. Partially updates an existing App Store version: versionString, copyright, releaseType (MANUAL/AFTER_APPROVAL/SCHEDULED), earliestReleaseDate. Supports dryRun to preview the change as an old → new diff without applying it.

asc_version_select_buildA

Write. Sets which uploaded build an App Store version will ship. Supports dryRun to preview without applying.

asc_version_ensureA

Write. Returns the App Store version if it already exists, or creates it if not — saving the agent from a manual get/exists-check/create/conflict sequence. Returns { version, created }. Supports dryRun.

asc_metadata_getA

Read-only. Gets localized App Store metadata (description, keywords, promotional text, what's new, support URL, marketing URL) for a version. Locale must be explicit — returns all locales unless one is given.

asc_metadata_updateA

Write. Partially updates localized App Store metadata for a version/locale (description, keywords, promotionalText, whatsNew, supportUrl, marketingUrl). Locale is required and must be explicit (e.g. en-US, ja). Supports dryRun to preview the change as an old → new diff without applying it.

asc_metadata_create_localeA

Write. Creates a new localization for a version, e.g. adding Japanese ("ja") to a version that only has en-US. Fails if the locale already exists — use asc_metadata_update for existing locales. Fields are optional and can be filled in now or later with asc_metadata_update. Supports dryRun.

asc_screenshot_sets_listA

Read-only. Lists the App Store screenshot sets (one per device display type, e.g. APP_IPHONE_67) for a version/locale.

asc_screenshot_uploadA

Write. Uploads a local screenshot image file to App Store Connect for a version/locale/display type, creating the screenshot set first if one doesn't already exist for that display type.

asc_screenshot_deleteA

DESTRUCTIVE. Permanently removes a single screenshot from App Store Connect. Get the screenshot id from asc_screenshot_sets_list results (each set's screenshots) before calling this.

asc_submission_statusA

Read-only. Gets the App Store review state for a version (e.g. PREPARE_FOR_SUBMISSION, WAITING_FOR_REVIEW, IN_REVIEW, REJECTED, READY_FOR_SALE) and whether it has been submitted.

asc_submit_for_reviewA

DESTRUCTIVE / RELEASE-CLASS. Submits a version for App Review via the current ReviewSubmission API — this changes real, public-facing App Store state and cannot be trivially undone. Always runs asc_release_preflight first and refuses to proceed if any check fails. Always shows a native macOS confirmation dialog (with the preflight summary) to the human user and never submits silently just because it was called; it only proceeds if the human explicitly clicks Submit.

asc_review_getA

Read-only. Gets the reviewer-only info for a version: contact name/phone/email, demo account requirement/name, and review notes. Never returns the demo account password — only whether one is configured (demoAccountConfigured).

asc_review_updateA

Write. Partially updates reviewer-only info: contact name/phone/email, demoAccountRequired, demoAccountName, demoAccountPassword, notes. Password is accepted as write-only input — it is never echoed back in this tool's result, in dryRun output, or in logs. Supports dryRun.

asc_age_rating_getA

Read-only. Gets the current App Store age rating questionnaire answers for an app (content descriptors, Kids Age Band, age rating overrides).

asc_age_rating_updateA

Write. Partially updates the age rating questionnaire for an app using Apple's current field set and enum values (content descriptors are NONE/INFREQUENT/FREQUENT). Supports dryRun to preview the change as an old → new diff without applying it.

asc_build_waitA

Read-only (polls, doesn't change anything). Waits for a build (processingState) or a build upload (BuildUpload state) to reach a terminal state — VALID/COMPLETE (success) or FAILED/INVALID (failure) — polling on an interval up to a timeout. Give exactly one of buildId or buildUploadId. Returns SUCCESS, FAILED, TIMEOUT, or CANCELLED, plus Apple's last-seen state, any errors, and when it was last checked.

asc_app_info_localizations_listA

Read-only. Lists app-level localized fields (name, subtitle, privacy policy URL/text, privacy choices URL) for every locale. Distinct from asc_metadata_get, which covers per-version fields like description/keywords.

asc_app_info_localization_getA

Read-only. Gets app-level localized fields for a single locale.

asc_app_info_localization_createA

Write. Creates app-level localized fields (name, subtitle, privacy policy) for a new locale, e.g. adding "ja". Fails if the locale already exists — use asc_app_info_localization_update for existing locales. Supports dryRun.

asc_app_info_localization_updateA

Write. Partially updates app-level localized fields (name, subtitle, privacy policy URL/text, privacy choices URL) for an existing locale. Supports dryRun to preview the change as an old → new diff without applying it.

asc_availability_getA

Read-only. Gets which App Store territories an app is currently available in.

asc_availability_updateA

Write. Replaces the full set of territories an app is available in. Use 3-letter territory codes (e.g. "JPN", "USA", "GBR", "CAN") or the literal "ALL" to expand to every currently active App Store territory (fetched live from Apple). Unknown codes are rejected before any change is made. Supports dryRun to preview enable/disable changes per territory.

asc_pricing_getA

Read-only. Gets whether an app's price schedule is configured, its base territory, and whether it's currently free (isFree is null if no schedule is configured yet).

asc_pricing_set_freeA

Write. Sets the app's price to free by scheduling the $0 price point in the base territory (Apple equalizes $0 across all other territories/currencies automatically). Paid price points are not supported by this tool. Supports dryRun.

asc_content_rights_getA

Read-only. Gets whether the app declares it uses third-party content requiring rights (contentRightsDeclaration).

asc_content_rights_updateB

Write. Sets whether the app uses third-party content requiring rights. Supports dryRun to preview the change.

asc_release_syncA

Write. Reads /.appstore/appstore.yml + locale files and syncs App Info, version metadata, availability, age rating, review info, pricing, and content rights to App Store Connect — diffing local vs remote first, so unchanged fields are never re-written. One category failing doesn't stop the others. Screenshots and App Privacy are always reported separately (skipped / manual_required) since they aren't covered by this sync. Supports dryRun to preview every change without applying anything.

asc_release_preflightA

Read-only. Runs a comprehensive readiness check before submitting a version for App Review: app/version/build existence, build processing/selection, app name/subtitle/description/keywords/support URL/privacy policy URL, screenshots, review contact/demo account, age rating, pricing, availability, content rights, export compliance (if detectable), the App Privacy questionnaire (always manual_required — no public API), and current submission state. Each check reports pass/fail/warning/manual_required; ready is true only if every check passes.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tomoki013/appstore-connect-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server