# ASOClimb (remote · asoclimb.com)

App Store and Google Play keyword research, rank tracking, competitors, charts and niche analysis.

- Trust score: 36/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `asoclimb.com`: 36/100 (this document), [markdown](https://verifymcp.io/servers/com-asoclimb-aso/asoclimb.md), [page](https://verifymcp.io/servers/com-asoclimb-aso/asoclimb)

## Channel facts

- Endpoint: `https://asoclimb.com/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 89/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 0/100
  - Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http.
- **Schema Quality & AI Usability**: 0/100
  - Schema blocked by authentication: the endpoint requires auth we don't have to read it.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Tool Safety**: 0/100
  - Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.
- **Capabilities**: 0/100
  - Capabilities blocked by authentication: the endpoint requires auth we don't have to read them.

**Unverified: 6 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the ASOClimb MCP server?

ASOClimb is a hosted endpoint at https://asoclimb.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-asoclimb-aso 'https://asoclimb.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-asoclimb-aso": {
      "url": "https://asoclimb.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-asoclimb-aso": {
      "type": "http",
      "url": "https://asoclimb.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-asoclimb-aso]
url = "https://asoclimb.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-asoclimb-aso": {
      "type": "remote",
      "url": "https://asoclimb.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-asoclimb-aso --url 'https://asoclimb.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-asoclimb-aso:
    url: "https://asoclimb.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-asoclimb-aso": {
      "Transport": "http",
      "Url": "https://asoclimb.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-asoclimb-aso -t streamable-http -u 'https://asoclimb.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-asoclimb-aso": {
      "type": "http",
      "url": "https://asoclimb.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 36, 0)

- [security regression] Endpoint reachability: reachable → behind authorisation

### 2026-11-01 (score 36)

First indexed and scored.

## MCP tools (43)

### `get_account_usage` (~24 tokens)

Get account usage

Plan, limits and month-to-date usage for the workspace behind this key.

### `get_capabilities` (~28 tokens)

Get capabilities

Which stores and data sources this deployment serves: Google Play status, chart catalogs, autocomplete sources.

### `search_store` (~96 tokens)

Search store

Search a store for apps by name or keyword (listing metadata for up to 12 results, flagged when already tracked).

Input parameters:

- `country` (string, required): ISO country code, e.g. US, GB, IN.
- `language` (string): Language code, e.g. en. Defaults to en.
- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.
- `term` (string, required): Search term.

### `list_applications` (~22 tokens)

List applications

List the applications tracked in this workspace with their latest listing facts.

### `get_application` (~34 tokens)

Get application

One application with its tracked keywords, competitors and listing snapshots.

Input parameters:

- `application_id` (string, required): Application id from list_applications.

### `add_application` (~157 tokens)

Add application

Track an app by bundle id (Apple) or package name (Google Play). Discovery then auto-tracks keywords and competitors when auto_track is on.

Input parameters:

- `auto_track` (boolean): Discover and track keywords and competitors automatically (default true).
- `bundle_id` (string, required): Bundle id or package name.
- `country` (string, required): ISO country code, e.g. US, GB, IN.
- `language` (string): Language code, e.g. en. Defaults to en.
- `platform` (string): Apple platform: ios (iPhone & iPad, default) or macos (the Mac App Store). apple_app_store only.
- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `discover_keywords` (~104 tokens)

Discover keywords

Run keyword discovery for an application: title seeds, store suggestions and the titles of the apps that outrank it. With track true it also tracks the best candidates within the plan and up to five competitors.

Input parameters:

- `application_id` (string, required): Application id.
- `max_keywords` (integer): Maximum keywords to track when track is true (default 15).
- `track` (boolean): Track the best candidates and up to five competitors within the plan (default false: preview only).

### `list_keyword_opportunities` (~78 tokens)

List keyword opportunities

Keyword opportunities for one application, assembled only from what this workspace already stored (tracked terms and their rank observations, saved inspections, saved store suggestions, tracked competitors and the listing itself). Reads no store, so `status` is "pending" until a discovery pass has completed for the listing.

Input parameters:

- `application_id` (string, required): Application id.

### `track_keyword_opportunities` (~67 tokens)

Track keyword opportunities

Track up to 20 opportunity terms for an application. Terms the plan or the tracker rejects come back in `skipped` with a reason rather than being dropped silently.

Input parameters:

- `application_id` (string, required): Application id.
- `terms` (array, required): Terms from list_keyword_opportunities.

### `list_keywords` (~130 tokens)

List keywords

Tracked keywords with current rank, traffic, difficulty, KEI, favorite flag and movement. rank_change is the places gained since the previous observation day (negative = lost); it is null, not 0, when there is no earlier day or when either day did not rank (the keyword entered or left the observed depth: compare current_rank with previous_rank).

Input parameters:

- `application_id` (string): Filter by application id.
- `country` (string): ISO country code, e.g. US, GB, IN.
- `store` (string): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `track_keywords` (~45 tokens)

Track keywords

Track up to 20 keywords for an application; each gets an immediate rank observation.

Input parameters:

- `application_id` (string, required): Application id.
- `keywords` (array, required): Keywords to track.

### `untrack_keyword` (~47 tokens)

Untrack keyword

Stop tracking a keyword. History is kept unless purge is true.

Input parameters:

- `keyword_id` (string, required): Tracking id from list_keywords.
- `purge` (boolean): Delete the rank history too.

### `set_keyword_favorite` (~38 tokens)

Set keyword favorite

Mark or unmark a tracked keyword as a favorite.

Input parameters:

- `favorite` (boolean, required)
- `keyword_id` (string, required): Tracking id.

### `get_keyword_rank_history` (~49 tokens)

Get keyword rank history

Daily rank, traffic, difficulty and KEI observations for a tracked keyword.

Input parameters:

- `days` (integer): Window in days (default 30).
- `keyword_id` (string, required): Tracking id.

### `inspect_keyword` (~145 tokens)

Inspect keyword (live)

Live keyword inspection: top apps, traffic/difficulty/KEI scores with breakdown (including autocomplete demand), related keywords. Spends one keyword inspection from the monthly plan allowance and stores the result.

Input parameters:

- `country` (string, required): ISO country code, e.g. US, GB, IN.
- `keyword` (string, required): Keyword to inspect.
- `language` (string): Language code, e.g. en. Defaults to en.
- `platform` (string): Apple platform: ios (iPhone & iPad, default) or macos (the Mac App Store). apple_app_store only.
- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `list_keyword_inspections` (~18 tokens)

List keyword inspections

Recent stored keyword inspections in the workspace.

### `get_keyword_inspection` (~28 tokens)

Get keyword inspection

One stored inspection with its full breakdown.

Input parameters:

- `inspection_id` (string, required): Inspection id.

### `run_autocomplete` (~117 tokens)

Store autocomplete (live)

Live store search suggestions for a prefix, in the order the store shows them (Apple search hints / Google Play suggest). Spends one autocomplete request from the monthly plan allowance and stores the observation.

Input parameters:

- `country` (string, required): ISO country code, e.g. US, GB, IN.
- `language` (string): Language code, e.g. en. Defaults to en.
- `prefix` (string, required): What the shopper has typed so far.
- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `list_autocomplete_history` (~14 tokens)

List autocomplete history

Stored autocomplete observations.

### `run_niche_analysis` (~210 tokens)

Niche analysis (live)

Analyze a niche from a seed keyword: related terms from store suggestions and title phrases, clusters, modeled market size (ranges), success rate above a threshold, newcomer success, top-3 concentration, keyword difficulty, and a 0-100 opportunity score with its range and components. Spends one niche analysis from the monthly plan allowance and stores the result.

Input parameters:

- `country` (string, required): ISO country code, e.g. US, GB, IN.
- `language` (string): Language code, e.g. en. Defaults to en.
- `platform` (string): Apple platform: ios (iPhone & iPad, default) or macos (the Mac App Store). apple_app_store only.
- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.
- `threshold` (number): Monthly success threshold (default 10000).
- `threshold_metric` (string): What the threshold measures (default revenue).
- `topic` (string, required): Topic or seed phrase.

### `list_niche_analyses` (~29 tokens)

List niche analyses

Stored niche analyses: topic, storefront, schema version and opportunity score with its range.

### `list_competitors` (~34 tokens)

List competitors

Competitors tracked for an application (or the whole workspace).

Input parameters:

- `application_id` (string): Filter by application id.

### `add_competitor` (~47 tokens)

Add competitor

Track a competitor app for one of your applications.

Input parameters:

- `application_id` (string, required): Your application id.
- `competitor_bundle_id` (string, required): Competitor bundle id or package name.

### `remove_competitor` (~31 tokens)

Remove competitor

Stop tracking a competitor.

Input parameters:

- `competitor_id` (string, required): Competitor id from list_competitors.

### `get_competitor_keywords` (~33 tokens)

Get competitor keywords

Keywords where a competitor ranks, from your tracked observations.

Input parameters:

- `competitor_id` (string, required): Competitor id.

### `list_top_chart_categories` (~37 tokens)

List top chart categories

Chart collections and categories available for a store.

Input parameters:

- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `top_charts` (~127 tokens)

Top charts

Top free, paid or grossing chart for a store, country and category, with daily movement and new entries.

Input parameters:

- `category` (string): Category id from list_top_chart_categories (default overall).
- `collection` (string)
- `country` (string, required): ISO country code, e.g. US, GB, IN.
- `language` (string): Language code, e.g. en. Defaults to en.
- `limit` (integer): Rows (default 100, max 200).
- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `list_new_release_categories` (~47 tokens)

List new release categories

New-release collections and categories available for a store, with the coverage each store can honestly answer.

Input parameters:

- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `new_releases` (~178 tokens)

New releases

Apps released to a storefront within a recent window, flagged with the chart position of the ones already ranking. Observed price, in-app purchase and audience fields only: neither store publishes per-app revenue, and none is estimated.

Input parameters:

- `category` (string): Category id from list_new_release_categories (default overall).
- `collection` (string): Collection id from list_new_release_categories (App Store: free, paid, grossing; Google Play: new_free, new_paid).
- `country` (string, required): ISO country code, e.g. US, GB, IN.
- `days` (integer): Release window in days (default 7, max 30).
- `language` (string): Language code, e.g. en. Defaults to en.
- `store` (string, required): Store. Google Play needs GOOGLE_PLAY_SOURCE on the deployment.

### `get_category_rank` (~49 tokens)

Category rank (live)

Where one of your applications sits in its own category chart today, plus the stored daily history. Records today's observation.

Input parameters:

- `application_id` (string, required): Application id.
- `collection` (string)

### `get_app_score_history` (~51 tokens)

Get app score history

Rank observations for an application across all its keywords over a window.

Input parameters:

- `application_id` (string, required): Application id.
- `days` (integer): Window in days (default 7, max 90).

### `get_dashboard` (~42 tokens)

Workspace dashboard

Workspace dashboard: totals, movers, alerts and scheduler status. A mover with change null entered the observed results (previous_rank null) or left them (current_rank null).

### `get_scheduler_health` (~47 tokens)

Get scheduler health

Whether the hourly observation job is running and how much of this workspace it has covered today: heartbeat state, tracked vs observed-today counts and the last 24 runs that included this workspace.

### `list_alert_events` (~14 tokens)

List alert events

Recent rank alert events.

### `get_metadata` (~68 tokens)

Get metadata

The stored live listing of a tracked application (title and description from the store; subtitle, keyword field or short description from the draft marked current), store character limits, checks on the live copy, the coverage of its tracked keywords and the saved drafts.

Input parameters:

- `application_id` (string, required): Application id.

### `simulate_metadata` (~208 tokens)

Simulate metadata

Check proposed listing copy for a tracked application and simulate it: character counters against store limits, duplicate and wasted words, keyword-field spacing, competitor brand names, Google Play description density, and which tracked or candidate keywords become covered or uncovered with a modeled coverage score (live vs draft). Coverage is a model, not a rank prediction. Stores nothing.

Input parameters:

- `application_id` (string, required): Application id.
- `candidates` (array): Extra terms to simulate besides the tracked keywords (up to 50).
- `description` (string): Description (4000). Indexed by Google Play, not by the App Store.
- `keywords` (string): App Store keyword field (100, comma separated, no spaces needed). Not public: supply your own.
- `short_description` (string): Google Play short description (80).
- `subtitle` (string): App Store subtitle (30). Not public: supply the live one from App Store Connect.
- `title` (string, required): Title (30 characters on both stores).

### `save_metadata_draft` (~187 tokens)

Save metadata draft

Save listing copy as a named draft for a tracked application, optionally marking it as the copy that is live today (fills the private fields of the live baseline). Counts against the monthly draft-save allowance.

Input parameters:

- `application_id` (string, required): Application id.
- `description` (string): Description (4000). Indexed by Google Play, not by the App Store.
- `is_current` (boolean): This is the copy live in the store today.
- `keywords` (string): App Store keyword field (100, comma separated, no spaces needed). Not public: supply your own.
- `name` (string): Draft name.
- `short_description` (string): Google Play short description (80).
- `subtitle` (string): App Store subtitle (30). Not public: supply the live one from App Store Connect.
- `title` (string, required): Title (30 characters on both stores).

### `list_metadata_drafts` (~40 tokens)

List metadata drafts

Saved metadata drafts for a tracked application, with the coverage and check counts stored when each was saved.

Input parameters:

- `application_id` (string, required): Application id.

### `compare_metadata_draft` (~47 tokens)

Compare metadata draft

One saved draft compared field by field with the live listing, re-simulated against the current rank observations.

Input parameters:

- `draft_id` (string, required): Draft id from list_metadata_drafts.

### `check_listing_metadata` (~213 tokens)

Check listing metadata

Check any App Store or Google Play listing, tracked or not: reads its public title and description now and runs the metadata checks on them plus any subtitle, keyword field or terms you supply. Stores nothing.

Input parameters:

- `bundle_id` (string, required): Bundle id or package name.
- `candidates` (array): Extra terms to simulate besides the tracked keywords (up to 50).
- `country` (string, required): ISO country code.
- `description` (string): Description (4000). Indexed by Google Play, not by the App Store.
- `keywords` (string): App Store keyword field (100, comma separated, no spaces needed). Not public: supply your own.
- `language` (string): Language code (default en).
- `short_description` (string): Google Play short description (80).
- `store` (string, required)
- `subtitle` (string): App Store subtitle (30). Not public: supply the live one from App Store Connect.
- `title` (string): Title (30 characters on both stores).

### `get_keyword_gap` (~82 tokens)

Get keyword gap

Keyword gap against one tracked competitor: terms it ranks for in the top 30 where your app does not (with both ranks, modeled traffic, difficulty and an opportunity score), plus shared and only-you lists. Terms come only from this workspace's tracked keywords and its own keyword inspections.

Input parameters:

- `competitor_id` (string, required): Competitor id from list_competitors.

### `list_keyword_gaps` (~40 tokens)

List keyword gaps

Keyword-gap summary for every tracked competitor of an application, with each competitor's five best gap terms.

Input parameters:

- `application_id` (string, required): Application id.

### `expand_keyword_gap` (~115 tokens)

Expand keyword gap

Widen a competitor's keyword gap: ask the store autocomplete about words from the competitor's title (or the prefixes given) and inspect new suggestions. Spends one autocomplete request per prefix and one keyword inspection per inspected term from the monthly allowances, then returns the refreshed gap.

Input parameters:

- `competitor_id` (string, required): Competitor id.
- `max_terms` (integer): Most suggestions to inspect (default 5, max 10).
- `prefixes` (array): Up to 3 prefixes (default: words from the competitor title).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-asoclimb-aso/asoclimb#diagnostics

## Score history

- 2026-11-05: 36
- 2026-11-04: 36
- 2026-11-03: 36
- 2026-11-02: 36
- 2026-11-01: 36

## Common questions

### What is the ASOClimb MCP server?

ASOClimb is an MCP server listed in the public MCP registry as com.asoclimb/aso. App Store and Google Play keyword research, rank tracking, competitors, charts and niche analysis. This page covers its hosted endpoint (https://asoclimb.com/mcp).

### Is the ASOClimb MCP server safe to use?

ASOClimb scores 36 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ASOClimb MCP server expose?

ASOClimb exposes 43 tools: get_account_usage, get_capabilities, search_store, list_applications, get_application, and 38 more. Their descriptions and schemas cost roughly 3,217 tokens of context every time the server is loaded.

### Does the ASOClimb MCP server require authentication?

Yes. ASOClimb asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the ASOClimb MCP server still maintained?

ASOClimb is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the ASOClimb MCP server?

VerifyMCP ran 5 checks on ASOClimb, covering TLS certificate, Authorization, HTTPS, HSTS header and 1 more. 6 items could not be completed, a gap on our side rather than a finding about ASOClimb: Transport, Schema quality, Stability, Tool coverage and 2 more. 6 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://asoclimb.com/mcp
- Website: https://asoclimb.com/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-asoclimb-aso/asoclimb.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-asoclimb-aso/asoclimb/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/com-asoclimb-aso/asoclimb.json
- HTML version of this page: https://verifymcp.io/servers/com-asoclimb-aso/asoclimb
