MCP server for App Store Connect — apps, TestFlight, reviews, users, sales. Built on @chrischall/mcp-utils.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
claude mcp add app-store-connect-mcp -- npx -y @chrischall/app-store-connect-mcp{
"mcpServers": {
"app-store-connect-mcp": {
"command": "npx",
"args": ["-y", "@chrischall/app-store-connect-mcp"]
}
}
}MCP Servers overview
# App Store Connect MCP
[](https://github.com/chrischall/app-store-connect-mcp/actions/workflows/ci.yml)
[](LICENSE)
A [Model Context Protocol](https://modelcontextprotocol.io) server that connects Claude to [App Store Connect](https://appstoreconnect.apple.com), giving you natural-language access to your apps, builds, TestFlight beta groups and testers, customer reviews, sales/finance reports, and team users.
> [!WARNING]
> **AI-developed project.** This codebase was entirely built and is actively maintained by [Claude Code](https://www.anthropic.com/claude). No human has audited the implementation. Review all code and tool permissions before use.
## What you can do
Ask Claude things like:
- *"List my apps"*
- *"Show me the latest builds for app 1234567890"*
- *"Who hasn't accepted their TestFlight invitation?"*
- *"Invite alex@example.com to the External Beta group"*
- *"Submit build 9876 for beta review"*
- *"What's our average rating in Japan this month?"*
- *"Respond to that 1-star review with an apology"*
- *"Pull yesterday's daily sales report for vendor 80012345"*
- *"Invite a new developer with App Manager role"*
## Requirements
- [Claude Desktop](https://claude.ai/download) or [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
- [Node.js](https://nodejs.org) 20.6 or later
- An [App Store Connect API key](https://appstoreconnect.apple.com/access/integrations/api) (`.p8` file, Key ID, and Issuer ID) — admin or higher access required to create
## Installation
### Option A — npm
```bash
npx -y @chrischall/app-store-connect-mcp
```
Add to your Claude config (`.mcp.json` or Claude Desktop config):
```json
{
"mcpServers": {
"app-store-connect": {
"command": "npx",
"args": ["-y", "@chrischall/app-store-connect-mcp"],
"env": {
"APP_STORE_CONNECT_KEY_ID": "ABC1234567",
"APP_STORE_CONNECT_ISSUER_ID": "57246542-96fe-1a63-e053-0824d011072a",
"APP_STORE_CONNECT_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_ABC1234567.p8"
}
}
}
}
```
### Option B — from source
```bash
git clone https://github.com/chrischall/app-store-connect-mcp.git
cd app-store-connect-mcp
npm install
npm run build
```
Add to Claude Desktop config:
- **Mac:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"app-store-connect": {
"command": "node",
"args": ["/absolute/path/to/app-store-connect-mcp/dist/bundle.js"],
"env": {
"APP_STORE_CONNECT_KEY_ID": "ABC1234567",
"APP_STORE_CONNECT_ISSUER_ID": "57246542-96fe-1a63-e053-0824d011072a",
"APP_STORE_CONNECT_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey_ABC1234567.p8"
}
}
}
}
```
## Getting an API key
1. Sign in at [App Store Connect → Users and Access → Integrations → App Store Connect API](https://appstoreconnect.apple.com/access/integrations/api).
2. Click **+** to generate a key. Pick a role appropriate to what you want Claude to do — `Developer` is enough for read-only browsing; `App Manager` for TestFlight management; `Admin` for user invites and most write operations.
3. Download the `.p8` file (you can only download it **once**) and note the **Key ID** and **Issuer ID**.
4. Either point `APP_STORE_CONNECT_PRIVATE_KEY_PATH` at the saved `.p8`, or paste the PEM contents into `APP_STORE_CONNECT_PRIVATE_KEY` (newline-escaped is fine).
The key signs short-lived (20-minute) ES256 JWTs on demand. No external token storage; nothing is sent to anyone but Apple.
## Tools
| Tool | What it does |
| --- | --- |
| `list_apps` | List apps in your account (filter by bundleId/name) |
| `get_app` | Get a single app by ID |
| `list_app_store_versions` | List App Store releases for an app |
| `get_app_infos` | Age rating and store-state info for an app |
| `list_builds` | Recent builds (newest first), filter by app/state/version |
| `get_build` | Single build details |
| `list_beta_groups` | TestFlight internal/external beta groups |
| `list_beta_testers` | Beta testers, filter by app/group/email |
| `invite_beta_tester` | Add a new tester, optionally to groups/builds |
| `delete_beta_tester` | Remove a tester from your team |
| `add_testers_to_beta_group` | Add existing testers to a group |
| `remove_testers_from_beta_group` | Remove testers from a group |
| `submit_build_for_beta_review` | Send a build for TestFlight beta review |
| `list_customer_reviews` | App Store reviews, filter by rating/territory |
| `get_customer_review` | Single review with developer response |
| `respond_to_review` | Post or update a developer reply |
| `download_sales_report` | Daily/weekly/monthly/yearly units & sales TSV |
| `download_finance_report` | Region finance/proceeds TSV |
| `list_users` | App Store Connect team users |
| `list_user_invitations` | Pending team invitations |
| `invite_user` | Invite a new team member with roles |
| `asc_healthcheck` | Verify credentials and upstream reachability; reports failures as data, not exceptions |
## Environment
| Variable | Required | Notes |
| --- | --- | --- |
| `APP_STORE_CONNECT_KEY_ID` | yes | 10-character Key ID (e.g. `ABC1234567`) |
| `APP_STORE_CONNECT_ISSUER_ID` | yes | Team Issuer ID (UUID) |
| `APP_STORE_CONNECT_PRIVATE_KEY` | one of | Full PEM contents of your `.p8`. Newline-escapes (`\n`) are accepted. |
| `APP_STORE_CONNECT_PRIVATE_KEY_PATH` | one of | Absolute path to the `.p8` file |
## Development
```bash
npm install
npm test # vitest run
npm run test:watch # watch mode
npm run build # tsc + esbuild bundle
npm run dev # node --env-file=.env dist/index.js
```
Tests mock `client.request` / `client.requestRaw`; no real App Store Connect calls are made.
## License
MIT
What people ask about app-store-connect-mcp
What is chrischall/app-store-connect-mcp?
+
chrischall/app-store-connect-mcp is mcp servers for the Claude AI ecosystem. MCP server for App Store Connect — apps, TestFlight, reviews, users, sales. Built on @chrischall/mcp-utils. It has 1 GitHub stars and its last recorded update is dated 2026-09-10.
How do I install app-store-connect-mcp?
+
You can install app-store-connect-mcp by cloning the repository (https://github.com/chrischall/app-store-connect-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is chrischall/app-store-connect-mcp safe to use?
+
Our security agent has analyzed chrischall/app-store-connect-mcp and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains chrischall/app-store-connect-mcp?
+
chrischall/app-store-connect-mcp is maintained by chrischall. The last recorded GitHub activity is dated 2026-09-10, with 0 open issues.
Are there alternatives to app-store-connect-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy app-store-connect-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/chrischall-app-store-connect-mcp)<a href="https://claudewave.com/repo/chrischall-app-store-connect-mcp"><img src="https://claudewave.com/api/badge/chrischall-app-store-connect-mcp" alt="Featured on ClaudeWave: chrischall/app-store-connect-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!