Asonix MCP
MCP tools
The Asonix MCP server at https://api.asonix.io/mcp gives your agent these 33 tools. You do not call them yourself: ask in plain words, and your agent picks the tools it needs. This page lists what each tool does and the inputs it takes.
get_ai_visibility_overview
Read-onlyAI Visibility Overview
Read a tracked app's stored AI recommendation benchmark: coverage, mention/recommendation/App Store citation rates, weekly history and topic/prompt summaries with run IDs. Not ASO visibility. No collection or model calls. Defaults to four weeks; no benchmark returns NOT_STARTED. Use list_apps to resolve the app and storefront.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | 1–128 characters |
| country | string | Optional | Exact storefront, e.g. us. Defaults to us; use the tracked app's home country |
| platform | string | Optional | One of: ios, ipad, mac |
| weeks | integer | Optional | 1–12. Default: 4 |
get_ai_visibility_reasons
Read-onlyAI Recommendation Reasons
Read cached recommendation themes, exact answer quotes and description passage matches. Includes analysis status, timestamps and its own evidence denominator (which can differ from the overview). No generation or refresh. Full descriptions stay in get_app_overview; this returns matched passages and description metadata. Use theme and evidenceLimit to drill into supporting quotes.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | 1–128 characters |
| country | string | Optional | Exact storefront, e.g. us. Defaults to us; use the tracked app's home country |
| platform | string | Optional | One of: ios, ipad, mac |
| theme | string | Optional | 1–200 characters |
| evidenceLimit | integer | Optional | 1–10. Default: 3 |
get_ai_visibility_evidence
Read-onlyAI Visibility Evidence
Read a saved AI Visibility answer by runId, or recent answers for one promptId (exactly one required). Defaults to one run; use nextBefore for older prompt runs. Citations, resolved mentions and classification coverage are included. includeTrace adds captured searches; their sources belong to a search call, not an individual query. No external requests or collection.
Give exactly one of: runId, promptId.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | 1–128 characters |
| country | string | Optional | Exact storefront, e.g. us. Defaults to us; use the tracked app's home country |
| platform | string | Optional | One of: ios, ipad, mac |
| runId | string | Optional | 1–128 characters |
| promptId | string | Optional | 1–128 characters |
| before | string | Optional | Exclusive scheduledFor cursor from nextBefore; only with promptId. Format: date-time |
| limit | integer | Optional | 1–5. Default: 1 |
| includeTrace | boolean | Optional | Default: false |
add_app
Makes changesAdd App
Add an App Store app to the current Asonix workspace by App Store ID or app name/search query.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Optional | |
| country | string | Optional | |
| name | string | Optional | |
| platform | string | Optional | One of: ios, ipad, mac |
| q | string | Optional |
create_unreleased_app
Makes changesCreate Unreleased App
Create a private unreleased app idea in the current Asonix workspace. Use this when the user's app is not on the App Store yet; then add researched keywords with add_keywords.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| name | string | Optional | |
| platform | string | Optional | One of: ios, ipad, mac |
search_apps
Read-onlySearch Apps
Search the public App Store by app name/query and return app IDs, names, categories, developers, ratings, URLs, and screenshot URLs. Use before add_app when the user gives an app name.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| limit | integer | Optional | 1–100 |
| platform | string | Optional | One of: ios, ipad, mac |
| q | string | Required |
search_app_store
Read-onlySearch Live App Store
Search the live App Store ranking for a keyword to validate search intent and inspect competitors. Returns up to 100 ranked apps with enriched subtitles for the most important results. Screenshot URLs are opt-in and limited to the first 10 apps. This is private, read-only, and does not calculate popularity or difficulty; use evaluate_keywords for scores. Each app includes runsAppleSearchAds. runsAppleSearchAds is yes when the app appeared in a sampled iPhone App Store search ad in that country within seven days. unknown is not proof the app is not bidding: no sampled ad showed it, or Asonix does not sample that storefront. unavailable means the status read failed.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Optional | Optional app ID to locate in the returned live ranking |
| country | string | Optional | |
| includeScreenshots | boolean | Optional | Include screenshot URLs for the first 10 ranked apps. Omitted by default to keep responses compact |
| keyword | string | Required | |
| limit | integer | Optional | 1–100 |
| platform | string | Optional | One of: ios, ipad, mac |
add_keywords
Makes changesAdd Keywords
Add one or more tracked keywords to an app in the current Asonix workspace and queue ranking refresh so popularity, difficulty, opportunity, and rank evidence can be collected. For agent-researched candidates, call evaluate_keywords first and add app-relevant primary or secondary terms.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| keywords | array of string | Required | At least 1 item |
| platform | string | Optional | One of: ios, ipad, mac |
star_keyword
Makes changesStar Keyword
Star/favorite a keyword research keyword in the current workspace by keywordId or term.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| keywordId | string | Optional | |
| term | string | Optional |
unstar_keyword
Makes changesUnstar Keyword
Remove a keyword research keyword from the current workspace favorites by keywordId or term.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| keywordId | string | Optional | |
| term | string | Optional |
list_apps
Read-onlyList Apps
List apps tracked in the current Asonix workspace, including names, App Store IDs, platforms, countries, ratings, and tracked-keyword counts.
| Input | Type | Required | Details |
|---|---|---|---|
| limit | integer | Optional | 1–100 |
| platform | string | Optional | One of: ios, ipad, mac |
| q | string | Optional |
get_app
Read-onlyGet Tracked App
Return one tracked Asonix workspace app with its listing screenshots, tracked keywords, and current ranking context. Includes app-specific relevanceScore and relevanceStatus on each tracked keyword; missing scores queue in the background. app.runsAppleSearchAds applies to app.runsAppleSearchAdsCountry: the requested country, else the app's home country. runsAppleSearchAds is yes when the app appeared in a sampled iPhone App Store search ad in that country within seven days. unknown is not proof the app is not bidding: no sampled ad showed it, or Asonix does not sample that storefront. unavailable means the status read failed. Each rank has checkedAt; the result flags ranks more than 18 hours old or never checked, and refresh_app_rankings updates them.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| platform | string | Optional | One of: ios, ipad, mac |
get_app_meta_ads
Read-onlyApp Meta Ads
Return an App Store app's Meta (Facebook, Instagram, Messenger, Audience Network) ads from Asonix's shared Meta Ad Library catalog, worldwide: active ads that link to the app in the App Store, with text, call to action, start date, platforms and an Ad Library link, and past ads with the dates they ran. Works for any app, tracked or not. An app with no ads in the catalog returns status not_found, which is not proof it never ran Meta ads: the catalog covers App Store ads found by a monthly crawl.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required |
refresh_app_rankings
Makes changesRefresh App Rankings
Queue a keyword ranking refresh for one tracked app and return at once with jobIds. Only keywords not checked in the last 18 hours are queued; keywords already refreshing are joined, not queued twice. A storefront whose refresh was requested recently is skipped and listed in coolingDown with the time it can start again. Omit country to refresh every tracked storefront of the app. A refresh can take 10 minutes or more, so do not wait in a loop: tell the user rankings are updating, then call get_ranking_refresh_status with the jobIds after pollAfterSeconds, or read get_app later.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| platform | string | Optional | One of: ios, ipad, mac |
get_ranking_refresh_status
Read-onlyRanking Refresh Status
Report progress of a ranking refresh started by refresh_app_rankings, or of the rankingRefreshJob id returned by add_keywords: keywords done, failed, and remaining per storefront. Poll no more often than pollAfterSeconds. When finished is true, read the full updated ranks with get_app.
| Input | Type | Required | Details |
|---|---|---|---|
| jobIds | array of string | Required | 1–20 items |
get_workspace_keyword_opportunities
Read-onlyWorkspace Keyword Opportunities
Return top scored keyword opportunities across all tracked apps in the current Asonix workspace, including shipped and unreleased apps, all countries, and rank/popularity/difficulty/opportunity evidence. Use this for requests like analyzing all apps or finding the top 100 opportunities without reading a local database. Each opportunity has checkedAt; call refresh_app_rankings for an app whose ranks are old.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| limit | integer | Optional | 1–200 |
| platform | string | Optional | One of: ios, ipad, mac |
check_tracked_keywords
Read-onlyCheck Tracked Keywords
Check candidate keyword terms against one tracked app's existing tracked keywords without dumping the full keyword table. iOS keyword rows include cached topAdvertisers; pending observations queue in the background. Use this before calling a candidate a missing gap, before add_keywords, and instead of inspecting local database code.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| keywords | array of string | Required | At least 1 item |
| platform | string | Optional | One of: ios, ipad, mac |
get_app_overview
Read-onlyApp Overview
Return one tracked app's listing metadata, countries, ratings context, and compact Asonix app summary. app.runsAppleSearchAds applies to app.runsAppleSearchAdsCountry: the requested country, else the app's home country. runsAppleSearchAds is yes when the app appeared in a sampled iPhone App Store search ad in that country within seven days. unknown is not proof the app is not bidding: no sampled ad showed it, or Asonix does not sample that storefront. unavailable means the status read failed.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| platform | string | Optional | One of: ios, ipad, mac |
get_app_visibility_history
Read-onlyApp Visibility History
Return tracked ASO visibility score history for an app, useful for momentum and trend analysis.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| days | integer | Optional | 2–30 |
| platform | string | Optional | One of: ios, ipad, mac |
get_app_rank_history
Read-onlyApp Rank History
Return rank, popularity, or difficulty history for one tracked app keyword in a storefront.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| keyword | string | Required | |
| metric | string | Optional | One of: rank, popularity, difficulty |
| platform | string | Optional | One of: ios, ipad, mac |
get_app_rating_history
Read-onlyApp Rating History
Return stored public rating history for one tracked app with deltas. Omit country or pass "all" to return every observed storefront plus the all-countries aggregate; pass a country code to return only that storefront.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | Optional App Store country to return. Omit it or pass "all" to return every stored country and the all-countries aggregate |
| platform | string | Optional | One of: ios, ipad, mac |
get_keyword_suggestions_for_app
Makes changesApp Keyword Suggestions
Refresh and return Asonix keyword suggestions for one tracked app and storefront. Includes suggestionRelevance rows and inline metadata-plan relevanceScore/relevanceStatus; missing scores queue in the background.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| platform | string | Optional | One of: ios, ipad, mac |
research_app_keywords
Makes changesResearch App Keywords
Start ASO keyword research for a tracked app in one call: app context, Asonix suggestions, known public rankings, and market keyword opportunities, each with target-app relevanceScore and relevanceStatus. Suggested strings have parallel suggestionRelevance rows. iOS keyword rows include cached topAdvertisers; pending observations queue in the background, so retry this tool later. Missing relevance scores also queue. Raw seed SERPs are checked privately unless storePublicly is true. Before final recommendations or add_keywords, rank and classify candidate terms with evaluate_keywords.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| excludeBrands | boolean | Optional | |
| competitorLimit | integer | Optional | 1–10 |
| includeCompetitors | boolean | Optional | |
| limit | integer | Optional | 1–25 |
| platform | string | Optional | One of: ios, ipad, mac |
| q | string | Optional | |
| refreshSuggestions | boolean | Optional | |
| seed | string | Optional | |
| sort | string | Optional | One of: revenue, downloads, opportunity, popularity, difficulty |
| storePublicly | boolean | Optional |
extract_competitor_keywords
Makes changesCompetitor Keywords
Extract keyword opportunities from competitor public rankings and compare them against the tracked app. Includes relevanceScore/relevanceStatus for the target app, not the competitors; missing scores queue in the background. Provide competitorAppStoreIds, or provide a seed keyword to discover competitors from a private live SERP unless storePublicly is true. Rank and classify candidates with evaluate_keywords before recommending or adding them.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| competitorAppStoreIds | array of string | Optional | |
| competitorIds | array of string | Optional | |
| competitorLimit | integer | Optional | 1–10 |
| competitors | array of string | Optional | |
| country | string | Optional | |
| keyword | string | Optional | |
| limit | integer | Optional | 1–25 |
| platform | string | Optional | One of: ios, ipad, mac |
| q | string | Optional | |
| seed | string | Optional | |
| storePublicly | boolean | Optional |
get_localization_opportunities
Makes changesLocalization Opportunities
Build and return localization and translated market keyword opportunity requests for one tracked app.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| platform | string | Optional | One of: ios, ipad, mac |
get_public_app_rankings
Read-onlyPublic App Rankings
Return known public App Store keyword rankings where an app appears in collected SERPs.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | |
| country | string | Optional | |
| limit | integer | Optional | 1–20 |
| offset | integer | Optional | At least 0 |
| platform | string | Optional | One of: ios, ipad, mac |
search_keywords
Read-onlySearch Keywords
Search Asonix keyword research summaries by query, market, platform, scores, and market estimates. iOS keyword rows include cached topAdvertisers; pending observations queue in the background, so retry this tool later.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| excludeBrands | boolean | Optional | |
| limit | integer | Optional | 1–100 |
| maxDifficulty | integer | Optional | 0–100 |
| maxDownloads | integer | Optional | At least 0 |
| maxKeywordLength | integer | Optional | At least 1 |
| maxOpportunity | integer | Optional | 0–100 |
| maxPopularity | integer | Optional | 0–100 |
| maxRevenue | integer | Optional | At least 0 |
| minDifficulty | integer | Optional | 0–100 |
| minDownloads | integer | Optional | At least 0 |
| minOpportunity | integer | Optional | 0–100 |
| minPopularity | integer | Optional | 0–100 |
| minRevenue | integer | Optional | At least 0 |
| page | integer | Optional | At least 1 |
| platform | string | Optional | One of: ios, ipad, mac |
| q | string | Optional | |
| sort | string | Optional | One of: revenue, downloads, opportunity, popularity, difficulty |
| starred | boolean | Optional |
get_keyword_relevance
Read-onlyKeyword Relevance
Get app-specific keyword relevance (0–100) for a tracked workspace app using the same revised-selective scorer as the UI. Accepts up to 100 keywords. Reuses cached scores and queues missing work; returns immediately with ready, pending, failed or unavailable statuses. Pending is not zero: call again after at least three seconds, backing off on repeated pending responses. Use retry=true only to retry failed work after its cooldown. Does not add keywords to tracking or public research. Country defaults to us and platform to ios.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Required | At least 1 character |
| country | string | Optional | |
| platform | string | Optional | One of: ios, ipad, mac |
| keywords | array of string | Required | 1–100 items. Each item: 1–200 characters, not blank |
| retry | boolean | Optional |
evaluate_keywords
Makes changesEvaluate Keywords
Rank and classify candidate ASO keywords against Asonix popularity, difficulty, and opportunity stats. If a candidate includes popularityScore and difficultyScore, evaluate those values directly. Otherwise, reuse an existing public keyword row when available; missing candidate terms are scored privately with the same Asonix SERP scoring model without adding them to public keyword research. Up to 20 new/private terms are scored per call; split larger unknown batches or pass known scores. Use this before final keyword recommendations, add_keywords, or star_keyword. Supply appStoreId for inline relevanceScore and relevanceStatus. Missing scores queue in the background; use get_keyword_relevance to check pending scores. Decisions and ranking still reflect market metrics; assess app fit separately using relevance.
| Input | Type | Required | Details |
|---|---|---|---|
| appStoreId | string | Optional | Optional tracked target app for inline relevance scores. At least 1 character |
| country | string | Optional | |
| excludeBrands | boolean | Optional | |
| keywords | array of string or object | Required | 1–50 items. Object fields: difficultyScore (0–100), keyword, opportunityScore (0–100), popularityScore (0–100), term |
| maxDifficulty | integer | Optional | 0–100 |
| minOpportunity | integer | Optional | 0–100 |
| minPopularity | integer | Optional | 0–100 |
| platform | string | Optional | One of: ios, ipad, mac |
get_keyword_top_apps
Makes changesKeyword Top Apps
Return top ranking App Store apps for an Asonix keywordId or a live App Store keyword/term, with cached topAdvertisers for eligible iOS keywords. Pending advertiser observations are queued; retry later. Raw keyword/term lookups are checked privately unless storePublicly is true. Each app includes runsAppleSearchAds. runsAppleSearchAds is yes when the app appeared in a sampled iPhone App Store search ad in that country within seven days. unknown is not proof the app is not bidding: no sampled ad showed it, or Asonix does not sample that storefront. unavailable means the status read failed.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| keyword | string | Optional | |
| keywordId | string | Optional | |
| limit | integer | Optional | 1–50 |
| platform | string | Optional | One of: ios, ipad, mac |
| storePublicly | boolean | Optional | |
| term | string | Optional |
get_keyword_top_advertisers
Read-onlyKeyword Top Advertisers
Return cached apps observed in native App Store search ads for one authorized iPhone keyword/storefront. Shows seven-day successful-check coverage, last seen, and 30-day history. Pending collection is queued; call again later. No live Apple request is made by this tool. Absence does not prove bidding stopped or an app was outbid. Requires an explicit Apple Ads search-results country and exactly one of keywordId or term.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Required | One of 91 values: ae, al, am, ar, at, … |
| keywordId | string | Optional | 1–100 characters |
| term | string | Optional | 1–200 characters |
| platform | string | Optional | One of: ios |
get_keyword_history
Read-onlyKeyword History
Return keyword popularity or difficulty history for an Asonix keyword, with cached topAdvertisers for eligible iOS keywords. Pending advertiser observations are queued; retry later.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| keywordId | string | Required | |
| metric | string | Optional | One of: popularity, difficulty |
| platform | string | Optional | One of: ios, ipad, mac |
collect_keyword_serp
Makes changesCheck Keyword Search Results
Check a live App Store keyword SERP privately by default. Includes cached topAdvertisers for eligible iOS keywords; pending advertiser observations are queued, so retry later. Set storePublicly to true only when the user wants to add/reuse the keyword in the shared public research index. Each topApps row includes runsAppleSearchAds. runsAppleSearchAds is yes when the app appeared in a sampled iPhone App Store search ad in that country within seven days. unknown is not proof the app is not bidding: no sampled ad showed it, or Asonix does not sample that storefront. unavailable means the status read failed.
| Input | Type | Required | Details |
|---|---|---|---|
| country | string | Optional | |
| keyword | string | Required | |
| platform | string | Optional | One of: ios, ipad, mac |
| storePublicly | boolean | Optional |