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

A
Description quality
90%
Schema completeness
96%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_app' description lacks action verbin get_app

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,285Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.00% of 128k context)

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

npmappstore-data-mcp0.2.0stdio

Remote endpoints

https://appstore-mcp-623314400722.us-central1.run.app/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools