asoradar-mcp
v1.0.0
Published
MCP server for ASORadar — App Reviews API for App Store and Google Play. Auto-generates tools from the ASORadar OpenAPI spec.
Maintainers
Readme
asoradar-mcp
MCP server for ASORadar — App Reviews API for Apple App Store and Google Play. Available on npm: asoradar-mcp.
Auto-generates MCP tools from the ASORadar OpenAPI spec at startup, so every non-deprecated endpoint is exposed without hand-written wrappers (GET /a1/reviews → get_a1_reviews, GET /a1/clone-brief/{app_id} → get_a1_clone-brief_app_id, POST /webhooks → post_webhooks). The tool catalog tracks the live API — App Store (/a1/*) and Google Play (/g1/*) reviews, metadata, version history, ratings histograms, search/charts, AI-agent composites (clone-brief, niche-scan, diffs, sentiment, portfolio stats), and webhook subscriptions.
Get 100 Free API Requests
Sign up and get 100 free ASORadar requests — no credit card required. Enough to wire up the MCP server, try a few prompts in Claude/Cursor/Codex, and evaluate the data quality before committing.
Quick start
ASORADAR_KEY=your-api-key npx -y asoradar-mcpnpx fetches and runs the latest version every time — no install step.
Install in Claude Code
claude mcp add asoradar \
-e ASORADAR_KEY=your-api-key \
-- npx -y asoradar-mcpThe config is persisted in ~/.claude.json.
Install in Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"asoradar": {
"command": "npx",
"args": ["-y", "asoradar-mcp"],
"env": {
"ASORADAR_KEY": "your-api-key"
}
}
}
}Install in Cursor
Add to .cursor/mcp.json in your project, or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"asoradar": {
"command": "npx",
"args": ["-y", "asoradar-mcp"],
"env": {
"ASORADAR_KEY": "your-api-key"
}
}
}
}Install in OpenAI Codex
Append to ~/.codex/config.toml:
[mcp_servers.asoradar]
command = "npx"
args = ["-y", "asoradar-mcp"]
[mcp_servers.asoradar.env]
ASORADAR_KEY = "your-api-key"Install in Zed
Add to ~/.config/zed/settings.json:
{
"context_servers": {
"asoradar": {
"command": "npx",
"args": ["-y", "asoradar-mcp"],
"env": {
"ASORADAR_KEY": "your-api-key"
}
}
}
}Install in Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"asoradar": {
"command": "npx",
"args": ["-y", "asoradar-mcp"],
"env": {
"ASORADAR_KEY": "your-api-key"
}
}
}
}What you can ask
Plain-English prompts work — the AI picks the right tool and parameters.
| Prompt | Tool used |
|---|---|
| Pull recent App Store reviews for Instagram (id 389801252). | get_a1_reviews (app_id, country) |
| Find 5-star reviews of com.whatsapp on Google Play mentioning "crash". | get_g1_reviews (app_id, rating=5, search=crash) |
| What changed in Telegram's last few App Store releases? | get_a1_version-history_app_id |
| Give me a clone brief for this app — metadata, ratings, top complaints. | get_a1_clone-brief_app_id |
| Scout the top finance apps in the US and their rating distributions. | get_a1_niche-scan (category, country) |
| Diff TikTok's data-safety declaration vs last snapshot. | get_g1_datasafety_app_id_diff |
| Subscribe a webhook to notify me when this app ships a new version. | post_webhooks (kind=app_changes, target_url, criteria) |
| What tools do you have, and what do they cost? | get_capabilities |
Call get_capabilities first — it returns the live tool catalog (≈44 tools, auto-generated from the API) and the roadmap, and spends no API request.
Configuration
| Env variable | Description | Required |
|---|---|---|
| ASORADAR_KEY | Your ASORadar access key (sent as x-access-key header). | yes |
| ASORADAR_URL | Base URL. Default: https://api.asoradar.com. | no |
| ASORADAR_SPEC_URL | OpenAPI spec URL. Default: <ASORADAR_URL>/openapi.json. | no |
| ASORADAR_TAGS | Whitelist tags (comma-separated) to limit which tools are exposed. | no |
| ASORADAR_EXCLUDE_TAGS | Additional tags to exclude (System is excluded by default). | no |
| ASORADAR_TIMEOUT_MS | Per-request timeout in ms. Default: 30000. | no |
| ASORADAR_SPEC_TIMEOUT_MS | OpenAPI spec fetch timeout in ms. Default: 60000. | no |
| ASORADAR_MAX_RESPONSE_BYTES | Max response size in bytes. Default: 10485760 (10 MB). | no |
| ASORADAR_MAX_SPEC_BYTES | Max OpenAPI spec size in bytes. Default: 8388608 (8 MB). | no |
How it works
- Fetch spec. On startup,
asoradar-mcpfetches/openapi.jsonfromapi.asoradar.comand parses every endpoint. - Generate tools. Each non-deprecated endpoint becomes one MCP tool with a typed input schema. Query and path params plus JSON request-body fields (e.g.
POST /webhooks) all map onto the tool's arguments. Operations that require header/cookie params, or a non-JSON request body, are skipped since we can't safely forward them. - Forward calls. When the AI calls a tool, the server validates required arguments locally (so a malformed call never spends a request), then forwards it with your
x-access-keyheader — query/path in the URL, body fields as JSON — and returns the response.
Metering. Every tool call is one or more ASORadar API requests billed against your plan. Composite tools (
clone-brief,niche-scan,*-diff,portfolio-stats,reviews/sentiment) fan out to several underlying calls each. Start with the 100 free requests;get_capabilitiesand local validation errors are free.
Filtering tools
To keep the surface small and focused, set ASORADAR_TAGS to a comma-separated whitelist of OpenAPI tags. The live tags are: App Store / Reviews, App Store / Metadata, App Store / Discovery, App Store / AI Agents, the four Google Play / … equivalents, and Webhooks.
# Only the App Store AI-agent composites + reviews:
ASORADAR_KEY=... ASORADAR_TAGS="App Store / AI Agents,App Store / Reviews" npx -y asoradar-mcpOr remove specific groups with ASORADAR_EXCLUDE_TAGS:
ASORADAR_KEY=... ASORADAR_EXCLUDE_TAGS="Webhooks" npx -y asoradar-mcpRoadmap
- Now — atomic tools auto-generated 1:1 from the API (reviews, metadata, discovery, AI-agent composites, webhook subscriptions) +
get_capabilities. - Next (0.2.x) — synthesized composite tools that fan out across endpoints and return evidence with provenance (cited review/snapshot/version IDs), plus workflow prompts (research-competitor, scout-category, post-mortem-release).
The MCP returns structured facts only — it never calls an LLM, never invents endpoints the API doesn't expose, and never emits recommendations. Synthesis is always the agent's job. get_capabilities reports the live available and planned lists.
Development
git clone https://github.com/asoradar/asoradar-mcp.git
cd asoradar-mcp
npm install
npm run build # compile TypeScript
npm test # mock-server smoke + unit tests
npm run test:e2e # real API e2e (needs ASORADAR_KEY env var)Run from source without building:
ASORADAR_KEY=... npm run devLicense
MIT — see LICENSE.
