The free Simple App Shipper Mac app ships an MCP server with 167 App Store Connect operations exposed as agent-callable tools. Download the app, add one line to your agent config, and Claude Code, Cursor, Codex, or Xcode 26.3's agent can drive App Store Connect end-to-end.
Anything that's in App Store Connect's REST API — and a few things that aren't (chunked screenshot upload, "What's New" generated from git commits, AI-translated metadata across all locales, build attach-and-submit flow). Here's the surface area, grouped:
.app, launch by bundle ID, screenshot (single + parallel fleet), open deep links, send hardware events. Pure xcrun simctl — public Apple tooling, no install dance.Build upload (which Apple ships through Transporter, not REST) is wrapped by upload_binary — agents can submit .ipa / .pkg files end-to-end. Only create_app (which Apple still gates to the App Store Connect web UI) returns an unsupported-feature note pointing the agent there.
The simulator-side tools let an agent do a full screenshot run end-to-end: boot the App-Store-required device matrix, install your build, launch it on each, screenshot in parallel, and save a folder of named PNGs to disk — all from one Claude Code session. Tap/swipe injection stays in the Mac app (it requires Accessibility permission tied to a specific bundle); everything else runs via the bundled sas-mcp shim.
The MCP server ships inside the Mac app bundle as sas-mcp. There's no separate CLI to install, no git clone, no brew tap, no PATH dance — and no credentials live anywhere except your Mac app's own storage.
The app is a free download. The first launch walks you through pasting in your App Store Connect API key — Key ID, Issuer ID, and .p8 file. From then on the embedded MCP server can talk to Apple on your behalf.
The bundled sas-mcp binary is a thin stdio shim — your agent client spawns it as a subprocess, and it proxies JSON-RPC calls to the Mac app's local server. As long as Simple App Shipper is running, every call is logged in the in-app Agent Activity Feed so you can audit (or pause) whatever your agent is doing in real time.
Pick your client. Snippets are below — same shim, three config formats.
Pick whichever you use day-to-day. All of them speak MCP.
Add to ~/.claude/mcp_settings.json — see snippet below.
Add to ~/.cursor/mcp.json — same shape as Claude Code.
In Xcode → Settings → AI → MCP Servers → Add. Paste the bundled shim path; no env vars needed.
Add to ~/.codex/config.toml — Codex MCP block.
~/.claude/mcp_settings.json{ "mcpServers": { "simple-app-shipper": { "command": "/Applications/Simple App Shipper.app/Contents/MacOS/sas-mcp" } } }
~/.cursor/mcp.json{ "mcpServers": { "simple-app-shipper": { "command": "/Applications/Simple App Shipper.app/Contents/MacOS/sas-mcp" } } }
~/.codex/config.toml[mcp_servers.simple-app-shipper] command = "/Applications/Simple App Shipper.app/Contents/MacOS/sas-mcp"
No credentials in the snippet, no env vars, no tokens — the shim asks the running Mac app, which holds your ASC API key in its own secure storage. If you moved the app somewhere other than /Applications, point command at <your path>/Simple App Shipper.app/Contents/MacOS/sas-mcp instead.
The agent calls the right tools automatically. You don't memorize tool names — just say what you want.
› Bump my app's version to 2.4.0, write release notes from the
last 14 commits, AI-translate "What's New" into every locale,
attach build 47, and stage it for review (don't submit).
› For my app, list versions in review or rejected. For each,
show the rejection reason, the contact info on the review
detail, and any failed pre-submit checks.
› Create a PPO experiment named "icon-v3-test" at 80% traffic
with my candidate icon vs the current default. Print the
App Store Connect analytics URL when done.
› Read my en-US version metadata, then translate the description,
promotional text, what's new, and keywords into all 28 locales
on this version. Save as drafts. Don't submit.
› List the simulators. Boot iPhone 17 Pro Max, iPhone 11 Pro Max,
iPhone 8 Plus, iPad Pro 13", and iPad Pro 12.9". Install
~/Build/MyApp.app on all five. Launch com.example.MyApp on each.
Wait 3 seconds, then screenshot all five in parallel into
~/Desktop/AppStoreShots/screen-1/. Open simpleappshipper://onboarding-step-2
on all five, wait 2 seconds, screenshot into screen-2/. Repeat for
step 3.
127.0.0.1, never the LAN.Download is free. The Mac app, the MCP server, and the agent surface come in one bundle — no separate CLI, no GitHub clone, no build step. AI features (image generation, vision analysis, screen-to-HTML) run on credits; Pro is $7.99/mo for 30k credits if you want them.