Provides tools for interacting with App Store Connect API, including JWT-based authentication, retrieving apps and app details, managing app store versions, getting build information, and supporting iOS, macOS, and tvOS app platforms.
Supports working with iOS apps through the App Store Connect API, including retrieving app information, managing versions, and accessing build data.
Supports working with macOS apps through the App Store Connect API, including retrieving app information, managing versions, and accessing build data.
App Store Connect MCP Server
MCP (Model Context Protocol) server for working with App Store Connect API. This server provides a set of tools for interacting with App Store Connect through MCP-compatible clients like Claude Desktop, Cline, and other MCP clients.
Features
- JWT-based authentication with App Store Connect API
- Retrieving apps and app details
- Getting app information (ratings, states, metadata)
- Managing app store versions (create, read, update)
- Getting build information for apps
- Platform support for iOS, macOS, and tvOS apps
Installation
Configuration
To work with the App Store Connect API, you will need:
- API Key ID - API key identifier
- Issuer ID - issuer identifier
- Private Key - private key in PEM format
Getting API Keys
- Log in to App Store Connect
- Go to "Users and Access" section
- Select "Keys" tab
- Click "Generate API Key"
- Download the key file (.p8)
Configuration Options
You can configure the API credentials in two ways:
Option 1: Environment Variables (recommended for development)
Create a .env
file in the project root:
You can also copy the example file:
Option 2: MCP Configuration (recommended for production)
You can specify credentials directly in your MCP client configuration (e.g., mcp.json
for Claude Desktop). This approach is more secure as it keeps credentials in the client configuration rather than in the server codebase.
Usage
Building the Server
Running the Server
Using with MCP Clients
This server implements the Model Context Protocol (MCP) and can be used with any MCP-compatible client.
Claude Desktop Integration
Option A: Using MCP configuration with credentials (recommended)
Add to your Claude Desktop configuration (~/.cursor/mcp.json
or similar):
Option B: Using environment variables
Add to your Claude Desktop configuration:
Make sure you have a .env
file in the server directory with your credentials.
Cline Integration
Option A: Using MCP configuration with credentials
Add to your Cline MCP configuration:
Option B: Using environment variables
Add to your Cline MCP configuration:
Available Tools
Once connected to an MCP client, you can use the following tools:
1. appstore_connect_init
Initialize App Store Connect client with authentication credentials
Parameters:
keyId
(optional): API key IDissuerId
(optional): Issuer IDprivateKey
(optional): Private key in PEM formatbaseUrl
(optional): Base URL for API
2. appstore_connect_init_from_env
Initialize client from environment variables
Parameters: None
3. appstore_connect_get_env_config
Get current environment configuration (for debugging)
Parameters: None
Returns: Current configuration status showing which environment variables are set (private key is redacted for security)
4. appstore_connect_get_apps
Get list of apps
Parameters:
limit
(optional): Maximum number of apps (1-200)fields
(optional): Array of fields to includeinclude
(optional): Array of related resources to includesort
(optional): Sort order
5. appstore_connect_get_app
Get information about a specific app
Parameters:
appId
(required): App ID to retrievefields
(optional): Array of fields to includeinclude
(optional): Array of related resources to include
6. appstore_connect_get_app_store_versions
Get app versions
Parameters:
appId
(required): App ID to get versions forlimit
(optional): Maximum number of versions (1-200)fields
(optional): Array of fields to includeinclude
(optional): Array of related resources to includefilter
(optional): Filter criteria
7. appstore_connect_get_builds
Get builds for a specific app
Parameters:
appId
(required): App ID to get builds forlimit
(optional): Maximum number of builds (1-200)fields
(optional): Array of fields to includeinclude
(optional): Array of related resources to includefilter
(optional): Filter criteria
8. appstore_connect_get_app_info
Get app info for a specific app
Parameters:
appId
(required): App ID to get info forfields
(optional): Array of fields to includeinclude
(optional): Array of related resources to include
9. appstore_connect_create_app_store_version
Create a new app store version
Parameters:
appId
(required): App ID to create version forversionString
(required): Version string (e.g., "1.0.0")platform
(required): Platform (IOS, MAC_OS, TV_OS)copyright
(optional): Copyright informationreviewType
(optional): Review type (STANDARD, EXPEDITED)releaseType
(optional): Release type (AFTER_APPROVAL, MANUAL)earliestReleaseDate
(optional): Earliest release date (ISO 8601)
10. appstore_connect_update_app_store_version
Update an existing app store version
Parameters:
versionId
(required): Version ID to updateversionString
(optional): Version string (e.g., "1.0.0")copyright
(optional): Copyright informationreviewType
(optional): Review type (STANDARD, EXPEDITED)releaseType
(optional): Release type (AFTER_APPROVAL, MANUAL)earliestReleaseDate
(optional): Earliest release date (ISO 8601)
App Store Version Localizations
11. appstore_connect_get_app_store_version_localizations
Get localizations for a specific app store version
Parameters:
versionId
(required): Version ID to get localizations forlimit
(optional): Maximum number of localizations (1-200)fields
(optional): Array of fields to includeinclude
(optional): Array of related resources to includefilter
(optional): Filter criteria
12. appstore_connect_get_app_store_version_localization
Get a specific app store version localization
Parameters:
localizationId
(required): Localization ID to retrievefields
(optional): Array of fields to includeinclude
(optional): Array of related resources to include
13. appstore_connect_create_app_store_version_localization
Create a new app store version localization
Parameters:
versionId
(required): Version ID to create localization forlocale
(required): Locale code (e.g., "en-US", "ru", "zh-CN")description
(optional): App description for this locale (max 4000 characters)keywords
(optional): Keywords for this locale (max 100 bytes)marketingUrl
(optional): Marketing URL for this localepromotionalText
(optional): Promotional text for this locale (max 170 characters)supportUrl
(optional): Support URL for this localewhatsNew
(optional): What's new text for this locale (max 4000 characters)
14. appstore_connect_update_app_store_version_localization
Update an existing app store version localization
Parameters:
localizationId
(required): Localization ID to updatedescription
(optional): App description for this locale (max 4000 characters)keywords
(optional): Keywords for this locale (max 100 bytes)marketingUrl
(optional): Marketing URL for this localepromotionalText
(optional): Promotional text for this locale (max 170 characters)supportUrl
(optional): Support URL for this localewhatsNew
(optional): What's new text for this locale (max 4000 characters)
15. appstore_connect_delete_app_store_version_localization
Delete an app store version localization
Parameters:
localizationId
(required): Localization ID to delete
What's New Features
The new localization tools enable you to:
🌍 Multi-language Support
- Create and manage localizations for different markets
- Update app descriptions, keywords, and promotional text for specific locales
- Maintain consistent messaging across all supported languages
📝 What's New Management
- Update "What's New" text for each app version and locale
- Communicate new features and improvements to users in their language
- Keep release notes current and engaging
🎯 Marketing Optimization
- Customize promotional text for different markets
- Optimize keywords for local App Store search
- Manage marketing and support URLs per locale
🔄 Automated Workflows
- Bulk update localizations across multiple locales
- Automate release note updates as part of your CI/CD pipeline
- Maintain localization consistency across app versions
Usage Examples
Update What's New for Multiple Locales
Create New Localization
Development
Running Tests
Running Example
Debugging with MCP Inspector
MCP Inspector is a special tool for debugging MCP servers:
Automatic mode:
- ✅ Connects to server immediately
- ✅ No manual setup required
- ✅ Uses authentication token
Manual mode:
- 🔧 Requires setup in interface
- 📋 Command:
node
- 📋 Arguments:
build/server.js
After launch:
- 🔧 Test tools through web interface
- 📊 View request and response logs
- 🐛 Debug errors in real time
Tip: Port may be different on each launch. Use npm run open-inspector
for automatic search.
Project Structure
Development Commands
License
MIT
Security
⚠️ Important: Never commit your API keys to version control. Use environment variables or configuration files to store sensitive information.
Configuration Security Recommendations
For Development:
- Use
.env
files for local development - Add
.env
to your.gitignore
file - Use environment variables for CI/CD pipelines
For Production:
- Prefer MCP client configuration (Option A) over environment variables
- Store credentials in secure configuration management systems
- Use least-privilege API keys with minimal required permissions
- Regularly rotate API keys
Private Key Format:
- Ensure your private key includes proper line breaks (
\n
) - The authentication system automatically handles both literal
\n
strings and actual line breaks
Support
If you have questions or issues, create an issue in the project repository.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A server implementing Model Context Protocol for interacting with the App Store Connect API, enabling management of iOS, macOS, and tvOS apps through MCP-compatible clients like Claude Desktop and Cline.
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server to communicate with the App Store Connect API for iOS DevelopersLast updated -1318051TypeScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.Last updated -462Python
- AsecurityAlicenseAqualityA Model Context Protocol server that provides tools for Xcode-related operations, making it easier to work with iOS project management, building, testing, archiving, and deploying apps to both simulators and physical devices.Last updated -943JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables running AppleScript code to interact with Mac applications and system features including Notes, Calendar, Contacts, Messages, file management, and more.Last updated -1448171JavaScriptMIT License