@sonarapp/mcpMCP

MCP Server

Official Sonar MCP server. Drops App Store Optimization tools into Claude Desktop, Claude Code, Cursor, Codex, Cline, and any Model Context Protocol-compatible client. AI agents can look up apps, research keywords, audit ASO, and analyze reviews directly from chat.

Tools

The server exposes 35 tools covering the entire Sonar API — iOS App Store and Google Play, all with one API key: 10 stateless lookups, 10 workspace reads, and 15 write tools that set up and manage your tracking and alerts. An agent can create a product, track keywords and competitors, then read back rankings, changes, and gap analyses — and tear any of it down again.

Stateless read tools

Live store lookups — no tracking required. Work on any plan with credits.

ToolDescription
sonar_app_lookupLook up app metadata by store ID (rating, reviews, category, installs, price)
sonar_app_searchSearch apps by keyword in store ranking order
sonar_app_aso_scoreASO audit score (0-100) with itemized checks
sonar_app_extract_keywordsExtract target keywords from an app's listing
sonar_app_reviewsFetch reviews with rating filters and sort options
sonar_app_revenueEstimate monthly revenue with methodology
sonar_keyword_searchKeyword research — difficulty, popularity, related terms
sonar_keyword_metricsDifficulty + popularity for specific keywords (single or bulk)
sonar_keyword_suggestionsAutocomplete suggestions from the store
sonar_top_chartsTop free/paid/grossing chart with day-over-day movement, new entries and biggest movers

Workspace read tools (Full plan)

Read your tracked apps, keywords, rankings, competitor data, products, and alert subscriptions. Require a Full plan (an active trial counts); the default read-scope key is enough. Available in @sonarapp/mcp ≥ 0.5.0.

ToolDescription
sonar_list_appsList your tracked apps with latest snapshots (rating, reviews, installs)
sonar_get_appApp detail + up to 90 days of snapshot history
sonar_app_keywordsKeywords tracked for an app, with difficulty + popularity
sonar_app_rankingsDaily rank history for an app's tracked keywords
sonar_app_changesDetected releases, metadata edits, screenshot/price/category changes
sonar_keyword_rankingsSERP history for a tracked keyword — who ranked, when
sonar_competitor_keywordsKeywords a competitor ranks for + gap analysis vs your app
sonar_competitor_landscapeFull competitive picture for one of your own apps — gap/winnable/threat/lead stats + latest AI insight
sonar_list_productsYour products with linked store versions + competitor counts (find app/product UUIDs)
sonar_list_alertsYour alert subscriptions with effective thresholds and enabled state

Write tools (Full plan + write scope)

Write tools mutate your workspace — they let an agent add your app, link competitors, start rank tracking, annotate keywords, run competitor scans, manage alert subscriptions, and untrack or delete anything it set up. They require a Full plan (an active trial counts) and an API key created with the write scope at /developers. Both are enforced server-side.

ToolDescription
sonar_create_productCreate a product in your workspace and start tracking its app(s)
sonar_track_appLink the second-store version (iOS ↔ Android) of an existing product
sonar_track_competitorAdd a competitor app under a product
sonar_track_keywordsStart daily rank tracking for keywords on an app (bulk, idempotent)
sonar_update_keyword_noteSet or clear the note on a tracked keyword
sonar_star_keywordStar/unstar a tracked keyword (favorite/target marker)
sonar_scan_competitorRun a keyword discovery scan on a competitor and record ranks
sonar_analyze_competitorsGenerate a fresh AI competitive insight for one of your own apps (7-day cooldown)
sonar_delete_tracked_keywordStop tracking one keyword/app pair
sonar_untrack_keywordsUntrack many keywords for an app — pass exactly one of all:true or ids:[…]
sonar_untrack_appUntrack an app and its org-scoped data
sonar_delete_productDelete a product and untrack its apps
sonar_remove_competitorRemove a competitor from a product (auto-untracks the app if nothing else references it)
sonar_set_alertCreate or update an alert subscription (upserts on type + scope)
sonar_delete_alertDelete an alert subscription

1. Get an API key (or try it without one)

