App Store Connect MCP Server

App Store Connect MCP Server

Conversational AI server for App Store Connect management via MCP

139
Stars
23
Forks
139
Watchers
4
Issues
App Store Connect MCP Server is a Model Context Protocol (MCP) compliant server that enables seamless interaction with Apple's App Store Connect API. It empowers users to manage apps, beta testers, devices, bundle IDs, app metadata, and capabilities through natural language. The server supports secure authentication, real-time analytics, and localization management, streamlining development, DevOps, and product workflows.

Key Features

Natural language app management
Beta tester and group administration
Multi-language localization handling
Real-time analytics and reporting
App Store metadata updates
Bundle ID and capability management
Registered device listing and filtering
User roles and permissions management
Secure JWT authentication with App Store Connect API
Integration with developer tools and workflows

Use Cases

Automating iOS and macOS app management tasks
Managing beta testing programs and feedback collection
Updating and localizing app descriptions and metadata
Accessing and downloading app analytics and sales reports
Registering and managing test devices
Controlling user roles and permissions in development teams
Coordinating product release schedules and app versions
Streamlining app store workflows for DevOps
Supporting marketing teams in metadata and localization updates
Integrating app management with conversational AI assistants

README

App Store Connect MCP Server

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.

Install MCP Server

Overview

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

Key Benefits:

  • 🤖 AI-Powered App Management: Use natural language to manage your iOS and macOS apps
  • 📊 Comprehensive Analytics: Access detailed app performance, sales, and user engagement data
  • 👥 Streamlined Beta Testing: Efficiently manage beta groups and testers
  • 🌍 Localization Management: Update app descriptions, keywords, and metadata across all languages
  • 🔧 Developer Tools Integration: List Xcode project schemes and integrate with development workflows
  • 🔐 Secure Authentication: Uses official App Store Connect API with JWT authentication
  • 🚀 Real-time Data: Access up-to-date information directly from Apple's systems

Who This Is For:

  • iOS/macOS developers managing apps in App Store Connect
  • Development teams coordinating beta testing programs
  • Product managers analyzing app performance and user engagement
  • Marketing teams managing app metadata and localizations
  • DevOps engineers automating app store workflows
  • Anyone looking to streamline their Apple developer experience

This 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.

MseeP.ai Security Assessment Badge

Features

  • App Management

    • List all apps
    • Get detailed app information
    • View app metadata and relationships
  • Beta Testing

    • List beta groups
    • List beta testers
    • Add/remove testers from groups
    • Manage beta test configurations
    • View beta feedback with screenshots and device information
  • App Store Version LocalizationsNEW

    • Create new app store versions with release scheduling
    • List all app store versions for an app
    • List all localizations for an app version
    • Get specific localization details
    • Update app descriptions, keywords, and promotional text
    • Manage marketing and support URLs
    • Update "What's New" text for releases
  • Bundle ID Management

    • List bundle IDs
    • Create new bundle IDs
    • Get bundle ID details
    • Enable/disable capabilities
  • Device Management

    • List registered devices
    • Filter by device type, platform, status
    • View device details
  • User Management

    • List team members
    • View user roles and permissions
    • Filter users by role and access
  • Analytics & Reports

    • Create analytics report requests for apps
    • Download App Store engagement, commerce, and usage analytics
    • Access performance and frameworks usage reports
    • Download sales and trends reports (daily, weekly, monthly, yearly)
    • Download finance reports by region
  • Xcode Development Tools

    • List available schemes in Xcode projects and workspaces
    • Integrate with development workflows and CI/CD pipelines

Installation

Using Smithery

To install App Store Connect Server for Claude Desktop automatically:

bash
npx @smithery/cli install appstore-connect-mcp-server --client claude

Manual Installation

bash
npm install @joshuarileydev/app-store-connect-mcp-server

Configuration

Add the following to your Claude Desktop configuration file:

macOS

bash
~/Library/Application Support/Claude/claude_desktop_config.json

Windows

