Back to Browse

App Store Connect MCP Server

Developer ToolsLow Risk10.0LocalNew
Free

App Store Connect MCP: apps, TestFlight, reviews, sales reports, and team users.

About

App Store Connect MCP: apps, TestFlight, reviews, sales reports, and team users.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 1 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (105/106 approved).

5 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

file_system

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

10-character App Store Connect API Key ID (e.g. ABC1234567).Optional

Environment variable: APP_STORE_CONNECT_KEY_ID

Team Issuer ID (UUID) from App Store Connect → Users and Access → Integrations.Optional

Environment variable: APP_STORE_CONNECT_ISSUER_ID

Absolute path to your downloaded .p8 private key file. Either this or APP_STORE_CONNECT_PRIVATE_KEY is required.Required

Environment variable: APP_STORE_CONNECT_PRIVATE_KEY_PATH

PEM contents of your .p8 private key. Either this or APP_STORE_CONNECT_PRIVATE_KEY_PATH is required.Required

Environment variable: APP_STORE_CONNECT_PRIVATE_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-chrischall-app-store-connect-mcp": {
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "your-app-store-connect-key-id-here",
        "APP_STORE_CONNECT_ISSUER_ID": "your-app-store-connect-issuer-id-here",
        "APP_STORE_CONNECT_PRIVATE_KEY": "your-app-store-connect-private-key-here",
        "APP_STORE_CONNECT_PRIVATE_KEY_PATH": "your-app-store-connect-private-key-path-here"
      },
      "args": [
        "-y",
        "@chrischall/app-store-connect-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

App Store Connect MCP

CI license

A Model Context Protocol server that connects Claude to App Store Connect, 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. 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

Installation

Option A — npm

npx -y @chrischall/app-store-connect-mcp

Add to your Claude config (.mcp.json or Claude Desktop config):

{
  "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

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
{
  "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.
  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

ToolWhat it does
list_appsList apps in your account (filter by bundleId/name)
get_appGet a single app by ID
list_app_store_versionsList App Store releases for an app
get_app_infosAge rating and store-state info for an app
list_buildsRecent builds (newest first), filter by app/state/version
get_buildSingle build details
list_beta_groupsTestFlight internal/external beta groups
list_beta_testersBeta testers, filter by app/group/email
invite_beta_testerAdd a new tester, optionally to groups/builds
delete_beta_testerRemove a tester from your team
add_testers_to_beta_groupAdd existing testers to a group
remove_testers_from_beta_groupRemove testers from a group
submit_build_for_beta_reviewSend a build for TestFlight beta review
list_customer_reviewsApp Store reviews, filter by rating/territory
get_customer_reviewSingle review with developer response
respond_to_reviewPost or update a developer reply
download_sales_reportDaily/weekly/monthly/yearly units & sales TSV
download_finance_reportRegion finance/proceeds TSV
list_usersApp Store Connect team users
list_user_invitationsPending team invitations
invite_userInvite a new team member with roles

Environment

VariableRequiredNotes
APP_STORE_CONNECT_KEY_IDyes10-character Key ID (e.g. ABC1234567)
APP_STORE_CONNECT_ISSUER_IDyesTeam Issuer ID (UUID)
APP_STORE_CONNECT_PRIVATE_KEYone ofFull PEM contents of your .p8. Newline-escapes (\n) are accepted.
APP_STORE_CONNECT_PRIVATE_KEY_PATHone ofAbsolute path to the .p8 file

Development

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

Reviews

No reviews yet

Be the first to review this server!