Heimdall App Store Connect MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ASC_KEY_ID | Yes | ||
| ASC_ISSUER_ID | Yes | ||
| ASC_PRIVATE_KEY | Yes |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| asc__discover_domainsA | List what this server can reach and what it cannot: in profile mode the profiles and sub-profiles that exist, which are loaded here, and how many tools each holds; otherwise the tool domains. Use this when a capability you need is not in the tool list. |
| asc__search_toolsA | Search all App Store Connect operations by keyword, including domains that are not currently loaded. Returns matching tool names, their domain, and the underlying endpoint. Search in English: tool names and descriptions are generated from Apple’s English spec, so translate the goal before searching. |
| asc__statusA | Report server configuration, spec version, loaded domains, JWT token state and remaining API rate limit. Also verifies credentials against Apple with a single lightweight request. |
| reviews_ai__draft_responseA | Fetch one customer review and return it with an instruction for you to draft a reply — no separate API key needed, you write the text. Returns data only — never posts. Review the draft, then post it yourself with customer_review_responses__create if you approve it. |
| reviews_ai__triageA | Fetch recent reviews for an app and return them with an instruction for you to group them by theme (bug, feature request, pricing complaint, praise, spam). Read-only. |
| reviews_ai__daily_briefingA | Fetch the last N days of reviews for an app, with volume and rating trend (computed deterministically), and an instruction for you to summarise top complaints, standout praise and one suggested action. Read-only. |
| pricing__set_subscription_priceA | Change or set a subscription price in one territory (country) in a single step. Give it the app (name, bundle ID or Apple ID), the subscription (product ID or name), the territory (e.g. TUR, USA) and the price (e.g. "99.99") — it resolves the app, subscription and Apple price point internally and performs the one write. Use this instead of chaining apps__list / subscription_groups / price_points calls when the goal is simply "set/raise/lower the price". |
| pricing__get_subscription_priceA | What a subscription costs customers today in one territory (country), in a single step. Give the app (name, bundle ID or Apple ID) and the territory (e.g. USA, TUR); the subscription is optional — omit it to get every subscription in the app, which is how you answer "what does the weekly one cost" without knowing its product ID. Use this instead of chaining apps__list / subscription_groups / prices calls. It also returns the price that is actually in effect: subscriptions__prices__list returns price-less stubs unless the caller knows to include the price point. |
| listing__get_screenshotsA | List the screenshots on an app’s store listing in one step: which locales have them, which device sizes, how many, and their dimensions. Give the app (name, bundle ID or Apple ID). Use this instead of chaining app_store_versions / localizations / screenshot_sets / screenshots — most locales carry no screenshots of their own, so walking that chain costs one call per locale. |
| accessibility_declarations__createC | Create an accessibility declaration. [POST /v1/accessibilityDeclarations] |
| accessibility_declarations__deleteB | Delete an accessibility declaration. [DELETE /v1/accessibilityDeclarations/{id}] |
| accessibility_declarations__getA | Read one accessibility declaration by ID. [GET /v1/accessibilityDeclarations/{id}] |
| accessibility_declarations__updateA | Update an accessibility declaration. [PATCH /v1/accessibilityDeclarations/{id}] |
| age_rating_declarations__updateB | Update an age rating declaration. [PATCH /v1/ageRatingDeclarations/{id}] |
| alternative_distribution_domains__createB | Create an alternative distribution domain. [POST /v1/alternativeDistributionDomains] |
| alternative_distribution_domains__deleteA | Delete an alternative distribution domain. [DELETE /v1/alternativeDistributionDomains/{id}] |
| alternative_distribution_domains__getB | Read one alternative distribution domain by ID. [GET /v1/alternativeDistributionDomains/{id}] |
| alternative_distribution_domains__listA | List the domains verified for EU alternative distribution, where an app reaches users through a marketplace rather than the App Store. [GET /v1/alternativeDistributionDomains] |
| alternative_distribution_keys__createB | Create an alternative distribution key. [POST /v1/alternativeDistributionKeys] |
| alternative_distribution_keys__deleteA | Delete an alternative distribution key. [DELETE /v1/alternativeDistributionKeys/{id}] |
| alternative_distribution_keys__getA | Read one alternative distribution key by ID. [GET /v1/alternativeDistributionKeys/{id}] |
| alternative_distribution_keys__listA | List the public keys registered for EU alternative distribution, used to sign apps delivered outside the App Store. Use exists[app] to check whether an app has one at all. [GET /v1/alternativeDistributionKeys] |
| alternative_distribution_package_deltas__getA | Read one alternative distribution package delta by ID. [GET /v1/alternativeDistributionPackageDeltas/{id}] |
| alternative_distribution_package_variants__getA | Read one alternative distribution package variant by ID. [GET /v1/alternativeDistributionPackageVariants/{id}] |
| alternative_distribution_package_versions__deltas__listA | List the deltas belonging to an alternative distribution package version. [GET /v1/alternativeDistributionPackageVersions/{id}/deltas] |
| alternative_distribution_package_versions__getA | Read one alternative distribution package version by ID. [GET /v1/alternativeDistributionPackageVersions/{id}] |
| alternative_distribution_package_versions__variants__listA | List the variants belonging to an alternative distribution package version. [GET /v1/alternativeDistributionPackageVersions/{id}/variants] |
| alternative_distribution_packages__createC | Create an alternative distribution package. [POST /v1/alternativeDistributionPackages] |
| alternative_distribution_packages__getA | Read one alternative distribution package by ID. [GET /v1/alternativeDistributionPackages/{id}] |
| alternative_distribution_packages__versions__listA | List the versions belonging to an alternative distribution package. [GET /v1/alternativeDistributionPackages/{id}/versions] |
| analytics_report_instances__getA | Read one analytics report instance by ID. [GET /v1/analyticsReportInstances/{id}] |
| analytics_report_instances__segments__listA | List the segments belonging to an analytics report instance. [GET /v1/analyticsReportInstances/{id}/segments] |
| analytics_report_requests__createB | Create an analytics report request. [POST /v1/analyticsReportRequests] |
| analytics_report_requests__deleteA | Delete an analytics report request. [DELETE /v1/analyticsReportRequests/{id}] |
| analytics_report_requests__getA | Read one analytics report request by ID. [GET /v1/analyticsReportRequests/{id}] |
| analytics_report_requests__reports__listA | List the reports belonging to an analytics report request. [GET /v1/analyticsReportRequests/{id}/reports] |
| analytics_report_segments__getB | Read one analytics report segment by ID. [GET /v1/analyticsReportSegments/{id}] |
| analytics_reports__getA | Read one analytics report by ID. [GET /v1/analyticsReports/{id}] |
| analytics_reports__instances__listA | List the instances belonging to an analytics report. [GET /v1/analyticsReports/{id}/instances] |
| android_to_ios_app_mapping_details__createB | Create an android to iOS app mapping detail. [POST /v1/androidToIosAppMappingDetails] |
| android_to_ios_app_mapping_details__deleteA | Delete an android to iOS app mapping detail. [DELETE /v1/androidToIosAppMappingDetails/{id}] |
| android_to_ios_app_mapping_details__getA | Read one android to iOS app mapping detail by ID. [GET /v1/androidToIosAppMappingDetails/{id}] |
| android_to_ios_app_mapping_details__updateA | Update an android to iOS app mapping detail. [PATCH /v1/androidToIosAppMappingDetails/{id}] |
| app_availabilities_v2__createB | Create an app availabilities (v2). [POST /v2/appAvailabilities] |
| app_availabilities_v2__getA | Read one app availabilities (v2) by ID. [GET /v2/appAvailabilities/{id}] |
| app_availabilities_v2__territory_availabilities__listA | List the territory availabilities belonging to an app availabilities (v2). [GET /v2/appAvailabilities/{id}/territoryAvailabilities] |
| app_categories__getA | Read one app category by ID. [GET /v1/appCategories/{id}] |
| app_categories__listB | List app categories. [GET /v1/appCategories] |
| app_categories__parent__getA | Read the parent for an app category. [GET /v1/appCategories/{id}/parent] |
| app_categories__subcategories__listA | List the subcategories belonging to an app category. [GET /v1/appCategories/{id}/subcategories] |
| app_clip_advanced_experience_images__createB | Create an App Clip advanced experience image. [POST /v1/appClipAdvancedExperienceImages] |
| app_clip_advanced_experience_images__getA | Read one App Clip advanced experience image by ID. [GET /v1/appClipAdvancedExperienceImages/{id}] |
| app_clip_advanced_experience_images__updateA | Update an App Clip advanced experience image. [PATCH /v1/appClipAdvancedExperienceImages/{id}] |
| app_clip_advanced_experiences__createB | Create an App Clip advanced experience. [POST /v1/appClipAdvancedExperiences] |
| app_clip_advanced_experiences__getA | Read one App Clip advanced experience by ID. [GET /v1/appClipAdvancedExperiences/{id}] |
| app_clip_advanced_experiences__updateB | Update an App Clip advanced experience. [PATCH /v1/appClipAdvancedExperiences/{id}] |
| app_clip_app_store_review_details__createB | Create an App Clip App Store review detail. [POST /v1/appClipAppStoreReviewDetails] |
| app_clip_app_store_review_details__getA | Read one App Clip App Store review detail by ID. [GET /v1/appClipAppStoreReviewDetails/{id}] |
| app_clip_app_store_review_details__updateA | Update an App Clip App Store review detail. [PATCH /v1/appClipAppStoreReviewDetails/{id}] |
| app_clip_default_experience_localizations__app_clip_heade_1vi3gdA | Read the App Clip header image for an App Clip default experience localization. [GET /v1/appClipDefaultExperienceLocalizations/{id}/appClipHeaderImage] |
| app_clip_default_experience_localizations__createB | Create an App Clip default experience localization. [POST /v1/appClipDefaultExperienceLocalizations] |
| app_clip_default_experience_localizations__deleteB | Delete an App Clip default experience localization. [DELETE /v1/appClipDefaultExperienceLocalizations/{id}] |
| app_clip_default_experience_localizations__getA | Read one App Clip default experience localization by ID. [GET /v1/appClipDefaultExperienceLocalizations/{id}] |
| app_clip_default_experience_localizations__updateB | Update an App Clip default experience localization. [PATCH /v1/appClipDefaultExperienceLocalizations/{id}] |
| app_clip_default_experiences__app_clip_app_store_review_d_0tlnruA | Read the App Clip App Store review detail for an App Clip default experience. [GET /v1/appClipDefaultExperiences/{id}/appClipAppStoreReviewDetail] |
| app_clip_default_experiences__app_clip_default_experience_02x7wxA | List the App Clip default experience localizations belonging to an App Clip default experience. [GET /v1/appClipDefaultExperiences/{id}/appClipDefaultExperienceLocalizations] |
| app_clip_default_experiences__createB | Create an App Clip default experience. [POST /v1/appClipDefaultExperiences] |
| app_clip_default_experiences__deleteA | Delete an App Clip default experience. [DELETE /v1/appClipDefaultExperiences/{id}] |
| app_clip_default_experiences__getA | Read one App Clip default experience by ID. [GET /v1/appClipDefaultExperiences/{id}] |
| app_clip_default_experiences__release_with_app_store_vers_0zdb21B | Read the release with App Store version for an App Clip default experience. [GET /v1/appClipDefaultExperiences/{id}/releaseWithAppStoreVersion] |
| app_clip_default_experiences__release_with_app_store_vers_0zdbimC | Set the release with App Store version linked to an App Clip default experience. [PATCH /v1/appClipDefaultExperiences/{id}/relationships/releaseWithAppStoreVersion] |
| app_clip_default_experiences__updateA | Update an App Clip default experience. [PATCH /v1/appClipDefaultExperiences/{id}] |
| app_clip_header_images__createB | Create an App Clip header image. [POST /v1/appClipHeaderImages] |
| app_clip_header_images__deleteA | Delete an App Clip header image. [DELETE /v1/appClipHeaderImages/{id}] |
| app_clip_header_images__getA | Read one App Clip header image by ID. [GET /v1/appClipHeaderImages/{id}] |
| app_clip_header_images__updateA | Update an App Clip header image. [PATCH /v1/appClipHeaderImages/{id}] |
| app_clips__app_clip_advanced_experiences__listA | List the App Clip advanced experiences belonging to an App Clip. [GET /v1/appClips/{id}/appClipAdvancedExperiences] |
| app_clips__app_clip_default_experiences__listA | List the App Clip default experiences belonging to an App Clip. [GET /v1/appClips/{id}/appClipDefaultExperiences] |
| app_clips__getA | Read one App Clip by ID. [GET /v1/appClips/{id}] |
| app_encryption_declaration_documents__createB | Create an app encryption declaration document. [POST /v1/appEncryptionDeclarationDocuments] |
| app_encryption_declaration_documents__getA | Read one app encryption declaration document by ID. [GET /v1/appEncryptionDeclarationDocuments/{id}] |
| app_encryption_declaration_documents__updateB | Update an app encryption declaration document. [PATCH /v1/appEncryptionDeclarationDocuments/{id}] |
| app_encryption_declarations__app_encryption_declaration_d_0az88bA | Read the app encryption declaration document for an app encryption declaration. [GET /v1/appEncryptionDeclarations/{id}/appEncryptionDeclarationDocument] |
| app_encryption_declarations__createC | Create an app encryption declaration. [POST /v1/appEncryptionDeclarations] |
| app_encryption_declarations__getB | Read one app encryption declaration by ID. [GET /v1/appEncryptionDeclarations/{id}] |
| app_encryption_declarations__listA | List export-compliance declarations, which a build needs before it can ship in most territories. Filter by app or build to find whether one already covers the build you are releasing. [GET /v1/appEncryptionDeclarations] |
| app_info_localizations__createA | Add a new language for the app-level listing fields: name, subtitle, privacy policy. [POST /v1/appInfoLocalizations] |
| app_info_localizations__deleteA | Delete an app info localization. [DELETE /v1/appInfoLocalizations/{id}] |
| app_info_localizations__getB | Read one app info localization by ID. [GET /v1/appInfoLocalizations/{id}] |
| app_info_localizations__updateA | Update an app's name, subtitle or privacy policy text for one language. App name and subtitle are capped at 30 characters. [PATCH /v1/appInfoLocalizations/{id}] |
| app_infos__age_rating_declaration__getA | Read the age rating declaration for an app info. [GET /v1/appInfos/{id}/ageRatingDeclaration] |
| app_infos__app_info_localizations__listA | List the app info localizations belonging to an app info. [GET /v1/appInfos/{id}/appInfoLocalizations] |
| app_infos__getA | Read one app info by ID. [GET /v1/appInfos/{id}] |
| app_infos__primary_category__getB | Read the primary category for an app info. [GET /v1/appInfos/{id}/primaryCategory] |
| app_infos__primary_subcategory_one__getB | Read the primary subcategory one for an app info. [GET /v1/appInfos/{id}/primarySubcategoryOne] |
| app_infos__primary_subcategory_two__getB | Read the primary subcategory two for an app info. [GET /v1/appInfos/{id}/primarySubcategoryTwo] |
| app_infos__secondary_category__getB | Read the secondary category for an app info. [GET /v1/appInfos/{id}/secondaryCategory] |
| app_infos__secondary_subcategory_one__getA | Read the secondary subcategory one for an app info. [GET /v1/appInfos/{id}/secondarySubcategoryOne] |
| app_infos__secondary_subcategory_two__getA | Read the secondary subcategory two for an app info. [GET /v1/appInfos/{id}/secondarySubcategoryTwo] |
| app_infos__territory_age_ratings__listA | List the territory age ratings belonging to an app info. [GET /v1/appInfos/{id}/territoryAgeRatings] |
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/erayendes/app-store-connect-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server