Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

app.trysonar/sonar

REMOTE · TRYSONAR.APP · 2 COMPONENTS

ASO tools for AI agents: keyword research, rank tracking, competitor analysis (iOS & Android).

−1 this week 80 Trust /100

Last scanned (10 hours ago)

Scores higher than 81% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Marketing and SEO

Recent critical change

Authorization (12 Sept 2026). See the changelog before you install this server.

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Endpoint Security66
Transport & Reachability100
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 16489 tokens (~208/item across 79 items; 79 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 79 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 −1
    • New tool “sonar_ad_spy_vault_remove”, which the server declares destructive security
    • New tool “sonar_ad_spy_unlink”, which the server declares destructive security
    • Tool “sonar_app_rankings” rewrote its description, which is the text the model reads security
    • Tool “sonar_top_charts” rewrote its description, which is the text the model reads security
    • Tool “sonar_keyword_rankings” rewrote its description, which is the text the model reads security
    • Tool “sonar_get_app” rewrote its description, which is the text the model reads security
    • Tool “sonar_discovered_keywords” rewrote its description, which is the text the model reads security
    • Tool “sonar_app_search” rewrote its description, which is the text the model reads security
    • Tool “sonar_app_revenue” rewrote its description, which is the text the model reads security
    • Schema quality: 12303 → 16489 ▼ functional
    • Server version: 0.13.2 → 0.15.0 functional
    • New tool “sonar_ad_spy_open_page” functional
    • New tool “sonar_ad_spy_hide_ads” functional
    • New tool “sonar_ad_spy_link” functional
    • New tool “sonar_ad_spy_refresh” functional
    • New tool “sonar_ad_spy_vault_update” functional
    • New tool “sonar_ad_spy_vault_save” functional
    • New tool “sonar_ad_spy_vault” functional
    • New tool “sonar_ad_spy_tiktok_posts” functional
    • New tool “sonar_ad_spy_search_pages” functional
    • New tool “sonar_ad_spy_script” functional
    • New tool “sonar_ad_spy_scan” functional
    • New tool “sonar_ad_spy_competitors” functional
    • New tool “sonar_ad_spy_analyze_ad” functional
    • New tool “sonar_ad_spy_ads” functional
    • New tool “sonar_ad_spy_ad_analysis” functional
    • “sonar_top_charts” added an optional parameter “fields” cosmetic
    • “sonar_keyword_rankings” added an optional parameter “fields” cosmetic
    • “sonar_get_app” added an optional parameter “fields” cosmetic
    • “sonar_discovered_keywords” added an optional parameter “fields” cosmetic
    • “sonar_app_search” added an optional parameter “fields” cosmetic
    • “sonar_app_rankings” added an optional parameter “fields” cosmetic
  • 24 Oct 26 0
    • Tool “sonar_keyword_metrics” rewrote its description, which is the text the model reads security
    • Tool “sonar_app_keywords” rewrote its description, which is the text the model reads security
    • Tool “sonar_competitor_keywords” rewrote its description, which is the text the model reads security
    • Tool “sonar_discovered_keywords” rewrote its description, which is the text the model reads security
    • Tool “sonar_keyword_search” rewrote its description, which is the text the model reads security
  • 23 Oct 26 0
    • Tool “sonar_app_keywords” rewrote its description, which is the text the model reads security
    • Tool “sonar_discovered_keywords” rewrote its description, which is the text the model reads security
    • Tool “sonar_keyword_metrics” rewrote its description, which is the text the model reads security
    • Tool “sonar_keyword_search” rewrote its description, which is the text the model reads security
    • Tool “sonar_competitor_keywords” rewrote its description, which is the text the model reads security
  • 17 Oct 26 0
    • Tool “sonar_app_search” rewrote its description, which is the text the model reads security
    • Server version: 0.13.1 → 0.13.2 functional
  • 15 Oct 26 0
    • Tool “sonar_keyword_search” rewrote its description, which is the text the model reads security
    • Tool “sonar_scan_competitor” rewrote its description, which is the text the model reads security
    • Server version: 0.13.0 → 0.13.1 functional
  • 14 Oct 26 0
    • Schema quality: 10069 → 11597 ▼ functional
    • Server version: 0.11.0 → 0.13.0 functional
    • New tool “sonar_update_review_reply” functional
    • New tool “sonar_set_review_responder” functional
    • New tool “sonar_review_responder” functional
    • New tool “sonar_review_inbox” functional
    • New tool “sonar_post_review_reply” functional
    • New tool “sonar_draft_review_reply” functional
    • New tool “sonar_cancel_review_reply” functional
    • New tool “sonar_dismiss_review_reply” functional
    • “sonar_set_alert” added an optional parameter “cadence” cosmetic
    • “sonar_set_alert” reworded the description of “type” cosmetic
    • “sonar_set_alert” reworded the description of “threshold” cosmetic
  • 12 Oct 26 +1
    • Stability: fail → pass ▲ security
  • 10 Oct 26 −1
    • Schema quality: 166 → 186 ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://trysonar.app/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=trysonar.app CN=YE2,O=Let's Encrypt,C=US 19 Sept 2026 18 Dec 2026 ECDSA 256 ECDSA-SHA384 6edc0989e65e173eff2dd7912cb6835a374
SANs: *.trysonar.app, trysonar.app
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of trysonar.app. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
trysonar.app. present 2371 13 Verified
trysonar.app. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://trysonar.app/mcp Verified 200
http (plaintext) http://trysonar.app/mcp HTTPS enforced 308 https://trysonar.app/mcp
MCP tools · 79 exposed · ~16,489 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
sonar_keyword_search ~440

Research a keyword and related terms. Returns up to 10 rows — the seed keyword plus the store's top autocomplete suggestions — each with difficulty (0-100), popularity score, and results count. Use this to find keywords worth targeting; for metrics on terms you already know, sonar_keyword_metrics is cheaper. On prepaid API credits it costs 10 credits per call (rows that could not be computed are refunded); it needs a Sonar API key or connected account and is not part of the free tier. Answers within about 30 seconds. Each row carries `measured_at` (difficulty) and `popularity_measured_at` (popularity, can be older), ISO 8601 UTC; `stale: true` means at least one of them is older than 7 days. A related term that couldn't be computed in time is re-checked while the call's time budget allows (through the metrics endpoint, 1 credit per keyword served); one still not ready comes back marked `pending` (queued, not charged) — get it later with sonar_keyword_metrics. `popularity` (5-100) is the value Sonar's dashboard shows: Apple's Search Popularity when Apple has a real reading; when Apple reports a keyword below its threshold (popularity_apple 5, about 20) it is Sonar's estimate (at most 18). `popularity_source` says which (apple | proxy), `popularity_apple` is Apple's own reading (null on Android), `popularity_proxy` is Sonar's estimate beside a floored reading.

NameTypeReqDescription
countrystring–One of Sonar's 72 keyword-research markets, as an ISO 3166-1 alpha-2 code (e.g. "us", "gb", "de", "jp", "br"). Keyword data isn't available for other storefronts. Default "us".
querystringyesSeed keyword to research (e.g. "meditation", "recipe app").
storestringyesApp store. "ios" for Apple App Store, "android" for Google Play.

No output schema declared.

No examples provided.

sonar_keyword_suggestions ~268

Get autocomplete suggestions for a seed keyword from the App Store or Google Play, in the order the store shows them. List position is the only demand signal: the `priority` field is 0 on Google Play and currently 0 on the App Store as well. Lighter and faster than sonar_keyword_search — use when you only need term ideas without difficulty/popularity scoring. Works without an API key (free tier, limited daily use per IP). If the store is throttling, the result may be Sonar's stored copy: it then comes back as `{ data, meta }` with `meta.stale: true`, its date in `meta.stale_as_of`, and a `meta.note` to pass on to the user.

NameTypeReqDescription
countrystring–Market as an ISO 3166-1 alpha-2 code (e.g. "us", "gb", "de", "mt"). Nearly every App Store storefront and Google Play market works; the few small storefronts that are not supported return an error na…
seedstringyesSeed keyword. The store will return autocomplete suggestions starting from this term.
storestringyesApp store. "ios" for Apple App Store, "android" for Google Play.

No output schema declared.

No examples provided.

sonar_list_alerts ~55

List your alert subscriptions — each rule defines a change type (rank drops, review spikes, etc.), its scope (a specific app or org-wide), threshold, and whether it's enabled. Requires an Indie plan (trial counts).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

sonar_list_apps ~130

List the apps tracked in the caller's Sonar workspace (own apps + competitors), each with its latest snapshot (rating, review count, version, installs). Returns the Sonar app UUIDs needed by sonar_get_app, sonar_app_keywords, sonar_app_rankings, and sonar_app_changes. Cursor-paginated (default 100 per page). Requires an Indie plan (trial counts).

NameTypeReqDescription
cursorstring–Pagination cursor from a previous call's `next_cursor`. Omit for the first page.
limitinteger–Page size (1-200). Server default applies when omitted.

No output schema declared.

No examples provided.

sonar_list_products ~101

List every product in your workspace (unpaginated): each product's id, name, country, competitor count, and its linked store versions (Sonar app id, store, store_id, name). Product ids are what sonar_track_app, sonar_track_competitor, sonar_remove_competitor, sonar_delete_product, and the screenshot-set tools take; for per-app snapshots and competitor apps use sonar_list_apps. Requires an Indie plan (trial counts).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

sonar_list_screenshot_sets ~68

List a product's app-store screenshot sets (metadata only: store, device size, locales, studio_url). Use sonar_get_screenshot_set for full layouts. Requires an Indie plan (trial counts).

NameTypeReqDescription
product_idstringyesProduct id (find it with sonar_list_products).

No output schema declared.

No examples provided.

sonar_portfolio ~111

The whole portfolio's health in one call — for orgs managing many apps: per-app KPIs (visibility + 7-day delta, ranked/top-10 counts, net rank movement, rating, review count), org-wide totals, the biggest keyword movers in both directions, a needs-attention triage list (visibility drops, rating drops, not-ranked apps), and the best discovered-keyword opportunities across all apps. Same numbers as the /portfolio page. Requires an Agency plan (403 on other plans).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

sonar_post_review_reply ~174

WRITE tool — PUBLIC ACTION: publishes the reply on the App Store under the developer's name (now, or after delay_minutes). Overwrites an existing response (Apple keeps one per review and marks it edited). Apple shows it within ~24h: status pending_publish, then published. Needs an Admin-role App Store Connect key. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
bodystring–Replace the reply text before posting. Omit to post the current draft.
delay_minutesinteger–Schedule instead of posting now (minutes). 0/omitted = post now.
review_idstringyesSonar review id (the `id` of an item from sonar_review_inbox — not Apple's review id).

No output schema declared.

No examples provided.

sonar_remove_competitor ~150

WRITE tool — remove a competitor from a product in the caller's Sonar workspace. Drops the competitor link under every own app of the product; if no other own app in the workspace still references the competitor, the competitor app is untracked as well. 404 when the product has no such competitor. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
competitor_app_idstringyesSonar app UUID of the competitor to remove (the competitor's `id`, NOT a store id).
product_idstringyesSonar product UUID — the `id` returned by sonar_list_products or sonar_create_product.

No output schema declared.

No examples provided.

sonar_review_inbox ~298

An own iOS app's App Store reviews (synced from App Store Connect every 5 minutes) with their reply state: the AI draft or your text, English translations of non-English reviews and drafts, hold reasons (needs_human, quota, daily_cap), schedule time, and any live App Store response. Newest first, with per-status counts. Use the review `id` with sonar_update_review_reply / sonar_post_review_reply. Requires an Indie plan (trial counts), App Store Connect connected in Sonar, and the app to be one of your own iOS apps.

NameTypeReqDescription
app_idstringyesSonar app UUID of one of your own iOS apps (an `id` from sonar_list_apps). NOT a store id.
countrystring–Only reviews from this storefront (ISO alpha-2).
cursorstring–next_cursor from the previous page.
languagestring–Only reviews in this language (ISO 639-1).
limitinteger–Page size, 1-100 (default 25).
ratinginteger–Only reviews with this star rating.
statusstring–needs_reply = no reply yet (incl. AI drafts waiting for approval, held and failed ones), scheduled = will post soon, replied = live or waiting for Apple (incl. replies made in App Store Connect), dis…

No output schema declared.

No examples provided.

sonar_review_insights ~160

The latest AI review analysis for a tracked app (your own or a competitor): what users praise and complain about as named themes with frequency, verbatim quotes, and trend movement (new / persisting / growing / improving / resolved), plus overall sentiment, surfaced feature requests, and what changed vs the previous analysis. `insight` is null if none has been generated yet — use sonar_generate_review_insights. Requires an Indie plan (trial counts).

NameTypeReqDescription
app_idstringyesSonar app UUID of a tracked app — your own or a competitor (an `id` from sonar_list_apps). NOT a store id.
countrystring–Reviews market (ISO country code). Insights are generated per country. Default "us".

No output schema declared.

No examples provided.

sonar_review_responder ~167

The review responder's configuration for an own iOS app: whether it is switched on, manual vs auto mode (auto posts AI replies after a delay, only for reviews written after auto was enabled and within the star range), the reply instructions, sign-off, reply language, last sync, plus whether App Store Connect is connected and this month's AI-draft usage (included allowance, then 1 credit per extra draft). settings is null until the responder is switched on. Requires an Indie plan (trial counts), App Store Connect connected in Sonar, and the app to be one of your own iOS apps.

NameTypeReqDescription
app_idstringyesSonar app UUID of one of your own iOS apps (an `id` from sonar_list_apps). NOT a store id.

No output schema declared.

No examples provided.

sonar_scan_competitor ~244

WRITE tool — runs an AI keyword discovery scan on a tracked competitor: generates the search terms the competitor's listing is optimized for (brand terms included), queues them for SERP verification, and verifies the first batch inline (~30s), recording both apps' ranks. Returns generated/queued/verified_now counts; the rest verify in the background over the following hours — read results with sonar_competitor_keywords. Each account can scan a limited number of different competitors per UTC day (50 on trial and Indie, 250 on Agency); re-scanning one already scanned today is free, and past the limit the tool reports when it resets. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
competitor_app_idstringyesSonar app UUID of the competitor to scan — the `competitor.id` from sonar_track_competitor, or an `id` from sonar_list_apps where is_own is false. NOT a store id.
own_app_idstringyesSonar app UUID of your own app the scan compares against. The competitor must be linked to this app.

No output schema declared.

No examples provided.

sonar_screenshot_devices ~83

List the device sizes supported for app-store screenshot sets, with their canvas dimensions (the pixel coordinate space all layouts use) and which store each belongs to — including the landscape App Store creative-asset canvases (category "creative": product page header and search results asset). Pick a device here before sonar_create_screenshot_set. Requires an Indie plan (trial counts).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

sonar_screenshot_layout_guide ~63

The layout-format reference for Sonar screenshot sets: static text, so one call per session is enough. It documents the layout JSON schema, coordinate system, image handling (remote URLs), flowing background shapes, fonts, translation overrides, and the recommended workflow.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

sonar_set_alert ~452

WRITE tool — create or update an alert subscription in the caller's Sonar workspace. Upserts on (type + scope): re-submitting the same type/scope updates the existing rule. Omit `threshold` for the per-type default; omit `scope_app_id` for an org-wide rule. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
cadence––new_review only: email cadence. instant = within ~5 minutes of the review syncing, hourly = at most one email an hour, daily = the 08:30 UTC digest. Omit to keep the stored value (daily on create).
countries––top_chart only: storefronts to watch (ISO 3166-1 alpha-2, e.g. ["us", "de"]), max 10. Omit to keep the stored list; null or [] = the countries you track keywords in.
enabledboolean–Whether the rule is active. Defaults to enabled when omitted.
scope_app_id––Limit the alert to a single app (Sonar app UUID). Omit or null for an org-wide rule covering all tracked apps.
threshold––Trigger threshold; omit or null for the default. rank_drop / rank_gain: positions moved (default 5). rating_drop: tenths of a star (default 2 = a 0.2-star drop). review_spike: new reviews since the p…
typestringyesThe alert type to subscribe to. top_chart = one of your own apps entered or left a store top chart (overall + its category, free/paid/grossing). new_review = a new App Store review arrived for an own…

No output schema declared.

No examples provided.

sonar_set_review_responder ~320

WRITE tool — switch the review responder on/off for an own iOS app and update its instructions or auto-mode policy (partial update; omitted fields keep their value). Turning auto mode on only affects reviews written afterwards; anything the AI flags as needing a human is held. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
app_idstringyesSonar app UUID of one of your own iOS apps (an `id` from sonar_list_apps). NOT a store id.
auto_daily_capinteger–Auto mode: max auto replies per app per day (default 50).
auto_delay_minutesinteger–Auto mode: minutes before posting (default 5).
auto_max_ratinginteger–Auto mode: highest star rating to auto-reply to (default 5).
auto_min_ratinginteger–Auto mode: lowest star rating to auto-reply to (default 4).
enabledboolean–Switch the responder on (starts the review backfill) or off.
instructionsstring–Instructions for the AI: tone, support contact, product facts, known issues and fixes.
modestring–manual = every reply waits for approval; auto = AI replies post automatically after auto_delay_minutes.
reply_languagestring–review = reply in the reviewer's language (default); en = always English.
sign_off––Sign-off appended to every reply (null clears it).

No output schema declared.

No examples provided.

sonar_set_screenshot_translations ~133

Write a locale's translation overrides for screens in a screenshot set (text copy, localized captures/images). Geometry and styling always come from the source layout; anything not overridden falls back to it. The locale is auto-enabled on the set. Requires an Indie plan (trial counts) and an authorized Sonar account or a write-scope API key.

NameTypeReqDescription
entriesarrayyesOne entry per screen to localize.
localestringyesTarget locale code, e.g. "de-DE", "pt-BR", "zh-Hans".
set_idstringyesScreenshot set id.

No output schema declared.

No examples provided.

sonar_star_keyword ~160

WRITE tool — stars or unstars a tracked keyword in the caller's Sonar workspace. A star marks the keyword as a favorite/target the user is actively pursuing; starred keywords carry a starred_at timestamp in sonar_app_keywords results. Idempotent: re-starring refreshes the timestamp, unstarring a non-starred keyword is a no-op. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
starredbooleanyestrue to star the keyword (mark as a favorite/target), false to unstar.
tracked_keyword_idstringyesTracked-keyword UUID — the `id` (not keyword_id) returned by sonar_app_keywords or sonar_track_keywords.

No output schema declared.

No examples provided.

sonar_top_charts ~449

Get a store top chart (free / paid / grossing, overall or by category) with day-over-day movement: per-app rank delta, apps new to the chart, biggest movers and apps that dropped out. Use to see what's rising in a market or category. Note: summary, movers and droppedApps always describe the full top 200 — `limit` truncates the returned entries only. Movement is empty on the first day a chart is requested (no previous snapshot yet). Answers within about 30 seconds: when a live refresh can't finish in time the newest stored chart is returned with `stale: true` and its `measuredAt` date. Compact by default (no icon URLs or numeric ids; fields: "full" adds them). Works without an API key (free tier, limited daily use per IP).

NameTypeReqDescription
categorystring–Category key; keys differ by store (e.g. iOS "SOCIAL_NETWORKING" / "GAMES", Android "SOCIAL" / "GAME"; "HEALTH_AND_FITNESS" exists on both). An unknown key is rejected with an error. Use "overall" (d…
chartstring–Chart type: "free", "paid" or "grossing". Default "free".
countrystring–Market as an ISO 3166-1 alpha-2 code (e.g. "us", "gb", "de", "mt"). Nearly every App Store storefront and Google Play market works; the few small storefronts that are not supported return an error na…
fieldsstring–"compact" (default): each app is storeId, name, developer, rating, rank, delta, isNew (movers: rank + delta; droppedApps: previousRank) — about 60% smaller. "full": adds iconUrl and numericId to ever…
limitinteger–Number of chart entries to return (1-200). Default 50.
storestringyesApp store. "ios" for Apple App Store, "android" for Google Play.

No output schema declared.

No examples provided.

sonar_track_app ~220

WRITE tool — links the second-store version of an existing Sonar product (e.g. the product already tracks the iOS app and you want to add the Android version, or vice versa). Each product holds at most one iOS + one Android app; to start tracking a brand-new app, use sonar_create_product instead. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
countrystring–ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults server-side.
product_idstringyesSonar product UUID (from sonar_create_product). NOT a store id.
storestringyesApp store. "ios" for Apple App Store, "android" for Google Play.
store_idstringyesStore-specific app identifier of the version to link. iOS: bundle ID or numeric track ID — the `storeId` returned by sonar_app_search works as-is. Android: package name.

No output schema declared.

No examples provided.

sonar_track_competitor ~202

WRITE tool — adds a competitor app under a Sonar product so its keywords and rankings get tracked alongside the product's own app. The product must already have its own app linked in the same store as the competitor. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
countrystring–ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults server-side.
product_idstringyesSonar product UUID (from sonar_create_product). NOT a store id.
storestringyesApp store. "ios" for Apple App Store, "android" for Google Play.
store_idstringyesStore-specific app identifier of the COMPETITOR app to track. iOS: bundle ID or numeric track ID — the `storeId` returned by sonar_app_search works as-is. Android: package name.

No output schema declared.

No examples provided.

sonar_track_keywords ~242

WRITE tool — starts daily rank tracking for one or more keywords on an app in the caller's Sonar workspace. Idempotent: re-posting the same terms reports them as already_tracked instead of creating duplicates. Returns per-keyword outcomes (created / already_tracked / failed). Tracked keywords count against the workspace's plan cap (Indie 2,500, Agency 10,000 per workspace); terms beyond the remaining headroom come back as failed with the plan-limit message while the rest are still tracked. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
app_idstringyesSonar app UUID — the `apps[].id` returned by sonar_create_product (or sonar_track_app). NOT a store id; the store is implied by the app.
countrystring–ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults to the product's country.
keywordsarrayyesKeywords to start tracking (1-200). Duplicates and already-tracked terms are reported, not duplicated.

No output schema declared.

No examples provided.

sonar_untrack_app ~160

WRITE tool — untrack an app in the caller's Sonar workspace. Deletes the workspace's tracked keywords for it (with their notes and stars), its discovered keywords, and its competitor links, and detaches it from its product — deleting the product, and that product's screenshot sets, if no other app is left. Shared store data (app metadata, snapshots, rank history) is not deleted. To drop a competitor from one product use sonar_remove_competitor instead. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
app_idstringyesSonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.

No output schema declared.

No examples provided.

sonar_untrack_keywords ~200

WRITE tool — bulk-untrack keywords for an app in the caller's Sonar workspace. Pass `all: true` to remove every tracked keyword, OR `ids: [...]` to remove specific ones (exactly one of the two). For a single keyword, sonar_delete_tracked_keyword is equivalent. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
allboolean–Set true to untrack ALL keywords for the app. Mutually exclusive with `ids` — pass exactly one of `all` or `ids`.
app_idstringyesSonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.
idsarray–Tracked-keyword ids to untrack (from sonar_app_keywords). Mutually exclusive with `all` — pass exactly one of `all` or `ids`.

No output schema declared.

No examples provided.

sonar_update_keyword_note ~139

WRITE tool — sets or clears the note on a tracked keyword in the caller's Sonar workspace (e.g. why it's tracked, an optimization hypothesis, a reminder). Idempotent: re-sending the same note is a no-op. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
note–yesNote text (max 1000 chars). Pass null or an empty string to clear the note.
tracked_keyword_idstringyesTracked-keyword UUID — the `id` (not keyword_id) returned by sonar_app_keywords or sonar_track_keywords.

No output schema declared.

No examples provided.

sonar_update_review_reply ~128

WRITE tool — replace a review's reply text (not metered, doesn't post). Use sonar_post_review_reply to publish. Requires an Indie plan (trial counts) and an authorized Sonar account or an API key with the write scope.

NameTypeReqDescription
bodystringyesThe reply text.
review_idstringyesSonar review id (the `id` of an item from sonar_review_inbox — not Apple's review id).
translate_from_englishboolean–true = body is English; store its translation into the reviewer's language (keeps the English copy).

No output schema declared.

No examples provided.

sonar_update_screenshot ~131

Replace one screen's layout in a screenshot set. Whole-document replace — fetch the current layout, modify it, send it back. The change shows up immediately in the Screenshot Studio for human review. Requires an Indie plan (trial counts) and an authorized Sonar account or a write-scope API key.

NameTypeReqDescription
layoutobjectyesThe FULL replacement layout — this replaces the whole document, it does not merge. Never send a layout containing '[inline image omitted…]' placeholders; refetch with include_image_data first.
screenshot_idstringyesScreen id (from the set's screens array).

No output schema declared.

No examples provided.

sonar_update_screenshot_set ~137

Rename a screenshot set, replace its extra-locale list, and/or reorder its screens. Returns the updated set (with image data stripped). Requires an Indie plan (trial counts) and an authorized Sonar account or a write-scope API key.

NameTypeReqDescription
localesarray–Replaces the extra-locale list (e.g. ["de-DE","fr-FR"]). Locales removed here lose their stored translations.
namestring–New display name.
screen_orderarray–Full permutation of the set's screen ids in the new display order.
set_idstringyesScreenshot set id.

No output schema declared.

No examples provided.

Install

How do I install the app.trysonar/sonar MCP server?

app.trysonar/sonar is a hosted endpoint at https://trysonar.app/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.

remote · trysonar.app

# add to Claude Code
claude mcp add --transport http app-trysonar-sonar 'https://trysonar.app/mcp'
Common questions

What is the app.trysonar/sonar MCP server?

app.trysonar/sonar is an MCP server listed in the public MCP registry as app.trysonar/sonar. ASO tools for AI agents: keyword research, rank tracking, competitor analysis (iOS & Android). This page covers its hosted endpoint (https://trysonar.app/mcp).

Is the app.trysonar/sonar MCP server safe to use?

app.trysonar/sonar scores 80 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 app.trysonar/sonar MCP server expose?

app.trysonar/sonar exposes 79 tools: sonar_app_lookup, sonar_app_search, sonar_app_aso_score, sonar_app_extract_keywords, sonar_app_reviews, and 74 more. Their descriptions and schemas cost roughly 16,489 tokens of context every time the server is loaded.

Does the app.trysonar/sonar MCP server require authentication?

No. We connected to app.trysonar/sonar without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the app.trysonar/sonar MCP server still maintained?

app.trysonar/sonar 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.