App Store Connect MCP Server (SardorbekR/appstore-connect-mcp) is an MCP server listed on the M8ven Trust Index. It scores 56 out of 100, grade D. It declares 190 tools. No publisher has claimed this listing.

D
Caution
56/100

App Store Connect MCP Server

A Model Context Protocol (MCP) server for Apple's App Store Connect API. Manage your iOS, macOS, tvOS, and visionOS apps directly from Claude, Cursor, or any MCP-compatible client.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

SardorbekR

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
🚨
Known vulnerabilities in dependencies: 2 critical, 5 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
// tools this server exposes95 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

list_apps

List all apps in your App Store Connect account. Returns app IDs, names, bundle IDs, and SKUs.

get_app

Get detailed information about a specific app by its ID.

list_app_versions

List all App Store versions for an app. Can filter by platform and version state.

get_app_version

Get detailed information about a specific app version.

create_app_version

Create a new App Store version for an app.

list_version_localizations

List all localizations for an App Store version. Returns description, keywords, what's new, and URLs for each locale.

get_version_localization

Get detailed information about a specific version localization.

create_version_localization

Create a new localization for an App Store version. Add descriptions, keywords, and other metadata in a specific locale.

update_version_localization

Update an existing version localization. Only provided fields will be updated.

delete_version_localization

Delete a version localization. Cannot delete the primary locale.

list_app_infos

List app info records for an app. Use this to get the appInfoId needed for localization operations.

list_app_info_localizations

List all localizations for an app info. Returns app name, subtitle, and privacy policy info for each locale.

update_app_info_localization

Update an app info localization. Use this to change app name, subtitle, or privacy policy URL for a locale.

list_beta_groups

List all beta groups for an app. Returns group names, public link info, and settings.

list_beta_testers

List all beta testers in a specific beta group.

add_beta_tester

Add a new beta tester to a beta group by email address.

remove_beta_tester

Remove a beta tester from a beta group.

list_screenshot_sets

List all screenshot sets for a version localization. Each set represents a different display type (device size).

list_screenshots

List all screenshots in a screenshot set.

upload_screenshot

Upload a new screenshot to a screenshot set. Provide the local file path, and this tool will handle the multi-step upload process.

list_bundle_ids

List all bundle IDs registered in App Store Connect. Can filter by platform.

get_bundle_id

Get details of a specific bundle ID.

create_bundle_id

Register a new bundle ID in App Store Connect. The identifier must be unique and follow reverse-domain notation (e.g., com.example.app).

update_bundle_id

Update a bundle ID's name. Note: The identifier cannot be changed.

delete_bundle_id

Delete a bundle ID. Note: This cannot be undone and may affect apps using this bundle ID.

list_devices

List all registered devices in App Store Connect. Can filter by platform and status.

get_device

Get details of a specific registered device.

list_users

List all users in your App Store Connect team. Can filter by roles.

get_user

Get details of a specific team user.

list_builds

List all builds for an app.

get_build

Get details of a specific build.

list_app_categories

List all app categories available in the App Store. Can filter by platform.

get_app_price_schedule

Get the price schedule for an app, including pricing information.

get_app_availability

Get app availability information, including which territories the app is available in.

list_territories

List all App Store territories (countries/regions) with their currencies. Useful for understanding which markets are available for pricing.

list_app_price_points

List available price points for an app. Each price point represents a possible price tier showing customer price and developer proceeds in local currency. Filter by territory to see prices for a specific country.

get_price_point_equalizations

Get Apple's equivalent price points in other territories for a given price point. This is the core Purchase Power Parity (PPP) data — shows what Apple considers equivalent pricing across countries. Use list_app_price_points first to get a price point ID.

set_app_prices

Set per-territory manual pricing for an app (Purchase Power Parity). WARNING: This replaces the entire price schedule — include ALL territory prices, not just changes. The base territory price must be included in manualPrices. Use list_app_price_points and get_price_point_equalizations to find price

list_subscription_groups

List all subscription groups for an app. Subscription groups contain auto-renewable subscriptions and define upgrade/downgrade relationships.

get_subscription_group

Get details of a specific subscription group by its ID.

create_subscription_group

Create a new subscription group for an app. A subscription group must be created before adding individual subscriptions to it.

update_subscription_group

Update the reference name of a subscription group.

list_subscription_group_localizations

List the localizations for a subscription group. These provide the localized name shown to users on the subscription management page.

get_subscription_group_localization

Get a single subscription group localization by its ID. Returns the localized name, locale, custom app name, and description.

create_subscription_group_localization

