Skip to main content
Glama

asc-mcp

A read-only MCP server that lets Claude look things up in App Store Connect: builds, TestFlight, App Store versions and customer reviews.

What builds are processing for Acme?

It runs locally on your Mac with your own API key. Nothing is hosted, and the key is never logged or sent anywhere but Apple.

Tools

Tool

Returns

list_apps

Apps your key can see

get_app

One app's details and latest App Store version per platform

list_builds

Builds with processing status

list_beta_groups

TestFlight groups

list_beta_testers

TestFlight testers for an app or group

list_app_store_versions

App Store versions and their state

list_customer_reviews

Customer reviews, filterable by stars and country

Apps can be referred to by name, bundle ID or Apple ID.

Related MCP server: App Store Connect MCP Server

Setup

Requires macOS and Node.js 22.18+.

1. Install

git clone https://github.com/stuart22/asc-mcp.git ~/tools/asc-mcp
cd ~/tools/asc-mcp && npm ci && npm run build

2. Create an API key. In App Store Connect, open your profile → Edit Profile → Individual API Key → Generate API Key. Download the .p8 (you only get one chance) and note the Key ID. The key has your role's access, nothing more; see Apple's role matrix if a tool returns 403.

3. Store it in the Keychain

npm run store-key -- ~/Downloads/AuthKey_XXXXXXXXXX.p8

Back up the .p8 somewhere safe, then delete the downloaded copy.

4. Add it to Claude

Claude Code:

claude mcp add asc --scope user -e ASC_KEY_ID=XXXXXXXXXX -- node ~/tools/asc-mcp/dist/index.js

Claude Desktop (claude_desktop_config.json, full paths required):

{
  "mcpServers": {
    "asc": {
      "command": "/opt/homebrew/bin/node",
      "args": ["/Users/YOUR_NAME/tools/asc-mcp/dist/index.js"],
      "env": { "ASC_KEY_ID": "XXXXXXXXXX" }
    }
  }
}

Options

Variable

Purpose

ASC_KEY_ID

Your Key ID (required)

ASC_PRIVATE_KEY

Where the key lives: keychain (default), a 1Password op:// reference, or a file path outside this repo with chmod 600

ASC_ISSUER_ID

Only for team keys

Security note

Any program running as you can read the Keychain, including Claude's shell tool. Since customer reviews are untrusted text, consider denying key access in ~/.claude/settings.json:

{ "permissions": { "deny": ["Bash(security find-generic-password:*)", "Bash(security dump-keychain:*)", "Bash(op read:*)"] } }

Development

npm test
npm run typecheck
ASC_KEY_ID=XXXXXXXXXX npm run smoke -- "Acme"   # calls the real API with your key

Contributor rules are in CLAUDE.md.

License

MIT

Available Tools

7 tools
get_appGet app detailsA
Read-onlyIdempotent

Read-only. Shows one app's details (bundle ID, Apple ID, SKU, primary locale) and its latest App Store version and state per platform.

NameRequiredDescriptionDefault
appYesThe app: its name (e.g. "Acme"), bundle ID (com.example.app), or numeric Apple ID.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the leading 'Read-only' largely restates structured data. The description does add useful content beyond annotations by naming what the payload contains (app metadata plus latest version and state per platform), but says nothing about lookup failure behavior or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no padding, and the returned-field list is compact. The 'Read-only.' lead-in is mildly redundant with the annotations but is short enough not to be wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, non-mutating lookup with no output schema, the description tells the agent what identifying input forms exist and what the response covers. Only missing piece is explicit routing versus list_apps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'app' parameter is documented with all three accepted identifier forms (name, bundle ID, numeric Apple ID), so the schema carries the load. The description adds no identifier-format guidance beyond what the schema provides; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Shows one app's details') and enumerates the fields returned (bundle ID, Apple ID, SKU, primary locale) plus latest version/state per platform. The singular 'one app' implicitly distinguishes it from list_apps, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'one app' signals a single-record lookup versus list_apps or list_app_store_versions. There is no explicit statement of when to prefer this tool or when to reach for a sibling instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_appsList appsA
Read-onlyIdempotent

Read-only. Lists the apps in App Store Connect that your API key can see, with bundle IDs and Apple IDs. Optionally filter by part of the name or bundle ID.

