asc-mcp
Integrates with the App Store Connect API to list apps, retrieve customer reviews and existing developer replies, list recent TestFlight builds, and publish public developer replies to reviews.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
asc-mcp
An MCP server for the App Store Connect API. It lets an MCP client such as Claude Code read your apps, customer reviews and TestFlight builds, and publish a reply to a review, while the API key stays inside this process and never reaches the model.
Tools
Tool | What it does | Writes? |
| Apps in the account with ids, bundle ids, primary locale | no |
| Reviews of one app for the last N days, with filters by territory and rating | no |
| The existing developer reply to one review | no |
| Recent builds with marketing version, platform and processing state | no |
| Publishes a public developer reply to one review | yes |
reply_to_review is the only tool with side effects. Its description asks the model to show the
exact text to the user first, and MCP clients normally ask for permission before running a tool
that is not on their allow-list.
Every call is appended to ~/.asc-mcp/calls.jsonl (override with ASC_MCP_LOG): time, tool,
arguments, duration, success or error message.
Related MCP server: App Store Connect MCP Server
Credentials
In App Store Connect open Users and Access → Integrations → App Store Connect API → Team Keys and generate a key. The Developer role is enough for everything this server does.
Download the
.p8file (it can be downloaded only once) and keep it outside this repository, for example in~/.keys/.Note the Issuer ID (top of the Integrations page) and the Key ID of the new key.
The server reads three environment variables:
Variable | Meaning |
| Issuer ID from the Integrations page |
| Key ID of the generated key |
| Path to the |
See .env.example. The key is used to sign short-lived JWTs (15 minutes, ES256). It is read once
and never written anywhere.
Build and run
npm install
npm run buildTry the tools by hand in the MCP Inspector (opens a web page that starts the server for you):
ASC_ISSUER_ID=... ASC_KEY_ID=... ASC_KEY_PATH=~/.keys/AuthKey_XXXX.p8 npm run inspectOr list the tools from the command line without any credentials:
npm run toolsUse from Claude Code
Add the server to the project where you want it (a .mcp.json file in the project root), or to
~/.claude.json for all projects:
{
"mcpServers": {
"asc": {
"command": "node",
"args": ["/Users/you/Projects/asc-mcp/dist/index.js"],
"env": {
"ASC_ISSUER_ID": "00000000-0000-0000-0000-000000000000",
"ASC_KEY_ID": "ABCDEF1234",
"ASC_KEY_PATH": "/Users/you/.keys/AuthKey_ABCDEF1234.p8"
}
}
}
}Then, in a Claude Code session: "What did users write about my app this week, and which reviews
should I answer?" Claude calls list_apps, then get_reviews, and drafts replies. Nothing is
published until you ask it to call reply_to_review and approve the call.
Project layout
src/
index.ts server start-up and tool registration (stdio transport)
auth.ts JWT minting and caching from the .p8 key
api.ts GET/POST helpers, error messages, pagination
log.ts JSONL call log
register.ts wraps tool handlers: JSON results, error results, logging
tools/
apps.ts list_apps
reviews.ts get_reviews, get_review_reply, reply_to_review
builds.ts list_buildsNotes and things to verify
Field names and endpoints follow the App Store Connect API reference as of this writing:
GET /v1/apps,GET /v1/apps/{id}/customerReviews,GET /v1/customerReviews/{id}/response,POST /v1/customerReviewResponses,GET /v1/builds. If Apple changes a field, the error message fromapi.tsnames the request that failed.The reply length limit (
MAX_REPLY_LENGTHinreviews.ts) mirrors Apple's limit for developer responses; check it against the current App Store Connect help before relying on it.Sales and download reports use a different endpoint that returns gzipped TSV files. They are not implemented yet; see the roadmap.
Roadmap
get_downloads: units per day from the Sales Reports API.get_app_metadata: current name, subtitle, keywords and description per locale.Resources (MCP
resources/list) exposing the app list for clients that prefer resources to tools.
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Create App Store screenshots, icons, ASO copy, localization, and revisions via hosted MCP.
Run App Store Connect from your IDE: pricing, listings, screenshots, releases, AI visibility.
Server-side purchase verification and entitlements for Google Play and Apple App Store over MCP.
Related MCP Servers
- AlicenseBqualityFmaintenanceAn MCP server to communicate with the App Store Connect API for iOS Developers25147 npm330MIT
- AlicenseNot gradedqualityAmaintenanceThis MCP server provides access to Apple's App Store Connect API. It allows users to inspect apps, versions, builds, TestFlight groups, sales, users, and optionally edit metadata and manage testers.427 npm2MIT
- AlicenseAqualityDmaintenanceLocal-only MCP server for safe App Store Connect access, managing apps, builds, TestFlight, versions, metadata, screenshots, pricing, and review submission, enabling a build to go from uploaded to submitted for review.4410 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables querying and managing Apple App Store Connect resources such as apps, builds, TestFlight groups, reviews, sales reports, and more through MCP tools, with support for multiple Apple accounts and both remote and local deployment modes.4 npm-