Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
APPLE_KEY_IDYesApple App Store Connect API Key ID
APPLE_P8_PATHYesLocal file path to the Apple App Store Connect .p8 private key file
APPLE_ISSUER_IDYesApple App Store Connect Issuer ID
GOOGLE_SERVICE_ACCOUNT_PATHYesLocal file path to the Google Play Service Account JSON 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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
apple_get_asset_libraryC

Get the reusable App Asset Library for an app before uploading screenshots, previews, or creative assets

apple_get_asset_specsB

Read Apple’s current asset specifications, placement types, device groups, and limits; use the returned IDs instead of hard-coded device sizes

apple_list_assetsA

List all image or video assets in an App Asset Library, following every page; use this to reuse files and find interrupted uploads

apple_get_assetC

Read an image or video asset’s processing state, matched specId, and delivery errors without exposing presigned upload URLs

apple_wait_for_assetB

Resume waiting for an uploaded asset to become ready; optionally check that Apple matched the intended specification

apple_upload_assetA

Upload an image or video once to the App Asset Library, commit uploaded=true, and verify processing against a specId from apple_get_asset_specs. Create placements separately to reuse it across localizations.

apple_list_asset_placementsA

List every placement that uses an image or video, including other localizations, before deleting or replacing that asset

apple_list_placementsC

List all placements for a localization in display order, including their image/video assets

apple_create_placementA

Place a ready library asset on an editable localization using a placement type and group from apple_get_asset_specs. Reuses an existing identical placement.

apple_reorder_placementsA

Set the complete display order for one localization and placement group, then read back and verify the order. In-app event localizations are not orderable.

apple_delete_placementB

Remove a placement from its localization; the reusable library asset and its other placements remain intact

apple_delete_assetA

Delete an unplaced image or video from the library. Refuses to delete if any localization still uses it; delete the intended placements first.

apple_list_appsB

List all apps in App Store Connect

apple_get_next_pageA

Fetch the next App Store Connect page using the exact links.next URL returned by another Apple list tool

apple_get_appB

Get detailed info about an app including latest version state

apple_update_appC

Update app-level submission settings: the content-rights declaration and primary locale

apple_get_app_infoC

Get app info (categories, age rating, etc)

apple_update_categoryA

Update app primary/secondary category

apple_list_bundle_idsC

List registered bundle IDs

apple_create_bundle_idC

Register a new bundle ID

apple_list_versionsC

List all App Store versions for an app

apple_create_versionC

Create a new App Store version for submission

apple_update_versionC

Update an existing App Store version's version, copyright, or release timing

apple_list_version_localizationsB

List all localizations for a version

apple_create_version_localizationC

Create a new localization for a version

apple_update_version_localizationC

Update localization fields (description, keywords, whatsNew, etc)

apple_list_app_info_localizationsA

List app info localizations (app name, subtitle, privacy policy URL)

apple_update_app_info_localizationB

Update app name, subtitle, or privacy policy URL for a locale

apple_list_screenshot_setsA

Legacy: list screenshot sets for a localization. Apple deprecated this API in 4.5.1; use apple_list_placements for Asset Library media.

apple_create_screenshot_setA

Legacy: create a screenshot set for a specific display type. Deprecated by Apple; prefer apple_upload_asset and apple_create_placement.

apple_upload_screenshotA

Legacy: upload and commit a screenshot while preserving its ID for recovery. Deprecated by Apple; prefer apple_upload_asset and apple_create_placement.

apple_delete_screenshotA

Legacy: delete a screenshot from the deprecated screenshot-set API. Use apple_delete_placement and apple_delete_asset for Asset Library media.

apple_list_buildsC

List builds uploaded to App Store Connect

apple_get_build_uploadA

Get the current state of a Build Uploads API operation, including the imported build when available

apple_delete_build_uploadA

Explicitly discard an AWAITING_UPLOAD or FAILED Build Upload after checking it with apple_get_build_upload; do not use for PROCESSING or COMPLETE uploads

apple_wait_for_build_uploadB

Wait until a Build Uploads API operation completes or fails, returning the imported build relationship on success

apple_upload_buildA