NameRequiredDescriptionDefault
limitNoHow many apps to show (default 50).
searchNoPart of an app name or bundle ID.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so "Read-only" adds nothing new. The description does add real value beyond annotations by disclosing the permission scoping (results limited to what the API key can see) and the returned identity fields. It says nothing about pagination behavior or how to traverse beyond the limit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the read-only status and the core scope before the optional filter. No filler, and every sentence carries information the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, non-destructive listing tool with no output schema, the description is nearly complete: it names the resource, the access scope, and the fields returned, which substitutes for the missing output schema. The only gap is pagination/traversal behavior for the limit parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema, giving a baseline of 3. The description's "filter by part of the name or bundle ID" essentially restates the schema's own wording for 'search' rather than adding semantics such as matching rules for the limit parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Lists the apps in App Store Connect") plus the access scope ("that your API key can see") and returned fields (bundle IDs and Apple IDs). It implicitly contrasts with the singular get_app sibling via the plural 'list', but never names or explicitly distinguishes it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The final sentence gives clear guidance on the optional filtering behavior (partial match on name or bundle ID), which implies the main usage pattern. However, there is no explicit when-to-use guidance versus get_app (single app lookup) or the other list_* siblings, and no exclusions or prerequisites stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_app_store_versionsList App Store versionsA
Read-onlyIdempotent

Read-only. Lists an app's App Store versions, newest first, with platform, state (e.g. prepare for submission, waiting for review, in review, ready for distribution, rejected) and release type.

NameRequiredDescriptionDefault
appYesThe app: its name (e.g. "Acme"), bundle ID (com.example.app), or numeric Apple ID.
limitNoHow many versions to show (default 10, max 200).
platformNoOnly this platform.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety and idempotency profile, so 'Read-only' is largely redundant, but the description earns credit by disclosing ordering ('newest first') and the shape of returned records (platform, state with enumerated lifecycle values, release type) despite there being no output schema. It stops short of describing truncation or how the limit interacts with ordering across pages.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence plus a brief safety prefix; nothing is padded. The leading 'Read-only.' duplicates readOnlyHint from the annotations, which is the only wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with only three fully documented parameters and no output schema, the description supplies the essentials an agent needs: what is returned, in what order, and which fields matter. Adding more would tip into redundancy with the schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents app, limit, and platform, and the description adds no syntax or format detail beyond it. The mention of platform and state refers to returned data rather than filter semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Lists an app's App Store versions') and adds scope details (per-app, newest first). It does not explicitly contrast with the nearest sibling, list_builds, so an agent must infer that builds and App Store versions are different objects, but the resource naming makes the distinction reasonably discoverable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool for enumerating an app's App Store version records, but there is no explicit when-to-use, no mention of when to prefer list_builds or get_app, and no prerequisites such as needing the app to exist in App Store Connect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_beta_groupsList TestFlight groupsA
Read-onlyIdempotent

Read-only. Lists an app's TestFlight beta groups, showing whether each is internal or external and whether its public link is on.

NameRequiredDescriptionDefault
appYesThe app: its name (e.g. "Acme"), bundle ID (com.example.app), or numeric Apple ID.
limitNoHow many items to return (default 20, max 200).
cursorNoPaging cursor from a previous result's "More available" line.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the leading "Read-only" sentence merely repeats structured data. The genuinely additive part is the disclosure of what each result shows (internal/external status, public link on/off), which matters since there is no output schema. Pagination behavior via limit/cursor is left to the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded and free of filler. The opening "Read-only" is wasted given the annotations, but the rest earns its place by naming the returned attributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple paginated read with full schema coverage, the description supplies the crucial missing piece — what fields each group carries. It omits any mention of paging behavior, but cursor and limit are self-documenting in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — all three parameters (app identifier formats, limit default/max, cursor source) are documented in the schema itself. The description adds no additional meaning about parameters, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Lists an app's TestFlight beta groups") and even enumerates the key attributes returned (internal vs. external, public link state), so an agent knows exactly what it gets. It does not explicitly distinguish itself from siblings like list_beta_testers or get_app, which keeps it out of 5 territory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose: fetch the beta groups belonging to a given app. There is no statement of when to prefer this over list_beta_testers, no prerequisites (e.g., does the app need TestFlight enabled), and no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_beta_testersList TestFlight testersA
Read-onlyIdempotent

