Sonar MCP server — App Store Optimization tools for AI agents (Claude, Cursor, Cline)
Sonar MCP has 47 tools with mixed quality. Strengths: most tools have descriptions (10-200 chars), clear naming (verb_noun pattern), and input schemas with enums for constrained values (store, country). Weaknesses: 7 tools (keyword-search, keyword-metrics, keyword-suggestions, top-charts, keyword-rankings, competitor-keywords, competitor-landscape) lack visible descriptions and schemas in source, inferred only from file references. Output schemas are undocumented across all tools. Error handling is minimal, no recovery guidance or actionable error messages visible. Parameter descriptions are present but often generic (e.g., 'Pagination cursor from a previous response's next_cursor' repeated verbatim). No documented output structure, pagination metadata, or field chaining IDs for downstream tool composition.
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).
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).
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).
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).
27 of 47 tools lack visible descriptions and schemas in source code. Only file references exist; tool definitions are inferred, not directly visible.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
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).
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).
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.
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.
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).
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).
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).
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.
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.
No output schemas documented for any tool. LLMs cannot infer what fields to expect or plan downstream tool calls. Violates pattern:response-shaper and pattern:tool-chain.
No error handling guidance visible. Tools return API errors without recovery hints (e.g., 'User not found. Try search_users() first'). Violates pattern:recovery-guide.
Destructive tools (delete_*, untrack_*, remove_*) lack confirmation or dry-run support. No pattern:confirmation-request implementation visible.
Tool composition broken: list_apps returns app_id, but no documented field mapping to downstream tools (get_app, app_keywords, app_rankings). Violates pattern:tool-chain.