bash
%APPDATA%\Claude\claude_desktop_config.json
json
{
  "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

Required Configuration

  1. Generate an App Store Connect API Key from App Store Connect
  2. Download the .p8 private key file
  3. Note your Key ID and Issuer ID
  4. Set the required environment variables in your configuration:
    • APP_STORE_CONNECT_KEY_ID: Your API Key ID
    • APP_STORE_CONNECT_ISSUER_ID: Your Issuer ID
    • APP_STORE_CONNECT_P8_PATH: Path to your .p8 private key file

Optional Configuration for Sales & Finance Reports

To enable sales and finance reporting tools, you'll also need:

  • APP_STORE_CONNECT_VENDOR_NUMBER: Your vendor number from App Store Connect

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

Complete Tool Reference

📱 App Management Tools

list_apps

Get a list of all apps in App Store Connect.

Parameters:

  • limit (optional): Maximum number of apps to return (default: 100, max: 200)
  • bundleId (optional): Filter by bundle identifier

Example:

"List all my apps"
"Show me apps with bundle ID com.example.myapp"
"Get the first 50 apps"

get_app_info

Get detailed information about a specific app.

Parameters:

  • appId (required): The ID of the app
  • include (optional): Related resources to include (e.g., appClips, appInfos, appStoreVersions, betaGroups, builds)

Example:

"Get info for app ID 123456789"
"Show me app 123456789 with beta groups and builds"
"Get detailed information about my app including app store versions"

👥 Beta Testing Tools

list_beta_groups

List all beta testing groups (internal and external).

Parameters:

  • limit (optional): Maximum number of groups to return (default: 100, max: 200)
  • appId (optional): Filter by app ID

Example:

"Show all beta groups"
"List beta groups for app 123456789"
"Get the first 20 beta groups"

list_group_testers

List testers in a specific beta group.

Parameters:

  • groupId (required): The ID of the beta group
  • limit (optional): Maximum number of testers to return (default: 100, max: 200)

Example:

"List all testers in group ABC123"
"Show me the first 50 testers in beta group ABC123"

add_tester_to_group

Add a new tester to a beta group.

Parameters:

  • groupId (required): The ID of the beta group
  • email (required): Email address of the tester
  • firstName (optional): Tester's first name
  • lastName (optional): Tester's last name

Example:

"Add john@example.com to beta group ABC123"
"Add John Smith (john@example.com) to group ABC123"

remove_tester_from_group

Remove a tester from a beta group.

Parameters:

  • groupId (required): The ID of the beta group
  • testerId (required): The ID of the tester

Example:

"Remove tester XYZ789 from group ABC123"
"Delete tester XYZ789 from beta group ABC123"

list_beta_feedback_screenshots

List beta feedback screenshot submissions.

Parameters:

  • appId (optional): Filter by app ID
  • bundleId (optional): Filter by bundle identifier
  • buildId (optional): Filter by build ID
  • limit (optional): Maximum results (default: 100)
  • includeBuilds (optional): Include build information
  • includeTesters (optional): Include tester information

Example:

"Show beta feedback screenshots for app 123456789"
"List feedback screenshots for bundle ID com.example.app"
"Get feedback with tester info for build XYZ"

get_beta_feedback_screenshot

Get detailed information about a specific beta feedback screenshot.

Parameters:

  • feedbackId (required): The ID of the feedback
  • includeBuilds (optional): Include build information
  • includeTesters (optional): Include tester information
  • downloadScreenshot (optional): Download the screenshot image (default: true)

Example:

"Get feedback screenshot FEEDBACK123"
"Show me feedback FEEDBACK123 with tester details"
"Download screenshot from feedback FEEDBACK123"

🌍 App Store Version Localization Tools

create_app_store_version

Create a new app store version for an app.

Parameters:

  • appId (required): The ID of the app
  • platform (required): The platform (IOS, MAC_OS, TV_OS, VISION_OS)
  • versionString (required): Version string in format X.Y or X.Y.Z (e.g., '1.0' or '1.0.0')
  • copyright (optional): Copyright text for this version
  • releaseType (optional): How the app should be released (MANUAL, AFTER_APPROVAL, SCHEDULED)
  • earliestReleaseDate (optional): ISO 8601 date string (required when releaseType is SCHEDULED)
  • buildId (optional): ID of the build to associate with this version

Example:

"Create iOS version 2.0.0 for app 123456789"
"Create macOS version 1.5.0 for app 123456789 with manual release"
"Create scheduled iOS version 2.1.0 for app 123456789 releasing on 2024-02-01"
"Create version 1.2.0 for app 123456789 with build BUILD456 and copyright '2024 My Company'"

list_app_store_versions

Get all app store versions for a specific app.

Parameters:

  • appId (required): The ID of the app
  • limit (optional): Maximum number of versions to return (default: 100, max: 200)
  • filter (optional): Filter options
    • platform: Filter by platform (IOS, MAC_OS, TV_OS)
    • versionString: Filter by version string (e.g., '1.0.0')
    • appStoreState: Filter by state (e.g., READY_FOR_SALE, PREPARE_FOR_SUBMISSION)

Example:

"List all versions for app 123456789"
"Show iOS versions for app 123456789"
"Find version 2.0.0 for app 123456789"
"List versions in review for app 123456789"

list_app_store_version_localizations

Get all localizations for a specific app store version.

Parameters:

  • appStoreVersionId (required): The ID of the app store version
  • limit (optional): Maximum number of localizations (default: 100, max: 200)

Example:

"List all localizations for app version VERSION123"
"Show me language versions for app store version VERSION123"

get_app_store_version_localization

Get detailed information about a specific localization.

Parameters:

  • localizationId (required): The ID of the localization

Example:

"Get localization details for LOCALE123"
"Show me the French localization LOCALE123"

update_app_store_version_localization

Update a specific field in an app store version localization.

Parameters:

  • localizationId (required): The ID of the localization
  • field (required): Field to update (description, keywords, marketingUrl, promotionalText, supportUrl, whatsNew)
  • value (required): New value for the field

Example:

"Update description for localization LOCALE123 to 'Amazing new app description'"
"Change keywords for LOCALE123 to 'productivity, tasks, organize'"
"Update what's new text for LOCALE123 to 'Bug fixes and performance improvements'"

🔤 Bundle ID Management Tools

create_bundle_id

Register a new bundle ID for app development.

Parameters:

  • identifier (required): The bundle ID string (e.g., 'com.example.app')
  • name (required): A name for the bundle ID
  • platform (required): Platform (IOS, MAC_OS, or UNIVERSAL)
  • seedId (optional): Your team's seed ID

Example:

"Create bundle ID com.mycompany.newapp for iOS named 'My New App'"
"Register universal bundle ID com.example.app called 'Example App'"

list_bundle_ids

Find and list bundle IDs registered to your team.

Parameters:

  • limit (optional): Maximum results (default: 100, max: 200)
  • sort (optional): Sort order (name, -name, platform, -platform, identifier, -identifier)
  • filter (optional): Filter by identifier, name, platform, or seedId
  • include (optional): Include related resources (profiles, bundleIdCapabilities, app)

Example:

"List all bundle IDs"
"Show iOS bundle IDs sorted by name"
"Find bundle IDs containing 'example'"

get_bundle_id_info

Get detailed information about a specific bundle ID.

Parameters:

  • bundleIdId (required): The ID of the bundle ID
  • include (optional): Related resources to include
  • fields (optional): Specific fields to include

Example:

"Get info for bundle ID BUNDLE123"
"Show bundle ID BUNDLE123 with capabilities"

enable_bundle_capability

Enable a capability for a bundle ID.

Parameters:

  • bundleIdId (required): The ID of the bundle ID
  • capabilityType (required): Type of capability (e.g., PUSH_NOTIFICATIONS, ICLOUD, GAME_CENTER)
  • settings (optional): Capability-specific settings

Example:

"Enable push notifications for bundle ID BUNDLE123"
"Add iCloud capability to bundle BUNDLE123"
"Enable Game Center for bundle ID BUNDLE123"

disable_bundle_capability

Disable a capability for a bundle ID.

Parameters:

  • capabilityId (required): The ID of the capability to disable

Example:

"Disable capability CAP123"
"Remove capability CAP123 from bundle ID"

📱 Device Management Tools

list_devices

Get a list of all devices registered to your team.

Parameters:

  • limit (optional): Maximum results (default: 100, max: 200)
  • sort (optional): Sort order (name, platform, status, udid, deviceClass, model, addedDate)
  • filter (optional): Filter by name, platform, status, udid, or deviceClass
  • fields (optional): Specific fields to include

Example:

"List all devices"
"Show enabled iOS devices"
"Find devices with name containing 'John'"
"List iPhones sorted by date added"

👤 User Management Tools

list_users

Get a list of all users on your App Store Connect team.

Parameters:

  • limit (optional): Maximum results (default: 100, max: 200)
  • sort (optional): Sort order (username, firstName, lastName, roles)
  • filter (optional): Filter by username or roles
  • fields (optional): Specific fields to include
  • include (optional): Include visibleApps relationship

Example:

"List all team members"
"Show users with admin role"
"Find developers sorted by last name"
"List users with their visible apps"

📊 Analytics & Reports Tools

create_analytics_report_request

Create a new analytics report request for an app.

Parameters:

  • appId (required): The app ID
  • accessType (required): Type of analytics (ONGOING or ONE_TIME_SNAPSHOT)
  • frequency (optional): Report frequency for ongoing reports (DAILY, WEEKLY, MONTHLY)
  • startDate (optional): Start date (YYYY-MM-DD)
  • endDate (optional): End date (YYYY-MM-DD)

Example:

"Create daily analytics report for app 123456789"
"Generate one-time snapshot report for app 123456789 from 2024-01-01 to 2024-01-31"

list_analytics_reports

Get available analytics reports for a request.

Parameters:

  • reportRequestId (required): The report request ID
  • limit (optional): Maximum results (default: 100, max: 200)
  • filter (optional): Filter by category, name, or date

Example:

"List reports for request REQ123"
"Show app usage reports for request REQ123"

list_analytics_report_segments

Get segments for a specific analytics report.

Parameters:

  • reportId (required): The analytics report ID
  • limit (optional): Maximum results (default: 100, max: 200)

Example:

"List segments for report REPORT123"
"Get download URLs for report REPORT123"

download_analytics_report_segment

Download data from an analytics report segment.

Parameters:

  • url (required): The segment download URL

Example:

"Download data from https://api.appstoreconnect.apple.com/..."

💰 Sales & Finance Reports Tools (Requires Vendor Number)

download_sales_report

Download sales and trends reports.

Parameters:

  • frequency (required): Report frequency (DAILY, WEEKLY, MONTHLY, YEARLY)
  • reportDate (required): Date in appropriate format
  • reportType (required): Type of report (SALES, SUBSCRIPTION, SUBSCRIPTION_EVENT, SUBSCRIBER, NEWSSTAND, PREORDER)
  • reportSubType (required): SUMMARY or DETAILED
  • vendorNumber (optional): Override default vendor number
  • version (optional): Report version (default: 1_0)

Example:

"Download daily sales summary for 2024-01-15"
"Get monthly subscription detailed report for 2024-01"
"Download yearly sales summary for 2023"

download_finance_report

Download finance reports for a specific region.

Parameters:

  • reportDate (required): Report date (YYYY-MM)
  • regionCode (required): Region code (e.g., 'Z1' for worldwide)
  • vendorNumber (optional): Override default vendor number

Example:

"Download finance report for January 2024 worldwide"
"Get finance report for 2024-01 region Z1"

🔧 Xcode Development Tools

list_schemes

List all available schemes in an Xcode project or workspace.

Parameters:

  • projectPath (required): Path to .xcodeproj or .xcworkspace file

Example:

"List schemes in /Users/john/MyApp/MyApp.xcodeproj"
"Show available schemes for MyApp.xcworkspace"

Error Handling

The server implements proper error handling for:

  • Invalid authentication
  • Missing required parameters
  • API rate limits
  • Network issues
  • Invalid operations

Development

bash
# Install dependencies
npm install

# Build the project
npm run build

# Run tests
npm test

# Run type checking
npm run type-check

License

This project is licensed under the MIT License - see the LICENSE file for details.

Related Links

Star History

Star History Chart

Repository Owner

Repository Details

Language TypeScript
Default Branch main
Size 15,704 KB
Contributors 3
License MIT License
MCP Verified Nov 12, 2025

Programming Languages

TypeScript
55.38%
JavaScript
32.81%
Python
11.66%
Dockerfile
0.15%

Tags

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • Mac Apps Launcher MCP Server

    Mac Apps Launcher MCP Server

    Launch and manage macOS applications via an MCP server.

    Mac Apps Launcher MCP Server enables the listing, launching, and management of macOS applications through the Model Context Protocol. Designed to integrate with systems supporting MCP, it provides standardized methods to enumerate app folders, launch apps by name, and open files with specified applications. Configuration details are provided for integration with Claude Config JSON.

    • 16
    • MCP
    • JoshuaRileyDev/mac-apps-launcher
  • Xcode MCP Server

    Xcode MCP Server

    Comprehensive Xcode integration server for AI assistants using the Model Context Protocol.

    Xcode MCP Server provides an MCP-compliant interface for AI agents to interact with Xcode projects on macOS. It supports project management, simulator control, CocoaPods and Swift Package Manager integration, and advanced file and build operations. Enhanced error handling and multi-project support enable seamless automation and context management for complex Xcode workflows.

    • 330
    • MCP
    • r-huijts/xcode-mcp-server
  • Authenticator App MCP Server

    Authenticator App MCP Server

    Secure MCP server for AI-assisted access to 2FA codes and passwords.

    Authenticator App MCP Server provides a secure Model Context Protocol (MCP) server enabling AI agents to interact with authentication credentials, such as 2FA codes and passwords. It facilitates automated login processes for AI assistants while maintaining robust security by requiring access tokens and integrating with the Authenticator App desktop client. This solution streamlines the management of user credentials across multiple platforms and websites, ensuring seamless and secure credential retrieval by AI agents.

    • 27
    • MCP
    • firstorderai/authenticator_mcp
  • MetaTrader MCP Server

    MetaTrader MCP Server

    Let AI assistants trade for you using natural language.

    MetaTrader MCP Server is a bridge that connects AI assistants such as Claude and ChatGPT to the MetaTrader 5 trading platform via the Model Context Protocol (MCP). It enables users to perform trading actions on MetaTrader 5 through natural language instructions. The system supports real-time data access, full account management, and secure local credential handling, offering both MCP and REST API interfaces.

    • 120
    • MCP
    • ariadng/metatrader-mcp-server
  • CapsuleCRM MCP Server

    CapsuleCRM MCP Server

    Natural language access and management for CapsuleCRM via MCP.

    CapsuleCRM MCP Server connects Claude AI directly to CapsuleCRM, enabling users to interact with their CRM using natural language. It allows for powerful searching, filtering, insights, and automation of tasks within the CRM. The platform provides capabilities such as customer management, sales pipeline tracking, and task management, all securely integrated via the CapsuleCRM API. This tool enhances CRM workflows by translating conversational commands into actionable CRM operations through the Model Context Protocol.

    • 0
    • MCP
    • MonadsAG/capsulecrm-mcp
  • MCP Atlassian

    MCP Atlassian

    AI-powered MCP server integrating Confluence and Jira workflows.

    MCP Atlassian serves as a Model Context Protocol (MCP) server interface for Atlassian products such as Confluence and Jira, supporting both cloud and server/data center deployments. It enables AI assistants to access, search, and update Atlassian data contextually via standardized MCP endpoints. The integration streamlines tasks like intelligent issue filtering, documentation creation, and context-driven updates directly through natural language. Multiple authentication modes, including API tokens and OAuth 2.0, are supported for secure connectivity.

    • 3,574
    • MCP
    • sooperset/mcp-atlassian
  • Didn't find tool you were looking for?

    Be as detailed as possible for better results