{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_y43yrnkacub2","handle":"sonar","url":"https://wellknown.network/agents/sonar","links":{"self":"https://wellknown.network/agents/sonar/record.json","html":"https://wellknown.network/agents/sonar","markdown":"https://wellknown.network/agents/sonar/record.md","api":"https://wellknown.network/api/v1/agents/sonar","status":"https://wellknown.network/api/v1/agents/sonar/status","claim":"https://wellknown.network/agents/sonar/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/sonar/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:trysonar.app:server:sonar","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"sonar","summary":"ASO tools for AI agents: keyword research, rank tracking, competitor analysis (iOS & Android).","description":"ASO tools for AI agents: keyword research, rank tracking, competitor analysis (iOS & Android).","publisher":{"name":"app.trysonar","url":null},"homepage":null,"repository":"https://github.com/trysonar/mcp","version":"0.7.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://trysonar.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:@sonarapp/mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-17T18:03:45.850875Z","publishedAt":"2026-08-17T18:03:45.850875Z","registryName":"app.trysonar/sonar"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[],"categories":[]},"observed":{"status":"unknown","statusReason":"Not checked yet.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[{"at":"2026-09-05T18:28:30.852Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":432,"error":null,"detail":{"tools":[{"name":"sonar_app_lookup","description":"Look up a single app by its store ID. Returns app metadata including name, developer, category, rating, reviews, installs (Android), and price. Works without an"},{"name":"sonar_app_search","description":"Search apps in the App Store or Google Play by keyword. Returns ranked list of apps with metadata (results are returned in store ranking order). Works without a"},{"name":"sonar_app_aso_score","description":"Calculate an ASO (App Store Optimization) audit score (0-100) for an app. Returns the overall score plus an itemized breakdown of checks (title length, keyword "},{"name":"sonar_app_extract_keywords","description":"Extract the most likely target keywords from an app's title and description, ranked by relevance. Useful for understanding what an app (yours or a competitor) i"},{"name":"sonar_app_reviews","description":"Fetch user reviews for an app. Supports filtering by star rating range and sorting by recent or helpful. Useful for sentiment analysis, feature-request mining, "},{"name":"sonar_app_revenue","description":"Estimate monthly revenue for an app, based on install counts, ratings, and category benchmarks. Returns the dollar estimate, a confidence grade (high/medium/low"},{"name":"sonar_keyword_search","description":"Research a keyword and related terms. Returns difficulty (0-100), popularity score, and results count for the seed keyword plus related autocomplete suggestions"},{"name":"sonar_keyword_metrics","description":"Difficulty + popularity for a specific keyword (or up to 25 in bulk). Use this when you already know which keywords you care about — costs 1 credit per keyword."},{"name":"sonar_keyword_suggestions","description":"Get autocomplete suggestions for a seed keyword from the App Store or Google Play. Returns terms with a priority score (higher = more searched). Lighter and fas"},{"name":"sonar_top_charts","description":"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"},{"name":"sonar_list_apps","description":"List the apps tracked in the caller's Sonar workspace (own apps + competitors), each with its latest snapshot (rating, review count, version, installs). Returns"},{"name":"sonar_get_app","description":"Get full details for one tracked app in the caller's Sonar workspace: store metadata plus up to 90 daily snapshots of rating, review count, version, and install"},{"name":"sonar_app_keywords","description":"List the keywords tracked for an app in the caller's Sonar workspace, with latest difficulty, popularity, results count, note, and starred_at (favorite/target m"},{"name":"sonar_app_rankings","description":"Rank history for an app's tracked keywords — daily ranks over the requested window, one history array per keyword. Use this to check how rankings moved after a "},{"name":"sonar_app_changes","description":"Change history for a tracked app — detected releases, metadata edits, screenshot swaps, price changes, and category moves, newest first. Useful for correlating "},{"name":"sonar_keyword_rankings","description":"SERP history for one tracked keyword — which apps ranked in the top results on each measured day, newest first. Use this to see who competes on a keyword and ho"},{"name":"sonar_competitor_keywords","description":"Keywords a tracked competitor currently ranks for (last 7 days of SERP data), with difficulty and popularity per keyword. Pass own_app_id for gap analysis: keyw"},{"name":"sonar_competitor_landscape","description":"The full competitive keyword picture for one of your own apps vs every tracked competitor, in one call: live stats (keyword gaps where competitors rank and you "},{"name":"sonar_list_products","description":"List your products with their linked store versions and competitor counts. Use it to discover product/app UUIDs. Requires an Indie plan (trial counts)."},{"name":"sonar_list_alerts","description":"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 whethe"},{"name":"sonar_alert_events","description":"The detected alert events for your workspace, newest first — the same feed as the in-app Recent Alerts panel and the email digest: rank drops/gains, top-10 entr"},{"name":"sonar_app_overview","description":"The dashboard's computed scoreboard for one of your apps in a single call: visibility index and share of voice (with 7-day deltas and a daily spark), ranked / t"},{"name":"sonar_discovered_keywords","description":"Keywords Sonar's discovery engine surfaced for one of your tracked apps but that aren't tracked yet — ranked finds (the app already ranks, unnoticed), competito"},{"name":"sonar_review_insights","description":"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"},{"name":"sonar_portfolio","description":"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,"},{"name":"sonar_create_product","description":"WRITE tool — creates a product in the caller's Sonar workspace and starts tracking the given app(s). A product is the cross-store unit (one iOS + one Android ap"},{"name":"sonar_track_app","description":"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, o"},{"name":"sonar_track_competitor","description":"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"},{"name":"sonar_track_keywords","description":"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 a"},{"name":"sonar_update_keyword_note","description":"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). Idemp"},{"name":"sonar_star_keyword","description":"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; st"},{"name":"sonar_scan_competitor","description":"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 includ"},{"name":"sonar_analyze_competitors","description":"WRITE tool — generates a fresh AI competitive insight for one of your own apps: clusters the keyword gaps vs your competitors into named opportunity themes (wit"},{"name":"sonar_generate_review_insights","description":"WRITE tool — generates a fresh AI review analysis for a tracked app from its recent reviews (praise/complaint themes, sentiment, feature requests, trend vs the "},{"name":"sonar_delete_tracked_keyword","description":"WRITE tool — stop tracking one keyword/app pair in the caller's Sonar workspace. Identify the pair by its tracked-keyword id (from sonar_app_keywords). Requires"},{"name":"sonar_untrack_keywords","description":"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 speci"},{"name":"sonar_untrack_app","description":"WRITE tool — untrack an app and its associated tracking data in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the writ"},{"name":"sonar_delete_product","description":"WRITE tool — delete a product and untrack its apps in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the write scope."},{"name":"sonar_remove_competitor","description":"WRITE tool — remove a competitor from a product in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the write scope."},{"name":"sonar_set_alert","description":"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 ex"},{"name":"sonar_delete_alert","description":"WRITE tool — delete an alert subscription in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the write scope."},{"name":"sonar_screenshot_layout_guide","description":"The layout-format reference for Sonar screenshot sets. Call this ONCE before creating or editing screenshot layouts — it documents the layout JSON schema, coord"},{"name":"sonar_screenshot_devices","description":"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 be"},{"name":"sonar_list_screenshot_sets","description":"List a product's app-store screenshot sets (metadata only: store, device size, locales, studio_url). Use sonar_get_screenshot_set for full layouts."},{"name":"sonar_create_screenshot_set","description":"Create an app-store screenshot set for a product. Read sonar_screenshot_layout_guide first, then author the screens array. The set is immediately visible/editab"},{"name":"sonar_get_screenshot_set","description":"Fetch a screenshot set in full: every screen's layout JSON plus per-screen translation overrides keyed by locale. By default inline image data is replaced with "},{"name":"sonar_update_screenshot_set","description":"Rename a screenshot set, replace its extra-locale list, and/or reorder its screens. Returns the updated set (with image data stripped). Requires a write-scope A"},{"name":"sonar_delete_screenshot_set","description":"Permanently delete a screenshot set and everything in it (screens, translations). Irreversible — confirm with the user before deleting work they may want. Requi"},{"name":"sonar_add_screenshot","description":"Append a screen to a screenshot set (at the end; reorder with sonar_update_screenshot_set). Requires a write-scope API key."},{"name":"sonar_update_screenshot","description":"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 "},{"name":"sonar_delete_screenshot","description":"Delete one screen from a screenshot set. A set keeps at least one screen — deleting the last one is rejected. Requires a write-scope API key."},{"name":"sonar_set_screenshot_translations","description":"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 "},{"name":"sonar_export_screenshots","description":"Render a screenshot set to store-ready PNGs SERVER-SIDE (no browser needed) and save them as one ZIP per locale in output_dir — ready for App Store Connect / Pl"}],"toolCount":53,"serverName":"sonar","capabilities":["tools"],"serverVersion":"0.7.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"sonar_app_lookup","description":"Look up a single app by its store ID. Returns app metadata including name, developer, category, rating, reviews, installs (Android), and price. Works without an"},{"name":"sonar_app_search","description":"Search apps in the App Store or Google Play by keyword. Returns ranked list of apps with metadata (results are returned in store ranking order). Works without a"},{"name":"sonar_app_aso_score","description":"Calculate an ASO (App Store Optimization) audit score (0-100) for an app. Returns the overall score plus an itemized breakdown of checks (title length, keyword "},{"name":"sonar_app_extract_keywords","description":"Extract the most likely target keywords from an app's title and description, ranked by relevance. Useful for understanding what an app (yours or a competitor) i"},{"name":"sonar_app_reviews","description":"Fetch user reviews for an app. Supports filtering by star rating range and sorting by recent or helpful. Useful for sentiment analysis, feature-request mining, "},{"name":"sonar_app_revenue","description":"Estimate monthly revenue for an app, based on install counts, ratings, and category benchmarks. Returns the dollar estimate, a confidence grade (high/medium/low"},{"name":"sonar_keyword_search","description":"Research a keyword and related terms. Returns difficulty (0-100), popularity score, and results count for the seed keyword plus related autocomplete suggestions"},{"name":"sonar_keyword_metrics","description":"Difficulty + popularity for a specific keyword (or up to 25 in bulk). Use this when you already know which keywords you care about — costs 1 credit per keyword."},{"name":"sonar_keyword_suggestions","description":"Get autocomplete suggestions for a seed keyword from the App Store or Google Play. Returns terms with a priority score (higher = more searched). Lighter and fas"},{"name":"sonar_top_charts","description":"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"},{"name":"sonar_list_apps","description":"List the apps tracked in the caller's Sonar workspace (own apps + competitors), each with its latest snapshot (rating, review count, version, installs). Returns"},{"name":"sonar_get_app","description":"Get full details for one tracked app in the caller's Sonar workspace: store metadata plus up to 90 daily snapshots of rating, review count, version, and install"},{"name":"sonar_app_keywords","description":"List the keywords tracked for an app in the caller's Sonar workspace, with latest difficulty, popularity, results count, note, and starred_at (favorite/target m"},{"name":"sonar_app_rankings","description":"Rank history for an app's tracked keywords — daily ranks over the requested window, one history array per keyword. Use this to check how rankings moved after a "},{"name":"sonar_app_changes","description":"Change history for a tracked app — detected releases, metadata edits, screenshot swaps, price changes, and category moves, newest first. Useful for correlating "},{"name":"sonar_keyword_rankings","description":"SERP history for one tracked keyword — which apps ranked in the top results on each measured day, newest first. Use this to see who competes on a keyword and ho"},{"name":"sonar_competitor_keywords","description":"Keywords a tracked competitor currently ranks for (last 7 days of SERP data), with difficulty and popularity per keyword. Pass own_app_id for gap analysis: keyw"},{"name":"sonar_competitor_landscape","description":"The full competitive keyword picture for one of your own apps vs every tracked competitor, in one call: live stats (keyword gaps where competitors rank and you "},{"name":"sonar_list_products","description":"List your products with their linked store versions and competitor counts. Use it to discover product/app UUIDs. Requires an Indie plan (trial counts)."},{"name":"sonar_list_alerts","description":"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 whethe"},{"name":"sonar_alert_events","description":"The detected alert events for your workspace, newest first — the same feed as the in-app Recent Alerts panel and the email digest: rank drops/gains, top-10 entr"},{"name":"sonar_app_overview","description":"The dashboard's computed scoreboard for one of your apps in a single call: visibility index and share of voice (with 7-day deltas and a daily spark), ranked / t"},{"name":"sonar_discovered_keywords","description":"Keywords Sonar's discovery engine surfaced for one of your tracked apps but that aren't tracked yet — ranked finds (the app already ranks, unnoticed), competito"},{"name":"sonar_review_insights","description":"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"},{"name":"sonar_portfolio","description":"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,"},{"name":"sonar_create_product","description":"WRITE tool — creates a product in the caller's Sonar workspace and starts tracking the given app(s). A product is the cross-store unit (one iOS + one Android ap"},{"name":"sonar_track_app","description":"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, o"},{"name":"sonar_track_competitor","description":"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"},{"name":"sonar_track_keywords","description":"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 a"},{"name":"sonar_update_keyword_note","description":"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). Idemp"},{"name":"sonar_star_keyword","description":"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; st"},{"name":"sonar_scan_competitor","description":"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 includ"},{"name":"sonar_analyze_competitors","description":"WRITE tool — generates a fresh AI competitive insight for one of your own apps: clusters the keyword gaps vs your competitors into named opportunity themes (wit"},{"name":"sonar_generate_review_insights","description":"WRITE tool — generates a fresh AI review analysis for a tracked app from its recent reviews (praise/complaint themes, sentiment, feature requests, trend vs the "},{"name":"sonar_delete_tracked_keyword","description":"WRITE tool — stop tracking one keyword/app pair in the caller's Sonar workspace. Identify the pair by its tracked-keyword id (from sonar_app_keywords). Requires"},{"name":"sonar_untrack_keywords","description":"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 speci"},{"name":"sonar_untrack_app","description":"WRITE tool — untrack an app and its associated tracking data in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the writ"},{"name":"sonar_delete_product","description":"WRITE tool — delete a product and untrack its apps in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the write scope."},{"name":"sonar_remove_competitor","description":"WRITE tool — remove a competitor from a product in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the write scope."},{"name":"sonar_set_alert","description":"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 ex"},{"name":"sonar_delete_alert","description":"WRITE tool — delete an alert subscription in the caller's Sonar workspace. Requires an Indie plan (trial counts) and an API key with the write scope."},{"name":"sonar_screenshot_layout_guide","description":"The layout-format reference for Sonar screenshot sets. Call this ONCE before creating or editing screenshot layouts — it documents the layout JSON schema, coord"},{"name":"sonar_screenshot_devices","description":"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 be"},{"name":"sonar_list_screenshot_sets","description":"List a product's app-store screenshot sets (metadata only: store, device size, locales, studio_url). Use sonar_get_screenshot_set for full layouts."},{"name":"sonar_create_screenshot_set","description":"Create an app-store screenshot set for a product. Read sonar_screenshot_layout_guide first, then author the screens array. The set is immediately visible/editab"},{"name":"sonar_get_screenshot_set","description":"Fetch a screenshot set in full: every screen's layout JSON plus per-screen translation overrides keyed by locale. By default inline image data is replaced with "},{"name":"sonar_update_screenshot_set","description":"Rename a screenshot set, replace its extra-locale list, and/or reorder its screens. Returns the updated set (with image data stripped). Requires a write-scope A"},{"name":"sonar_delete_screenshot_set","description":"Permanently delete a screenshot set and everything in it (screens, translations). Irreversible — confirm with the user before deleting work they may want. Requi"},{"name":"sonar_add_screenshot","description":"Append a screen to a screenshot set (at the end; reorder with sonar_update_screenshot_set). Requires a write-scope API key."},{"name":"sonar_update_screenshot","description":"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 "},{"name":"sonar_delete_screenshot","description":"Delete one screen from a screenshot set. A set keeps at least one screen — deleting the last one is rejected. Requires a write-scope API key."},{"name":"sonar_set_screenshot_translations","description":"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 "},{"name":"sonar_export_screenshots","description":"Render a screenshot set to store-ready PNGs SERVER-SIDE (no browser needed) and save them as one ZIP per locale in output_dir — ready for App Store Connect / Pl"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"app.trysonar/sonar","url":"https://registry.modelcontextprotocol.io/v0/servers/app.trysonar%2Fsonar","firstSeenAt":"2026-09-05T15:22:06.888Z","fetchedAt":"2026-09-05T15:22:06.888Z","normalizedAt":"2026-09-05T15:22:06.888Z"}]},"firstSeenAt":"2026-09-05T15:22:06.888Z","updatedAt":"2026-09-05T15:22:26.430Z"}