@sonarapp/mcp
OfficialSonar MCP server provides App Store Optimization tools for AI agents across the iOS App Store and Google Play.
Look up and search apps; fetch metadata, ratings, reviews, installs, price, top charts, and ASO audit scores.
Extract target keywords and research keyword difficulty, popularity, suggestions, and metrics (single or bulk up to 25).
Fetch filtered/sorted user reviews and estimate monthly app revenue with confidence grades.
Manage a Sonar workspace: products, tracked apps/competitors, tracked keywords, notes, stars, alerts, and untracking/deletion.
Analyze competitors: competitor keywords, gap analysis, ranking/SERP history, app change history, and alert events.
Access Agency-plan App Store Connect sales and engagement data.
Author Screenshot Studio assets: layout guide, device sizes, create/update/delete sets and screens, translations, and export PNG ZIPs.
Runs keyless in free mode for limited read tools, via npm stdio with an API key, or hosted HTTP with OAuth/API key.
Supports querying app metadata, reviews, rankings, and keyword performance specifically for the iOS App Store.
Supports querying app metadata, reviews, rankings, and keyword performance specifically for Google Play.
Provides tools for App Store Optimization including app lookup, keyword research, ASO audit, review mining, and revenue estimation, powered by the Sonar API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@sonarapp/mcp Search for 'meditation' apps on iOS and list top 3"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@sonarapp/mcp
The official Sonar MCP server — App Store Optimization tools for AI agents.
For the hosted Grok Build and Cursor marketplace plugin, see plugin setup, authentication, and permissions.
Lets Claude Desktop, Claude Code, Cursor, Cline, and any Model Context Protocol-compatible client look up apps, research keywords, audit ASO, mine reviews, and estimate revenue across the iOS App Store and Google Play. Powered by Sonar.
Tools
55 tools covering the whole Sonar REST API, grouped by what they need.
Read tools — stateless (any plan with credits)
Tool | What it does | Works without a key |
| Look up app metadata by store ID | Yes |
| Search apps by keyword (returns store ranking order) | Yes |
| ASO audit score (0-100) with itemized checks | Yes |
| Extract target keywords from an app's listing | Yes |
| Fetch reviews with rating filters and sort options | — |
| Estimate monthly revenue with a confidence grade | — |
| Keyword research (difficulty, popularity, related terms) | — |
| Difficulty + popularity for specific keywords (up to 25 per call) | Yes (5 keywords/day) |
| Autocomplete suggestions from the store | Yes |
| Top free/paid/grossing chart with day-over-day movement | Yes |
Stateless tools work on any plan with credits (API Credits, Indie or Agency), for both iOS and Android. The ones marked "Yes" also run keyless on the free tier (see "Try it free" below).
Read tools — your workspace (Indie plan)
Tool | What it does |
| List your products with their linked store versions and competitor counts |
| List your tracked apps with latest snapshots (rating, reviews, installs) |
| App detail + up to 90 days of snapshot history |
| Dashboard scoreboard for an app: visibility, share of voice, movement, opportunities |
| Keywords tracked for an app, with difficulty, popularity, notes and stars |
| Daily rank history for an app's tracked keywords |
| Detected releases, metadata edits, screenshot/price/category changes |
| SERP history for a tracked keyword (who ranked, when) |
| Untracked keywords Sonar discovered for an app, sorted by opportunity |
| Keywords a competitor ranks for + gap analysis vs your app |
| Gaps, threats and leads vs all your competitors + latest AI insight |
| Latest AI review analysis: praise/complaint themes, quotes, trends |
| List your alert rules (type, scope, threshold, enabled) |
| Detected alert events (rank moves, rating drops, review spikes), newest first |
Workspace reads require an Indie plan or higher (an active trial counts); the default read-scope key is enough.
Read tools — Agency plan
Tool | What it does |
| Portfolio rollup: per-app KPIs, biggest movers, needs-attention list, top opportunities |
| App Store Connect sales: downloads, redownloads, IAP units, approximate proceeds |
| App Store Connect funnel: impressions, page views, downloads, sources, sessions |
These require the Agency plan (an Agency trial counts) and return 403 on other plans. sonar_app_sales and sonar_app_engagement are iOS-only and also need an App Store Connect connection at trysonar.app/settings/connections; engagement data needs an Admin-role App Store Connect key.
Write tools (Indie plan + write scope)
Tool | What it does |
| Create a product in your Sonar workspace and start tracking its app(s) |
| Link the second-store version (iOS ↔ Android) of an existing product |
| Add a competitor app under a product |
| Remove a competitor from a product |
| Delete a product and untrack its apps |
| Untrack an app and its tracking data |
| Start daily rank tracking for keywords on an app (bulk, idempotent) |
| Set or clear the note on a tracked keyword |
| Star or unstar a tracked keyword (mark it as a target) |
| Stop tracking one keyword/app pair |
| Bulk-untrack an app's keywords (selected IDs or all) |
| Run an AI keyword discovery scan on a competitor (read results with |
| Generate a fresh AI competitive insight for one of your apps (7-day cooldown) |
| Generate a fresh AI review analysis for a tracked app (90-day cooldown) |
| Create or update an alert rule |
| Delete an alert rule |
Write tools mutate your workspace and require an Indie plan or higher (an active trial counts) plus either an OAuth sign-in on the hosted endpoint (which carries write access) or an API key created with the write scope. The two AI generation tools, sonar_analyze_competitors and sonar_generate_review_insights, need a paid plan and are not available during the trial. The server enforces all of this — without it, calls return a 403 explaining what to fix.
Together these close the loop for agents: set up tracking with the write tools, then read back rankings, changes, and gap analyses with the workspace tools.
Screenshot Studio (Indie plan)
Tool | What it does | Scope |
| Layout-format reference; read it once before authoring layouts | none |
| Supported device sizes and their canvas dimensions | read |
| A product's screenshot sets (metadata only) | read |
| A full set: every screen's layout plus translation overrides | read |
| Create a screenshot set for a product | write |
| Rename a set, replace its locales, or reorder its screens | write |
| Delete a set and everything in it | write |
| Append a screen to a set | write |
| Replace one screen's layout | write |
| Delete one screen (a set keeps at least one) | write |
| Write a locale's translation overrides | write |
| Render store-ready PNGs into one local ZIP per locale | read |
Agents author screenshot sets as layout JSON; humans review and fine-tune the same sets in the Screenshot Studio. The layout guide is embedded in the server and needs no key. sonar_export_screenshots writes files on the machine running the server, so it's available over stdio only, not on the hosted endpoint.
Related MCP server: AppRanks MCP Server
Hosted endpoint — no install, no API key
OAuth-capable MCP clients (Claude Code, claude.ai custom connectors) can skip both the npm install and the API key entirely:
claude mcp add --transport http sonar https://trysonar.app/mcpThe first tool call that needs your account opens a browser sign-in — approve it with your Sonar login and the agent has full access to the workspace you own (read + write). Clients without OAuth support can pass an API key instead: --header "Authorization: Bearer aso_...".
ChatGPT submission and hosted behavior
Submit https://trysonar.app/mcp/chatgpt to OpenAI. This endpoint returns tool-level sign-in challenges; /mcp retains HTTP 401 challenges for Claude and other MCP clients. Both advertise OAuth per tool. Anonymous store lookups can run without linking; workspace tools return a native sign-in challenge when authorization is missing or expired. Connect an existing Sonar account and approve access to the workspace you own. Existing account permissions and entitlements apply.
The ChatGPT endpoint requires resource-bound JWT access tokens for its canonical /mcp/chatgpt audience; the existing /mcp endpoint retains Clerk opaque-token support. Provider configuration and an end-to-end login must be verified before submitting the ChatGPT endpoint.
The hosted catalog excludes sonar_export_screenshots, which writes ZIP files to the local MCP host. It remains available over stdio. A native directory listing requires separate OpenAI review and publication; hosting an MCP endpoint does not itself create a listing.
Try it free — no API key needed
The server runs without a key in free mode: sonar_app_search, sonar_app_lookup, sonar_app_aso_score, sonar_app_extract_keywords, sonar_keyword_suggestions, and sonar_top_charts share a free allowance of 30 requests/day per IP, and sonar_keyword_metrics (keyword difficulty + popularity) gets 5 keywords/day. Just install it with no env block and ask your agent about ASO. When you hit the limit, the error tells you how to sign up.
Get an API key
For everything else (tracking, rankings, competitors, higher limits) you'll need a Sonar API key — get one at trysonar.app/developers.
The cheapest path is prepaid API credits — packs from $10 (1,000 credits), with 50 free credits on signup and no subscription. Built specifically for this use case. See pricing.
Install
Claude Desktop
Add to your config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"sonar": {
"command": "npx",
"args": ["-y", "@sonarapp/mcp"],
"env": {
"SONAR_API_KEY": "aso_your_key_here"
}
}
}
}Restart Claude Desktop. The sonar_* tools will appear in the tool picker.
Claude Code
claude mcp add sonar -e SONAR_API_KEY=aso_your_key_here -- npx -y @sonarapp/mcpCursor
Add to ~/.cursor/mcp.json (or your project's .cursor/mcp.json):
{
"mcpServers": {
"sonar": {
"command": "npx",
"args": ["-y", "@sonarapp/mcp"],
"env": {
"SONAR_API_KEY": "aso_your_key_here"
}
}
}
}Cline / other MCP clients
Most clients use the same command + args + env shape as above. Point the command at npx -y @sonarapp/mcp and pass SONAR_API_KEY in the env.
Configuration
Variable | Required | Default | Description |
| no (free mode without it) | — | Your Sonar API key ( |
| no |
| Override the API base URL (only used for self-hosting / staging) |
Example prompts
"Use Sonar to look up Spotify on iOS in the US store and report its rating, review count, and category."
"Run an ASO audit on
com.duolingoon Android and tell me what to fix."
"Research the keyword 'habit tracker' on iOS — give me difficulty, popularity, and 5 related terms with lower difficulty I should consider."
"Pull the 50 most recent 1- and 2-star reviews of
1517783697on iOS US and group complaints by theme."
"Search 'meditation' on the App Store and estimate monthly revenue for the top 5 results."
Privacy Policy
Full policy: https://trysonar.app/privacy
The MCP server is a thin client around Sonar's REST API — it stores nothing locally and no data is logged by this package itself.
Data collected: tool inputs (app IDs, keywords, country codes) are sent to Sonar's API over HTTPS to produce results; authenticated requests include your API key as a
Bearertoken. Sonar logs API requests (endpoint, status, timing) for rate limiting and abuse prevention.Data usage: inputs are used solely to serve the request (keyword metrics, app lookups, etc.); resulting JSON is returned to your AI client.
Storage & retention: the package keeps no state on disk. Server-side request logs are retained for 90 days; workspace data (tracked apps/keywords) persists in your Sonar account until you delete it.
Third-party sharing: no user data is sold or shared with third parties; queries against public app-store data (Apple, Google) contain no personal information.
Contact: hello@trysonar.app
Troubleshooting
"SONAR_API_KEY is not set — running in free mode" — Expected if you haven't configured a key: the free tools keep working with per-IP daily limits. If you DID configure a key, the MCP client did not pass the env var through — check the env section of your client's config file. Some clients require an absolute path to npx — try which npx and use that.
"Authentication failed" — Your key is invalid, expired, or your subscription lapsed. Visit trysonar.app/developers to check.
"Access denied. This endpoint may require an Indie plan subscription" — The 10 stateless read tools work on any plan with credits. The workspace read, write, and Screenshot Studio tools require an Indie plan or higher (an active trial counts); write tools additionally need an API key created with the write scope. sonar_portfolio, sonar_app_sales, and sonar_app_engagement require the Agency plan, and the two AI generation tools need a paid plan (not a trial). If you're on a setup or trial-expired plan, reactivate first.
Companion: CLI
Prefer the terminal? Use @sonarapp/cli (sonar binary) — same data, same API key.
License
MIT © Peter Sutarik
Available Tools
43 toolssonar_add_screenshotAInspect
Append a screen to a screenshot set (at the end; reorder with sonar_update_screenshot_set). Requires a write-scope API key.
Inputs: set_id (required), layout.
sonar_app_aso_scoreAInspect
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.
Inputs: store (required), store_id (required), country.
sonar_app_changesARead-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 a Full plan (trial counts).
Inputs: app_id (required), type, limit.
sonar_app_extract_keywordsAInspect
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.
Inputs: store (required), store_id (required), max, country.
sonar_app_keywordsARead-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 a Full plan (trial counts).
Inputs: app_id (required), limit, cursor.
sonar_app_lookupBInspect
Look up a single app by its store ID. Returns app metadata including name, developer, category, rating, reviews, installs (Android), and price.
Inputs: store (required), store_id (required), country.
sonar_app_rankingsARead-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 a Full plan (trial counts).
Inputs: app_id (required), days, limit, cursor, +1 more.
sonar_app_revenueAInspect
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.
Inputs: store (required), store_id (required), country.
sonar_app_reviewsAInspect
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.
Inputs: store (required), store_id (required), sort, limit, +3 more.
sonar_app_searchAInspect
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).
Inputs: query (required), store (required), num, country.
sonar_competitor_keywordsARead-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 a Full plan (trial counts).
Inputs: competitor_app_id (required), limit, cursor, own_app_id.
sonar_create_productAInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: apps (required), name.
sonar_create_screenshot_setAInspect
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.
Inputs: store (required), product_id (required), device_size (required), name, +2 more.
sonar_delete_alertADestructiveIdempotentInspect
WRITE tool — delete an alert subscription in the caller's Sonar workspace. Requires a Full plan (trial counts) and an API key with the write scope.
Inputs: id (required).
sonar_delete_productADestructiveIdempotentInspect
WRITE tool — delete a product and untrack its apps in the caller's Sonar workspace. Requires a Full plan (trial counts) and an API key with the write scope.
Inputs: product_id (required).
sonar_delete_screenshotAInspect
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.
Inputs: screenshot_id (required).
sonar_delete_screenshot_setAInspect
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.
Inputs: set_id (required).
sonar_delete_tracked_keywordADestructiveIdempotentInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: tracked_keyword_id (required).
sonar_get_appARead-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 a Full plan (trial counts).
Inputs: app_id (required).
sonar_get_screenshot_setAInspect
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.
Inputs: set_id (required), include_image_data.
sonar_keyword_metricsAInspect
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. Use sonar_keyword_search instead when you want related keyword ideas alongside metrics.
Inputs: store (required), country, keyword, keywords.
sonar_keyword_rankingsARead-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 a Full plan (trial counts).
Inputs: keyword_id (required), days.
sonar_keyword_searchAInspect
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.
Inputs: query (required), store (required), country.
sonar_keyword_suggestionsAInspect
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.
Inputs: seed (required), store (required), country.
sonar_list_alertsARead-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 a Full plan (trial counts).
Inputs: no named parameters.
sonar_list_appsARead-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 a Full plan (trial counts).
Inputs: limit, cursor.
sonar_list_productsARead-onlyInspect
List your products with their linked store versions and competitor counts. Use it to discover product/app UUIDs. Requires a Full plan (trial counts).
Inputs: no named parameters.
sonar_list_screenshot_setsAInspect
List a product's app-store screenshot sets (metadata only: store, device size, locales, studio_url). Use sonar_get_screenshot_set for full layouts.
Inputs: product_id (required).
sonar_remove_competitorADestructiveIdempotentInspect
WRITE tool — remove a competitor from a product in the caller's Sonar workspace. Requires a Full plan (trial counts) and an API key with the write scope.
Inputs: product_id (required), competitor_app_id (required).
sonar_scan_competitorAInspect
WRITE tool — runs a keyword discovery scan on a tracked competitor: finds keywords the competitor ranks for and records both apps' ranks. Heavier than other calls (fans out scraper requests; can take ~30s+). Returns counts of keywords discovered and ranked; read the results afterwards with sonar_competitor_keywords. Requires a Full plan (trial counts) and an API key with the write scope.
Inputs: own_app_id (required), competitor_app_id (required).
sonar_screenshot_devicesAInspect
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.
Inputs: no named parameters.
sonar_screenshot_layout_guideAInspect
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.
Inputs: no named parameters.
sonar_set_alertAInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: type (required), enabled, threshold, scope_app_id.
sonar_set_screenshot_translationsAInspect
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.
Inputs: locale (required), set_id (required), entries (required).
sonar_star_keywordAIdempotentInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: starred (required), tracked_keyword_id (required).
sonar_track_appAInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: store (required), store_id (required), product_id (required), country.
sonar_track_competitorAInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: store (required), store_id (required), product_id (required), country.
sonar_track_keywordsAInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: app_id (required), keywords (required), country.
sonar_untrack_appADestructiveIdempotentInspect
WRITE tool — untrack an app and its associated tracking data in the caller's Sonar workspace. Requires a Full plan (trial counts) and an API key with the write scope.
Inputs: app_id (required).
sonar_untrack_keywordsADestructiveIdempotentInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: app_id (required), all, ids.
sonar_update_keyword_noteAIdempotentInspect
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 a Full plan (trial counts) and an API key with the write scope.
Inputs: note (required), tracked_keyword_id (required).
sonar_update_screenshotAInspect
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.
Inputs: layout (required), screenshot_id (required).
sonar_update_screenshot_setAInspect
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.
Inputs: set_id (required), name, locales, screen_order.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 43 tools
Every tool has a clearly distinct purpose: search vs. metrics vs. rankings vs. screenshot management. Even similar-sounding tools like sonar_keyword_search and sonar_keyword_suggestions are differentiated by depth and data returned.
All tools follow the consistent pattern `sonar_verb_noun` in snake_case (e.g., sonar_create_product, sonar_delete_screenshot). No mixing of conventions or inconsistent verb styles.
43 tools is large but justified by the broad ASO domain covering keyword research, ranking tracking, competitor analysis, screenshot creation, and alerts. However, a few tools (e.g., sonar_app_extract_keywords vs. sonar_keyword_search) could be consolidated, making it slightly over-scoped.
The tool surface covers the full ASO lifecycle: app discovery, keyword research and tracking, rank history, competitor analysis, revenue estimation, screenshot creation and management, and alerting. There are no obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
ASO analytics and App Store optimization tools for indie iOS developers and AI agents.
App Store and Google Play ASO: keyword rankings, competitors, reviews, audits and an action queue.
App Store and Google Play reviews, ratings, sentiment and developer replies as agent tools.
App Store keyword rankings, competitors, markets, reviews and analytics for iOS apps, from your AI.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables querying and retrieving data from App Store and Google Play Store, including app details, reviews, ratings, rankings, permissions, and search capabilities across both iOS and Android platforms.20MIT
- AlicenseNot gradedqualityDmaintenanceProvides live App Store rankings, charts, app details, reviews, and search across 55 countries, enabling AI assistants to query app store data.15 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides live App Store and Google Play data as MCP tools, enabling search, app details, reviews, charts, estimates, and more through natural language.1MIT

ASO Atlas MCP serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI assistants to research App Store keywords with popularity and difficulty scores, track daily rankings across 59 storefronts, find competitor keyword gaps, optimize metadata, and review App Store Connect performance. Read tools only inspect the signed-in account, while write tools manage tracked apps, keywords, competitors, and saved lists mid-conversation.MIT