Install
openclaw skills install @chrischall/app-store-connect-mcpThis skill should be used when the user asks about App Store Connect data — their apps, builds, TestFlight beta testers, customer reviews, sales reports, or team users. Triggers on phrases like "check App Store Connect", "list my apps", "TestFlight builds", "beta testers", "App Store reviews", "respond to review", "sales report", "invite tester", "App Store Connect users", or any request involving Apple developer / App Store Connect / TestFlight management.
openclaw skills install @chrischall/app-store-connect-mcpMCP server for App Store Connect — 22 tools covering apps, TestFlight, customer reviews, sales/finance reports, team users, and a credential healthcheck via the App Store Connect API.
Set three env vars in your MCP host config:
APP_STORE_CONNECT_KEY_ID — 10-character Key ID (e.g. ABC1234567)APP_STORE_CONNECT_ISSUER_ID — Team Issuer ID (UUID)APP_STORE_CONNECT_PRIVATE_KEY_PATH — absolute path to your downloaded .p8 file (or paste PEM into APP_STORE_CONNECT_PRIVATE_KEY)Generate a key at appstoreconnect.apple.com → Users and Access → Integrations → App Store Connect API. Save the .p8 (only downloadable once).
list_apps — List apps (filter by bundleId/name)get_app — App details by IDlist_app_store_versions — Releases for an appget_app_infos — Age rating and store-state infolist_builds — Recent builds, newest firstget_build — Single build detailslist_beta_groups — Internal & external beta groupslist_beta_testers — Testers, filter by app/group/emailinvite_beta_tester — Add a new tester (optionally to groups/builds)delete_beta_tester — Remove tester from teamadd_testers_to_beta_group — Bulk add to a groupremove_testers_from_beta_group — Bulk remove from a groupsubmit_build_for_beta_review — Send build for beta reviewlist_customer_reviews — Reviews for an app, filter by rating/territoryget_customer_review — Single review with developer responserespond_to_review — Post or update replydownload_sales_report — Daily/weekly/monthly/yearly units & sales TSVdownload_finance_report — Region-scoped finance/proceeds TSVlist_users — Team userslist_user_invitations — Pending invitationsinvite_user — Invite new team member with rolesasc_healthcheck — Is this connector working? Reports which of the three key settings resolved, whether App Store Connect accepted the signed JWT, and what to fix. Start here when another tool fails: a 401 here means a revoked key, a key/issuer team mismatch, or local clock drift — never a wrong password.Triage low-rated reviews
list_customer_reviews with rating: 1 (sorted -createdDate by default)get_customer_review to see if there's already a responserespond_to_review to replyPromote a build to external testers
list_builds with appId to find the build (look for processingState: VALID)submit_build_for_beta_review with that build's IDadd_testers_to_beta_group for the external groupOnboard a new beta tester
list_beta_groups with appId to find the right groupinvite_beta_tester with email, optional name, and betaGroupIdsDaily sales pull
download_sales_report with your vendorNumber (from App Store Connect → Payments and Financial Reports), reportDate: YYYY-MM-DD, default frequency: DAILYfilter[name]=value, sorts use - prefix for descending.limit rows (default 500) but reports the total row count..p8 file path (or PEM string). The MCP signs short-lived (20-minute) ES256 JWTs locally — your private key never leaves the machine.