Labsco
MCP SERVER

App Store Connect

by akoskomuves

Drive App Store Connect from your editor — prices, offers, review assets, provisioning and Xcode Cloud.

Mobile & App Store Release
Summary
The guards are the reason to use this rather than the raw API.

Apple's app and IAP price endpoints replace an entire schedule rather than merging into it, and changing the base territory silently wipes pending scheduled changes. This server refuses those calls unless you acknowledge each behaviour explicitly, and the PPP rebalance flow refuses any run where a single territory drops more than `maxDropPct` (default 90%). Read the write semantics before the first write: apps and IAPs have no grandfather mechanism, so a new schedule activates for everyone at each entry's `startDate`.

What it is

A broad App Store Connect API server. It reads and writes the parts of App Store Connect that are otherwise a lot of clicking: subscription and app price schedules, introductory, promotional and win-back offers, review screenshots and attachments, age rating, availability, provisioning and certificates, Xcode Cloud runs, and sandbox testers.

What you get
  • Apps and subscriptions — `asc_list_apps`, `asc_get_app`, `asc_list_subscription_groups`, `asc_list_subscriptions`, `asc_list_subscription_prices`
  • Price points narrowed to what you care about — `asc_list_app_price_points` and `asc_list_subscription_price_points` take `nearAmount` (and `nearCount`, default 10) so you get the nearest tiers rather than every tier in the territory
  • Writes with pre-flight guards — `asc_post_app_price_schedule` and `asc_post_iap_price_schedule` replace the whole schedule, and refuse unless `acknowledgeReplacesAll: true` is passed and one entry targets the base territory with no `startDate`
  • All three offer types — introductory (`asc_post_subscription_introductory_offer` with `FREE_TRIAL`, `PAY_AS_YOU_GO`, `PAY_UP_FRONT`), promotional, and win-back, each with list, get, patch and delete
  • Offer signing for in-app redemption — `asc_sign_promotional_offer`, `asc_sign_promotional_offer_legacy`, `asc_sign_introductory_offer_eligibility`; signatures are valid for 24 hours
  • Release plumbing — `asc_get_app_store_review_detail`, `asc_post_app_store_version_release_request`, `asc_post_iap_submission`, `asc_post_subscription_submission`
  • Age rating — `asc_get_age_rating_declaration` shows only the non-default answers, `asc_patch_age_rating_declaration` merges changes
  • Xcode Cloud — `asc_list_ci_build_runs`, `asc_list_ci_issues`, `asc_list_ci_artifacts`, `asc_post_ci_build_run` to start a build
  • Provisioning — `asc_list_bundle_ids`, `asc_list_certificates`, `asc_list_profiles`, `asc_list_devices` and their write counterparts
  • `asc_list_territories` returns all 175 App Store territories
  • Every list and get tool returns a compact text table by default; `raw: true` gives the full JSON:API payload and `maxItems` caps auto-pagination
Requirements

Published on npm as @akoskomuves/appstoreconnect-mcp, version 1.9.0. `npx @akoskomuves/appstoreconnect-mcp init` runs a wizard that opens the Keys page, copies the `.p8` into `~/.appstore/` with `chmod 600`, verifies auth with a real API call, and registers the server in whichever clients it finds. Configured by hand it needs `ASC_ISSUER_ID` (the issuer UUID), `ASC_KEY_ID` (10 characters) and `ASC_PRIVATE_KEY_PATH` (the `.p8` file). `ASC_VENDOR_NUMBER` is optional and only needed for the sales and finance report tools. Provisioning and code-signing tools additionally require an Admin or Account Holder API key — App Manager and Developer keys get 403. Offer signing uses a separate In-App Purchase key, not the ASC API key. `npx @akoskomuves/appstoreconnect-mcp doctor` runs a read-only diagnostic.

Setup effort

One command plus a key — npx @akoskomuves/appstoreconnect-mcp init, then supply credentials