@chrischall/app-store-connect-mcp

MCPattested
v0.4.0Claude CodeMITUpdated 1d agonpmGitHub

App Store Connect MCP server for Claude — apps, TestFlight, customer reviews, sales reports, and team users

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
346Downloads/wk
1GitHub stars
1d agoLast update
Reads these credentials
  • APP_STORE_CONNECT_PRIVATE_KEY_PATHAPI keyoptional

    Absolute path to your downloaded .p8 private key file. Either this or APP_STORE_CONNECT_PRIVATE_KEY is required.

  • APP_STORE_CONNECT_PRIVATE_KEYAPI keyoptional

    PEM contents of your .p8 private key. Either this or APP_STORE_CONNECT_PRIVATE_KEY_PATH is required.

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
AuthorClaude Code
LicenseMIT
Version0.4.0
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
Listed in Forge index+10/10
Identity verified · attested build+20/20
Ed25519 publish signature+0/5
Included automatically when the publisher runs `forge publish`
Domain verification+0/5
Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
npm Trusted Publishing (Sigstore)+5/5
npm maintainer match+0/5
Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
CVE scan · clean+30/30
Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain
Provenance✓ Sigstore-verified · 88a5cf3
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface21 tools · 2 privileged
Security scan✓ Cleanv0.4.0 · todayHow well does this scan work?
EvalsNone
IndexedAug 28, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

21 tools · 2 privileged
Statically extracted from the published packagev0.4.0 · 2h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

list_appsList apps in your App Store Connect account. Supports optional filters by bundleId and name.

List apps in your App Store Connect account. Supports optional filters by bundleId and name.

No input schema was published for this tool.

get_appGet details for a single app by App Store Connect app ID.

Get details for a single app by App Store Connect app ID.

No input schema was published for this tool.

list_app_store_versionsList App Store versions (releases) for an app, including state and platform.

List App Store versions (releases) for an app, including state and platform.

No input schema was published for this tool.

get_app_infosList App Info records for an app — includes age rating and current store state.

List App Info records for an app — includes age rating and current store state.

No input schema was published for this tool.

list_customer_reviewsList customer reviews for an app, sorted by date (newest first by default). Filter by rating or territory.

List customer reviews for an app, sorted by date (newest first by default). Filter by rating or territory.

No input schema was published for this tool.

get_customer_reviewGet a single customer review with the developer response, if any.

Get a single customer review with the developer response, if any.

No input schema was published for this tool.

respond_to_reviewPost or update the PUBLIC developer response to a customer review (visible on the App Store). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it posts the response.

Post or update the PUBLIC developer response to a customer review (visible on the App Store). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it posts the response.

No input schema was published for this tool.

download_sales_reportDownload a sales/units report. Returns parsed TSV rows. Use a vendor number from App Store Connect > Payments and Financial Reports.

Download a sales/units report. Returns parsed TSV rows. Use a vendor number from App Store Connect > Payments and Financial Reports.

No input schema was published for this tool.

download_finance_reportDownload a financial report (proceeds and adjustments) for a region. Returns parsed TSV rows.

Download a financial report (proceeds and adjustments) for a region. Returns parsed TSV rows.

No input schema was published for this tool.

list_buildsList recent builds, sorted by upload date (newest first). Filter by app, processing state, or version.

List recent builds, sorted by upload date (newest first). Filter by app, processing state, or version.

No input schema was published for this tool.

get_buildGet a single build by ID — version, processing state, expiration, encryption flag.

Get a single build by ID — version, processing state, expiration, encryption flag.

No input schema was published for this tool.

list_beta_groupsList TestFlight beta groups (internal and external). Filter by app or group type.

List TestFlight beta groups (internal and external). Filter by app or group type.

No input schema was published for this tool.

list_beta_testersList TestFlight beta testers. Filter by app, beta group, or email.

List TestFlight beta testers. Filter by app, beta group, or email.

No input schema was published for this tool.

invite_beta_testerInvite a new beta tester by email (sends a real email). Optionally adds them to one or more beta groups or specific builds. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it sends the invite.

Invite a new beta tester by email (sends a real email). Optionally adds them to one or more beta groups or specific builds. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it sends the invite.

No input schema was published for this tool.

delete_beta_testerprivilegedPermanently remove a beta tester from your team. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it deletes.

Permanently remove a beta tester from your team. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it deletes.

No input schema was published for this tool.

add_testers_to_beta_groupAdd one or more existing beta testers to a beta group. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it adds them.

Add one or more existing beta testers to a beta group. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it adds them.

No input schema was published for this tool.

remove_testers_from_beta_groupprivilegedRemove one or more beta testers from a beta group (does not delete the testers). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it removes them.

Remove one or more beta testers from a beta group (does not delete the testers). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it removes them.

No input schema was published for this tool.

submit_build_for_beta_reviewSubmit a build for TestFlight beta app review (required before external testing) — submits to Apple. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it submits.

Submit a build for TestFlight beta app review (required before external testing) — submits to Apple. Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it submits.

No input schema was published for this tool.

list_usersList users on your App Store Connect team.

List users on your App Store Connect team.

No input schema was published for this tool.

list_user_invitationsList pending user invitations on your team.

List pending user invitations on your team.

No input schema was published for this tool.

invite_userInvite a new user to your App Store Connect team with specified roles (sends a real email; roles can include ADMIN). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it sends the invitation.

Invite a new user to your App Store Connect team with specified roles (sends a real email; roles can include ADMIN). Without confirm:true this returns a dry-run preview and makes NO network call; with confirm:true it sends the invitation.

No input schema was published for this tool.

21 of 21 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

App Store Connect MCP server for Claude — apps, TestFlight, customer reviews, sales reports, and team users

Keywords
mcpapp-store-connectappstoreconnectappleiostestflightmodel-context-protocolclaudeaiapp-storereviewssales-reports
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-09-05 — observed resolution, not a publisher declaration.

60 packages resolved · 4 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

55 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+43 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.