Read-only. Lists TestFlight testers for an app (or for one of its beta groups), with name, email, status (invited / accepted / installed …) and how they were invited.

NameRequiredDescriptionDefault
appYesThe app: its name (e.g. "Acme"), bundle ID (com.example.app), or numeric Apple ID.
groupNoOnly testers in this beta group (name or ID).
limitNoHow many items to return (default 20, max 200).
cursorNoPaging cursor from a previous result's "More available" line.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered; "Read-only." largely restates that. The description does add value beyond annotations by enumerating the returned fields (name, email, status values, invite source), which matters because there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the read-only nature front-loaded and no padding. The leading "Read-only." duplicates the annotation slightly, but the rest of the sentence is tight and information-dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter filtered list tool with a fully documented schema and no output schema, the description covers scope, the group-narrowing option, and the shape of the results including status values. An agent has everything needed to call it and interpret the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the group filter, limit and cursor is already documented in the schema. The description only adds the relational nuance that group scopes within an app, which is a modest supplement rather than new semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Lists TestFlight testers") and scopes it to an app or one of its beta groups, so it is distinguishable from list_beta_groups. It stops short of naming sibling tools explicitly, which keeps it out of the top band.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: call it when you need the testers of an app or a specific beta group. There is no explicit when-not guidance and no named alternative for related queries (e.g., listing the groups themselves via list_beta_groups).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_buildsList buildsA
Read-onlyIdempotent

Read-only. Lists an app's uploaded builds, newest first, with version, build number, platform, processing status (processing / ready / failed / invalid), upload time and expiry. Use status "processing" to see builds still being processed by Apple.

NameRequiredDescriptionDefault
appYesThe app: its name (e.g. "Acme"), bundle ID (com.example.app), or numeric Apple ID.
limitNoHow many items to return (default 20, max 200).
cursorNoPaging cursor from a previous result's "More available" line.
statusNoOnly builds with this processing status.
versionNoOnly builds for this app version, e.g. "1.4.0".
platformNoOnly this platform.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so "Read-only" is largely redundant. The description does add value beyond them: it discloses newest-first ordering, enumerates the fields present in each result (which matters since there is no output schema), and explains what the status values signify.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, with the resource and ordering front-loaded and the filtering tip last. The opening "Read-only." is a minor duplication of the readOnlyHint annotation, but nothing else is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because there is no output schema, the description's enumeration of returned fields and result ordering carries the return-value burden, and it does so well. Pagination and parameter details are fully covered by a 100%-described schema, so an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the schema, and the enumerated status/platform values are spelled out there too. The description restates the status values and adds a small hint about filtering by "processing", but adds no syntax or semantics beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ("Lists an app's uploaded builds") and immediately adds the ordering ("newest first") plus the exact fields returned (version, build number, platform, processing status, upload time, expiry). This clearly distinguishes it from siblings like list_app_store_versions, which return a different resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

One concrete tip is given: "Use status 'processing' to see builds still being processed by Apple." That helps with a specific filter state, but there is no guidance on when to choose this tool over list_app_store_versions or get_app, nor any exclusions or prerequisites — usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_customer_reviewsList customer reviewsA
Read-onlyIdempotent

Read-only. Lists an app's App Store customer reviews, newest first, with star rating, title, text (trimmed), country and date. Optionally filter by star rating or territory.