Upload a signed IPA through the App Store Connect Build Uploads API: verify its SHA-256 locally, reserve the upload and file, send every presigned range, commit its MD5 transfer checksum, and optionally wait for import

apple_set_build_encryptionA

Set a processed build's usesNonExemptEncryption answer before submission; true may also require an app encryption declaration or supporting export-compliance documentation

apple_assign_buildC

Assign a build to an App Store version

apple_get_age_ratingB

Get age rating declaration for an app info

apple_update_age_ratingC

Update the current App Store age-rating questionnaire. Prefer NONE, INFREQUENT, or FREQUENT for frequency fields; legacy values remain accepted by Apple for compatibility.

apple_update_review_detailC

Update app review info (contact info, notes, demo account for reviewer)

apple_submit_for_reviewB

Create or resume an App Store review submission, attach the version idempotently, and submit it while preserving the submission ID for safe recovery

apple_cancel_submissionA

Cancel an in-review submission (if still possible). Operates on the reviewSubmissions resource created by apple_submit_for_review — sets attributes.canceled=true via PATCH. The legacy appStoreVersionSubmissions DELETE endpoint only applied to submissions created through the retired create-submission flow and does not accept reviewSubmissions IDs.

apple_release_versionA

Irreversibly request release of an approved version that is in PENDING_DEVELOPER_RELEASE

apple_get_phased_releaseA

Get phased-release status and progress for an App Store version

apple_create_phased_releaseB

Enable a seven-day phased release for an app update; phased release is unavailable for an app's first version

apple_update_phased_releaseA

Pause, resume, or complete an existing phased release; COMPLETE immediately releases the update to all users

apple_delete_phased_releaseA

Cancel a phased release configuration before the phased release has started

apple_get_pricingB

Get the app price schedule plus complete, fully paginated manual and automatic price collections

apple_list_app_price_pointsA

List current App Price Points for an app in a base territory; use an ID from this response with apple_set_price

apple_set_priceA

Replace the complete manual app price schedule. Call apple_get_pricing first and include every current and future manual price entry that must be preserved.

apple_list_availabilityC

List current App Availability and all related territory availability records

apple_create_availabilityA

Create initial app availability with explicit territory settings; use available=true and preOrderEnabled=false for a normal release

apple_update_territory_availabilityA

Change availability, release date, or pre-order state for one existing territory availability record returned by apple_list_availability

apple_list_reviewsC

List customer reviews for an app

apple_respond_to_reviewC

Respond to a customer review

apple_list_bundle_id_capabilitiesB

List capabilities for a bundle ID

apple_enable_capabilityC

Enable a capability on a bundle ID

apple_disable_capabilityC

Disable a capability on a bundle ID

apple_list_certificatesC

List certificates

apple_create_certificateC

Create a certificate

apple_revoke_certificateC

Revoke a certificate

apple_list_profilesC

List provisioning profiles

apple_create_profileC

Create a provisioning profile

apple_delete_profileB

Delete a provisioning profile

apple_list_devicesC

List registered devices

apple_register_deviceB

Register a new device

apple_update_deviceC

Update device name or status

apple_list_beta_groupsC

List beta groups

apple_create_beta_groupC

Create a beta group

apple_delete_beta_groupB

Delete a beta group

apple_add_beta_testers_to_groupC

Add beta testers to a group

apple_remove_beta_testers_from_groupB

Remove beta testers from a group

apple_list_beta_testersC

List beta testers

apple_invite_beta_testerC

Invite a beta tester

apple_delete_beta_testerC

Delete a beta tester

apple_list_iapA

List in-app purchases for an app

apple_create_iapC

Create an in-app purchase

apple_get_iapC

Get in-app purchase details

apple_delete_iapC

Delete an in-app purchase

apple_list_subscription_groupsC

List subscription groups for an app

apple_create_subscription_groupC

Create a subscription group

apple_delete_subscription_groupC

Delete a subscription group

apple_list_accessibility_declarationsB

List accessibility nutrition label declarations for an app, one per device family

apple_create_accessibility_declarationC

Create an accessibility nutrition label declaration for an app on a specific device family (Accessibility Nutrition Labels)

apple_update_accessibility_declarationC

Update an existing accessibility nutrition label declaration

apple_delete_accessibility_declarationC

