sonar
Server Details
ASO tools for AI agents: keyword research, rank tracking, competitor analysis (iOS & Android).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- trysonar/mcp
- GitHub Stars
- 0
- Server Listing
- @sonarapp/mcp
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Score is being calculated. Check back soon.
Available Tools
47 toolssonar_add_screenshotAdd ScreenshotInspect
Append a screen to a screenshot set (at the end; reorder with sonar_update_screenshot_set). Requires a write-scope API key.
| Name | Required | Description | Default |
|---|---|---|---|
| layout | No | Omit for a blank screen. | |
| set_id | Yes | Screenshot set to append to. |
sonar_analyze_competitorsAnalyze Competitors (AI)Inspect
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 (with a why-now narrative and per-keyword metrics), writes threat narratives for competitors climbing on your keywords, and diffs against the previous analysis. At most one analysis per app per 7 days (429 with the next available time while in cooldown — use sonar_competitor_landscape to read the current one). Requires an Indie plan (trial counts) and an API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | Sonar app UUID of YOUR OWN tracked app to analyze. NOT a store id, NOT a competitor id. |
sonar_app_aso_scoreASO ScoreRead-onlyInspect
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 usage, screenshots, ratings, etc.) so you can identify what to improve. Works without an API key (free tier, limited daily use per IP).
| Name | Required | Description | Default |
|---|---|---|---|
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
| store_id | Yes | Store-specific app identifier. iOS: numeric track ID. Android: package name. |
sonar_app_changesApp Change HistoryRead-onlyInspect
Change history for a tracked app — detected releases, metadata edits, screenshot swaps, price changes, and category moves, newest first. Useful for correlating rank movements with what the app (or a competitor) changed. Requires an Indie plan (trial counts).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter to one change type. Omit for all types. | |
| limit | No | Max changes to return (1-200). Default 50. | |
| app_id | Yes | Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id. |
sonar_app_extract_keywordsExtract App KeywordsRead-onlyInspect
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) is optimizing for. Works without an API key (free tier, limited daily use per IP).
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Maximum number of keywords to extract (1-50, default 20). | |
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
| store_id | Yes | Store-specific app identifier. iOS: numeric track ID. Android: package name. |
sonar_app_keywordsList App KeywordsRead-onlyInspect
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 marker) per keyword. Returns the tracked-keyword ids used by sonar_update_keyword_note and sonar_star_keyword, and the keyword_ids used by sonar_keyword_rankings. Cursor-paginated (default 50 per page). Requires an Indie plan (trial counts).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1-200). Server default applies when omitted. | |
| app_id | Yes | Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id. | |
| cursor | No | Pagination cursor from a previous call's `next_cursor`. Omit for the first page. |
sonar_app_lookupLook Up AppRead-onlyInspect
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 API key (free tier, limited daily use per IP).
| Name | Required | Description | Default |
|---|---|---|---|
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
| store_id | Yes | Store-specific app identifier. iOS: numeric track ID (e.g. "123456789"). Android: package name (e.g. "com.spotify.music"). |
sonar_app_rankingsApp Rank HistoryRead-onlyInspect
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 metadata change or to find keywords trending up or down. Cursor-paginated over keywords (default 50 per page). Requires an Indie plan (trial counts).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | History window in days (1-365). Default 30. | |
| limit | No | Page size (1-200). Server default applies when omitted. | |
| app_id | Yes | Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id. | |
| cursor | No | Pagination cursor from a previous call's `next_cursor`. Omit for the first page. | |
| keyword_id | No | Restrict to one keyword — a keyword_id from sonar_app_keywords. Omit for all tracked keywords. |
sonar_app_revenueEstimate App RevenueRead-onlyInspect
Estimate monthly revenue for an app, based on install counts, ratings, and category benchmarks. Returns the dollar estimate, a confidence grade (high/medium/low) with the factors behind it, and the methodology used — always communicate the confidence alongside the number.
| Name | Required | Description | Default |
|---|---|---|---|
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
| store_id | Yes | Store-specific app identifier. iOS: numeric track ID. Android: package name. |
sonar_app_reviewsFetch App ReviewsRead-onlyInspect
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, and competitive research.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort order. "recent" returns newest first, "helpful" returns most-voted first. | recent |
| limit | No | Maximum number of reviews to return (1-200). | |
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
| store_id | Yes | Store-specific app identifier. iOS: numeric track ID. Android: package name. | |
| max_rating | No | Filter to reviews with a star rating <= this value (1-5). | |
| min_rating | No | Filter to reviews with a star rating >= this value (1-5). |
sonar_app_searchSearch AppsRead-onlyInspect
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 an API key (free tier, limited daily use per IP).
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | Number of results to return (1-50, default 10). | |
| query | Yes | Search query (e.g. "meditation", "meal planner"). | |
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
sonar_competitor_keywordsCompetitor KeywordsRead-onlyInspect
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: keywords where the competitor ranks but your app doesn't are marked gap=missing. Cursor-paginated (default 50 per page). Requires an Indie plan (trial counts).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1-200). Server default applies when omitted. | |
| cursor | No | Pagination cursor from a previous call's `next_cursor`. Omit for the first page. | |
| own_app_id | No | Sonar app UUID of your own app. When set, each keyword includes your current rank and a gap marker for keywords you don't rank for. | |
| competitor_app_id | Yes | Sonar app UUID of the competitor — the `competitor.id` from sonar_track_competitor, or an `id` from sonar_list_apps where is_own is false. NOT a store id. |
sonar_competitor_landscapeCompetitor LandscapeRead-onlyInspect
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 don't, winnable gaps, competitors climbing on your tracked keywords, keywords you lead), the top gap/threat/lead rows with metrics, and the latest AI insight if one was generated (opportunity clusters, threat narratives, strengths, posture). Read this before deciding which keywords to target next. Requires an Indie plan (trial counts).
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | Sonar app UUID of YOUR OWN tracked app (an `id` from sonar_list_apps where is_own is true). NOT a store id, NOT a competitor id. |
sonar_create_productCreate ProductInspect
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 app, or just one of either). Returns the product id and the Sonar app ids needed by sonar_track_keywords and sonar_track_competitor. Requires an Indie plan (trial counts) and an API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| apps | Yes | 1-2 store versions: a single iOS or Android app, or one of each for a cross-store product. | |
| name | No | Product name. Optional — defaults to the first app's name. |
sonar_create_screenshot_setCreate Screenshot SetInspect
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/editable for humans in the Screenshot Studio (studio_url in the response). Requires a write-scope API key.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Display name. | |
| store | Yes | Target app store. | |
| screens | No | Initial screens, in order (max 10). Either this or template_id, not both; with neither you get one blank screen. | |
| product_id | Yes | Product the set belongs to. | |
| device_size | Yes | Device id from sonar_screenshot_devices, e.g. "iphone-6.7". | |
| template_id | No | Seed from a built-in template (see sonar_screenshot_layout_guide) instead of providing screens. |
sonar_delete_alertDelete Alert RuleDestructiveIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| id | Yes | The alert subscription UUID — the `id` returned by sonar_list_alerts or sonar_set_alert. |
sonar_delete_productDelete ProductDestructiveIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Sonar product UUID — the `id` returned by sonar_list_products or sonar_create_product. |
sonar_delete_screenshotDelete ScreenshotDestructiveIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| screenshot_id | Yes | Screen id to delete. |
sonar_delete_screenshot_setDelete Screenshot SetDestructiveIdempotentInspect
Permanently delete a screenshot set and everything in it (screens, translations). Irreversible — confirm with the user before deleting work they may want. Requires a write-scope API key.
| Name | Required | Description | Default |
|---|---|---|---|
| set_id | Yes | Screenshot set id. |
sonar_delete_tracked_keywordDelete Tracked KeywordDestructiveIdempotentInspect
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 an Indie plan (trial counts) and an API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| tracked_keyword_id | Yes | The tracked-keyword UUID — the `id` returned by sonar_app_keywords. NOT the keyword_id. |
sonar_export_screenshotsExport Screenshots (PNG)Read-onlyInspect
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 / Play Console upload. Rendering happens through the same engine as the Screenshot Studio editor. Writes to the filesystem of the machine running the MCP server, so this tool is for local (stdio) use; over the hosted transport call GET /api/v1/screenshots/sets/:id/export directly instead.
| Name | Required | Description | Default |
|---|---|---|---|
| set_id | Yes | Screenshot set id. | |
| locales | No | Locales to export (e.g. ["de-DE","ja"]). Use the set's source locale code for the source renders. Omit together with all_locales for source-only. | |
| output_dir | Yes | Directory to write the ZIPs into (created if missing). One ZIP per locale, named <locale>.zip, each containing store-ready 01.png…NN.png. | |
| all_locales | No | Export the source locale plus every enabled locale. |
sonar_get_appGet Tracked AppRead-onlyInspect
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 installs. Requires an Indie plan (trial counts).
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id. |
sonar_get_screenshot_setGet Screenshot SetRead-onlyInspect
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 placeholders to keep the response readable.
| Name | Required | Description | Default |
|---|---|---|---|
| set_id | Yes | Screenshot set id. | |
| include_image_data | No | When false (default), inline base64 images are replaced with short placeholders to keep the response small. Set true only when you need the raw data URLs (a layout containing placeholders is rejected on update). |
sonar_keyword_metricsKeyword MetricsRead-onlyInspect
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. Works without an API key for up to 5 keywords/day (free tier, per IP); an API key removes that cap. Use sonar_keyword_search instead when you want related keyword ideas alongside metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
| keyword | No | Single keyword to fetch metrics for. Use this OR `keywords`, not both. | |
| keywords | No | Bulk list of keywords to fetch metrics for (max 25). Use this OR `keyword`, not both. 1 credit per keyword. |
sonar_keyword_rankingsKeyword SERP HistoryRead-onlyInspect
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 how the top spots shifted over time. The keyword must be tracked in the caller's Sonar workspace. Requires an Indie plan (trial counts).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | History window in days (1-365). Default 30. | |
| keyword_id | Yes | Sonar keyword UUID — a `keyword_id` from sonar_app_keywords or sonar_competitor_keywords. NOT the keyword text. |
sonar_keyword_searchKeyword ResearchRead-onlyInspect
Research a keyword and related terms. Returns difficulty (0-100), popularity score, and results count for the seed keyword plus related autocomplete suggestions. Use this to find keywords worth targeting.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Seed keyword to research (e.g. "meditation", "recipe app"). | |
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
sonar_keyword_suggestionsKeyword SuggestionsRead-onlyInspect
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 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).
| Name | Required | Description | Default |
|---|---|---|---|
| seed | Yes | Seed keyword. The store will return autocomplete suggestions starting from this term. | |
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
sonar_list_alertsList Alert RulesRead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
sonar_list_appsList Tracked AppsRead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1-200). Server default applies when omitted. | |
| cursor | No | Pagination cursor from a previous call's `next_cursor`. Omit for the first page. |
sonar_list_productsList ProductsRead-onlyInspect
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 | Required | Description | Default |
|---|---|---|---|
No parameters | |||
sonar_list_screenshot_setsList Screenshot SetsRead-onlyInspect
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 | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Product id (find it with sonar_list_products). |
sonar_remove_competitorRemove CompetitorDestructiveIdempotentInspect
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 | Required | Description | Default |
|---|---|---|---|
| product_id | Yes | Sonar product UUID — the `id` returned by sonar_list_products or sonar_create_product. | |
| competitor_app_id | Yes | Sonar app UUID of the competitor to remove (the competitor's `id`, NOT a store id). |
sonar_scan_competitorScan Competitor KeywordsInspect
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. Requires an Indie plan (trial counts) and an API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| own_app_id | Yes | Sonar app UUID of your own app the scan compares against. The competitor must be linked to this app. | |
| competitor_app_id | Yes | Sonar 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. |
sonar_screenshot_devicesList Screenshot DevicesRead-onlyInspect
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. Pick a device here before sonar_create_screenshot_set.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
sonar_screenshot_layout_guideScreenshot Layout GuideRead-onlyInspect
The layout-format reference for Sonar screenshot sets. Call this ONCE before creating or editing screenshot layouts — it documents the layout JSON schema, coordinate system, image handling (remote URLs), flowing background shapes, fonts, translation overrides, and the recommended workflow.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
sonar_set_alertSet Alert RuleInspect
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 API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | The alert type to subscribe to. | |
| enabled | No | Whether the rule is active. Defaults to enabled when omitted. | |
| threshold | No | Sensitivity threshold (meaning depends on type). Omit or null to use the per-type default. | |
| scope_app_id | No | Limit the alert to a single app (Sonar app UUID). Omit or null for an org-wide rule covering all tracked apps. |
sonar_set_screenshot_translationsSet Screenshot TranslationsIdempotentInspect
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 a write-scope API key.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | Yes | Target locale code, e.g. "de-DE", "pt-BR", "zh-Hans". | |
| set_id | Yes | Screenshot set id. | |
| entries | Yes | One entry per screen to localize. |
sonar_star_keywordStar KeywordIdempotentInspect
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 API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| starred | Yes | true to star the keyword (mark as a favorite/target), false to unstar. | |
| tracked_keyword_id | Yes | Tracked-keyword UUID — the `id` (not keyword_id) returned by sonar_app_keywords or sonar_track_keywords. |
sonar_top_chartsTop ChartsRead-onlyInspect
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 100 — limit truncates the returned entries only. Movement is empty on the first day a chart is requested (no previous snapshot yet). Works without an API key (free tier, limited daily use per IP).
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Chart type: "free", "paid" or "grossing". Default "free". | free |
| limit | No | Number of chart entries to return (1-100). Default 50. | |
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us". | us |
| category | No | Category key, e.g. "HEALTH_AND_FITNESS" (iOS) or "HEALTH_AND_FITNESS" / "GAME" (Android). Use "overall" (default) for the store-wide chart. | overall |
sonar_track_appTrack AppInspect
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 API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults server-side. | |
| store_id | Yes | Store-specific app identifier of the version to link. iOS: numeric track ID. Android: package name. | |
| product_id | Yes | Sonar product UUID (from sonar_create_product). NOT a store id. |
sonar_track_competitorTrack CompetitorInspect
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 API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| store | Yes | App store. "ios" for Apple App Store, "android" for Google Play. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults server-side. | |
| store_id | Yes | Store-specific app identifier of the COMPETITOR app to track. iOS: numeric track ID. Android: package name. | |
| product_id | Yes | Sonar product UUID (from sonar_create_product). NOT a store id. |
sonar_track_keywordsTrack KeywordsInspect
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). Requires an Indie plan (trial counts) and an API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | Sonar 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. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults to the product's country. | |
| keywords | Yes | Keywords to start tracking (1-200). Duplicates and already-tracked terms are reported, not duplicated. |
sonar_untrack_appUntrack AppDestructiveIdempotentInspect
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 write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| app_id | Yes | Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id. |
sonar_untrack_keywordsUntrack KeywordsDestructiveIdempotentInspect
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). Requires an Indie plan (trial counts) and an API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Set true to untrack ALL keywords for the app. Mutually exclusive with `ids` — pass exactly one of `all` or `ids`. | |
| ids | No | Tracked-keyword ids to untrack (from sonar_app_keywords). Mutually exclusive with `all` — pass exactly one of `all` or `ids`. | |
| app_id | Yes | Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id. |
sonar_update_keyword_noteUpdate Keyword NoteIdempotentInspect
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 API key with the write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | Note text (max 1000 chars). Pass null or an empty string to clear the note. | |
| tracked_keyword_id | Yes | Tracked-keyword UUID — the `id` (not keyword_id) returned by sonar_app_keywords or sonar_track_keywords. |
sonar_update_screenshotUpdate ScreenshotIdempotentInspect
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 a write-scope API key.
| Name | Required | Description | Default |
|---|---|---|---|
| layout | Yes | The 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_id | Yes | Screen id (from the set's screens array). |
sonar_update_screenshot_setUpdate Screenshot SetIdempotentInspect
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 API key.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name. | |
| set_id | Yes | Screenshot set id. | |
| locales | No | Replaces the extra-locale list (e.g. ["de-DE","fr-FR"]). Locales removed here lose their stored translations. | |
| screen_order | No | Full permutation of the set's screen ids in the new display order. |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityFmaintenanceEnables access to Astro's App Store Optimization (ASO) database for analyzing app rankings, keyword trends, historical performance data, and app ratings. Provides comprehensive tools for tracking and comparing app store performance metrics through natural language queries.6128MIT

GetAppNiche MCPofficial
Alicense-qualityAmaintenanceEnables AI agents to query live App Store and Google Play data, including app search, revenue/download metrics, keyword difficulty, and reviews, via a hosted MCP server with API-key authentication.76MIT- Alicense-qualityBmaintenanceMCP server for managing App Store Optimization: add apps, track keywords, pull health reports, spy on competitors, find keyword opportunities, and write AI copy suggestions.5MIT
Your Connectors
Sign in to create a connector for this server.