Apple Store Connect MCP Server with OAuth authentication support for Claude Desktop/iOS
The server defines 11 tools with basic schemas and descriptions. Most tools have valid input schemas with typed parameters and descriptions, which is a foundation for quality. However, there are significant gaps: (1) Output schemas are not documented anywhere, LLMs have no way to know what fields are returned or how to chain results. (2) Descriptions vary widely in quality; some are too brief (e.g., 'List all apps in App Store Connect' lacks context on when to use it or what structure is returned). (3) Several parameters lack descriptions or details on constraints and formats. (4) Error handling and recovery guidance are absent, no indication of what can go wrong or how the LLM should respond. (5) Tool annotations (readOnlyHint, destructiveHint) are missing entirely, leaving the LLM unable to distinguish safe from destructive operations at a glance. The server appears to be a straightforward HTTP wrapper around the Apple App Store Connect API, but the tool definitions do not follow LLM-optimized patterns for discovery, composition, and error recovery.
Add a tester to a TestFlight beta group
Create a new app store version for an app
Get app analytics data including installs, sessions, and retention
Get detailed information about a specific app
Get TestFlight build information for an app
Get customer reviews for an app
Get sales and revenue data for a specific date
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields from responses. For example, list_apps returns a list but the response structure (field names, types, pagination) is invisible to the LLM.
Tool descriptions lack guidance on when to use each tool and what prerequisites are needed. For example, get_app_info requires an appId, but there is no hint that the LLM should call list_apps first to discover available app IDs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 65 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 48 | - | v1 |
List all app store versions for an app
List all apps in App Store Connect
List all TestFlight beta groups for an app
Update app store version localization (descriptions, keywords, what's new)
No error handling or recovery guidance. If a tool call fails (invalid appId, unauthorized, rate limit), the LLM receives no actionable direction on what to do next. Error responses should include the invalid value, the constraint violated, and suggestions for recovery.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The LLM cannot distinguish at a glance which tools are safe to retry (read-only) and which are destructive. create_app_store_version and update_app_store_version_localization should be clearly marked as destructive.
Parameter descriptions are minimal or missing details. For example, date in get_sales_data says '(optional, defaults to today)' but does not specify the exact format ('YYYY-MM-DD'). locale in update_app_store_version_localization lists examples but does not formally constrain the set of valid locales.
No pagination guidance for list tools. list_apps, list_app_store_versions, list_beta_groups, and get_customer_reviews may return large result sets, but there is no indication of whether results are paginated, what the default/max limit is, or how to request the next page.