Delete an accessibility nutrition label declaration

apple_get_subscription_price_pointsA

List available price points for a subscription, per territory. Use the returned IDs (with a territory ID) to build the prices for apple_create_subscription_offer_code.

apple_get_iap_price_pointsA

List available price points for an in-app purchase, per territory. Use the returned IDs (with a territory ID) to build the prices for apple_create_iap_offer_code.

apple_list_subscription_offer_codesB

List custom/one-time-use offer codes configured for a subscription

apple_get_subscription_offer_codeC

Get details of a subscription offer code

apple_create_subscription_offer_codeA

Create a subscription offer code (custom or one-time-use codes distributed outside the App Store). Requires per-territory prices — look them up first with apple_get_subscription_price_points.

apple_list_iap_offer_codesB

List custom/one-time-use offer codes configured for an in-app purchase

apple_get_iap_offer_codeC

Get details of an in-app purchase offer code

apple_create_iap_offer_codeA

Create an offer code for a consumable/non-consumable/non-renewing-subscription in-app purchase. Requires per-territory prices — look them up first with apple_get_iap_price_points.

apple_list_win_back_offersA

List win-back offers configured for a subscription (offers to bring back churned/expired subscribers)

apple_get_win_back_offerC

Get details of a win-back offer

apple_list_custom_product_pagesB

List custom product pages for an app, with their versions (state, deep link) and the page URL to use in ad campaigns

apple_get_custom_product_pageC

Get a custom product page with its versions

apple_create_custom_product_pageA

Create a custom product page with its first version and localizations in one request. Optionally copy screenshots and text from an App Store version or another custom page. Add visuals afterwards with the Asset Library placement tools.

apple_update_custom_product_pageB

Rename a custom product page or switch its visibility (a hidden page stops serving its URL)

apple_delete_custom_product_pageB

Delete a custom product page; its URL stops working in campaigns

apple_list_custom_product_page_versionsC

List versions of a custom product page

apple_create_custom_product_page_versionC

Start a new editable version of an approved custom product page

apple_update_custom_product_page_versionB

Change the deep link of an editable custom product page version

apple_list_custom_product_page_localizationsA

List localizations of a custom product page version; their IDs are the targets for apple_create_placement

apple_create_custom_product_page_localizationB

Add a locale to an editable custom product page version

apple_update_custom_product_page_localizationC

Change the promotional text of a custom product page localization

apple_delete_custom_product_page_localizationC

Remove a locale from an editable custom product page version

apple_list_experimentsB

List product page optimization tests (A/B tests of icon, screenshots and visuals) for an app, with state and dates

apple_get_experimentC

Get a product page optimization test with its treatments

apple_create_experimentC

Create a product page optimization test. trafficProportion is the percentage of visitors sent to the treatments (split evenly); the rest see the original page.

apple_update_experimentA

Rename a test, change its traffic share, or start it (started=true). New visuals in a test go through App Review before it runs.

apple_delete_experimentB

Delete a product page optimization test that has not run

apple_list_experiment_treatmentsC

List the treatments (variants) of a product page optimization test

apple_create_experiment_treatmentC

Add a treatment (variant) to a test. appIconName selects an alternate icon shipped in the binary.

apple_update_experiment_treatmentC

Rename a treatment or change its alternate icon

apple_delete_experiment_treatmentB

Delete a treatment from a test that has not started

apple_list_treatment_localizationsB

List localizations of a treatment; their IDs are the targets for apple_create_placement

apple_create_treatment_localizationC

Add a locale to a treatment so it can get its own screenshots and visuals

apple_delete_treatment_localizationC

Remove a locale from a treatment

apple_get_sales_reportA

Download a Sales and Trends report (units, installs, proceeds by territory/device) as rows. Needs the vendor number; data for a day usually appears the next day. reportSubType and version must suit the reportType (SALES uses SUMMARY); Apple names the accepted values in its error.

apple_get_finance_reportC

Download a monthly financial report (earnings by region) as rows

apple_list_analytics_report_requestsB

List App Analytics report requests for an app. Apple generates analytics reports only after a request exists.

apple_create_analytics_report_requestA

