A Model Context Protocol (MCP) server for interacting with the App Store Connect API. This server provides tools for managing apps, beta testers, bundle IDs, devices, app metadata, and capabilities in App Store Connect. The App Store Connect MCP Server is a comprehensive tool that bridges the gap between AI and Apple's App Store Connect ecosystem. Built on the Model Context Protocol (MCP), this se
Add this skill
npx mdskills install JoshuaRileyDev/app-store-connect-mcp-serverComprehensive App Store Connect integration with extensive tools for app management, beta testing, and analytics
1# App Store Connect MCP Server23A Model Context Protocol (MCP) server for interacting with the App Store Connect API. This server provides tools for managing apps, beta testers, bundle IDs, devices, app metadata, and capabilities in App Store Connect.45[](https://cursor.com/install-mcp?name=app-store-connect&config=JTdCJTIyY29tbWFuZCUyMiUzQSUyMm5weCUyMC15JTIwYXBwc3RvcmUtY29ubmVjdC1tY3Atc2VydmVyJTIyJTdE)67## Overview89The App Store Connect MCP Server is a comprehensive tool that bridges the gap between AI and Apple's App Store Connect ecosystem. Built on the Model Context Protocol (MCP), this server enables developers to interact with their App Store Connect data directly through conversational AI, making app management, beta testing, and analytics more accessible than ever.1011**Key Benefits:**12- ๐ค **AI-Powered App Management**: Use natural language to manage your iOS and macOS apps13- ๐ **Comprehensive Analytics**: Access detailed app performance, sales, and user engagement data14- ๐ฅ **Streamlined Beta Testing**: Efficiently manage beta groups and testers15- ๐ **Localization Management**: Update app descriptions, keywords, and metadata across all languages16- ๐ง **Developer Tools Integration**: List Xcode project schemes and integrate with development workflows17- ๐ **Secure Authentication**: Uses official App Store Connect API with JWT authentication18- ๐ **Real-time Data**: Access up-to-date information directly from Apple's systems1920**Who This Is For:**21- iOS/macOS developers managing apps in App Store Connect22- Development teams coordinating beta testing programs23- Product managers analyzing app performance and user engagement24- Marketing teams managing app metadata and localizations25- DevOps engineers automating app store workflows26- Anyone looking to streamline their Apple developer experience2728This server transforms complex App Store Connect operations into simple conversational commands, whether you're checking app analytics, managing beta testers, updating app descriptions, or exploring your development pipeline.2930<a href="https://glama.ai/mcp/servers/z4j2smln34"><img width="380" height="200" src="https://glama.ai/mcp/servers/z4j2smln34/badge" alt="app-store-connect-mcp-server MCP server" /></a>31<a href="https://smithery.ai/server/appstore-connect-mcp-server" style="text-decoration: none;">32 <img alt="Smithery Installations" src="https://smithery.ai/badge/appstore-connect-mcp-server" />33</a>34[](https://mseep.ai/app/joshuarileydev-app-store-connect-mcp-server)3536## Features3738- **App Management**39 - List all apps40 - Get detailed app information41 - View app metadata and relationships4243- **Beta Testing**44 - List beta groups45 - List beta testers46 - Add/remove testers from groups47 - Manage beta test configurations48 - View beta feedback with screenshots and device information4950- **App Store Version Localizations** โจ **NEW**51 - Create new app store versions with release scheduling52 - List all app store versions for an app53 - List all localizations for an app version54 - Get specific localization details55 - Update app descriptions, keywords, and promotional text56 - Manage marketing and support URLs57 - Update "What's New" text for releases5859- **Bundle ID Management**60 - List bundle IDs61 - Create new bundle IDs62 - Get bundle ID details63 - Enable/disable capabilities6465- **Device Management**66 - List registered devices67 - Filter by device type, platform, status68 - View device details6970- **User Management**71 - List team members72 - View user roles and permissions73 - Filter users by role and access7475- **Analytics & Reports**76 - Create analytics report requests for apps77 - Download App Store engagement, commerce, and usage analytics78 - Access performance and frameworks usage reports79 - Download sales and trends reports (daily, weekly, monthly, yearly)80 - Download finance reports by region8182- **Xcode Development Tools**83 - List available schemes in Xcode projects and workspaces84 - Integrate with development workflows and CI/CD pipelines8586## Installation8788### Using Smithery8990To install App Store Connect Server for Claude Desktop automatically:9192```bash93npx @smithery/cli install appstore-connect-mcp-server --client claude94```9596### Manual Installation9798```bash99npm install @joshuarileydev/app-store-connect-mcp-server100```101102## Configuration103104Add the following to your Claude Desktop configuration file:105106### macOS107```bash108~/Library/Application Support/Claude/claude_desktop_config.json109```110111### Windows112```bash113%APPDATA%\Claude\claude_desktop_config.json114```115116```json117{118 "mcpServers": {119 "app-store-connect": {120 "command": "npx",121 "args": [122 "-y",123 "appstore-connect-mcp-server"124 ],125 "env": {126 "APP_STORE_CONNECT_KEY_ID": "YOUR_KEY_ID",127 "APP_STORE_CONNECT_ISSUER_ID": "YOUR_ISSUER_ID",128 "APP_STORE_CONNECT_P8_PATH": "/path/to/your/auth-key.p8",129 "APP_STORE_CONNECT_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER_OPTIONAL"130 }131 }132 }133}134```135136## Authentication137138### Required Configuration1391. Generate an App Store Connect API Key from [App Store Connect](https://appstoreconnect.apple.com/access/integrations/api)1402. Download the .p8 private key file1413. Note your Key ID and Issuer ID1424. Set the required environment variables in your configuration:143 - `APP_STORE_CONNECT_KEY_ID`: Your API Key ID144 - `APP_STORE_CONNECT_ISSUER_ID`: Your Issuer ID145 - `APP_STORE_CONNECT_P8_PATH`: Path to your .p8 private key file146147### Optional Configuration for Sales & Finance Reports148To enable sales and finance reporting tools, you'll also need:149- `APP_STORE_CONNECT_VENDOR_NUMBER`: Your vendor number from App Store Connect150151**Note**: Sales and finance report tools (`download_sales_report`, `download_finance_report`) will only be available if the vendor number is configured. You can find your vendor number in App Store Connect under "Sales and Trends" or "Payments and Financial Reports".152153## Complete Tool Reference154155### ๐ฑ App Management Tools156157#### `list_apps`158Get a list of all apps in App Store Connect.159160**Parameters:**161- `limit` (optional): Maximum number of apps to return (default: 100, max: 200)162- `bundleId` (optional): Filter by bundle identifier163164**Example:**165```166"List all my apps"167"Show me apps with bundle ID com.example.myapp"168"Get the first 50 apps"169```170171#### `get_app_info`172Get detailed information about a specific app.173174**Parameters:**175- `appId` (required): The ID of the app176- `include` (optional): Related resources to include (e.g., appClips, appInfos, appStoreVersions, betaGroups, builds)177178**Example:**179```180"Get info for app ID 123456789"181"Show me app 123456789 with beta groups and builds"182"Get detailed information about my app including app store versions"183```184185### ๐ฅ Beta Testing Tools186187#### `list_beta_groups`188List all beta testing groups (internal and external).189190**Parameters:**191- `limit` (optional): Maximum number of groups to return (default: 100, max: 200)192- `appId` (optional): Filter by app ID193194**Example:**195```196"Show all beta groups"197"List beta groups for app 123456789"198"Get the first 20 beta groups"199```200201#### `list_group_testers`202List testers in a specific beta group.203204**Parameters:**205- `groupId` (required): The ID of the beta group206- `limit` (optional): Maximum number of testers to return (default: 100, max: 200)207208**Example:**209```210"List all testers in group ABC123"211"Show me the first 50 testers in beta group ABC123"212```213214#### `add_tester_to_group`215Add a new tester to a beta group.216217**Parameters:**218- `groupId` (required): The ID of the beta group219- `email` (required): Email address of the tester220- `firstName` (optional): Tester's first name221- `lastName` (optional): Tester's last name222223**Example:**224```225"Add john@example.com to beta group ABC123"226"Add John Smith (john@example.com) to group ABC123"227```228229#### `remove_tester_from_group`230Remove a tester from a beta group.231232**Parameters:**233- `groupId` (required): The ID of the beta group234- `testerId` (required): The ID of the tester235236**Example:**237```238"Remove tester XYZ789 from group ABC123"239"Delete tester XYZ789 from beta group ABC123"240```241242#### `list_beta_feedback_screenshots`243List beta feedback screenshot submissions.244245**Parameters:**246- `appId` (optional): Filter by app ID247- `bundleId` (optional): Filter by bundle identifier248- `buildId` (optional): Filter by build ID249- `limit` (optional): Maximum results (default: 100)250- `includeBuilds` (optional): Include build information251- `includeTesters` (optional): Include tester information252253**Example:**254```255"Show beta feedback screenshots for app 123456789"256"List feedback screenshots for bundle ID com.example.app"257"Get feedback with tester info for build XYZ"258```259260#### `get_beta_feedback_screenshot`261Get detailed information about a specific beta feedback screenshot.262263**Parameters:**264- `feedbackId` (required): The ID of the feedback265- `includeBuilds` (optional): Include build information266- `includeTesters` (optional): Include tester information267- `downloadScreenshot` (optional): Download the screenshot image (default: true)268269**Example:**270```271"Get feedback screenshot FEEDBACK123"272"Show me feedback FEEDBACK123 with tester details"273"Download screenshot from feedback FEEDBACK123"274```275276### ๐ App Store Version Localization Tools277278#### `create_app_store_version`279Create a new app store version for an app.280281**Parameters:**282- `appId` (required): The ID of the app283- `platform` (required): The platform (IOS, MAC_OS, TV_OS, VISION_OS)284- `versionString` (required): Version string in format X.Y or X.Y.Z (e.g., '1.0' or '1.0.0')285- `copyright` (optional): Copyright text for this version286- `releaseType` (optional): How the app should be released (MANUAL, AFTER_APPROVAL, SCHEDULED)287- `earliestReleaseDate` (optional): ISO 8601 date string (required when releaseType is SCHEDULED)288- `buildId` (optional): ID of the build to associate with this version289290**Example:**291```292"Create iOS version 2.0.0 for app 123456789"293"Create macOS version 1.5.0 for app 123456789 with manual release"294"Create scheduled iOS version 2.1.0 for app 123456789 releasing on 2024-02-01"295"Create version 1.2.0 for app 123456789 with build BUILD456 and copyright '2024 My Company'"296```297298#### `list_app_store_versions`299Get all app store versions for a specific app.300301**Parameters:**302- `appId` (required): The ID of the app303- `limit` (optional): Maximum number of versions to return (default: 100, max: 200)304- `filter` (optional): Filter options305 - `platform`: Filter by platform (IOS, MAC_OS, TV_OS)306 - `versionString`: Filter by version string (e.g., '1.0.0')307 - `appStoreState`: Filter by state (e.g., READY_FOR_SALE, PREPARE_FOR_SUBMISSION)308309**Example:**310```311"List all versions for app 123456789"312"Show iOS versions for app 123456789"313"Find version 2.0.0 for app 123456789"314"List versions in review for app 123456789"315```316317#### `list_app_store_version_localizations`318Get all localizations for a specific app store version.319320**Parameters:**321- `appStoreVersionId` (required): The ID of the app store version322- `limit` (optional): Maximum number of localizations (default: 100, max: 200)323324**Example:**325```326"List all localizations for app version VERSION123"327"Show me language versions for app store version VERSION123"328```329330#### `get_app_store_version_localization`331Get detailed information about a specific localization.332333**Parameters:**334- `localizationId` (required): The ID of the localization335336**Example:**337```338"Get localization details for LOCALE123"339"Show me the French localization LOCALE123"340```341342#### `update_app_store_version_localization`343Update a specific field in an app store version localization.344345**Parameters:**346- `localizationId` (required): The ID of the localization347- `field` (required): Field to update (description, keywords, marketingUrl, promotionalText, supportUrl, whatsNew)348- `value` (required): New value for the field349350**Example:**351```352"Update description for localization LOCALE123 to 'Amazing new app description'"353"Change keywords for LOCALE123 to 'productivity, tasks, organize'"354"Update what's new text for LOCALE123 to 'Bug fixes and performance improvements'"355```356357### ๐ค Bundle ID Management Tools358359#### `create_bundle_id`360Register a new bundle ID for app development.361362**Parameters:**363- `identifier` (required): The bundle ID string (e.g., 'com.example.app')364- `name` (required): A name for the bundle ID365- `platform` (required): Platform (IOS, MAC_OS, or UNIVERSAL)366- `seedId` (optional): Your team's seed ID367368**Example:**369```370"Create bundle ID com.mycompany.newapp for iOS named 'My New App'"371"Register universal bundle ID com.example.app called 'Example App'"372```373374#### `list_bundle_ids`375Find and list bundle IDs registered to your team.376377**Parameters:**378- `limit` (optional): Maximum results (default: 100, max: 200)379- `sort` (optional): Sort order (name, -name, platform, -platform, identifier, -identifier)380- `filter` (optional): Filter by identifier, name, platform, or seedId381- `include` (optional): Include related resources (profiles, bundleIdCapabilities, app)382383**Example:**384```385"List all bundle IDs"386"Show iOS bundle IDs sorted by name"387"Find bundle IDs containing 'example'"388```389390#### `get_bundle_id_info`391Get detailed information about a specific bundle ID.392393**Parameters:**394- `bundleIdId` (required): The ID of the bundle ID395- `include` (optional): Related resources to include396- `fields` (optional): Specific fields to include397398**Example:**399```400"Get info for bundle ID BUNDLE123"401"Show bundle ID BUNDLE123 with capabilities"402```403404#### `enable_bundle_capability`405Enable a capability for a bundle ID.406407**Parameters:**408- `bundleIdId` (required): The ID of the bundle ID409- `capabilityType` (required): Type of capability (e.g., PUSH_NOTIFICATIONS, ICLOUD, GAME_CENTER)410- `settings` (optional): Capability-specific settings411412**Example:**413```414"Enable push notifications for bundle ID BUNDLE123"415"Add iCloud capability to bundle BUNDLE123"416"Enable Game Center for bundle ID BUNDLE123"417```418419#### `disable_bundle_capability`420Disable a capability for a bundle ID.421422**Parameters:**423- `capabilityId` (required): The ID of the capability to disable424425**Example:**426```427"Disable capability CAP123"428"Remove capability CAP123 from bundle ID"429```430431### ๐ฑ Device Management Tools432433#### `list_devices`434Get a list of all devices registered to your team.435436**Parameters:**437- `limit` (optional): Maximum results (default: 100, max: 200)438- `sort` (optional): Sort order (name, platform, status, udid, deviceClass, model, addedDate)439- `filter` (optional): Filter by name, platform, status, udid, or deviceClass440- `fields` (optional): Specific fields to include441442**Example:**443```444"List all devices"445"Show enabled iOS devices"446"Find devices with name containing 'John'"447"List iPhones sorted by date added"448```449450### ๐ค User Management Tools451452#### `list_users`453Get a list of all users on your App Store Connect team.454455**Parameters:**456- `limit` (optional): Maximum results (default: 100, max: 200)457- `sort` (optional): Sort order (username, firstName, lastName, roles)458- `filter` (optional): Filter by username or roles459- `fields` (optional): Specific fields to include460- `include` (optional): Include visibleApps relationship461462**Example:**463```464"List all team members"465"Show users with admin role"466"Find developers sorted by last name"467"List users with their visible apps"468```469470### ๐ Analytics & Reports Tools471472#### `create_analytics_report_request`473Create a new analytics report request for an app.474475**Parameters:**476- `appId` (required): The app ID477- `accessType` (required): Type of analytics (ONGOING or ONE_TIME_SNAPSHOT)478- `frequency` (optional): Report frequency for ongoing reports (DAILY, WEEKLY, MONTHLY)479- `startDate` (optional): Start date (YYYY-MM-DD)480- `endDate` (optional): End date (YYYY-MM-DD)481482**Example:**483```484"Create daily analytics report for app 123456789"485"Generate one-time snapshot report for app 123456789 from 2024-01-01 to 2024-01-31"486```487488#### `list_analytics_reports`489Get available analytics reports for a request.490491**Parameters:**492- `reportRequestId` (required): The report request ID493- `limit` (optional): Maximum results (default: 100, max: 200)494- `filter` (optional): Filter by category, name, or date495496**Example:**497```498"List reports for request REQ123"499"Show app usage reports for request REQ123"500```501502#### `list_analytics_report_segments`503Get segments for a specific analytics report.504505**Parameters:**506- `reportId` (required): The analytics report ID507- `limit` (optional): Maximum results (default: 100, max: 200)508509**Example:**510```511"List segments for report REPORT123"512"Get download URLs for report REPORT123"513```514515#### `download_analytics_report_segment`516Download data from an analytics report segment.517518**Parameters:**519- `url` (required): The segment download URL520521**Example:**522```523"Download data from https://api.appstoreconnect.apple.com/..."524```525526### ๐ฐ Sales & Finance Reports Tools (Requires Vendor Number)527528#### `download_sales_report`529Download sales and trends reports.530531**Parameters:**532- `frequency` (required): Report frequency (DAILY, WEEKLY, MONTHLY, YEARLY)533- `reportDate` (required): Date in appropriate format534- `reportType` (required): Type of report (SALES, SUBSCRIPTION, SUBSCRIPTION_EVENT, SUBSCRIBER, NEWSSTAND, PREORDER)535- `reportSubType` (required): SUMMARY or DETAILED536- `vendorNumber` (optional): Override default vendor number537- `version` (optional): Report version (default: 1_0)538539**Example:**540```541"Download daily sales summary for 2024-01-15"542"Get monthly subscription detailed report for 2024-01"543"Download yearly sales summary for 2023"544```545546#### `download_finance_report`547Download finance reports for a specific region.548549**Parameters:**550- `reportDate` (required): Report date (YYYY-MM)551- `regionCode` (required): Region code (e.g., 'Z1' for worldwide)552- `vendorNumber` (optional): Override default vendor number553554**Example:**555```556"Download finance report for January 2024 worldwide"557"Get finance report for 2024-01 region Z1"558```559560### ๐ง Xcode Development Tools561562#### `list_schemes`563List all available schemes in an Xcode project or workspace.564565**Parameters:**566- `projectPath` (required): Path to .xcodeproj or .xcworkspace file567568**Example:**569```570"List schemes in /Users/john/MyApp/MyApp.xcodeproj"571"Show available schemes for MyApp.xcworkspace"572```573574## Error Handling575576The server implements proper error handling for:577- Invalid authentication578- Missing required parameters579- API rate limits580- Network issues581- Invalid operations582583## Development584585```bash586# Install dependencies587npm install588589# Build the project590npm run build591592# Run tests593npm test594595# Run type checking596npm run type-check597```598599## License600601This project is licensed under the MIT License - see the LICENSE file for details.602603## Related Links604- [Model Context Protocol Documentation](https://modelcontextprotocol.io)605- [App Store Connect API Documentation](https://developer.apple.com/documentation/appstoreconnectapi)606- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
Full transparency โ inspect the skill content before installing.