Skip to content

ASOClimb

com.asoclimb/asoasoclimb.comstreamable-httpv1.0.1Scanned

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

43 tools: 16 can delete or cancel things, 3 change things and 24 only read.

Tools: 16 delete, 0 irreversible, 3 write, 24 read.
  • Reads private data · 0
  • Reads text others write · 43
  • Can send data out · 0
  • 3 findings

Anlyon alternative

19 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

43 tools

Deletes or cancels 16Claude Code: deny
  • add_applicationTrack an app by bundle id (Apple) or package name (Google Play).Reads text others writeNo findings

    Why it is in this group

    • The name "add_application" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Track an app by bundle id (Apple) or package name (Google Play). Discovery then auto-tracks keywords and competitors when auto_track is on.

    Annotations the server declares

    • title: Add application
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • add_competitorTrack a competitor app for one of your applications.Reads text others writeNo findings

    Why it is in this group

    • The name "add_competitor" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Track a competitor app for one of your applications.

    Annotations the server declares

    • title: Add competitor
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • check_listing_metadataCheck 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 term…Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Check listing metadata
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • discover_keywordsRun keyword discovery for an application: title seeds, store suggestions and the titles of the apps that outrank it.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "run": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Discover keywords
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • expand_keyword_gapWiden a competitor's keyword gap: ask the store autocomplete about words from the competitor's title (or the prefixes given) and inspect new suggestions.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Expand keyword gap
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • get_category_rankWhere one of your applications sits in its own category chart today, plus the stored daily history.Reads text others write1 finding

    Why it is in this group

    • The name "get_category_rank" says "get": a word for reading.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "get_category_rank" destructive (destructiveHint: true), and its name says "get", a word for reading.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "get_category_rank" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Where one of your applications sits in its own category chart today, plus the stored daily history. Records today's observation.

    Annotations the server declares

    • title: Category rank (live)
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • inspect_keywordLive keyword inspection: top apps, traffic/difficulty/KEI scores with breakdown (including autocomplete demand), related keywords.Reads text others write1 finding

    Why it is in this group

    • The name "inspect_keyword" says "inspect": a word for reading.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "inspect_keyword" destructive (destructiveHint: true), and its name says "inspect", a word for reading.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "inspect_keyword" says "inspect": a word for reading.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Inspect keyword (live)
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • remove_competitorStop tracking a competitor.Reads text others writeNo findings

    Why it is in this group

    • The name "remove_competitor" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Stop tracking a competitor.

    Annotations the server declares

    • title: Remove competitor
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • run_autocompleteLive store search suggestions for a prefix, in the order the store shows them (Apple search hints / Google Play suggest).Reads text others writeNo findings

    Why it is in this group

    • The name "run_autocomplete" says "run": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Store autocomplete (live)
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • run_niche_analysisAnalyze 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 succes…Reads text others writeNo findings

    Why it is in this group

    • The name "run_niche_analysis" says "run": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Niche analysis (live)
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • save_metadata_draftSave 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).Reads text others writeNo findings

    Why it is in this group

    • The name "save_metadata_draft" says "save": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Save metadata draft
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • set_keyword_favoriteMark or unmark a tracked keyword as a favorite.Reads text others writeNo findings

    Why it is in this group

    • The name "set_keyword_favorite" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Mark or unmark a tracked keyword as a favorite.

    Annotations the server declares

    • title: Set keyword favorite
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
  • simulate_metadataCheck proposed listing copy for a tracked application and simulate it: character counters against store limits, duplicate and wasted words, keyword-field spacing, competitor brand …Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Simulate metadata
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • track_keyword_opportunitiesTrack up to 20 opportunity terms for an application.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Track keyword opportunities
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • track_keywordsTrack up to 20 keywords for an application; each gets an immediate rank observation.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Track up to 20 keywords for an application; each gets an immediate rank observation.

    Annotations the server declares

    • title: Track keywords
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • untrack_keywordStop tracking a keyword.Reads text others writeNo findings

    Why it is in this group

    • The description's first verb is "stop": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Stop tracking a keyword. History is kept unless purge is true.

    Annotations the server declares

    • title: Untrack keyword
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Changes things 3Claude Code: ask
  • get_capabilitiesWhich stores and data sources this deployment serves: Google Play status, chart catalogs, autocomplete sources.Reads text others write1 finding

    Why it is in this group

    • The name "get_capabilities" says "get": a word for reading.
    • The description's first verb is "store": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "get_capabilities" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_capabilities" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Which stores and data sources this deployment serves: Google Play status, chart catalogs, autocomplete sources.

    Annotations the server declares

    • title: Get capabilities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • new_releasesApps released to a storefront within a recent window, flagged with the chart position of the ones already ranking.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: New releases
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • top_chartsTop free, paid or grossing chart for a store, country and category, with daily movement and new entries.Reads text others writeNo findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Top free, paid or grossing chart for a store, country and category, with daily movement and new entries.

    Annotations the server declares

    • title: Top charts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 24Show 24 read-only tools
  • compare_metadata_draftOne saved draft compared field by field with the live listing, re-simulated against the current rank observations.Reads text others writeNo findings

    Why it is in this group

    • The name "compare_metadata_draft" says "compare": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One saved draft compared field by field with the live listing, re-simulated against the current rank observations.

    Annotations the server declares

    • title: Compare metadata draft
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_account_usagePlan, limits and month-to-date usage for the workspace behind this key.Reads text others writeNo findings

    Why it is in this group

    • The name "get_account_usage" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Plan, limits and month-to-date usage for the workspace behind this key.

    Annotations the server declares

    • title: Get account usage
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_app_score_historyRank observations for an application across all its keywords over a window.Reads text others writeNo findings

    Why it is in this group

    • The name "get_app_score_history" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Rank observations for an application across all its keywords over a window.

    Annotations the server declares

    • title: Get app score history
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_applicationOne application with its tracked keywords, competitors and listing snapshots.Reads text others writeNo findings

    Why it is in this group

    • The name "get_application" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One application with its tracked keywords, competitors and listing snapshots.

    Annotations the server declares

    • title: Get application
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_competitor_keywordsKeywords where a competitor ranks, from your tracked observations.Reads text others writeNo findings

    Why it is in this group

    • The name "get_competitor_keywords" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Keywords where a competitor ranks, from your tracked observations.

    Annotations the server declares

    • title: Get competitor keywords
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_dashboardWorkspace dashboard: totals, movers, alerts and scheduler status.Reads text others writeNo findings

    Why it is in this group

    • The name "get_dashboard" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • title: Workspace dashboard
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_keyword_gapKeyword 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 s…Reads text others writeNo findings

    Why it is in this group

    • The name "get_keyword_gap" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get keyword gap
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_keyword_inspectionOne stored inspection with its full breakdown.Reads text others writeNo findings

    Why it is in this group

    • The name "get_keyword_inspection" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One stored inspection with its full breakdown.

    Annotations the server declares

    • title: Get keyword inspection
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_keyword_rank_historyDaily rank, traffic, difficulty and KEI observations for a tracked keyword.Reads text others writeNo findings

    Why it is in this group

    • The name "get_keyword_rank_history" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Daily rank, traffic, difficulty and KEI observations for a tracked keyword.

    Annotations the server declares

    • title: Get keyword rank history
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_metadataThe 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…Reads text others writeNo findings

    Why it is in this group

    • The name "get_metadata" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get metadata
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_scheduler_healthWhether 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 inclu…Reads text others writeNo findings

    Why it is in this group

    • The name "get_scheduler_health" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get scheduler health
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_alert_eventsRecent rank alert events.Reads text others writeNo findings

    Why it is in this group

    • The name "list_alert_events" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Recent rank alert events.

    Annotations the server declares

    • title: List alert events
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_applicationsList the applications tracked in this workspace with their latest listing facts.Reads text others writeNo findings

    Why it is in this group

    • The name "list_applications" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List the applications tracked in this workspace with their latest listing facts.

    Annotations the server declares

    • title: List applications
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_autocomplete_historyStored autocomplete observations.Reads text others writeNo findings

    Why it is in this group

    • The name "list_autocomplete_history" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Stored autocomplete observations.

    Annotations the server declares

    • title: List autocomplete history
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_competitorsCompetitors tracked for an application (or the whole workspace).Reads text others writeNo findings

    Why it is in this group

    • The name "list_competitors" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Competitors tracked for an application (or the whole workspace).

    Annotations the server declares

    • title: List competitors
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_keyword_gapsKeyword-gap summary for every tracked competitor of an application, with each competitor's five best gap terms.Reads text others writeNo findings

    Why it is in this group

    • The name "list_keyword_gaps" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Keyword-gap summary for every tracked competitor of an application, with each competitor's five best gap terms.

    Annotations the server declares

    • title: List keyword gaps
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_keyword_inspectionsRecent stored keyword inspections in the workspace.Reads text others writeNo findings

    Why it is in this group

    • The name "list_keyword_inspections" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Recent stored keyword inspections in the workspace.

    Annotations the server declares

    • title: List keyword inspections
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_keyword_opportunitiesKeyword opportunities for one application, assembled only from what this workspace already stored (tracked terms and their rank observations, saved inspections, saved store suggest…Reads text others writeNo findings

    Why it is in this group

    • The name "list_keyword_opportunities" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List keyword opportunities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_keywordsTracked keywords with current rank, traffic, difficulty, KEI, favorite flag and movement.Reads text others writeNo findings

    Why it is in this group

    • The name "list_keywords" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • title: List keywords
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_metadata_draftsSaved metadata drafts for a tracked application, with the coverage and check counts stored when each was saved.Reads text others writeNo findings

    Why it is in this group

    • The name "list_metadata_drafts" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Saved metadata drafts for a tracked application, with the coverage and check counts stored when each was saved.

    Annotations the server declares

    • title: List metadata drafts
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_new_release_categoriesNew-release collections and categories available for a store, with the coverage each store can honestly answer.Reads text others writeNo findings

    Why it is in this group

    • The name "list_new_release_categories" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    New-release collections and categories available for a store, with the coverage each store can honestly answer.

    Annotations the server declares

    • title: List new release categories
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_niche_analysesStored niche analyses: topic, storefront, schema version and opportunity score with its range.Reads text others writeNo findings

    Why it is in this group

    • The name "list_niche_analyses" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Stored niche analyses: topic, storefront, schema version and opportunity score with its range.

    Annotations the server declares

    • title: List niche analyses
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_top_chart_categoriesChart collections and categories available for a store.Reads text others writeNo findings

    Why it is in this group

    • The name "list_top_chart_categories" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Chart collections and categories available for a store.

    Annotations the server declares

    • title: List top chart categories
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • search_storeSearch a store for apps by name or keyword (listing metadata for up to 12 results, flagged when already tracked).Reads text others writeNo findings

    Why it is in this group

    • The name "search_store" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search a store for apps by name or keyword (listing metadata for up to 12 results, flagged when already tracked).

    Annotations the server declares

    • title: Search store
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.

Reads private data0
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "get_capabilities" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "get_capabilities" says "get": a word for reading.

    What this check looks for
  • The server marks "inspect_keyword" destructive (destructiveHint: true), and its name says "inspect", a word for reading.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "inspect_keyword" says "inspect": a word for reading.

    What this check looks for
  • The server marks "get_category_rank" destructive (destructiveHint: true), and its name says "get", a word for reading.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}; The name "get_category_rank" says "get": a word for reading.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

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

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__aso__get_account_usage",
      "mcp__aso__search_store",
      "mcp__aso__list_applications",
      "mcp__aso__get_application",
      "mcp__aso__list_keyword_opportunities",
      "mcp__aso__list_keywords",
      "mcp__aso__get_keyword_rank_history",
      "mcp__aso__list_keyword_inspections",
      "mcp__aso__get_keyword_inspection",
      "mcp__aso__list_autocomplete_history",
      "mcp__aso__list_niche_analyses",
      "mcp__aso__list_competitors",
      "mcp__aso__get_competitor_keywords",
      "mcp__aso__list_top_chart_categories",
      "mcp__aso__list_new_release_categories",
      "mcp__aso__get_app_score_history",
      "mcp__aso__get_dashboard",
      "mcp__aso__get_scheduler_health",
      "mcp__aso__list_alert_events",
      "mcp__aso__get_metadata",
      "mcp__aso__list_metadata_drafts",
      "mcp__aso__compare_metadata_draft",
      "mcp__aso__get_keyword_gap",
      "mcp__aso__list_keyword_gaps"
    ],
    "ask": [
      "mcp__aso__get_capabilities",
      "mcp__aso__top_charts",
      "mcp__aso__new_releases"
    ],
    "deny": [
      "mcp__aso__add_application",
      "mcp__aso__discover_keywords",
      "mcp__aso__track_keyword_opportunities",
      "mcp__aso__track_keywords",
      "mcp__aso__untrack_keyword",
      "mcp__aso__set_keyword_favorite",
      "mcp__aso__inspect_keyword",
      "mcp__aso__run_autocomplete",
      "mcp__aso__run_niche_analysis",
      "mcp__aso__add_competitor",
      "mcp__aso__remove_competitor",
      "mcp__aso__get_category_rank",
      "mcp__aso__simulate_metadata",
      "mcp__aso__save_metadata_draft",
      "mcp__aso__check_listing_metadata",
      "mcp__aso__expand_keyword_gap"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as aso. Review it before you use it.

Capability tags behind 43 rules
  • mcp__aso__get_account_usage untrusted-input
  • mcp__aso__get_capabilities untrusted-input
  • mcp__aso__search_store untrusted-input
  • mcp__aso__list_applications untrusted-input
  • mcp__aso__get_application untrusted-input
  • mcp__aso__add_application untrusted-input
  • mcp__aso__discover_keywords untrusted-input
  • mcp__aso__list_keyword_opportunities untrusted-input
  • mcp__aso__track_keyword_opportunities untrusted-input
  • mcp__aso__list_keywords untrusted-input
  • mcp__aso__track_keywords untrusted-input
  • mcp__aso__untrack_keyword untrusted-input
  • mcp__aso__set_keyword_favorite untrusted-input
  • mcp__aso__get_keyword_rank_history untrusted-input
  • mcp__aso__inspect_keyword untrusted-input
  • mcp__aso__list_keyword_inspections untrusted-input
  • mcp__aso__get_keyword_inspection untrusted-input
  • mcp__aso__run_autocomplete untrusted-input
  • mcp__aso__list_autocomplete_history untrusted-input
  • mcp__aso__run_niche_analysis untrusted-input
  • mcp__aso__list_niche_analyses untrusted-input
  • mcp__aso__list_competitors untrusted-input
  • mcp__aso__add_competitor untrusted-input
  • mcp__aso__remove_competitor untrusted-input
  • mcp__aso__get_competitor_keywords untrusted-input
  • mcp__aso__list_top_chart_categories untrusted-input
  • mcp__aso__top_charts untrusted-input
  • mcp__aso__list_new_release_categories untrusted-input
  • mcp__aso__new_releases untrusted-input
  • mcp__aso__get_category_rank untrusted-input
  • mcp__aso__get_app_score_history untrusted-input
  • mcp__aso__get_dashboard untrusted-input
  • mcp__aso__get_scheduler_health untrusted-input
  • mcp__aso__list_alert_events untrusted-input
  • mcp__aso__get_metadata untrusted-input
  • mcp__aso__simulate_metadata untrusted-input
  • mcp__aso__save_metadata_draft untrusted-input
  • mcp__aso__list_metadata_drafts untrusted-input
  • mcp__aso__compare_metadata_draft untrusted-input
  • mcp__aso__check_listing_metadata untrusted-input
  • mcp__aso__get_keyword_gap untrusted-input
  • mcp__aso__list_keyword_gaps untrusted-input
  • mcp__aso__expand_keyword_gap untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.asoclimb/aso/verify?hash=7e2591c3fbf6d54a62942530046b10f768cf102de5ceb5367668bcf0cfb43458" | jq -e '.changed == false'

Pinned hash 7e2591c3fbf6, from Nov 1, 2026, 14:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.asoclimb/aso/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.asoclimb/aso
[![anlyon.dev](https://anlyon.dev/badge/com.asoclimb/aso.svg)](https://anlyon.dev/servers/com.asoclimb/aso)

Source: MCP Registry. Synced Nov 1, 2026, 14:17 UTC.