Create a localization for a subscription group. Provides the localized group name shown to users on the App Store subscription management page.

update_subscription_group_localization

Update an existing subscription group localization. Can update the group name, custom app name, or custom app description.

list_subscriptions

List all auto-renewable subscriptions within a subscription group.

get_subscription

Get details of a specific auto-renewable subscription by its ID.

create_subscription

Create a new auto-renewable subscription within a subscription group.

update_subscription

Update the metadata of an existing auto-renewable subscription.

delete_subscription

Delete an auto-renewable subscription. Only subscriptions in MISSING_METADATA or DEVELOPER_REMOVED_FROM_SALE state can be deleted.

list_subscription_localizations

List all localizations (translated names and descriptions) for a subscription.

create_subscription_localization

Create a localized name and description for a subscription in a specific locale.

update_subscription_localization

Update the localized name or description for a subscription localization.

delete_subscription_localization

Delete a localization for a subscription.

list_subscription_price_points

List available price points for a subscription, showing customer price and developer proceeds. Optionally filter by territory. Use offset to paginate beyond the first 200 results.

list_subscription_prices

List the current prices set for a subscription, including price tier and territory details. Use this to read existing pricing before making changes.

get_subscription_availability

Get the territory availability configuration for a subscription — shows which territories it is available in and whether it is automatically available in new territories.

set_subscription_availability

Set the territory availability for a subscription. Controls which countries/regions the subscription is available in, and whether it is automatically available in new territories Apple adds.

create_subscription_price

Set the price for a subscription in a specific territory. Use list_subscription_price_points to find the price point ID for the desired price tier. The price takes effect on startDate (or immediately if null).

list_promotional_offers

List all promotional offers configured for a subscription. Promotional offers target existing or previously subscribed customers via offer codes.

create_promotional_offer

Create a promotional offer for a subscription. Use offerMode FREE_TRIAL for a trial offer (no prices needed). Use PAY_AS_YOU_GO or PAY_UP_FRONT for discounted paid offers and supply prices per territory. The offerCode is the string customers redeem.

update_promotional_offer

Update an existing promotional offer's attributes or prices. Supply only the fields you want to change. To update prices, provide the full new prices array.

delete_promotional_offer

Delete a promotional offer from a subscription.

list_promotional_offer_prices

List the prices set for a promotional offer, with resolved price tier and territory details.

list_in_app_purchases

List in-app purchases for an app. Covers one-time purchases — non-consumable (a 'lifetime' unlock), consumable, and non-renewing. Optionally filter by type.

get_in_app_purchase

Get details of a specific in-app purchase, including its state and product ID.

create_in_app_purchase

Create a new in-app purchase. Defaults to NON_CONSUMABLE — a one-time 'lifetime' purchase that permanently unlocks the app. After creating, add a localization, set a price, and set availability before submitting for review. productId and type cannot be changed later.

update_in_app_purchase

Update an in-app purchase's reference name, Family Sharing setting, or review note. productId and type are immutable.

delete_in_app_purchase

Delete an in-app purchase. Only possible before it has been approved/sold.

list_in_app_purchase_localizations

List the localized display names and descriptions for an in-app purchase.

create_in_app_purchase_localization

Add a localized display name (and optional description) for an in-app purchase. At least one localization is required before submission.

update_in_app_purchase_localization

Update the display name or description of an in-app purchase localization.

delete_in_app_purchase_localization

Delete an in-app purchase localization.

list_in_app_purchase_price_points

List available price points for an in-app purchase, showing customer price and developer proceeds. Filter by territory to find a price point ID for set_in_app_purchase_price. Supports offset-based pagination.

set_in_app_purchase_price

Set pricing for an in-app purchase. WARNING: This replaces the entire price schedule. Provide only the base territory to let Apple auto-equalize all other territories, or provide a full per-territory list for manual Purchase Power Parity (PPP) pricing. Use list_in_app_purchase_price_points to find p

get_in_app_purchase_availability

Get the territory availability of an in-app purchase, including which territories it is available in.

set_in_app_purchase_availability

Set the territory availability of an in-app purchase. Set availableInNewTerritories to auto-enable future App Store territories, and optionally restrict to a specific list of territories.

submit_in_app_purchase_for_review

Submit an in-app purchase to App Review. This is an outward-facing action: the purchase must already have metadata, a localization, a price, and availability set. App Store Connect also typically requires a review screenshot on the in-app purchase before it can pass review — uploading review screens

get_in_app_purchase_price_point_equalizations

