App Store Connect MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APP_STORE_CONNECT_KEY_ID | Yes | API Key ID from App Store Connect | |
| APP_STORE_CONNECT_P8_PATH | Yes | Path to your .p8 private key file | |
| APP_STORE_CONNECT_ISSUER_ID | Yes | Issuer ID from App Store Connect | |
| APP_STORE_CONNECT_VENDOR_NUMBER | No | Needed for sales/finance reports |
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 |
|---|---|
| add-beta-testers-to-groupA | Add one or more beta testers to a TestFlight group. Tester IDs come from list-beta-testers. |
| create-app-store-versionA | Create a new App Store version for an app (platform + version string). Optionally attach a build. |
| create-customer-review-responseA | Reply to an App Store customer review. One response per review; use list-customer-reviews to get review IDs. |
| create-phased-releaseA | Enable phased release for an App Store version (gradual rollout to users). Version must be approved or already in release. |
| create-subscription-availabilityA | Set which territories the subscription is available in. Call this before create-subscription-price; otherwise adding a price often returns 409 ENTITY_ERROR.RELATIONSHIP.INVALID. |
| create-subscription-groupA | Create a subscription group (container for auto-renewable subscriptions). Then add subscriptions with create-subscription. |
| create-subscription-localizationA | Create a localized name/description for a subscription. Add one per locale (e.g. en-US, de-DE). Required for submission. |
| create-subscription-priceA | Attach a price to a subscription (by price point and optionally territory). Set subscription availability first with create-subscription-availability for the territory, or you may get 409 ENTITY_ERROR.RELATIONSHIP.INVALID. Use price point IDs from list-subscription-price-points; when you used filter.territory there, pass that same territoryId here. |
| create-subscriptionA | Create an auto-renewable subscription in a subscription group. Requires productId (permanent) and name. Then add localizations and prices (create-subscription-localization, create-subscription-price). |
| download-finance-reportA | Download a finance report (gzip TSV). Requires APP_STORE_CONNECT_VENDOR_NUMBER. Returns decompressed tab-delimited text. |
| download-sales-reportA | Download a sales and trends report (gzip TSV). Requires APP_STORE_CONNECT_VENDOR_NUMBER. Returns decompressed tab-delimited text. |
| get-actorA | Get actor (user or API key) by ID. Actors appear in review submissions and version history. Use list-actors with known IDs to resolve. |
| get-app-availabilityA | Get app availability (territories where the app is available). Use list-territories for territory list. |
| get-app-infoA | Get app info for one territory: age rating, category, app store state. IDs from list-app-infos. |
| get-app-store-review-detailA | Get App Review details for an App Store version: contact info, demo account, notes for reviewers. Set these before submitting for review. |
| get-app-store-versionA | Get detailed information about a specific App Store version (metadata, state, build link) |
| get-appA | Get detailed information about a specific app |
| get-beta-groupB | Get detailed information about a specific beta group |
| get-beta-license-agreementA | Get TestFlight beta license agreement text for an app. Update with update-beta-license-agreement. |
| get-beta-testerA | Get detailed information about a specific beta tester |
| get-buildA | Get detailed information about a specific build |
| get-bundle-idA | Get detailed information about a specific bundle ID |
| get-certificateA | Get detailed information about a specific signing certificate |
| get-deviceA | Get detailed information about a specific registered device |
| get-eulaA | Get End User License Agreement (EULA) for an app. Returns agreement text and territory. Create/update via update-eula or App Store Connect UI. |
| get-phased-releaseA | Get phased release for an App Store version (gradual rollout state). Returns 404 if version has no phased release. |
| get-pre-release-versionA | Get detailed information about a specific pre-release (TestFlight) version |
| get-review-submissionA | Get a single App Store review submission by ID (state, items, app, etc.) |
| get-subscriptionA | Get one subscription by ID: productId, name, state, prices, review screenshot, introductory/promotional offers, etc. |
| get-userB | Get detailed information about a team member (user) |
| list-actorsA | List actors (users or API keys) by ID(s). Use when you have actor IDs from review submissions or version history. |
| list-app-categoriesA | List App Store categories (reference for app metadata) |
| list-app-encryption-declarationsA | List app encryption declarations (export compliance, encryption usage) |
| list-app-infosA | List app infos for an app (one per territory): age rating, app store state, category. Use get-app-info for a single territory. |
| list-app-store-version-localizationsA | List localizations for a specific App Store version (metadata per locale) |
| list-app-store-versionsA | List App Store versions for an app (by app ID) |
| list-appsB | Get a list of all apps in App Store Connect |
| list-beta-app-localizationsA | List TestFlight (beta) app localizations (feedback email, marketing URL, description per locale) |
| list-beta-app-review-detailsA | List TestFlight (beta) app review details for an app (contact info, demo account, notes) |
| list-beta-app-review-submissionsA | List TestFlight (beta) app review submissions for a build |
| list-beta-groupsA | Get a list of all beta groups (internal and external) |
| list-beta-license-agreementsA | List TestFlight (beta) license agreements. One per app. Use get-beta-license-agreement to read or update text. |
| list-beta-testersA | Get a list of beta testers (optionally filter by app or beta group) |
| list-build-beta-detailsA | List build beta details (export compliance, auto-notify, internal/external state) for TestFlight builds |
| list-buildsA | List builds for an app (optionally filter by version) |
| list-bundle-idsA | Get a list of bundle IDs registered in your team |
| list-certificatesA | Get a list of signing certificates in your team |
| list-ci-productsA | List Xcode Cloud CI products (integrations per app) |
| list-customer-reviewsA | List App Store customer reviews for an app store version (rating, title, body, response) |
| list-devicesB | Get a list of registered devices for development and testing |
| list-nominationsA | List App Store nominations (e.g. custom product pages, in-app events) |
| list-pre-release-versionsA | List pre-release versions (TestFlight) for an app or across apps |
| list-profilesA | Get a list of provisioning profiles in your team |
| list-review-submissionsA | List App Store review submissions for an app (submission history). Filter by state (e.g. UNRESOLVED_ISSUES for rejected). Note: the actual rejection message is only visible in App Store Connect → Version → Resolution Center, not in the API. |
| list-schemesA | List all available schemes in an Xcode project or workspace |
| list-subscription-group-subscriptionsA | List all auto-renewable subscriptions in a subscription group (productId, name, state, prices, etc.). Use to verify products like premium_monthly_v2 and premium_annual_v2 in a group. |
| list-subscription-groupsA | List subscription groups for an app. Use the returned group IDs with list-subscription-group-subscriptions or create-subscription. |
| list-subscription-price-pointsA | List available price points for a subscription. Use the returned price point id as subscriptionPricePointId in create-subscription-price. |
| list-territoriesA | Get the list of territories (countries/regions) for App Store availability |
| list-user-invitationsA | Get a list of pending user invitations to your team |
| list-usersA | Get a list of team members (users) in your App Store Connect team |
| remove-beta-testers-from-groupA | Remove one or more beta testers from a TestFlight group. Tester IDs come from list-beta-testers. |
| submit-for-reviewA | Submit an App Store version for review. Creates a review submission, adds the version as an item, and marks it as submitted. |
| update-age-rating-declarationA | Update age rating declaration for an app version (content ratings). Get ID from get-app-info or get-app-store-version include. |
| update-app-store-review-detailA | Update App Review details for a version: contact, demo account, notes. Required before submit for review if app needs login or special instructions. |
| update-app-store-version-localizationA | Update localized metadata (description, keywords, URLs, what's new, promotional text) for a specific App Store version locale. Get the localization ID from list-app-store-version-localizations. |
| update-app-store-versionB | Update an App Store version: assign a build, set version string, copyright, release type, or downloadable flag. |
| update-beta-license-agreementA | Update TestFlight (beta) license agreement text. Required for external testing. |
| update-eulaA | Update app EULA text and/or territories. Get EULA ID from get-eula. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/beautyfree/appstore-connect-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server