🍏 App Store Connect MCP Server
A powerful Model Context Protocol (MCP) server for managing iOS app releases, TestFlight distribution, screenshots, and review submissions directly from your AI Assistant (Claude, Gemini, etc.).
No more clicking through App Store Connect for 20 minutes just to submit a new version. Let your AI agent handle the deployment pipeline.
"Claude, distribute the latest build to the Internal Testers group." "Gemini, create version 2.1.0, attach the newest build, and submit it for review." "Claude, what was the reason for our last App Store rejection?"
🌟 Key Features
- 🚀 End-to-end Releases: Create versions, assign builds, update "What's New", and submit for review.
- ✈️ TestFlight Automation: Distribute builds to beta groups and manage testers.
- 🖼️ Metadata & Screenshots: Update app descriptions, keywords, privacy policies, and upload/delete screenshots.
- 📊 Financials & Sales: Fetch daily/weekly sales and financial reports.
- 🛡️ Pre-flight Checks: Built-in error handling and submission pre-flight validation.
🛠️ Provided Tools
📦 Apps & Metadata
asc_list_apps- List all apps under your accountasc_get_app_info- Detailed app info (privacy policy, age rating, localizations)asc_update_app_info_localization- Update privacy policy URL, name, subtitle per locale
🚀 Versions & Release
asc_list_versions- Fetch all versions with states (LIVE, DRAFT, REJECTED, etc.)asc_create_version- Create a new App Store versionasc_update_whats_new- Batch update "What's New" for all localesasc_update_version_localization- Update single locale metadata (description, keywords)asc_get_version_localizations- View all locale metadataasc_assign_build- Attach a TestFlight build to a version
✈️ Builds & TestFlight
asc_list_builds- View recent builds and their processing statusasc_get_build_details- Detailed build infoasc_list_beta_groups- List TestFlight beta groupsasc_add_build_to_beta_group- Distribute build to a specific tester groupasc_set_testflight_whats_new- Set TestFlight release notesasc_get_testflight_feedback- Pull tester screenshot + crash feedback (text, device, OS, tester, build) so an AI agent can triage it
🔍 Review & Submission
asc_get_review_submission- Check review status, demo account, and rejection infoasc_update_review_detail- Set demo account, reviewer notes, contact infoasc_submit_for_review- Submit version for review (with pre-flight checks)asc_get_rejection_reasons- View recent rejection reasons and resolutions
📊 Reports
asc_sales_report- Sales data (daily/weekly/monthly)asc_financial_report- Financial reports by region
📸 Screenshots
asc_list_screenshot_sets- View screenshot setsasc_upload_screenshot- 3-step upload automation (reserve, upload, commit)asc_delete_screenshot- Delete a single screenshotasc_delete_all_screenshots- Clear an entire screenshot set
⚙️ Quick Start
1. Generate App Store Connect API Keys
- Go to App Store Connect > Users and Access > Keys.
- Generate an App Store Connect API Key with App Manager or Admin access.
- Download the
.p8file. You will also need theKey IDandIssuer ID.
2. Installation
Clone this repository and build:
git clone https://github.com/YOUR_USERNAME/asc-mcp-server.git
cd asc-mcp-server
npm install
npm run build
3. Connect to Claude Code (or any MCP Client)
Use the claude mcp add command to inject this server into your Claude environment:
claude mcp add asc-mcp -- node /path/to/asc-mcp-server/dist/index.js
Then configure the environment variables in your Claude settings (~/.claude/settings.json):
{
"mcpServers": {
"asc-mcp": {
"command": "node",
"args": ["/path/to/asc-mcp-server/dist/index.js"],
"env": {
"APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_CONNECT_P8_PATH": "/path/to/AuthKey_YOUR_KEY_ID.p8"
}
}
}
}
🤖 AI Workflow Examples
1. New Release Pipeline
Just tell your AI: "Prepare the latest build for release. Create version 2.1.0, attach the build, update the release notes, set the demo account password, and submit it for review."
The AI will sequentially execute:
asc_list_builds -> asc_create_version -> asc_update_whats_new -> asc_assign_build -> asc_update_review_detail -> asc_submit_for_review
2. Handle Rejections
"Why was our app rejected? Read the rejection reason, let me fix the code, then update the review notes explaining the fix and resubmit."
3. Quick TestFlight Push
"Distribute the newest build to the 'Internal Testers' group and set the notes to 'Added dark mode'."
4. Triage Beta Feedback
"What are TestFlight testers saying about the latest build? Summarize the crashes and complaints."
The AI will call asc_get_testflight_feedback and summarize the screenshot + crash submissions for you.
5. Auto-Generate Release Notes from Git
"Look at the commits since our last tag, write user-friendly release notes from them (no commit-speak), and push them as the What's New text."
The AI reads your local git history, drafts copy, then calls asc_update_whats_new (and can loop over each locale via asc_update_version_localization).
6. ASO Keyword Refresh
"Pull our current App Store keywords, research what's trending for our category, and update the keyword field with a stronger 100-character set."
The AI calls asc_get_version_localizations to read the current keywords, then asc_update_version_localization to write the new ones back.
7. Auto-Respond to Reviews
"Reply to this week's 1 and 2-star reviews with a genuinely helpful, empathetic response."
The AI calls asc_list_customer_reviews, drafts a reply per review, then posts each one with asc_respond_to_review.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.