home / mcp / app store connect mcp server
Provides direct MCP access to App Store Connect data and actions through authenticated commands and tools.
Configuration
View docs{
"mcpServers": {
"joshuarileydev-app-store-connect-mcp-server": {
"command": "npx",
"args": [
"-y",
"appstore-connect-mcp-server"
],
"env": {
"APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_CONNECT_P8_PATH": "/path/to/your/auth-key.p8",
"APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_CONNECT_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER_OPTIONAL"
}
}
}
}The App Store Connect MCP Server lets you manage App Store Connect data through conversational commands. It connects to Apple’s systems using MCP and JWT-based authentication, enabling you to perform app management, beta testing, localizations, analytics, and more from natural language interactions. This server helps you automate routine tasks, access up-to-date information, and integrate App Store Connect workflows into your development and operations workflows.
You interact with the App Store Connect MCP Server through an MCP client by invoking the available tools and endpoints described in the server's capabilities. Use natural language prompts to perform tasks such as listing your apps, managing beta testers, creating app store versions, updating localization details, retrieving analytics, and generating reports. Each tool has clearly defined parameters you can supply in your requests, and the server returns structured results you can act on in your automation or reporting pipelines.
Prerequisites you need before installation are a modern Node.js and npm environment. Ensure you have Node.js v14+ and npm installed on your system.
Option A: Install via Smithery (recommended for automatic setup)
npx @smithery/cli install appstore-connect-mcp-server --client claudeOption B: Manual installation (local MCP server package)
npm install @joshuarileydev/app-store-connect-mcp-serverConfigure the MCP server in your client’s configuration so the client can start and communicate with the server. The provided configuration snippet shows how to run the server using npx and set the required environment variables.
Set up the MCP server connection in your client configuration file. The example below demonstrates a stdio-based runtime using npm’s npx to launch the server, along with required environment variables.
{
"mcpServers": {
"app_store_connect": {
"command": "npx",
"args": [
"-y",
"appstore-connect-mcp-server"
],
"env": {
"APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_CONNECT_P8_PATH": "/path/to/your/auth-key.p8",
"APP_STORE_CONNECT_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER_OPTIONAL"
}
}
}
}Authentication relies on an App Store Connect API key and a private key in .p8 format. You provide the key ID, issuer ID, and the path to your private key in the server configuration. Optionally, you can configure a vendor number for sales and finance reporting.
If you encounter authentication or network issues, verify that your API key, issuer, and key file path are correct and that the server process has access to the private key. Check that required environment variables are present in your runtime environment and that you have enabled any required vendor-number settings when you need sales and finance reports.
Keep your API keys secure and rotate them as recommended by Apple. Use the vendor number only when you intend to access sales and finance reports. Regularly monitor permissions and access for team members who interact with App Store Connect data through the MCP server.
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Run type checking
npm run type-checkGet a list of all apps in App Store Connect, with optional filters like limit and bundleId.
Retrieve detailed information for a specific app, including related resources such as app store versions and beta groups.
List internal or external beta testing groups for an app, with optional filtering by appId and limit.
List testers within a specific beta group by groupId, with an optional limit.
Add a tester to a beta group by providing groupId and tester email, with optional firstName/lastName.
Remove a tester from a beta group using groupId and testerId.
List beta feedback screenshots with optional filtering by appId, bundleId, buildId, and tester information.
Get detailed beta feedback screenshot information and optionally download the image.
Create a new app store version for an app with platform, versionString, and optional release settings.
List all app store versions for an app with optional filtering by platform, versionString, and status.
List all localizations for a specific app store version.
Get details for a specific localization by localizationId.
Update fields like description, keywords, marketingUrl, promotionalText, supportUrl, or whatsNew for a localization.
Register a new bundle ID with identifier, name, platform, and optional seedId.
List bundle IDs with optional limits, sorting, and filters.
Get detailed information for a specific bundle ID.
Enable a capability for a bundle ID with a given capabilityType and optional settings.
Disable a specific capability by capabilityId.
List devices registered to your team with optional filtering and fields.
List team members with filters for username/roles and optional fields.
Create a new analytics report request for an app with type and timeframe parameters.
List available analytics reports for a given requestId with optional filtering.
Get segments for a specific analytics report to access data slices.
Download data from a specific analytics report segment using a URL.
Download sales and trends reports for a given frequency and date with optional vendor number override.
Download finance reports for a given date and region with optional vendor number override.
List available Xcode schemes in a given project or workspace path.