# rankcusp

> App Store keyword ranks, the 11-30 cusp band, metadata audits and rival positions.

- name: com.rankcusp/aso
- version: 1.0.0
- connection class: R1 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 85/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.rankcusp%2Faso
- tools: https://api.protogrid.dev/v1/servers/com.rankcusp%2Faso/tools

**An agent can connect on its own if it already holds `rankcusp_api_key`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "aso": {
      "type": "http",
      "url": "https://rankcusp.com/api/mcp",
      "headers": {
        "Authorization": "Bearer ${rankcusp_api_key}"
      }
    }
  }
}
```

Placeholders to fill: `${rankcusp_api_key}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% ~updated-56d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 85/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: audit_metadata (openWorldHint); country_priorities (openWorldHint); ranking_keywords (openWorldHint); …
- pass `tools.token_cost`: about 1,374 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 1,374 tokens to load them all
- tool set hash: 9c5e1a384d00fb048da7db3ffcebaffc
- badge: [![protogrid quality](https://protogrid.dev/badge/com.rankcusp/aso.svg)](https://protogrid.dev/servers/com.rankcusp/aso)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://rankcusp.com/api/mcp (streamable-http, auth api_key ${rankcusp_api_key}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (9)

- `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.
- `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.
- `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.
- `cusp_actions`: The keywords in the 11-30 band, ordered by popularity. The work list a metadata edit pays off on most.
- `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.
- `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.
- `list_apps`: Lists the apps and rivals tracked on the account. The appId and storefront codes the other tools want come from here.
- `list_keywords`: Lists an app's keywords in one storefront, with rank, popularity and difficulty.
- `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.
