add_tester_to_group
Add a new tester to a beta group
Read a TestFlight bug report with its screenshot, device model and OS version attached, then create the next App Store version and download the sales report behind it.
No longer maintained. The GitHub repository for this server is archived — no fixes or security updates are expected.
LABSCO SUMMARY
Beta feedback comes back with the screenshot image itself plus the device model, OS version and tester comment, so a report can be read and triaged in the turn it is found rather than in a browser afterwards. Around it sits the paperwork half of a release — versions, localizations edited a field at a time, bundle IDs and capabilities, and the report pipeline that ends in a downloadable segment. One tool points the other way: list_schemes reads an Xcode project on your disk rather than anything in App Store Connect.
An App Store Connect client covering TestFlight groups and feedback, App Store versions and localizations, bundle IDs and capabilities, devices, users, and the analytics, sales and finance report downloads.
An App Store Connect API key: APP_STORE_CONNECT_KEY_ID, APP_STORE_CONNECT_ISSUER_ID, and the .p8 private key file on disk at APP_STORE_CONNECT_P8_PATH. Sales and finance downloads additionally need the vendor number in APP_STORE_CONNECT_VENDOR_NUMBER.
Add the configuration to your client
USE CASES
List the feedback for a build, narrowing by device model or OS version when the report sounds device-specific, then open the submission itself to get the screenshot and the tester's comment.
Find the group, add the tester by email and name, and read the roster back to confirm they landed in the right one rather than the internal group next to it.
Create the version against the build with its release type and earliest release date, then walk its localizations and update them a field at a time — which is also how you fix one locale without touching the rest.
Register the bundle ID, switch on the capabilities the app needs, and list what the team already has so you find the existing identifier before creating a near-duplicate.
Sales and trends come back by date and frequency; finance reports come back per region. Both need the vendor number, which is why it sits in the environment rather than in every call.
Analytics arrives as a request that yields reports, reports that yield segments, and segments that carry download URLs. Four calls, and the numbers are yours to work with rather than to read off a dashboard.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
add_tester_to_groupAdd a new tester to a beta group
create_analytics_report_requestCreate a new analytics report request for an app
create_app_store_versionCreate a new app store version for an app
create_bundle_idRegister a new bundle ID for app development
disable_bundle_capabilityDisable a capability for a bundle ID
download_analytics_report_segmentDownload data from an analytics report segment URL
download_finance_reportDownload finance reports for a specific region
download_sales_reportDownload sales and trends reports
enable_bundle_capabilityEnable a capability for a bundle ID
get_app_infoGet detailed information about a specific app
get_app_store_version_localizationGet detailed information about a specific app store version localization
get_beta_feedback_screenshotGet detailed information about a specific beta feedback screenshot submission. By default, downloads and returns the screenshot image.
get_bundle_id_infoGet detailed information about a specific bundle ID
list_analytics_report_segmentsGet segments for a specific analytics report (contains download URLs)
list_analytics_reportsGet available analytics reports for a specific report request
list_app_store_version_localizationsGet all localizations for a specific app store version
list_app_store_versionsGet all app store versions for a specific app
list_appsGet a list of all apps in App Store Connect
list_beta_feedback_screenshotsList all beta feedback screenshot submissions for an app. This includes feedback with screenshots, device information, and tester comments. You can identify the app using either appId or bundleId.
list_beta_groupsGet a list of all beta groups (internal and external)
list_bundle_idsFind and list bundle IDs that are registered to your team
list_devicesGet a list of all devices registered to your team
list_group_testersGet a list of all testers in a specific beta group
list_schemesList all available schemes in an Xcode project or workspace
list_usersGet a list of all users registered on your App Store Connect team
remove_tester_from_groupRemove a tester from a beta group
update_app_store_version_localizationUpdate a specific field in an app store version localization
BEFORE YOU INSTALL
27 tools when we connected. download_sales_report and download_finance_report register only when APP_STORE_CONNECT_VENDOR_NUMBER is set; with just the three required credentials you get 25. Install it as appstore-connect-mcp-server, as the config blocks do; the scoped name in the README's manual-install line is not on npm.
CONTEXT COST
Rated by the size of the 27 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
{
"mcpServers": {
"app-store-connect": {
"command": "npx",
"args": [
"-y",
"appstore-connect-mcp-server"
],
"env": {
"APP_STORE_CONNECT_KEY_ID": "<YOUR_APP_STORE_CONNECT_KEY_ID>",
"APP_STORE_CONNECT_ISSUER_ID": "<YOUR_APP_STORE_CONNECT_ISSUER_ID>",
"APP_STORE_CONNECT_P8_PATH": "<YOUR_APP_STORE_CONNECT_P8_PATH>",
"APP_STORE_CONNECT_VENDOR_NUMBER": "<YOUR_APP_STORE_CONNECT_VENDOR_NUMBER>"
}
}
}
}Install link: https://cursor.com/install-mcp?name=app-store-connect&config=JTdCJTIyY29tbWFuZCUyMiUzQSUyMm5weCUyMC15JTIwYXBwc3RvcmUtY29ubmVjdC1tY3Atc2VydmVyJTIyJTdE