A credential that can submit a build for review can also remove a user, so the two scoping variables matter more here than on most servers: one blocks every writing tool, the other limits the agent to the domains you actually need. Every tool carries MCP annotations, so a client can tell `list_apps` from `remove_user` by itself. And when something is not covered, `appstore_request` and `appstore_list` reach the raw API rather than leaving you stuck.
A Rust MCP server over the Apple App Store Connect API. It takes a hybrid approach: 112 curated tools for the multi-step and error-prone workflows, and 2 generic JSON:API tools that reach any endpoint the curated set does not cover.
- Apps and metadata, age ratings and localisations — `list_apps`, `get_app`, `update_app`, `set_age_rating`, `create_app_info_localization`
- In-app purchases and subscriptions with their localisations, price schedules and groups — `create_in_app_purchase`, `set_iap_price_schedule`, `create_subscription_group`, `create_subscription`, `set_subscription_price`
- Versions and App Review submissions, including encryption declarations — `create_app_store_version`, `create_review_submission`, `submit_review_submission`, `create_app_encryption_declaration`
- TestFlight: builds, beta groups, testers, test notes and beta review — `list_builds`, `create_beta_group`, `add_beta_tester`, `submit_build_for_beta_review`, `set_build_test_notes`
- Provisioning and signing: bundle ids and capabilities, certificates, devices and profiles — `create_bundle_id`, `enable_bundle_id_capability`, `create_certificate`, `register_device`, `create_profile`
- Screenshots and previews uploaded, sets created and reordered — `upload_app_screenshot`, `upload_app_preview`, `create_screenshot_set`, `reorder_screenshots`
- Offers, offer codes and promoted purchases; customer reviews and responses; phased release; users and access; in-app events; Xcode Cloud; analytics reports; custom product pages — `create_promotional_offer`, `create_offer_code`, `respond_to_review`, `start_phased_release`, `invite_user`, `create_app_event`, `start_ci_build`, `request_analytics_report`, `create_custom_product_page`
- Two generic tools that call any App Store Connect endpoint with raw JSON:API documents — `appstore_request`, `appstore_list`
An App Store Connect API key: `ASC_ISSUER_ID` (the issuer UUID under Users and Access → Integrations), `ASC_KEY_ID`, and the `.p8` private key given either as a path in `ASC_PRIVATE_KEY_PATH` or inline in `ASC_PRIVATE_KEY`. Prebuilt binaries cover macOS universal, Linux x86-64 and Windows x86-64; Claude Desktop can install the `appstore-mcp.mcpb` bundle, which ships all three and prompts for the credentials. Two variables narrow what is served: `ASC_TOOLS` takes comma-separated groups such as `testflight,provisioning`, and `ASC_READ_ONLY` set to `1` serves only tools that cannot modify the account.
One command plus a key — cargo install --git https://github.com/forgeopslabs/appstore-mcp, then supply credentials
