storebridge-mcp
Remote MCP connector for App Store + Google Play data via StoreBridge API. No auth required.
Should I use this
Quality & Safety
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": {
"storebridge-mcp": {
"url": "https://storebridge-mcp.vercel.app/mcp"
}
}
}Remote endpoints
https://storebridge-mcp.vercel.app/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢search_apps(term, store, country, lang, limit, ...)
Search apps on the Apple App Store, Google Play, or both. Returns matching apps with store, title, developer, icon, price, rating, category, and url. Use store="both" to fan out to both engines and merge results. Apple limit is clamped to 50; Google supports 1-250. The price filter (free/paid) only applies to Google.
Input Schema
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "URL-encoded search term."
},
"store": {
"type": "string",
"enum": [
"apple",
"google",
"both"
],
"description": "Target store. \"both\" fans out to both engines and merges results."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language (Apple form en_us, Google form en). Derived from country when omitted.",
"type": "string"
},
"limit": {
"description": "Max results. Apple is clamped to 50; Google accepts 1-250. Default 50.",
"type": "integer",
"minimum": 1,
"maximum": 250
},
"price": {
"description": "Price filter. Google only; Apple ignores it. Default all.",
"type": "string",
"enum": [
"all",
"free",
"paid"
]
},
"device": {
"description": "Apple only. Maps to software / iPadSoftware / macSoftware. Default iphone.",
"type": "string",
"enum": [
"iphone",
"ipad",
"mac"
]
},
"fullDetail": {
"description": "Google only; expensive (per-result full fetch). Default false.",
"type": "boolean"
}
},
"required": [
"term",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_apps_batch(store, bundleId, ids, country, lang)
Resolve a single Apple app by bundleId (e.g. com.burbn.instagram), or fetch many apps at once with a comma-separated ids batch (Apple up to ~200 ids in one round-trip; Google fans out and coalesces). A batch request returns an "apps" array; a bundleId request returns a single "app". Supports store="both" for batch lookups.
Input Schema
{
"type": "object",
"properties": {
"store": {
"type": "string",
"enum": [
"apple",
"google",
"both"
],
"description": "Target store. \"both\" is supported for batch (ids) lookups."
},
"bundleId": {
"description": "Apple bundle id to resolve, e.g. com.burbn.instagram. Mutually informative with ids.",
"type": "string"
},
"ids": {
"description": "Comma-separated app ids for a batch lookup (up to ~200).",
"type": "string"
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
}
},
"required": [
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app(id, store, country, lang)
Full details for one app: description, version, release dates, content rating, genres, screenshots, languages, rating (with histogram and current-version stats), version history, size, installs, IAP flag, privacy policy, and store-specific extras. {id} is the Apple trackId (numeric string, e.g. 6448311069) or the Google package name (e.g. com.whatsapp).
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Apple trackId (numeric string) or Google package name."
},
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
}
},
"required": [
"id",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app_reviews(id, store, country, lang, sort, ...)
Reviews for one app. Apple reviews come from the customerreviews RSS feed and are hard-capped at 500 per app per country (50/page x pages 1-10); page>10 returns an error, and sort="rating" is not supported for Apple. Google reviews are token-paginated and effectively unbounded — pass the nextToken from a prior call's pagination to page forward.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Apple trackId (numeric string) or Google package name."
},
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
},
"sort": {
"description": "Sort order. \"rating\" is unsupported for Apple. Default recent.",
"type": "string",
"enum": [
"recent",
"helpful",
"rating"
]
},
"page": {
"description": "Apple only, 1-10 (RSS is fixed 50/page). Default 1.",
"type": "integer",
"minimum": 1,
"maximum": 10
},
"token": {
"description": "Google only. The nextToken from a prior page's pagination.",
"type": "string"
},
"limit": {
"description": "Apple clamped to 50. Google ~150-200/page. Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"id",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_similar_apps(id, store, country, lang, limit)
"Customers also bought" / related apps for one app. First-class on both stores.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Apple trackId (numeric string) or Google package name."
},
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
},
"limit": {
"description": "Max results. Default 20.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"id",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app_permissions(id, store, lang)
Google Play declared device/data permissions for one app, grouped by permission group. Google only — passing store="apple" returns a not_supported error.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Google package name."
},
"store": {
"description": "Must be google. Default google.",
"type": "string",
"enum": [
"google"
]
},
"lang": {
"description": "Language.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app_datasafety(id, store, lang)
Google Play "Data safety" section for one app: data shared, data collected, security practices, and privacy policy URL. Google only — passing store="apple" returns a not_supported error.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Google package name."
},
"store": {
"description": "Must be google. Default google.",
"type": "string",
"enum": [
"google"
]
},
"lang": {
"description": "Language.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_charts(store, type, category, country, limit, ...)
Ranked top-chart entries (App summary plus rank) for a store. type is free/paid/grossing (Apple also supports new/newfree/newpaid). category is an Apple genre id (e.g. 6007) or a Google category constant (e.g. PRODUCTIVITY); omit for the overall chart. Google list() may return an empty array with meta.stale=true when a region is broken.
Input Schema
{
"type": "object",
"properties": {
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"type": {
"description": "Chart type: free, paid, grossing (Apple also: new, newfree, newpaid). Default free.",
"type": "string"
},
"category": {
"description": "Apple genre id (e.g. 6007) or Google category constant (e.g. PRODUCTIVITY). Omit for overall chart.",
"type": "string"
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"limit": {
"description": "Apple practical max ~200; Google up to ~660 (usually <=500). Default 50.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"fullDetail": {
"description": "Google only; expensive. Default false.",
"type": "boolean"
}
},
"required": [
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_categories(store, lang)
List categories for a store. Apple returns its static 6000/7000-range genre map; Google returns its categories() constants.
Input Schema
{
"type": "object",
"properties": {
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"lang": {
"description": "Language.",
"type": "string"
}
},
"required": [
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_developer(id, store, country, lang, limit, ...)
A developer record plus their published apps. {id} is the Apple artistId (numeric) or the Google developerId string (e.g. "Google LLC").
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Apple artistId (numeric) or Google developerId string."
},
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
},
"limit": {
"description": "Max apps returned. Default 60.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"fullDetail": {
"description": "Google only; expensive. Default false.",
"type": "boolean"
}
},
"required": [
"id",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢autocomplete_suggest(term, store, country, lang)
Up to 5 autocomplete completions for a partial search query. First-class on both stores.
Input Schema
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "Partial query."
},
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
}
},
"required": [
"term",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_aso_keywords(term, store, country, lang)
Directional keyword ideas for a seed term, each with a difficulty score/label, traffic score, result count, and top competitors — derived from live search/suggest results, not panel data. Every result is labeled estimated:true.
Input Schema
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "Seed keyword."
},
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
}
},
"required": [
"term",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_aso_rank(appId, keywords, store, country, lang)
Point-in-time rank of one app across up to 20 keywords (one live search per keyword, fan-out capped at 20). Every result is labeled estimated:true. This is a snapshot, not rank tracking over time.
Input Schema
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"description": "Target app id (Apple trackId or Google package name)."
},
"keywords": {
"type": "string",
"description": "Comma-separated keywords, max 20."
},
"store": {
"type": "string",
"enum": [
"apple",
"google"
],
"description": "Target store."
},
"country": {
"description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us.",
"type": "string"
},
"lang": {
"description": "Language. Derived from country when omitted.",
"type": "string"
}
},
"required": [
"appId",
"keywords",
"store"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence