mcpField
A
Appnova App Store Connect Mcp

Appnova App Store Connect Mcp

Local
github.com/alperduzgunDeveloper Tools6Updated 34w ago

About Appnova App Store Connect Mcp

Appnova App Store Connect Mcp is an MCP server for iOS app developers to manage App Store Connect through natural-language requests. Its tools cover analytics, reviews, store metadata, subscriptions, in-app purchases, TestFlight, and Bundle ID capabilities.

Key features

  1. 01View analytics, sales, and finance reports
  2. 02Manage localized metadata and review responses
  3. 03Manage subscriptions, in-app purchases, and prices
  4. 04Create versions and submit them for review
  5. 05Manage TestFlight testers and builds
  6. 06Inspect and change Bundle ID capabilities

Use cases

  1. 01Audit store metadata and reviews across locales
  2. 02Summarize revenue and compare monthly trends
  3. 03Update an app version and submit it for review
  4. 04Check an app's Bundle ID capabilities

MCP support

Provides App Store Connect tools to MCP clients over HTTP and uses API credentials in request headers to access Apple's API. It can connect to the hosted service or be self-hosted.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

title: appnova-app-store-connect-mcp emoji: 🍎 colorFrom: gray colorTo: red sdk: docker app_port: 7860 pinned: false

appnova-app-store-connect-mcp

App Store Connect MCP server for Claude — manage your iOS app's entire lifecycle with natural language. No Docker, no Python, no pip. Just add 4 lines to your Claude config and start talking to your App Store.

48 tools · 14 categories · Hosted on Hugging Face Spaces · Free


Quick Start — Zero Setup (Recommended)

No installation required. The server is already running on Hugging Face Spaces.

📖 Full installation guide with screenshots and troubleshooting: docs/installation.md

1. Get your App Store Connect API credentials

Go to App Store Connect → Users and Access → Integrations and create an API key with Admin or App Manager role. You'll need:

  • Issuer ID — shown at the top of the API Keys page
  • Key ID — shown next to your key
  • Private key — download the .p8 file (only downloadable once)
  • Vendor Number — from Payments and Financial Reports
2. Add to your Claude client
Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "appstore": {
      "url": "https://haikuku-appnova-app-store-connect-mcp.hf.space/mcp",
      "headers": {
        "x-appstore-issuer-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "x-appstore-key-id": "XXXXXXXXXX",
        "x-appstore-private-key": "-----BEGIN PRIVATE KEY-----\\nMIGH...\\n-----END PRIVATE KEY-----",
        "x-appstore-vendor-number": "12345678"
      }
    }
  }
}
Claude Code

Add to .mcp.json in your project root:

{
  "mcpServers": {
    "appstore": {
      "type": "http",
      "url": "https://haikuku-appnova-app-store-connect-mcp.hf.space/mcp",
      "headers": {
        "x-appstore-issuer-id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "x-appstore-key-id": "XXXXXXXXXX",
        "x-appstore-private-key": "-----BEGIN PRIVATE KEY-----\\nMIGH...\\n-----END PRIVATE KEY-----",
        "x-appstore-vendor-number": "12345678"
      }
    }
  }
}
3. Restart your Claude client

That's it. Ask Claude: "List my apps" to verify the connection.


How to format the private key

Open your .p8 file — it looks like this:

-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg...
-----END PRIVATE KEY-----

Important: In the JSON config you must use \\n (two characters: backslash + n) instead of real line breaks. Using a single \n creates an actual newline which breaks HTTP headers.

Use this one-liner to get the correctly formatted value:

awk '{printf "%s\\n", $0}' AuthKey_XXXXXXXXXX.p8 | sed '$ s/\\n$//'

Paste the output directly as the x-appstore-private-key value.


Optional: Pin a default app

Add x-appstore-app-id to skip calling select_app every session:

"headers": {
  "x-appstore-issuer-id": "...",
  "x-appstore-key-id": "...",
  "x-appstore-private-key": "...",
  "x-appstore-vendor-number": "...",
  "x-appstore-app-id": "6502225088"
}

Use either the numeric App Store ID or bundle ID (e.g. com.example.yourapp).


Security

Your credentials are sent as HTTP headers directly to the server and used exclusively to sign JWT tokens for Apple's API. They are not logged, not stored, and not shared. Each request is fully isolated — credentials from one user never touch another user's session.

The server is open source: github.com/alperduzgun/appnova-app-store-connect-mcp

If you prefer to host it yourself, see the Self-Hosting section below.


What You Can Do

