How to set up an App Store Connect MCP server (and pick the right one)
Updated
An App Store Connect MCP server lets your coding agent call Apple's App Store Connect API: check whether a TestFlight build finished processing, update release notes for every locale, read customer reviews or submit a version for review. This guide explains the setup that every server shares (the API key), compares the open-source servers we list, and shows how to keep an agent from changing more than you intend. For the full, always-current list, see App Store Connect MCP servers & TestFlight skills.
Step 1: Create an App Store Connect API key
Every server below authenticates with an API key (Key ID, Issuer ID and a .p8 private key). Per Apple's App Store Connect help:
The Account Holder must first request API access: Users and Access → Integrations → Request Access.
Admins/Account Holder can create team keys with a role; users can create one individual key each (unless an Admin disabled that).
Download the
.p8file. The asc-mcp and devinwang READMEs both note that Apple lets you download it only once.
Pick the narrowest role. The asc-mcp README recommends "the least-privileged role that covers your workflow", with App Manager or Admin only when an operation requires it. Heimdall's README says the same and links a roles guide. Keep the .p8 outside any git repository (devinwang's README suggests a config folder with chmod 600).
Step 2: Choose a server
GitHub data from 2026-10-16. Tool counts are the numbers each README states.
| Server | Language / runtime | Coverage (per README) | Safety features (per README) | License · stars |
|---|---|---|---|---|
| asc-mcp (zelentsov-dev) | Swift, macOS (Mint) | 502 tools across 33 areas: apps, builds, TestFlight, reviews… | Credentials stored once in a private local file | MIT · 78 |
| Heimdall (erayendes) | Node (npx) | 902 tools, 13 profiles, App Store Connect API + App Store Server API (StoreKit 2) | Key in Keychain; asks for confirmation before risky changes (prices, Admin access, deletions) | MIT · 53 |
| apple-app-store-connect-mcp (devinwang) | Node (npx) | 1221 tools, "100% of spec v4.3" incl. Xcode Cloud, Game Center | Multi-account registry, per-project ASC_ACCOUNT pin | MIT · 3 |
| App Store Connect MCP (Vvlladd) | Swift, built from source | Release workflow: versions, localized metadata, builds/IPA upload, review submission | ES256 JWT via CryptoKit, multi-organization | MIT · 8 |
| Mağaza MCP (tunaarikaya) | Node (npx) | App Store Connect and Google Play in one server | Keys in Keychain, backup before config writes, shows changes before writing | MIT · 97 |
Prefer a CLI plus skills over MCP? ASC CLI skills (rorkai, 1,086 stars, MIT) teach agents to use the asc command-line tool for builds, TestFlight, metadata, submissions and signing.
How to decide:
Mostly TestFlight and release chores, Swift shop: asc-mcp or Vvlladd's server.
You need subscriptions, StoreKit transactions or refunds: Heimdall is the one whose README covers the App Store Server API.
You want every endpoint, incl. Xcode Cloud and Game Center: devinwang's server, but load only what you need (see context cost below).
You ship on iOS and Android: Mağaza MCP.
Step 3: Install and connect (commands from each README)
asc-mcp (Swift, via Mint, then Claude Code):
bash
brew install mint
mint install zelentsov-dev/asc-mcp@v4.1.6
claude mcp add --transport stdio --scope user asc-mcp -- ~/.mint/bin/asc-mcpThe README stores the key once in a local config file; then ask "List my App Store Connect apps." to test.
Heimdall (setup wizard; browser or terminal):
bash
npx -y @erayendes/asc-mcp setupThe wizard checks the credentials, lets you pick profiles and stores the key in the Keychain.
apple-app-store-connect-mcp:
bash
npx -y apple-app-store-connect-mcpNote the naming: the npm package is apple-app-store-connect-mcp, the installed command is app-store-connect-mcp.
Mağaza MCP:
bash
npx magaza-mcp kur(kur is Turkish for "install"; the README lists the other subcommands.)
Step 4: Keep context and permissions under control
Context cost. Each MCP tool definition is loaded into the agent's context. Heimdall's guide notes that its full surface would cost "well over 100k tokens" and recommends registering only the profiles a project needs. Apply the same idea to any large server.
Least privilege. A key with a Developer or App Manager role cannot do what an Admin key can. Create a separate key for the agent so you can revoke it independently.
Confirm writes. Prefer servers that confirm destructive changes (Heimdall, Mağaza MCP), and in Claude Code keep per-tool permission prompts on for write tools.
Secrets stay out of git. Do not commit
.p8files or put keys in a shared.mcp.json; Claude Code's.mcp.jsonsupports${VAR}expansion for values (Claude Code MCP docs).
Use cases that work well
"Did yesterday's TestFlight build finish processing?" (an example prompt from the Mağaza MCP README)
Summarize this week's 1-star reviews and draft replies (example from Heimdall's README).
Copy release notes to all localizations and attach the latest build to the new version.
Compare subscription prices across storefronts.
Pair it with a build server so the agent can go from code to TestFlight: see Best MCP servers for Xcode and the App Store Preflight skill for checking rejection risks before you submit.
FAQ
- What is an App Store Connect MCP server?
- A local MCP server that wraps Apple's App Store Connect API so an AI agent (Claude Code, Cursor, Codex) can read and change apps, builds, TestFlight, metadata and reviews through tool calls.
- Do I need an App Store Connect API key?
- Yes. The Account Holder must enable API access under Users and Access → Integrations; then create a team or individual key and download the .p8 file, which Apple offers only once.
- Is it safe to let an agent use my App Store Connect account?
- Limit the risk: use a dedicated key with the narrowest role, keep the .p8 out of git, load only the tool groups you need, and prefer servers that ask for confirmation before destructive changes.
- Which App Store Connect MCP server supports StoreKit 2 / subscriptions?
- Heimdall's README states it covers both the App Store Connect API and the App Store Server API (StoreKit 2), which handles customer transactions.