Control your App Store release from Claude Code
Pick how version 2.4 goes live once it's approved: by hand, automatically, or on a date. Then start a phased rollout, pause it when a crash report lands, and finish it when the numbers look right, all by asking Claude Code.
Setup checked October 2026 against Claude Code MCP docs, permissions
Connect Claude Code once
01 · Add the server
Run it in any terminal. --scope user makes MetaRun available in every project; leave it out to limit it to the current one.
claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp02 · Sign in
In a Claude Code session, run /mcp, choose metarun and authenticate. MetaRun opens in your browser, where you pick read-only or read and change. From a plain shell, claude mcp login metarun does the same.
/mcp03 · Optional: add the skills too
The MetaRun plug-in bundles the same server with six mission skills (release handoff, worldwide pricing, localization, review inbox, ASO audit, store media).
claude plugin marketplace add metarun/metarun-skills
claude plugin install metarun-skills@metarunPrefer a personal access token (scripts, CI)?
Add the server with a token
Mint a personal access token in MetaRun under Settings, MCP. It's shown once and can be revoked any time.
claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp \
--header "Authorization: Bearer $METARUN_TOKEN"Or share it with your team in .mcp.json
Project scope writes .mcp.json at the repo root. Claude Code expands ${METARUN_TOKEN} from each person's environment, so the token itself is never committed.
{
"mcpServers": {
"metarun": {
"type": "http",
"url": "https://metarun.dev/api/mcp",
"headers": { "Authorization": "Bearer ${METARUN_TOKEN}" }
}
}
}What Claude Code handles here
Release settings live in two places in App Store Connect: the version's release option (manual, automatic after approval, or a scheduled date) and the phased release toggle. After launch the phased release has its own pause and resume controls. None of it is hard, but it's always needed at the moment you're watching crash numbers somewhere else.
MetaRun exposes each control as a preview and apply pair. Claude Code can read the version's state, change the release option before approval, release a version that's waiting for you, and move a phased rollout through start, pause, resume, complete or cancel.
Before you start
- A version that's approved and waiting, or already live with phased release on.
- For release options: a version that hasn't been submitted yet.
- An API key with the Admin or App Manager role.
How it runs
- 01
Read where the version stands
Claude Code reads the version state first. Release options only change before submission; a manual release only applies to a version that's waiting for developer release.
- 02
Preview the transition
Every control previews the exact transition, for example phased release from active to paused, with a confirm token tied to the current state.
- 03
Apply on your approval
Claude Code asks before running the apply. If the rollout moved in the meantime (someone paused it in App Store Connect), the token is stale and the apply refuses.
- 04
Check the history
Each change lands in MetaRun's change history, attributed to the agent, next to manual and MILO changes for the same app.
An example session in Claude Code
Set 2.4 to release automatically after approval with a phased rollout.
- apple_list_versionsVersion 2.4 is Ready for Sale, phased release active.
- apple_list_reviewsSeveral new reviews mention a crash on launch since 2.4.
- apple_preview_phased_releasePreview: pause, from Active to Paused.
- Claude Code asks before running apple_apply_phased_release. You read the preview above and approve.
- apple_apply_phased_releasePaused. Automatic updates stop; people can still update by hand.
Illustrative: your apps, versions and numbers will differ. The tool names and their order are real.
The MetaRun tools Claude Code calls
| Tool | What it does |
|---|---|
| apple_list_versionsread | Versions with their state, so the agent knows what's approved and what's live. |
| apple_preview_set_release_optionspreview + apply | Manual, automatic after approval, or scheduled with an earliest release date. |
| apple_preview_phased_releasepreview + apply | Start, pause, resume, complete or cancel a phased rollout. |
| apple_preview_manual_releasepreview + apply | Release an approved version that's waiting for you. Irreversible. |
| apple_preview_set_territory_releasepreview + apply | Change availability, release date or pre-order for individual territories. |
| apple_get_perf_metricsread | Apple's performance metrics for the app, to check before widening a rollout. |
| apple_list_reviewsread | Recent customer reviews, to catch complaints about the new version. |
Each preview has an apply twin (the same name with apply instead of preview) that only runs with the confirm token from a fresh preview, and refuses if App Store Connect changed in between. MetaRun tools save to your MetaRun workspace only (studio projects, tracked keywords), never to Apple.
What Apple enforces, and how MetaRun handles it
A phased release runs for 7 days
Apple widens automatic updates over seven days: 1%, 2%, 5%, 10%, 20%, 50%, then everyone. New downloads and manual updates get the new version from day one.
Pausing has a 30-day budget
You can pause a phased release for up to 30 days in total. Completing it releases to all users at once.
Releasing is irreversible
A manual release can't be undone, which is why the preview says so and the tool is marked outward. Pulling a bad version means a new build, not a rollback.
Release options lock at submission
MetaRun changes a version's release option while the version is being prepared, ready for review or rejected, the states where App Store Connect accepts edits to it. Set it before you submit.
What to ask Claude Code
- Ask Claude Code: Set 2.4 to release automatically after approval with a phased rollout.
- Ask Claude Code: Crash rate on 2.4 just doubled. Pause the phased release now and show me the last 20 reviews.
- Ask Claude Code: Everything looks fine after three days. Complete the phased release for 2.4.
Run it from a script with Claude Code
claude -p runs one request with no interactive session. The browser sign-in can't complete inside -p, so sign in once interactively first, or configure the server with a personal access token in CI. Tools missing from --allowedTools are refused in -p mode.
Read-only check, safe to schedule
claude -p "Report the state of the latest version of com.example.app and its phased release, including the current rollout day. Read only." \
--allowedTools "mcp__metarun__apple_list_versions,mcp__metarun__apple_preview_set_release_options,mcp__metarun__apple_preview_phased_release,mcp__metarun__apple_preview_manual_release,mcp__metarun__apple_preview_set_territory_release,mcp__metarun__apple_get_perf_metrics,mcp__metarun__apple_list_reviews"Only reads and previews are on that list, so nothing can reach App Store Connect unattended. Run applies in an interactive session where Claude Code can ask you.
How Claude Code asks before a change
Claude Code asks before every MCP tool call by default. You can allow a tool for the session or permanently; allow rules look like mcp__metarun__apple_list_versions for one tool, and mcp__metarun__* allows the whole server, applies included. Allowing reads and previews is reasonable. Leave the apply tools on ask: that prompt is the confirm step for every App Store change.
Frequently asked questions
Can Claude Code pause a phased release?
Yes. apple_preview_phased_release covers start, pause, resume, complete and cancel. The apply runs after you approve it in Claude Code, and it refuses if the rollout's state changed since the preview.
Can I schedule a release for a specific date?
Yes, before you submit: set the release option to scheduled with an earliest release date. Apple releases on or after that date once the version is approved.
Can MetaRun roll back a release?
No, and neither can Apple. A released version stays released. You can pause a phased rollout to stop automatic updates while you ship a fix.
Is this different from releasing in App Store Connect?
It's the same Apple API calls behind the same buttons. The difference is that Claude Code reads the state first, previews the transition, and every change is recorded in your history.
How do I connect Claude Code to App Store Connect?
Run claude mcp add --transport http --scope user metarun https://metarun.dev/api/mcp, then run /mcp in Claude Code and sign in to MetaRun in your browser. After that, ask for "phased release" in plain words and Claude Code picks the MetaRun tools.
Does Claude Code see my App Store Connect key?
No. Your App Store Connect API key stays envelope-encrypted on MetaRun's servers and is decrypted per request. Claude Code holds a MetaRun token that you can revoke in Settings at any time.
More with Claude Code
Claude Code
Submit for review
Attach the build, clear export compliance, run the readiness sweep, submit.
OpenClaude Code
Release notes
Write What's New from your changelog and stage it in every language.
OpenClaude Code
Reply to reviews
Triage App Store reviews, find the themes, and post replies you've approved.
OpenClaude Code
TestFlight
Hand builds to tester groups, write What to Test, and read crash feedback.
OpenPhased release with another agent
In depth: App Store Connect MCP server
Agent access
14-day free trial with agent access. No credit card. Your Apple key stays encrypted on MetaRun.