GitHub - Stig-Johnny/appstoreconnect-mcp: MCP server for Apple App Store Connect API - Xcode Cloud build information

3 min read Original article ↗

App Store Connect MCP Server

A Model Context Protocol (MCP) server for accessing Apple's App Store Connect API, specifically for Xcode Cloud build information.

Features

  • List Xcode Cloud products (apps configured with Xcode Cloud)
  • List and inspect build runs
  • Get build actions (build, test, archive steps)
  • View build artifacts and logs
  • Get test results
  • List build issues (errors and warnings) - useful for debugging failed builds

Prerequisites

  • .NET 8.0 SDK or later
  • Apple Developer account with App Store Connect API access
  • App Store Connect API key (.p8 file)

Getting Your API Key

  1. Go to App Store Connect
  2. Navigate to Users and AccessIntegrationsApp Store Connect API
  3. Click Generate API Key (or use existing)
  4. Download the .p8 private key file (only available once!)
  5. Note the Key ID and Issuer ID

Required permissions for Xcode Cloud access:

  • App Manager or Admin role
  • Access to the apps you want to monitor

Installation

Download Pre-built Binary (Recommended)

Download the self-contained executable for your platform from the Releases page:

Platform File
macOS (Apple Silicon) appstoreconnect-mcp-osx-arm64.tar.gz
macOS (Intel) appstoreconnect-mcp-osx-x64.tar.gz
Linux (x64) appstoreconnect-mcp-linux-x64.tar.gz
Linux (ARM64) appstoreconnect-mcp-linux-arm64.tar.gz
Windows (x64) appstoreconnect-mcp-win-x64.zip

No .NET installation required - the executables are fully self-contained.

# Example: macOS Apple Silicon
curl -L https://github.com/Stig-Johnny/appstoreconnect-mcp/releases/latest/download/appstoreconnect-mcp-osx-arm64.tar.gz | tar xz
chmod +x appstoreconnect-mcp-osx-arm64/AppStoreConnectMcp

Build from Source

Requires .NET 8.0 SDK.

git clone https://github.com/Stig-Johnny/appstoreconnect-mcp.git
cd appstoreconnect-mcp/AppStoreConnectMcp
dotnet publish -c Release -r osx-arm64  # or your platform

Configuration

The server requires the following environment variables:

Variable Description
APP_STORE_CONNECT_KEY_ID Your API key ID (e.g., ABC123DEF4)
APP_STORE_CONNECT_ISSUER_ID Your issuer ID (UUID format)
APP_STORE_CONNECT_KEY_PATH Path to your .p8 private key file
APP_STORE_CONNECT_KEY_CONTENT Alternative: The private key content directly

You must provide either KEY_PATH or KEY_CONTENT, not both.

Usage with Claude Code

Add to your .mcp.json configuration:

{
  "mcpServers": {
    "appstoreconnect": {
      "type": "stdio",
      "command": "/path/to/appstoreconnect-mcp-osx-arm64/AppStoreConnectMcp",
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_KEY_PATH": "/path/to/AuthKey_XXXX.p8"
      }
    }
  }
}

Or if building from source with .NET installed:

{
  "mcpServers": {
    "appstoreconnect": {
      "type": "stdio",
      "command": "dotnet",
      "args": ["run", "--project", "/path/to/appstoreconnect-mcp/AppStoreConnectMcp"],
      "env": {
        "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",
        "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",
        "APP_STORE_CONNECT_KEY_PATH": "/path/to/AuthKey_XXXX.p8"
      }
    }
  }
}

Available Tools

ListProducts

List all Xcode Cloud products (apps configured with Xcode Cloud).

ListBuilds

List recent builds for a specific product.

  • productId: The product ID (from ListProducts)
  • limit: Maximum builds to return (default: 10)

GetBuildRun

Get details for a specific build run.

  • buildRunId: The build run ID

ListBuildActions

List all actions for a build run (build, test, archive steps).

  • buildRunId: The build run ID

GetBuildAction

Get details for a specific build action.

  • actionId: The action ID

ListArtifacts

List artifacts (logs, archives) for a build action.

  • actionId: The action ID

GetTestResults

Get test results for a build action.

  • actionId: The action ID

ListIssues

List issues (errors and warnings) for a build action. This is particularly useful for debugging failed builds.

  • actionId: The action ID

Example Workflow

  1. List products to find your app:

  2. List recent builds for your product:

    ListBuilds(productId: "abc123", limit: 5)
    
  3. Get build actions to find the failed step:

    ListBuildActions(buildRunId: "xyz789")
    
  4. List issues to see errors:

    ListIssues(actionId: "action123")
    

Security Notes

  • Never commit your .p8 private key to version control
  • Use environment variables or secure secret management
  • The API key grants access to your App Store Connect account
  • Consider using the KEY_CONTENT variable for containerized deployments

API Documentation

This server implements a subset of Apple's App Store Connect API:

License

MIT License - see LICENSE file.