Ask Apple to start generating App Analytics reports (impressions, product page views, downloads, sessions, retention). ONGOING keeps producing daily data; the first reports take 1-2 days. Only one request per access type is allowed.

apple_list_analytics_reportsC

List the reports available for an analytics report request, e.g. "App Store Discovery and Engagement" or "App Downloads"

apple_list_analytics_report_instancesC

List generated instances (one per processing date) of an analytics report

apple_download_analytics_reportC

Download every segment of an analytics report instance, decompress and merge them into rows

apple_list_analytics_report_segmentsA

List the segment files of an analytics report instance (size and checksum, without download URLs)

apple_list_review_submissionsB

List review submissions for an app and platform, including drafts to resume after an interrupted request

apple_get_review_submissionB

Inspect a review submission and all item IDs before adding an asset/custom page/test or explicitly submitting it

apple_create_review_submissionA

Create an empty review draft; does not submit it. For asset-only, custom product page or product page optimization review. Existing drafts must be explicitly resumed, not replaced.

apple_add_review_submission_itemA

Attach an Asset Library image/video, custom product page version, v2 experiment or app version to a draft, without submitting. For an initial app release include the app version; assigned assets are reviewed with their owning item. Retries reconcile an already attached item.

apple_submit_review_submissionA

Submit an inspected review draft containing assets, custom pages or experiments. itemIds must exactly match all review item IDs returned by apple_get_review_submission, to avoid submitting unexpected items. This starts App Review; saving or attaching an item does not.

google_create_editA

Create a new edit session. Required before making any changes to a Google Play listing.

google_get_editB

Get an edit session, including its ID and expiry time, before resuming pending work

google_commit_editA

Commit all pending changes. By default, fail safely instead of canceling changes that are already in review.

google_validate_editA

Validate an edit session without committing. Useful to check for errors before commit.

google_delete_editB

Discard an edit session without committing changes

google_get_detailsA

Get app details (default language, contact email/phone/website)

google_update_detailsB

Update app details (default language, contact email/phone/website)

google_list_listingsA

List all store listings (all languages) for an app

google_get_listingB

Get store listing for a specific language

google_update_listingC

Update store listing for a specific language (title, descriptions, promo video)

google_delete_listingB

Delete a store listing for a specific language

google_get_country_availabilityB

Get country availability for a specific track

google_get_testersC

Get tester configuration for a track

google_update_testersC

Update tester Google Groups for a track

google_list_imagesC

List uploaded images of a specific type

google_upload_imageB

Upload an image (screenshot, icon, feature graphic, etc)

google_delete_imageB

Delete a specific uploaded image

google_delete_all_imagesB

Delete all images of a specific type for a language

google_list_tracksA

List all release tracks, including custom closed-test and form-factor tracks

google_get_trackC

Get details of a specific release track

google_create_releaseB

Create or update one release with an explicit version-code set. Google Play retains fallback releases; send only the desired change.

google_promote_releaseB

Promote a release from one track to another (e.g. beta → production)

google_halt_releaseA

Halt an exact in-progress or completed release; halting a completed production release rolls users back to the previous completed release

google_list_release_statusesA

List non-obsolete releases and their review/publishing lifecycle states for a track after an edit is committed

google_list_bundlesA

List Android App Bundles already available in an edit, including version codes and hashes

google_upload_bundleB

Upload an Android App Bundle (.aab)

google_list_apksB

List APKs already available in an edit, including version codes and hashes

google_upload_apkC

Upload an APK file

google_update_data_safetyA

Submit a user-reviewed Data Safety declaration from an up-to-date Google Play CSV export. Google does not provide a corresponding read endpoint.

google_list_reviewsA

List production-app reviews with comments created or modified within the last 7 days. Ratings without comments and alpha/beta feedback are excluded. Requires Reply to reviews permission. pageToken pages only within that 7-day window; use Play Console CSV export for older history. An empty result alone does not indicate missing permission.

google_get_reviewB

Get a specific review with details

google_reply_to_reviewC

Reply to a user review

google_list_iapB

List all in-app products (managed products) for an app

google_get_iapB

Get details of a specific in-app product

google_create_iapC

Create a new in-app product (managed product)

google_update_iapB

Update an existing in-app product