NameRequiredDescriptionDefault
appYesThe app: its name (e.g. "Acme"), bundle ID (com.example.app), or numeric Apple ID.
limitNoHow many items to return (default 20, max 200).
cursorNoPaging cursor from a previous result's "More available" line.
ratingNoOnly reviews with this many stars.
territoryNoOnly reviews from this App Store territory, as a 3-letter code (e.g. USA, GBR, DEU).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so "Read-only" is redundant. The description earns credit for details annotations cannot carry: the default newest-first ordering and the fact that review text is returned trimmed, which sets expectations about content fidelity. It stops short of mentioning pagination or result-volume behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with the most decision-relevant facts first (read-only, resource, ordering) followed by the returned fields and filters. Nothing is padded or restated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the returned fields, which is the main gap it needed to fill. The one omission is that results are paginated via the cursor parameter and a "More available" line; an agent could miss that without reading the schema closely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented with types, bounds, and formats. The description only restates that rating and territory act as optional filters, adding no new syntax or interaction semantics beyond the schema, which lands at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Lists an app's App Store customer reviews" gives a specific verb plus resource, and the surrounding clauses pin down scope (single app), ordering (newest first), and returned fields. The resource name alone distinguishes it from siblings like list_builds, list_beta_testers, and list_app_store_versions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the description establishes that this is the reviews-listing tool and notes the optional rating/territory filters, but never states when to reach for it versus get_app or the version-listing siblings, nor any prerequisites such as needing a resolvable app identifier. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.1.0
    • First observedget_app
    • First observedlist_app_store_versions
    • First observedlist_apps
    • First observedlist_beta_groups
    • First observedlist_beta_testers
    • First observedlist_builds
    • First observedlist_customer_reviews

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct App Store Connect resource: apps, builds, beta groups, beta testers, App Store versions and customer reviews. The only near-overlap is get_app vs list_apps, but the singular/plural split and the 'details with latest version state' framing make the boundary clear. Descriptions also spell out optional filters (status, star rating, territory) so parameter choice is unambiguous.

Naming Consistency5/5

A strict verb_noun pattern holds throughout: get_app plus six list_* tools. Pluralization is used correctly for collections (list_apps, list_builds, list_beta_groups) and singular for the single-resource get. No style mixing.

Tool Count5/5

Seven read-only tools is well-scoped for a focused App Store Connect inspection server, covering apps, builds, TestFlight and reviews without padding. Each tool maps to a distinct listing need; nothing feels redundant or missing at the count level.

Completeness3/5

The surface is entirely read-only, so there is no lifecycle coverage (no create/update beta group, invite testers, submit/release a version, or respond to reviews), and there is no single-build or single-version detail fetch analogous to get_app. For pure read/inspect workflows the listed resources are reasonably covered, but an agent trying to act on App Store Connect will hit multiple dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

  • App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.

    https://api.lance.app/mcp
  • Run App Store Connect from your IDE: pricing, listings, screenshots, releases, AI visibility.

    https://metarun.dev/api/mcp
  • Run Apple Search Ads from Claude: performance, recommendations, keywords, budgets, launches.

    https://app.asacondor.com/mcp
  • ASOClimb brings App Store Optimization into your AI assistant. Connect it once with OAuth sign-in, then ask in plain language about the apps you publish on the Apple App Store and Google Play. What it can do: - Keyword research: live keyword inspections with traffic, difficulty and KEI scores, top-ranking apps and related terms, plus live store autocomplete suggestions. - Rank tracking: track keywords for your apps, see daily rank observations, movers, favorites and rank alerts. - Competitors: track competitor apps, see the keywords they rank for, and find keyword gaps where they rank and you don't. - Market research: top free, paid and grossing charts, new releases, category ranks and niche analysis from a seed keyword. - Listing copy: check any App Store or Google Play listing, simulate new titles, subtitles and keyword fields against store character limits, save drafts and compare them with the live listing. - Account: see your plan, limits and month-to-date usage. Ranks are dated observations, not store-provided data. Tools that only read data are marked read-only. Only two tools remove data: untrack_keyword and remove_competitor. Plans: Free costs $0, covers 1 app, and includes 25 keyword inspections and 500 API/MCP requests a month. Pro costs $10 a month or $100 a year, covers up to 50 apps, includes unlimited keyword inspections and 50,000 API/MCP requests a month, and is sold at asoclimb.com/pricing. Monthly allowances reset on the 1st (UTC). Built by Approtic Solutions Private Limited.

    https://asoclimb.com/mcp

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Connects Claude to Apple's App Store Connect API, letting you manage apps, builds, TestFlight beta groups and testers, customer reviews and replies, sales and finance reports, and team users through natural language. Write actions such as invites, beta review submissions, and review responses require confirmation before anything is sent.
    22
    179 npm
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Gives Claude Code, Claude Desktop and Cursor access to Apple's full developer API surface — all 1,303 operations — so agents can manage app listings, builds and TestFlight testers, edit metadata and upload screenshots, handle pricing, in-app purchases and subscriptions, reply to customer reviews, and pull sales and finance reports. Includes searchable operation discovery, spec-validated calls, pagination, and read-only, write or full access modes with local key storage.
    19
    55 npm
    1
    MIT