Get Apple's equivalent price points in other territories for an in-app purchase price point — the core Purchase Power Parity (PPP) data for one-time purchases. Use list_in_app_purchase_price_points to get a base price point ID, then feed the per-territory results into set_in_app_purchase_price.

list_in_app_purchase_prices

List the current per-territory prices set for an in-app purchase, with resolved customer price and territory. Returns developer-set (manual) prices by default; set includeAutomatic to also include Apple's auto-equalized prices. Use this to read existing pricing or verify a set_in_app_purchase_price

create_analytics_report_request

Create a new analytics report request for an app. Use ONGOING for continuous reports or ONE_TIME_SNAPSHOT for a single snapshot. Reports take time to generate after creation.

list_analytics_report_requests

List all analytics report requests for an app. Shows whether each request is active or stopped due to inactivity.

get_analytics_report_request

Get details of a specific analytics report request.

delete_analytics_report_request

Delete an analytics report request. This stops report generation and removes access to existing reports.

list_analytics_reports

List analytics reports available for a report request. Can filter by category (APP_STORE_ENGAGEMENT, COMMERCE, APP_USAGE, FRAMEWORKS_USAGE, PERFORMANCE).

list_analytics_report_instances

List report instances (dated snapshots) for an analytics report. Each instance represents data for a specific processing date. Can filter by granularity (DAILY, WEEKLY, MONTHLY) and processing date.

list_analytics_report_segments

List downloadable segments for a report instance. Each segment contains a URL for downloading the report data, along with its checksum and size.

download_analytics_report_segment

Download and parse an analytics report segment from its pre-signed URL. The segment data is gzip-compressed TSV. Returns parsed headers and rows (as key-value objects). Use list_analytics_report_segments to get the download URL first.

get_sales_report
get_finance_report
get_app_perf_metrics

Get performance and power metrics for an app (e.g., launch time, memory, battery, hangs). Returns Xcode-style metrics data with values per device and percentile. Use this for app-level aggregate metrics across all builds.

get_build_perf_metrics

Get performance and power metrics for a specific build. Same metric types as get_app_perf_metrics but scoped to a single build. Useful for comparing performance between builds.

list_diagnostic_signatures

List power and performance diagnostic signatures for a build. Signatures represent recurring performance issues (disk writes, hangs, slow launches) grouped by call stack. Use list_diagnostic_logs with a signature ID to get detailed logs.

list_diagnostic_logs

List diagnostic logs for a specific diagnostic signature. Returns individual log entries for a given performance issue. Use list_diagnostic_signatures first to get a signature ID.

// known CVEs in dependencies2 critical5 high17 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

criticalvitest@1.2.0GHSA-5xrq-8626-4rwp

When Vitest UI server is listening, arbitrary file can be read and executed

criticalvitest@1.2.0GHSA-9crc-q9x8-hgqq

Vitest allows Remote Code Execution when accessing a malicious website while Vitest API server is listening

high@modelcontextprotocol/sdk@1.0.0GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

highundici@6.6.0GHSA-f269-vfmq-vjvj

Undici: Malicious WebSocket 64-bit length overflows parser and crashes the client

highundici@6.6.0GHSA-v9p9-hfj2-hcw8

Undici has Unhandled Exception in WebSocket Client Due to Invalid server_max_window_bits Validation

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configAPP_STORE_CONNECT_ISSUER_IDexport ="YOUR_ISSUER_ID"
configAPP_STORE_CONNECT_KEY_IDexport ="YOUR_KEY_ID"
configAPP_STORE_CONNECT_P8_CONTENTYes Raw content of .p8 key (alternative to path)
configAPP_STORE_CONNECT_P8_PATHexport ="/path/to/AuthKey.p8"
// quality suggestions

Tool annotations

81/190 tools have annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

190/190 tools missing one or more hints — list_apps (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_app (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_app_versions (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +187 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool test coverage

Only 0/190 tools referenced in tests (0%)

Write tests that reference each tool by name so every tool has at least one test.

Production dependencies are patched

0 critical, 5 high severity in production deps — @modelcontextprotocol/sdk@1.0.0 (high), undici@6.6.0 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Dev dependencies

2 critical/high in dev-only deps (does not ship to users)

Upgrade dev dependencies when convenient.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 5 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/sardorbekr/appstore-connect-mcp?variant=verified)](https://m8ven.ai/mcp/sardorbekr/appstore-connect-mcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 8986746013d5949c4b75771eb2d92d361cddcebd
code hash: cc57761e31125ac5552e7ef011238deb9740cfa34b04c5ed4224af4d73d74b1f
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client