google_delete_iapB

Delete an in-app product

google_list_subscriptionsC

List all subscriptions for an app

google_get_subscriptionC

Get details of a specific subscription

google_create_subscriptionA

Create a new subscription on Google Play (monetization API). Pass the full subscription body — including listings and at least one base plan with billing details and per-region pricing. Base plans are created in DRAFT state; call google_activate_subscription_base_plan to make them purchasable.

google_activate_subscription_base_planA

Activate a subscription base plan so it becomes purchasable. Base plans default to DRAFT after creation; this is required to make them ACTIVE.

google_deactivate_subscription_base_planA

Deactivate a base plan for new subscribers while existing subscribers retain their subscription. Use this instead of the unsupported subscription archive operation.

google_list_one_time_productsC

List all one-time products (non-subscription purchases, buy or rent) for an app

google_get_one_time_productB

Get details of a specific one-time product

google_create_one_time_productA

Create a new one-time product (buy or rent) on Google Play. Inspect the returned purchase-option state and call google_activate_purchase_option when it is DRAFT.

google_update_one_time_productB

Update an existing one-time product. Pass the full desired listings/purchaseOptions state plus an updateMask (e.g. "listings,purchaseOptions").

google_delete_one_time_productC

Delete a one-time product

google_activate_purchase_optionB

Activate a one-time product purchase option so it becomes available for purchase

google_deactivate_purchase_optionB

Deactivate a one-time product purchase option so it stops being available for purchase

google_query_vitalsA

Query Android vitals (crash, ANR, slow start, slow rendering, wakeups, wakelocks, LMK, memory, error counts) by day, optionally split by versionCode, countryCode, deviceModel or apiLevel. Defaults to the last 28 days that Google has data for. Rates are returned exactly as the API reports them. Google judges its bad-behavior thresholds on the user-perceived 28-day rates, which the crash and ANR defaults include.

google_list_vitals_anomaliesC

List anomalies Google detected in Android vitals (sudden crash/ANR spikes) with the affected metric and dimensions

google_search_vitals_error_issuesA

Search crash and ANR clusters (error issues) with counts, affected versions, cause and location, most frequent first. Read the stack trace with google_search_vitals_error_reports.

google_search_vitals_error_reportsA

Fetch individual crash/ANR reports with the full stack trace (reportText), device and app version. Filter by issue with errorIssueId from google_search_vitals_error_issues.

Prompts

Interactive templates invoked by user choice

NameDescription
app_release_checklistGuided checklist for releasing an app update on iOS and/or Android, from signed artifact upload through review and release status.
app_store_optimizationApp Store Optimization (ASO) review — analyzes current listing metadata and provides actionable improvement recommendations for both iOS and Android.

Resources

Contextual data attached and managed by the client

NameDescription
configCurrent server configuration — shows which platform accounts (Apple / Google) are connected and their auth method.
supported-platformsList of all supported tools grouped by platform and category with their descriptions.

TDQS

B3/5.0

Scored across 188 tools

Disambiguation3/5

Platform prefixes and detailed descriptions separate most Apple vs Google and resource/action pairs. However, the set contains confusing overlaps: deprecated screenshot tools alongside the Asset Library/placement tools, and two Apple review-submission paths (`apple_submit_for_review` vs. `apple_create_review_submission` + `apple_add_review_submission_item` + `apple_submit_review_submission`). These overlaps make misselection plausible without careful reading.

Naming Consistency5/5

Tool names consistently follow a platform-prefixed snake_case verb_noun pattern (`apple_list_*`, `google_create_*`, etc.), including wait/search/query variants. The minor legacy exceptions still fit the same predictable convention.

Tool Count1/5

188 tools is far beyond a manageable set for an MCP server, even for a broad app-publishing domain. This harms discoverability and tool selection; the rubric treats 50+ tools as an extreme mismatch.

Completeness4/5

The surface covers app metadata, versions/builds/uploads, assets/placements, pricing/availability, IAP/subscriptions/offer codes, reviews, beta testing, analytics/finance, certificates/profiles/devices, and Google edit/release/vitals workflows. Some lifecycle gaps remain, such as Apple IAP update and subscription-group get/update, but core workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessOutdated data