MCP Server

rankcusp

com.rankcusp/aso
Data & Analytics Marketing & Advertising Public & reachable MCP 2026-07-28

What this MCP does

Analyzes app store keyword rankings, competitors, metadata quality, market priorities, and optimization opportunities.

add_keywords
Adds keywords to an app's tracked set in one storefront. Takes a list or a comma-separated paste. They arrive unscored - scoring costs requests to Apple and happens on the collector's schedule - so do not read a null popularity here as a zero.
Idempotent
Input schema
{'type': 'object', 'required': ['appId', 'country', 'keywords'], 'properties': {'appId': {'type': 'string', 'description': 'App Store app id'}, 'country': {'type': 'string', 'description': 'Storefront code, e.g. us, tr, de'}, 'keywords': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The phrases to track.'}}, 'additionalProperties': False}
audit_metadata
Audits a draft title, subtitle and 100-character keyword field against Apple's rules and against each other. Returns what is wasted, what Apple will actually index, and the field rewritten without the waste. Nothing is submitted anywhere - this only reads the text you pass in.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['country'], 'properties': {'title': {'type': 'string', 'description': 'Up to 30 characters.'}, 'country': {'type': 'string', 'description': 'Storefront code, e.g. us, tr, de'}, 'subtitle': {'type': 'string', 'description': 'Up to 30 characters.'}, 'keywordField': {'type': 'string', 'description': 'The 100-character field, comma-separated, as App Store Connect wants it.'}}, 'additionalProperties': False}
country_priorities
Ranks the storefronts an app is tracked in by how much is winnable there: how many keywords sit in the cusp band, how many already reach the top ten, and whether the rivals' ratings leave an opening. Answers which market to work on first.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['appId'], 'properties': {'appId': {'type': 'string', 'description': 'App Store app id'}}, 'additionalProperties': False}
cusp_actions
The keywords in the 11-30 band, ordered by popularity. The work list a metadata edit pays off on most.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['appId', 'country'], 'properties': {'appId': {'type': 'string', 'description': 'App Store app id'}, 'limit': {'type': 'number'}, 'country': {'type': 'string', 'description': 'Storefront code, e.g. us, tr, de'}}, 'additionalProperties': False}
get_keyword
One keyword: its rank, its scores, its first page and the verdict - should it be targeted, and why. Every unmeasured value comes back null, never zero.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['appId', 'country', 'keyword'], 'properties': {'appId': {'type': 'string', 'description': 'App Store app id'}, 'country': {'type': 'string', 'description': 'Storefront code, e.g. us, tr, de'}, 'keyword': {'type': 'string', 'description': 'The phrase to look up.'}}, 'additionalProperties': False}
keyword_competitors
Who ranks for a phrase, deeper than the ten the first page carries. Use it to find the rivals a first-page reading misses - an app at 40 for a phrase you sit at 60 for is the one to study.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['keyword', 'country'], 'properties': {'limit': {'type': 'number'}, 'country': {'type': 'string', 'description': 'Storefront code, e.g. us, tr, de'}, 'keyword': {'type': 'string', 'description': 'The phrase to look up.'}}, 'additionalProperties': False}
list_apps
Lists the apps and rivals tracked on the account. The appId and storefront codes the other tools want come from here.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
list_keywords
Lists an app's keywords in one storefront, with rank, popularity and difficulty.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['appId', 'country'], 'properties': {'appId': {'type': 'string', 'description': 'App Store app id'}, 'limit': {'type': 'number', 'description': 'How many rows, at most 200.'}, 'offset': {'type': 'number'}, 'country': {'type': 'string', 'description': 'Storefront code, e.g. us, tr, de'}, 'cuspOnly': {'type': 'boolean', 'description': 'The 11-30 band only: the ones that reach the first page with the least effort.'}, 'rankedOnly': {'type': 'boolean', 'description': 'Only the ones ranking in the top 200.'}}, 'additionalProperties': False}
ranking_keywords
Which keywords an app is already ranking for, from the pooled record of every search this product has run. Works on any App Store id, not only the ones on this account - point it at a rival to read theirs. Apple publishes no endpoint for this; the answer is only as wide as what has been observed, so an app nobody has swept near returns little.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['appId'], 'properties': {'appId': {'type': 'string', 'description': 'App Store app id'}, 'limit': {'type': 'number', 'description': 'How many rows, at most 200.'}, 'country': {'type': 'string', 'description': 'Storefront code, e.g. us, tr, de'}, 'maxRank': {'type': 'number', 'description': 'Only positions at or above this, e.g. 30 for the reachable band.'}}, 'additionalProperties': False}
Added
cusp_actions
Sept. 17, 2026, 12:37 p.m.
Added
add_keywords
Sept. 17, 2026, 12:37 p.m.
Added
keyword_competitors
Sept. 17, 2026, 12:37 p.m.
Added
ranking_keywords
Sept. 17, 2026, 12:37 p.m.
Added
country_priorities
Sept. 17, 2026, 12:37 p.m.
Added
audit_metadata
Sept. 17, 2026, 12:37 p.m.
Added
get_keyword
Sept. 17, 2026, 12:37 p.m.
Added
list_keywords
Sept. 17, 2026, 12:37 p.m.
Added
list_apps
Sept. 17, 2026, 12:37 p.m.