App Store Optimization (ASO)
ToolDescription
get_localesList all localizations with IDs — lightweight index, call first
get_locale_metadataFull metadata for one locale: name, subtitle, keywords, description, what's new
update_infoUpdate app name and/or subtitle (always editable, any version state)
update_versionUpdate keywords, description, what's new (requires PREPARE_FOR_SUBMISSION)
list_custom_product_pagesList all Custom Product Pages with version state and visibility
get_custom_product_pageFull CPP detail including per-locale promotional text
Reviews & Ratings
ToolDescription
get_reviewsFetch reviews sorted by newest; filter by star rating (1–5)
get_ratingsAverage rating, total count, sample size
respond_to_reviewPost a new developer response
update_review_responseEdit an existing response in-place (preserves timestamp)
delete_review_responseDelete a response before re-posting
Analytics & Sales
ToolDescription
get_analyticsImpressions, page views, app units, conversion rate, sessions, crashes — daily breakdown up to 365 days
get_salesDownloads, redownloads, updates, IAP, subscriptions, revenue — daily breakdown up to 365 days
Finance Reports
ToolDescription
get_finance_reportMonthly proceeds by territory and currency for a specific month
get_finance_summaryAggregated proceeds across the last N months (default 3, max 12)
Subscriptions
ToolDescription
list_subscription_groupsAll subscription groups and their products
create_subscription_groupCreate a new subscription group
create_subscriptionCreate a subscription product (weekly → yearly)
create_subscription_localizationAdd localized name and description to a subscription
In-App Purchases
ToolDescription
list_in_app_purchasesAll IAPs: consumable, non-consumable, non-renewing
create_in_app_purchaseCreate a new IAP product
create_iap_localizationAdd localized display name and description
delete_in_app_purchaseDelete a draft IAP
Pricing
ToolDescription
get_iap_price_pointsAll available price tiers for an IAP in a territory
set_iap_priceSet IAP price by price point ID
set_iap_price_by_amountSet IAP price by dollar amount — auto-matches tier
get_subscription_price_pointsAll available price tiers for a subscription
set_subscription_priceSet subscription price by price point ID
set_subscription_price_by_amountSet subscription price by dollar amount — auto-matches tier
App Versions & Submission
ToolDescription
list_app_versionsRecent versions with state (READY_FOR_SALE, IN_REVIEW, etc.)
create_app_versionCreate a new version in PREPARE_FOR_SUBMISSION state
submit_for_reviewSubmit a version for App Review
cancel_submissionWithdraw an in-progress submission
Phased Release
ToolDescription
get_phased_releaseCurrent phased rollout status for a version
create_phased_releaseEnable 7-day phased rollout (1%→2%→5%→10%→20%→50%→100%)
update_phased_releasePause, resume, or complete rollout immediately
TestFlight
ToolDescription
list_buildsRecent builds with processingState, version, expiration
list_beta_groupsAll beta groups with public link info
add_beta_testerInvite a tester to a beta group
remove_beta_testerRemove a tester from a beta group
In-App Events
ToolDescription
list_app_eventsAll promotional events with state (DRAFT/LIVE/ARCHIVED) and localizations
Bundle ID Capabilities
ToolDescription
get_bundle_id_infoNumeric ID, platform, name, and seed ID for a bundle identifier
list_bundle_id_capabilitiesAll active capabilities (Sign in with Apple, Push, IAP, etc.)
enable_bundle_id_capabilityEnable a capability — idempotent, safe to call repeatedly
disable_bundle_id_capabilityRemove a capability by resource ID
App Selection
ToolDescription
list_appsAll apps in your account
select_appSet the active app by numeric ID or bundle ID
get_active_appShow the currently selected app

Example Workflows

ASO audit across all locales:

"Get all my app's locale metadata and tell me which ones are missing keywords
or have subtitles under 20 characters"

Review triage:

"Show me all 1-star reviews from the last 50 and draft a response for each
one that mentions a crash"

Revenue summary:

"Give me a finance summary for the last 3 months and compare monthly trends"

Release workflow:

"Create a new 2.5.0 version, update the what's new text for en-US and tr,
then submit for review"

Capability check:

"List all active capabilities for com.example.myapp and confirm Sign in with
Apple is enabled"

Requirements

  • App Store Connect API key with Admin or App Manager role
  • Claude Desktop 0.10+ (or any MCP client that supports HTTP transport with custom headers)

Self-Hosting

Want to run the server yourself? Full source code and setup instructions at github.com/alperduzgun/appnova-app-store-connect-mcp.


License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.