app-store-connect-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APP_STORE_CONNECT_KEY_ID | No | Your App Store Connect API Key ID. | |
| APP_STORE_CONNECT_ENV_FILE | No | Path to a .env file containing the other APP_STORE_CONNECT_* variables. | |
| APP_STORE_CONNECT_ISSUER_ID | No | Your App Store Connect API Issuer ID. Not required for individual keys. | |
| APP_STORE_CONNECT_PRIVATE_KEY | No | Inline PEM private key content, as an alternative to PRIVATE_KEY_PATH. | |
| APP_STORE_CONNECT_VENDOR_NUMBER | No | Your vendor number (required for sales/finance reports). | |
| APP_STORE_CONNECT_PRIVATE_KEY_PATH | No | Path to the .p8 private key file. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_appsA | List the apps the configured API key can access. Use this first to discover the numeric app IDs the other tools take. |
| list_report_categoriesA | Describe the Analytics Reports categories and how the API is structured.
|
| list_report_requestsB | List the analytics report requests that exist for an app. |
| create_report_requestA | Enable analytics reports for an app by creating a report request. This is the only write operation in this server, and it is required once per app: without a request App Store Connect generates no reports. ONGOING requests start producing data the day after creation; ONE_TIME_SNAPSHOT returns the available historical data. |
| list_reportsA | List the reports available inside an analytics report request. |
| list_report_instancesA | List the instances of a report: one per granularity and processing date. |
| list_report_segmentsA | List the segments of a report instance, each with a download URL. Large reports are split into several segments. The URLs expire 5 minutes after this call; download_report_instance fetches and parses them for you. |
| download_report_instanceA | Download every segment of a report instance and return the parsed rows. |
| fetch_analytics_reportA | Fetch one analytics report end to end: request, report, instance, rows. Resolves the app's report request, finds the report by name, picks the instance (the latest processing date unless one is given) and downloads its segments. Call list_reports first if you do not know the exact report name. |
| list_sales_report_typesA | List the valid reportType/reportSubType/frequency/version combinations of download_sales_report. Other combinations are rejected by the API. |
| download_sales_reportA | Download a Sales and Trends report and return it as parsed rows. Covers units sold, proceeds, installs, subscriptions, subscribers and offer code redemptions. See list_sales_report_types for the valid combinations. |
| download_finance_reportA | Download a finance report (payments and proceeds) as parsed rows. |
| list_customer_reviewsA | List App Store customer reviews of an app. |
| get_perf_power_metricsA | Get the Xcode power and performance metrics of an app's recent versions. Covers launch time, hangs, memory, disk writes, battery and terminations, aggregated from devices that opted into sharing diagnostics. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
The analytics report tools form a clear hierarchical pipeline (request -> report -> instance -> segments -> download), and sales/finance/reviews/perf tools are distinct. However, fetch_analytics_report overlaps with download_report_instance as a convenience wrapper, and list_report_categories could be mistaken for a concrete report-listing tool.
All tools use a consistent snake_case verb_noun pattern: list_*, create_*, download_*, fetch_*, get_*. The compound nouns (report_instances, report_segments, sales_report_types) are uniform and readable.
14 tools is a well-scoped size for a reporting-focused App Store Connect server. Each tool maps to a distinct API operation or hierarchy step, with no obvious redundancy or bloat.
The read/reporting workflows are covered end-to-end: apps, report requests, report discovery, instance/segment download, sales/finance reports, reviews, and performance metrics. Minor gaps exist, such as no update/delete for report requests, no finance report type discovery tool, and only a list operation for reviews.