Appstoreconnect MCP
UnclaimedMCP server for App Store Connect — rebalance subscription prices across ~175 countries via Purchasing Power Parity, schedule per-territory price changes, manage subscriptions from a chat.
Set up this server
01 / Choose your client
02 / Before you connect
Authentication is not specified. Check the project instructions before connecting.
Project instructions03 / Add the configuration
claude mcp add --transport stdio 'appstoreconnect-mcp' -- 'npx' '-y' '@akoskomuves/appstoreconnect-mcp'04 / Check it in your client
Open your client’s MCP settings and confirm the server connects and lists its tools. A copied configuration does not confirm a working connection.
More in Communication
Browse the full directoryUnclaimed listing
Is this your MCP server?
This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.
Claim this serverSecurity profile
Claimed and verified servers get a weekly static scan that shows what the code can reach: external services, environment variables, shell commands, agent configuration folders, plus any dependencies with known advisories. Claim this listing to get one. How the security profile works
40 of 40 tools
Documented tools (40)
From project documentation. A server handshake does not verify each tool’s description or behavior.
asc_delete_subscription_introductory_offer
delete a pending or active offer. Apple refuses to delete one that is currently redeemable; PATCH endDate to today to stop it instead.
asc_delete_subscription_price
cancel a pending scheduled change
asc_delete_subscription_promotional_offer
DELETE → 204.
asc_delete_subscription_win_back_offer
DELETE → 204.
asc_get_app
fetch one app by ID
asc_get_app_store_review_detail
/ ascpost… / ascpatch… — the What-to-tell-App-Review card of a version: contact person, demo account (name/password/required), notes. To-one per version; Apple merges on PATCH.
asc_get_iap
fetch a single IAP by ID.
asc_get_subscription_grace_period
/ ascpatch… — billing grace period per app: optIn / sandboxOptIn, duration (3 / 16 / 28 days), renewalType (all renewals vs paid-to-paid only). Keeps lapsed subscribers entitled while Apple retries payment.
asc_get_subscription_introductory_offer
fetch one offer by ID.
asc_get_subscription_promotional_offer
fetch a single offer, including its per-territory prices.
asc_get_subscription_win_back_offer
fetch a single offer, including its subscription and per-territory prices.
asc_list_app_price_points
valid Apple price tiers for an app in a given territory (~600+ tiers per territory). Pass nearAmount (target price) and optional nearCount (default 10) to narrow the response to the nearest tiers — Apple does not support a near-amount filter server-side, so the full list is still paginated but only
asc_list_app_prices
current price schedule for an app, splitting manual overrides from auto-derived prices and surfacing the base territory
asc_list_apps
list apps (filter by bundleId)
asc_list_iap_price_points
valid Apple price tiers for an IAP in a given territory. Same nearAmount / nearCount narrowing as the app and subscription price-point tools.
asc_list_iap_prices
current price schedule for an IAP (same shape as app prices: manual overrides + auto-derived + base territory).
asc_list_iaps
list IAPs for an app (v2 surface only — auto-renewable subscriptions are covered by the Subscriptions tools above). Filterable by inAppPurchaseType and state. If this returns zero rows for an app you know has IAPs, the IAPs may be legacy-only and need to be migrated in the App Store Connect web UI b
asc_list_subscription_groups
groups for an app
asc_list_subscription_introductory_offers
list intro offers (free trial / pay-as-you-go / pay-up-front) configured for a subscription, across territories. Apple's "all territories" wildcard (a single offer with no territory) surfaces as TERR=(all) in the table.
asc_list_subscription_price_points
valid price points for a subscription in a territory. Pass nearAmount to narrow the response to the nearest tiers around a target price.
asc_list_subscription_prices
current price schedule per subscription
asc_list_subscription_promotional_offer_prices
list per-territory price rows attached to an offer (territory + currency + amount + price-point ID).
asc_list_subscription_promotional_offers
list promo offers configured for a subscription.
asc_list_subscription_win_back_offer_prices
list per-territory price rows attached to an offer (territory + currency + amount + price-point ID).
asc_list_subscription_win_back_offers
list win-back offers configured for a subscription.
asc_list_subscriptions
auto-renewable subscriptions in a group
asc_patch_subscription_introductory_offer
narrow update path: only startDate, endDate, and pricePointId can change after creation. To change mode / duration / periods, delete and re-create.
asc_patch_subscription_promotional_offer_prices
update the offer's per-territory prices. Apple's wire semantic is replace (the new prices array becomes the post-state, dropping any territory not listed); the tool's mode: 'replace' 'add' 'remove' parameter hides the footgun — 'add' reads current prices and merges, 'remove' reads and filters.
asc_patch_subscription_win_back_offer
update the mutable attributes only: eligibility, startDate/endDate, priority, and promotionIntent. To change identity, mode, duration, periods, or prices, delete and re-create.
asc_post_app_price_schedule
replace the entire price schedule (whole-schedule replace, NOT a merge — matches Apple's API). Pre-flight refuses unless at least one entry targets the base territory with no startDate, and requires explicit acknowledgeReplacesAll: true. A separate acknowledgeDeletesScheduledIfBaseChanges ack is req
asc_post_app_store_version_release_request
⚠️ release an approved (PENDINGDEVELOPERRELEASE) version to the public App Store now — the "Release this version" click, automated. Only for manually-released versions; no undo.
asc_post_iap_price_schedule
replace the entire IAP price schedule (same whole-schedule replace semantics as ascpostapppriceschedule: acknowledgeReplacesAll: true, base-territory entry with no startDate, base-change ack required). No grandfather mechanism — same as apps.
asc_post_iap_submission
/ ascpostsubscriptionsubmission / ascpostsubscriptiongroupsubmission — submit an IAP / subscription / subscription group's pending metadata changes for review standalone, without a version release. Wire gotcha handled: the IAP one relates via inAppPurchaseV2.
asc_post_subscription_introductory_offer
create an offer. Three offerModes: FREETRIAL (no price; omit pricePointId), PAYASYOUGO (charge the offer price each period for numberOfPeriods periods), PAYUPFRONT (single charge for the whole duration; Apple still requires numberOfPeriods — defaults to 1 when omitted). Pass territoryId to target on
asc_post_subscription_price
schedule a price change for one territory
asc_post_subscription_promotional_offer
create an offer (name + offerCode + mode + duration + all per-territory prices) in one atomic POST. Pre-flights Apple's 10-offer cap and offerCode collisions, refusing with a clear remedy message instead of letting Apple 409.
asc_post_subscription_win_back_offer
create an offer (identity + eligibility rules + schedule + priority + all per-territory prices) in one atomic POST. Eligibility is expressed as customerEligibilityPaidSubscriptionDurationInMonths, customerEligibilityTimeSinceLastSubscribedInMonths (an { minimum, maximum? } range), and an optional cu
asc_sign_promotional_offer
JWS v2 format introduced at WWDC 2025 (back-deployed to iOS 15). Use with StoreKit 2's newer promotional-offer purchase options. Returns the JWS compact serialization directly. transactionId (the customer's appTransactionId) is optional but strongly recommended.
asc_sign_promotional_offer_legacy
legacy ECDSA-concatenated signature used by StoreKit 1's SKPaymentDiscount and the original StoreKit 2 Product.PurchaseOption.promotionalOffer(offerID:keyID:nonce:signature:timestamp:) API. Returns the base64 signature plus the nonce, timestamp, and keyId for the caller to pass to StoreKit. Auto-gen
IAPs
ascgetiapavailability (reads through the v2 parent path) · asclistiapavailableterritories · ascpostiapavailability (same replace semantics).
Tool change history
FAQ
Questions about Appstoreconnect MCP Server
- How do I connect Appstoreconnect MCP Server to Claude?
- Run `claude mcp add appstoreconnect-mcp -- npx -y @akoskomuves/appstoreconnect-mcp` in Claude Code, or add the same command and arguments under mcpServers in Cursor's mcp.json or Claude Desktop's claude_desktop_config.json, then restart the client. The blocks above are ready to paste.
- Is Appstoreconnect MCP Server free?
- The listed licence is MIT. Check the upstream terms for permitted use and commercial requirements; a public repository does not by itself mean the software is free or open source. Connected APIs and hosted services may have separate charges.
- What can Appstoreconnect MCP Server do?
- Appstoreconnect MCP Server documents 40 tools to the agent, including asc_delete_subscription_introductory_offer, asc_delete_subscription_price, asc_delete_subscription_promotional_offer. The descriptions above come from project documentation. A live handshake does not test individual tool behavior.