No key? The server runs in free mode: app search, app lookup, ASO score, keyword extraction, and keyword suggestions work with no key at all (shared 30 requests/day per IP), and keyword metrics allows 5 keywords/day. Just skip the env block in the config below and ask your agent about ASO. For everything else, you need a Sonar API key. Get one at trysonar.app/developers — keys start with aso_.

New accounts receive 50 free credits on signup — enough to evaluate every endpoint. Top up with prepaid packs from $10 (1,000 credits) when you need more. No subscription required; see the credits page for details and pack sizes.


2. Add the server to your MCP client

Two ways to connect: the hosted endpoint (nothing to install) or the @sonarapp/mcp npm package run locally via npx. Pick whichever your client supports — the tools are identical.

Hosted endpoint (no install)

Point any streamable-HTTP MCP client at https://trysonar.app/mcp and pass your API key as a bearer token. In Claude Code:

claude mcp add --transport http sonar https://trysonar.app/mcp --header "Authorization: Bearer aso_your_key_here"

Or as a remote-server config block:

{
  "mcpServers": {
    "sonar": {
      "url": "https://trysonar.app/mcp",
      "headers": { "Authorization": "Bearer aso_your_key_here" }
    }
  }
}

Claude Desktop

Open the config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the sonar entry:

{
  "mcpServers": {
    "sonar": {
      "command": "npx",
      "args": ["-y", "@sonarapp/mcp"],
      "env": {
        "SONAR_API_KEY": "aso_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. The 31 sonar_* tools will appear in the tool picker.

Claude Code

One-liner from your shell:

claude mcp add sonar -e SONAR_API_KEY=aso_your_key_here -- npx -y @sonarapp/mcp

Restart your Claude Code session and the tools will load automatically.

Cursor

Add to ~/.cursor/mcp.json (or per-project .cursor/mcp.json):

{
  "mcpServers": {
    "sonar": {
      "command": "npx",
      "args": ["-y", "@sonarapp/mcp"],
      "env": { "SONAR_API_KEY": "aso_your_key_here" }
    }
  }
}

Codex CLI

One-liner (recent Codex versions):

codex mcp add sonar --env SONAR_API_KEY=aso_your_key_here -- npx -y @sonarapp/mcp

Or add the server manually to ~/.codex/config.toml:

[mcp_servers.sonar]
command = "npx"
args = ["-y", "@sonarapp/mcp"]
env = { "SONAR_API_KEY" = "aso_your_key_here" }

Start a new Codex session and the sonar_* tools will be available.

Cline / other MCP clients

Most clients use the same command + args + env shape. Point the command at npx -y @sonarapp/mcp and pass SONAR_API_KEY in the env. Some clients require an absolute path to npx — run which npx and use that.


3. Try it

Once installed, try prompts like:

  • “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.duolingo on 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 1517783697 on iOS US and group complaints by theme.”
  • “Search meditation on the App Store and estimate monthly revenue for the top 5 results.”
  • “Create a Sonar product for my app com.example.myapp, track its top 20 extracted keywords, and add Headspace as a competitor.”
  • “How did my tracked keywords move in the last 30 days? Flag anything that dropped more than 5 spots and check whether a competitor shipped a release around that time.”

Configuration

VariableRequiredDescription
SONAR_API_KEYyesYour Sonar API key (aso_...)
SONAR_API_URLnoOverride base URL (default https://trysonar.app). HTTPS only, except localhost.

Pinning a version

By default npx -y @sonarapp/mcp resolves to the latest version. To pin:

"args": ["-y", "@sonarapp/[email protected]"]

See the package on npm for the version history.


Privacy & data flow

The MCP server is a thin client around the Sonar REST API. Your API key is sent as a Bearer token over HTTPS. Tool inputs and the resulting JSON pass through your AI client; the @sonarapp/mcp package itself does not log anything.


Troubleshooting

“SONAR_API_KEY is not set”

Your MCP client did not pass the env var through. Check the env section of your client's config. Some clients ignore env when the command path isn't absolute — try which npx and use that path.

“Authentication failed”

Your key is invalid, expired, or your subscription lapsed. Check /developers.

Tools don't appear in the picker

Restart the MCP client after editing config. In Claude Desktop, fully quit (Cmd+Q) — closing the window isn't enough. In Claude Code, end the session and start a new one.


See also