App Store + Google Play Data
Live App Store and Google Play data: app details, reviews, search, top charts for 175+ storefronts.
Should I use this
Quality & Safety
Findings (1)
- LOWin get_app
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"appstore-data": {
"command": "npx",
"args": [
"appstore-data-mcp"
]
}
}
}Runnable packages
0.2.0stdioRemote endpoints
https://appstore-mcp-623314400722.us-central1.run.app/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢search_apps(query, store, country, lang, limit)
Search a store by keyword, using the store's own relevance ranking. Returns compact rows with the id you need for get_app.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "Keyword(s) to search for, e.g. 'meditation', 'photo editor'."
},
"store": {
"type": "string",
"enum": [
"ios",
"android"
],
"description": "Store to query: \"ios\" (Apple App Store) or \"android\" (Google Play).",
"default": "ios"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"default": "us",
"description": "ISO-2 storefront code, e.g. us, gb, de, jp. Defaults to us."
},
"lang": {
"type": "string",
"minLength": 2,
"maxLength": 5,
"default": "en",
"description": "Language code, e.g. en, es, fr, ja. Defaults to en."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "Number of results, 1-50. Defaults to 10."
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app(app_id, store, country, lang)
Full metadata for one app: name, developer, ratings, price, version, size, screenshots, store URL. Use the numeric app id (iOS) or package name (Android).
Input Schema
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"minLength": 1,
"description": "iOS: numeric Apple id (e.g. '389801252' for Instagram). Android: package name (e.g. 'com.instagram.android')."
},
"store": {
"type": "string",
"enum": [
"ios",
"android"
],
"description": "Store to query: \"ios\" (Apple App Store) or \"android\" (Google Play).",
"default": "ios"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"default": "us",
"description": "ISO-2 storefront code, e.g. us, gb, de, jp. Defaults to us."
},
"lang": {
"type": "string",
"minLength": 2,
"maxLength": 5,
"default": "en",
"description": "Language code, e.g. en, es, fr, ja. Defaults to en."
}
},
"required": [
"app_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app_reviews(app_id, store, country, sort, limit, ...)
Paginated user reviews. sort=recent is best for monitoring new feedback; sort=helpful surfaces the loudest complaints. Page with offset and stop when has_more is false.
Input Schema
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"minLength": 1,
"description": "iOS numeric id or Android package name."
},
"store": {
"type": "string",
"enum": [
"ios",
"android"
],
"description": "Store to query: \"ios\" (Apple App Store) or \"android\" (Google Play).",
"default": "ios"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"default": "us",
"description": "ISO-2 storefront code, e.g. us, gb, de, jp. Defaults to us."
},
"sort": {
"type": "string",
"enum": [
"recent",
"helpful",
"rating"
],
"default": "recent",
"description": "recent | helpful | rating (rating is Android-only)."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20,
"description": "Reviews per page, 1-50. Defaults to 20."
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0,
"description": "How many reviews to skip, for pagination."
}
},
"required": [
"app_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢top_charts(store, collection, category, country, limit)
Ranked top-chart lists per storefront. iOS collections: topfreeapplications, toppaidapplications, topgrossingapplications, newapplications (+ ipad variants). Android: topselling_free, topselling_paid, topgrossing, new_free, new_paid.
Input Schema
{
"type": "object",
"properties": {
"store": {
"type": "string",
"enum": [
"ios",
"android"
],
"description": "Store to query: \"ios\" (Apple App Store) or \"android\" (Google Play).",
"default": "ios"
},
"collection": {
"type": "string",
"description": "Chart name. Defaults to topfreeapplications (iOS) / topselling_free (Android)."
},
"category": {
"type": "string",
"description": "Optional category id, e.g. '6018' (iOS Books) or 'GAME' (Android)."
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"default": "us",
"description": "ISO-2 storefront code, e.g. us, gb, de, jp. Defaults to us."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 25,
"description": "Rows to return, 1-50. Defaults to 25."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_categories(store, country)
The store's category taxonomy — id and name — for building filters or resolving a category id used by top_charts.
Input Schema
{
"type": "object",
"properties": {
"store": {
"type": "string",
"enum": [
"ios",
"android"
],
"description": "Store to query: \"ios\" (Apple App Store) or \"android\" (Google Play).",
"default": "ios"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"default": "us",
"description": "ISO-2 storefront code, e.g. us, gb, de, jp. Defaults to us."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence