Appstore Release MCP runs on your own machine — the client starts it, so there is no endpoint to ping. 46 installs a week from npm. Last commit 19 Aug 2026.
App Store release pilot — version bump, TestFlight upload, metadata, review submission
We read the source, 4 d ago · rules 995398eba69f
What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.
const child = spawn(command, args, {
Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.
We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.
This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.
claude mcp add appstore-release-mcp -e 'APPLE_KEY_ID=<APPLE_KEY_ID>' -e 'APPLE_ISSUER_ID=<APPLE_ISSUER_ID>' -e 'ASC_BUNDLE_ID=<ASC_BUNDLE_ID>' -- npx -y appstore-release-mcp
{
"mcpServers": {
"appstore-release-mcp": {
"command": "npx",
"args": [
"-y",
"appstore-release-mcp"
],
"env": {
"APPLE_ISSUER_ID": "<APPLE_ISSUER_ID>",
"APPLE_KEY_ID": "<APPLE_KEY_ID>",
"ASC_BUNDLE_ID": "<ASC_BUNDLE_ID>"
}
}
}
}
[mcp_servers.appstore-release-mcp]
command = "npx"
args = ["-y", "appstore-release-mcp"]
env = { APPLE_KEY_ID = "<APPLE_KEY_ID>", APPLE_ISSUER_ID = "<APPLE_ISSUER_ID>", ASC_BUNDLE_ID = "<ASC_BUNDLE_ID>" }
{
"mcpServers": {
"appstore-release-mcp": {
"command": "npx",
"args": [
"-y",
"appstore-release-mcp"
],
"env": {
"APPLE_ISSUER_ID": "<APPLE_ISSUER_ID>",
"APPLE_KEY_ID": "<APPLE_KEY_ID>",
"ASC_BUNDLE_ID": "<ASC_BUNDLE_ID>"
}
}
}
}
{
"servers": {
"appstore-release-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"appstore-release-mcp"
],
"env": {
"APPLE_ISSUER_ID": "<APPLE_ISSUER_ID>",
"APPLE_KEY_ID": "<APPLE_KEY_ID>",
"ASC_BUNDLE_ID": "<ASC_BUNDLE_ID>"
}
}
}
}
Put your own values in place of
<APPLE_KEY_ID> (App Store Connect API key ID), <APPLE_ISSUER_ID> (App Store Connect API issuer ID), <ASC_BUNDLE_ID> (Bundle identifier of the app to manage, e.g. com.example.myapp).
The author’s registry entry marks them as required.
Optional settings from the registry entry, left out of the block above:
ASC_KEY_PATH (Path to the .p8 App Store Connect API private key (alternative: APPLE_KEY_CONTENT with base64-encoded key)), APPLE_KEY_CONTENT (Base64-encoded .p8 private key content (alternative to ASC_KEY_PATH)), APPLE_TEAM_ID (Apple Developer team ID (required for builds/uploads)), ASC_PROJECT_DIR (Xcode project root where fastlane runs (default: current working directory)), ASC_PLATFORM (App Store platform: IOS (default), MAC_OS, TV_OS, or VISION_OS), ASC_FASTLANE_LANE (Fastlane lane used for archive + upload (default: beta)), ASC_FASTLANE_PLATFORM (Fastlane platform prefix, e.g. mac or ios), ASC_UPLOAD_CMD (Full override of the upload command, e.g. 'bundle exec fastlane ios beta').
Signing, TestFlight, App Store metadata, screenshots and App Review for AI agents, on a NoMac Mac.
MCP server for App Store Connect: releases, TestFlight, reviews, reports. Read-only by default.
MCP server for App Store Connect: releases, TestFlight, reviews, reports. Read-only by default.
App Store Connect MCP: apps, TestFlight, reviews, sales reports, and team users.
App Store Connect for MCP clients: PPP pricing, subscriptions, TestFlight, reviews, reports & more
Share iOS and Android test builds: upload, install links, testers, store readiness and releases.
Checks current App Store version by bundle ID. x402 payment required (testnet USDC).
App Store Connect API as MCP: apps, TestFlight, subscriptions, localizations, reports. JWT auth.
Answers built from our own checks of this server.