MCP server wrapping the Apple App Store Connect API v1. Provides tools for managing TestFlight beta distribution, app metadata, reviews, in-app purchases, subscriptions, team members, code signing, pricing, analytics, financial reports, performance diagnostics, Xcode Cloud CI, Game Center, App Clips, and local Xcode operations.
CheXcodeMCP provides well-structured tool definitions with consistent naming (verb_noun pattern), clear descriptions (avg ~120 chars), and complete JSON schemas with typed parameters. All 10 tools follow the verb_noun convention (list_, get_, update_). Descriptions are concise and action-oriented. However, parameter descriptions are minimal (often 1-2 lines), output schemas are not documented, and error handling guidance is absent. The server instructions are excellent for domain context but do not compensate for missing per-tool recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Get detailed information about a specific app by its App Store Connect ID.
Get detailed information about a specific app info record by its ID.
List app info records (age rating, category, store state) for a specific app.
List all apps in your App Store Connect account. Returns app IDs, names, bundle IDs, and SKUs. App IDs from results are used as app_id in most other tools (testflight_, metadata_, review_, analytics_, etc.). Start here if you don't know the app_id.
Update app attributes such as primaryLocale. Note: bundleId is read-only and cannot be changed.
Get detailed information about a specific App Clip.
Output schemas not documented. Tools return structured data but LLMs cannot see what fields to expect, forcing them to guess downstream field names and risk chaining failures.
No error handling guidance. Tools lack recovery hints (e.g., 'If app_id not found, call app_list_apps first'). Errors will be raw API responses without actionable next steps for LLMs.
Tool annotations missing. Risk metadata (READ_ONLY, WRITE) exists in code but not exposed via toolAnnotations (readOnlyHint, destructiveHint). LLMs cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 73 | 2026-07-28+ | v2 |
Get detailed information about a specific App Clip default experience.
List App Clips for an app.
List default experiences for an App Clip.
Update the action for an App Clip default experience.
Parameter descriptions are terse. Most params have 1-2 line descriptions (e.g., 'The App Clip ID'). Baseline is 72 chars; these average ~30. LLMs need format hints, constraints, and examples.
Pagination not fully specified. list_apps and list_app_clips accept 'limit' but no 'offset' or 'cursor' parameter visible. No 'total_count' or 'next_cursor' in output schema documented.