ASO tools tell you about your app. This one tells you about the market.
An MCP server for App Store market intelligence: competitor sets, studios, share-of-search, and rank movement over time. Built on Apple's public endpoints — no API keys, no accounts, no scraping.
npx app-market-mcpExisting App Store MCP servers are single-app ASO optimizers: how does my app rank, what keywords should I add. They're good at that. This server covers the layer they don't — market-level questions across sets of apps and studios:
- Who owns the "sleep tracker" keyword space in the US? →
share_of_search - Where do we and our five competitors rank across our ten keywords? →
keyword_matrix - Map the meditation app market in Germany. →
market_map - What has this studio shipped in the last six months? →
studio_releases - Who's climbing on our keywords since last month? → watchlists +
rank_movement
The intended user is anyone doing competitive analysis, market research, BD scouting, or portfolio tracking — not just developers optimizing their own listing.
Claude Code
claude mcp add -s user app-market -- npx app-market-mcpClaude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"app-market": {
"command": "npx",
"args": ["app-market-mcp"]
}
}
}Any MCP client with stdio transport works (Cursor, Windsurf, etc.).
| Tool | What it answers |
|---|---|
search_apps |
Raw App Store search results for a term, in rank order |
app_profile |
Full metadata for one app (by track id or bundle id) |
share_of_search |
Top-50 leaderboard for a keyword + which studios hold the slots; flags your app and rivals |
keyword_matrix |
The grid: N keywords × M apps, who ranks where (≤10×10) |
market_map |
One-call landscape: top apps, dominant studios, free/paid mix, concentration, median age |
top_charts |
Apple's top-free / top-paid chart for any storefront |
| Tool | What it answers |
|---|---|
studio_profile |
A developer's full portfolio with totals (by artist id or name search) |
studio_releases |
New apps + updates a studio shipped in the last N months |
suggest_competitors |
Likely competitors for an app, scored from its search neighborhood |
| Tool | What it answers |
|---|---|
create_watchlist |
Save a named competitor set: focal app + rivals + keywords + storefront |
snapshot_watchlist |
Record current rankings for every keyword in the set |
rank_movement |
Who climbed, who slipped, top-10 churn — across stored snapshots |
list_watchlists / delete_watchlist |
Manage saved sets |
Watchlists are plain JSON in ~/.app-market-mcp/ (override with APP_MARKET_MCP_DIR).
Snapshot whenever you like — daily, weekly, before/after an ASO push — and rank_movement
turns the snapshots into movement reports. Rank change is previous_rank − rank:
positive = climbed toward #1.
Two bundled workflows show the composite moves: market-scan (keyword → full landscape
read) and keyword-battle (two apps → head-to-head matrix). Saved watchlists are also
exposed as watchlist:// resources.
share_of_search with {"keyword": "habit tracker", "focus_app_id": "…"} returns:
{
"keyword": "habit tracker",
"country": "US",
"result_count": 200,
"leaderboard": [
{ "rank": 1, "id": "1", "name": "Habitica", "studio": "HabitRPG Inc", "rating": 4.7, "ratings_count": 84210 },
{ "rank": 2, "id": "2", "name": "Streaks", "studio": "Crunchy Bagel", "rating": 4.8, "ratings_count": 31544 }
],
"focus_summary": { "rank": 7, "rivals_above": 2, "rivals_below": 1, "unranked_rivals": [] },
"studio_concentration": [
{ "studio": "HabitRPG Inc", "apps_in_top": 2, "best_rank": 1, "total_ratings": 91000, "examples": ["Habitica", "…"] }
]
}- Everything comes from Apple's public iTunes Search/Lookup APIs and the public marketing-tools RSS feeds. No private APIs, no store scraping, no credentials.
- Apple soft-limits the search endpoint to roughly 20 requests/min/IP. The server paces
search calls ~3s apart internally, so multi-keyword tools take time by design
(
keyword_matrixwith 10 keywords ≈ 30s) and report progress while they run. Slow and reliable beats fast and rate-limited. - Search responses cap at 200 results, so "unranked" means "not in the top 200."
- Rankings vary by storefront; every tool takes an ISO-2
country. - Not affiliated with or endorsed by Apple.
- Google Play module (via community scraper libraries, off by default)
chart_movers: top-charts diffing from chart snapshots- Keyword suggestion probes from search autocomplete
- Hosted streamable-HTTP transport
npm install
npm run build
npm test # unit tests (no network)
npm run smoke # boots the server and runs one live searchPRs welcome — especially additional storefront quirks, new market-level tools, and Google Play groundwork.
Built this in the open. If it saved you time, a one-off tip keeps it maintained:
MIT
Keywords: App Store market intelligence · ASO tools · app store competitor analysis · share of search · app rank tracking · App Store API (no key) · mobile app market research · MCP app-store data for AI agents.