SuperAPI AI Directory

asc-mcp

App Store Connect control: metadata edits, screenshot and binary uploads, TestFlight, IAPs, subscriptions, release preflight audits, submission and release.

Open website

About this tool

Purpose

asc-mcp is an MCP (Model Context Protocol) server for controlling App Store Connect within AI coding agents. It lets developers complete the entire App Store release process, from editing version metadata to submitting for release, without leaving their coding agent. This project is the maintained successor to JoshuaRileyDev/app-store-connect-mcp-server (archived in February 2026).

Main capabilities

  • 41 tools: Cover operations such as version metadata editing, screenshot uploads, build association, TestFlight driving, in-app purchase creation, submission, and release.
  • Intelligence layer: Audits versions before submission and summarizes user reviews.
  • 6 slash command workflows: Preset multi-tool workflows that can be run by typing them in Claude Desktop or Claude Code.
  • Claude Skill: Installs a review classification skill with a single command, letting Claude automatically identify review-related issues and call the correct ASC tools.
  • MCP Sampling: triage_reviews and draft_review_response use the MCP Sampling primitive, with the user's own MCP client running the LLM. The server does not make additional calls to Anthropic, so there are no extra costs.
  • No fastlane required: fastlane's deliver and pilot essentially call the same App Store Connect REST API, so almost everything that can be done with fastlane scripts has a corresponding tool here, with no Ruby toolchain required. The only step that requires a Mac is building and signing the binary, which is driven through Xcode by build_and_archive and upload_binary.

How to use

Setup (about 3 minutes)

Step 1: Create an API key Create an API key in App Store Connect > Integrations > App Store Connect API (requires the Admin or App Manager role), then obtain three pieces of information:

  • Issuer ID (ASC_ISSUER_ID): The UUID displayed at the top of the page.
  • Key ID (ASC_KEY_ID): The 10-character ID next to the key, also included in the filename AuthKey_XXXXXXXXXX.p8.
  • .p8 file (ASC_PRIVATE_KEY_PATH): Click Download to save the file. Apple only allows downloading it once, so keep it safe.

Step 2: Install

Fastest setup (recommended): Put the .p8 in Apple's standard path ~/.appstoreconnect/private_keys/ (filename AuthKey_XXXXXXXXXX.p8, with the Key ID in the filename), then run init --write. This command finds the Claude Desktop / Claude Code configuration, backs it up, and merges the server block, with no manual JSON editing required. The server also automatically discovers the .p8 path at runtime, so only ASC_ISSUER_ID is required (and ASC_LICENSE_KEY for the Pro version).

As a Claude Code plugin: A single command installs both the server and the review classification skill. Claude Code asks for the Issuer ID when the plugin is enabled.

Running from an agent or pipeline: Since there is no terminal to answer questions, you need to pass in the parameters that would otherwise be asked for. It prints a configuration block that can be pasted directly, and does not invent values: if the Issuer ID is missing, it says so explicitly instead of writing a configuration that will fail Apple authentication. --key-path, --key-id, and --license also read the corresponding ASC_* environment variables.

If you run into problems, run npx @pofky/asc-mcp doctor (or have the agent call asc_setup_check). It checks the key, Issuer ID, live connection to App Store Connect, and license, and prints the exact fix. In an agent, the /asc-start command guides first-time users through all the steps.

Manual setup: Add the configuration to the agent's MCP configuration (Claude Desktop configuration or Claude Code's ~/.claude.json). Use npx for zero-install, or use a globally installed asc-mcp. When the .p8 is located at ~/.appstoreconnect/private_keys/, ASC_ISSUER_ID is the only required environment variable (Key ID and key path are auto-detected). Add ASC_LICENSE_KEY to unlock Pro.

Step 3: Have the agent execute "List my App Store Connect apps".

Step 4 (the paid trial part): Have the agent execute "start my asc-mcp trial, my email is you@example.com". It will call asc_start_trial, unlocking all 41 tools for 7 days, no credit card required, no cancellation required. The key is activated in the current session and saved locally in ~/.asc-mcp/license.json as well as in the MCP client configuration that already has an asc-mcp entry, remaining valid after a restart. Limited to one trial per Apple Developer account.

Compatible clients

Claude Code, Cursor, Windsurf, Cline, and any MCP-compatible client.

Use cases

  • Complete the App Store release process directly within a coding agent, without switching context or using the portal website.
  • Run a release_preflight audit before submission, checking all fields accessible via the API and generating a "manual steps to complete" list.
  • Aggregate and categorize user reviews, and draft review replies.
  • Generate release notes from git.
  • Drive TestFlight testing.
  • Create in-app purchases and subscriptions.

Limitations

The following operations are not exposed by Apple to API keys. MCP will not pretend to support them; instead, it returns the exact website steps plus a deep link, or aborts upon detecting the situation to avoid a half-completed state:

  • Creating an app record / App Group: POST /v1/apps is forbidden for API keys and must be done once on the website.
  • App Privacy nutrition labels: not in the API; set_privacy_nutrition returns a checklist plus a deep link.
  • EU DSA trader status: not in the API; set_eu_trader_status returns steps, constituting a legal decision.
  • App's first in-app purchase/subscription: must be submitted on the website along with the version; submit_for_review will abort rather than orphan the version. Subsequent products can be submitted via API.
  • Certificate creation / cloud signing: the least-privilege key cannot perform it; setup_app_store_signing switches to manual signing provisioning profiles.
  • Compile binaries: requires Xcode on a Mac (build_and_archive runs locally).
  • Publish public review replies: draft_review_response drafts them, and they need to be pasted on the website.

Privacy and Security

  • The .p8 private key never leaves the local machine: it is read locally, the JWT token is generated locally, and API calls are sent directly from the local machine to api.appstoreconnect.apple.com.
  • The license server only receives the license key string (if set), the email address used for the trial, a one-way hash of the Issuer ID, and the name of the launcher tool. No Apple data or credentials are sent.
  • ~/.asc-mcp/preview.json only stores a number on the local machine for how many free preview calls have been used, and it is never sent anywhere.
  • When starting a trial or obtaining a paid key, the license key is stored in plaintext in ~/.asc-mcp/license.json (owner-only permissions on macOS and Linux) and added as ASC_LICENSE_KEY to every asc-mcp entry found. Each edited file gets a one-time .bak backup.

Pricing

  • Free tier: no registration required, no license key required. 6 tools remain free, two of which (setup check and playbook) only require Node.
  • Pro version: 7-day free trial, then $9 per month.
  • Pro read-only tools (reviews, sales, builds, TestFlight groups, preflight, briefs, keywords, competitors, metadata diffs, release notes) can be used a total of 5 times locally as a preview without a license.

Other Information

This project is fully open source. It requires an Apple Developer Program membership and an App Store Connect API key (Admin or App Manager role). This project is not affiliated with, endorsed by, or sponsored by Apple Inc. Apple, App Store, App Store Connect, TestFlight, Xcode, iOS, and macOS are trademarks of Apple Inc.