storebridge
https://storebridge-mcp.vercel.app
Registry code: 10b6338ff9255cd5
Remote MCP connector for App Store + Google Play data via StoreBridge API. No auth required.
from a public catalogue that lists it, not from the operator
- endpoint
- https://storebridge-mcp.vercel.app/mcp
- protocol
- http-sse ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is storebridge live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
- Is storebridge free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does storebridge have?
- 13 tools: get_categories, get_app, search_apps, get_app_reviews, get_apps_batch, get_charts, get_app_permissions, autocomplete_suggest, ….
- Is storebridge safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 13 tools
- down → live
- unknown → live
- used for
- search apps on app store and google play
- get app details and reviews
- get aso keyword ideas
- check an app's keyword rank
- get top app charts
- takes → gives
- text → data
- tools
- 13 reads
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_categories reads unknown 15h ago
List categories for a store. Apple returns its static 6000/7000-range genre map; Google returns its categories() constants.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "store" ], "properties": { "lang": { "type": "string", "description": "Language." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." } } }arguments 21 linesget_app reads unknown 19h ago
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).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id", "store" ], "properties": { "id": { "type": "string", "description": "Apple trackId (numeric string) or Google package name." }, "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." } } }arguments 30 linessearch_apps reads unknown 19h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "term", "store" ], "properties": { "lang": { "type": "string", "description": "Language (Apple form en_us, Google form en). Derived from country when omitted." }, "term": { "type": "string", "description": "URL-encoded search term." }, "limit": { "type": "integer", "maximum": 250, "minimum": 1, "description": "Max results. Apple is clamped to 50; Google accepts 1-250. Default 50." }, "price": { "enum": [ "all", "free", "paid" ], "type": "string", "description": "Price filter. Google only; Apple ignores it. Default all." }, "store": { "enum": [ "apple", "google", "both" ], "type": "string", "description": "Target store. \"both\" fans out to both engines and merges results." }, "device": { "enum": [ "iphone", "ipad", "mac" ], "type": "string", "description": "Apple only. Maps to software / iPadSoftware / macSoftware. Default iphone." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." }, "fullDetail": { "type": "boolean", "description": "Google only; expensive (per-result full fetch). Default false." } } }arguments 59 linesget_app_reviews reads unknown 12h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id", "store" ], "properties": { "id": { "type": "string", "description": "Apple trackId (numeric string) or Google package name." }, "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "page": { "type": "integer", "maximum": 10, "minimum": 1, "description": "Apple only, 1-10 (RSS is fixed 50/page). Default 1." }, "sort": { "enum": [ "recent", "helpful", "rating" ], "type": "string", "description": "Sort order. \"rating\" is unsupported for Apple. Default recent." }, "limit": { "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991, "description": "Apple clamped to 50. Google ~150-200/page. Default 50." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "token": { "type": "string", "description": "Google only. The nextToken from a prior page's pagination." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." } } }arguments 55 linesget_apps_batch reads unknown 12h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "store" ], "properties": { "ids": { "type": "string", "description": "Comma-separated app ids for a batch lookup (up to ~200)." }, "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "store": { "enum": [ "apple", "google", "both" ], "type": "string", "description": "Target store. \"both\" is supported for batch (ids) lookups." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." }, "bundleId": { "type": "string", "description": "Apple bundle id to resolve, e.g. com.burbn.instagram. Mutually informative with ids." } } }arguments 34 linesget_charts reads unknown 12h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "store" ], "properties": { "type": { "type": "string", "description": "Chart type: free, paid, grossing (Apple also: new, newfree, newpaid). Default free." }, "limit": { "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991, "description": "Apple practical max ~200; Google up to ~660 (usually <=500). Default 50." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." }, "category": { "type": "string", "description": "Apple genre id (e.g. 6007) or Google category constant (e.g. PRODUCTIVITY). Omit for overall chart." }, "fullDetail": { "type": "boolean", "description": "Google only; expensive. Default false." } } }arguments 39 linesget_app_permissions reads unknown 15h ago
Google Play declared device/data permissions for one app, grouped by permission group. Google only — passing store="apple" returns a not_supported error.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Google package name." }, "lang": { "type": "string", "description": "Language." }, "store": { "enum": [ "google" ], "type": "string", "description": "Must be google. Default google." } } }arguments 24 linesautocomplete_suggest reads unknown 19h ago
Up to 5 autocomplete completions for a partial search query. First-class on both stores.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "term", "store" ], "properties": { "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "term": { "type": "string", "description": "Partial query." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." } } }arguments 30 linesget_aso_keywords reads unknown 1h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "term", "store" ], "properties": { "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "term": { "type": "string", "description": "Seed keyword." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." } } }arguments 30 linesget_aso_rank reads unknown 1h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "appId", "keywords", "store" ], "properties": { "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "appId": { "type": "string", "description": "Target app id (Apple trackId or Google package name)." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." }, "keywords": { "type": "string", "description": "Comma-separated keywords, max 20." } } }arguments 35 linesget_similar_apps reads unknown 1h ago
"Customers also bought" / related apps for one app. First-class on both stores.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id", "store" ], "properties": { "id": { "type": "string", "description": "Apple trackId (numeric string) or Google package name." }, "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "limit": { "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991, "description": "Max results. Default 20." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." } } }arguments 36 linesget_developer reads unknown 8h ago
A developer record plus their published apps. {id} is the Apple artistId (numeric) or the Google developerId string (e.g. "Google LLC").
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id", "store" ], "properties": { "id": { "type": "string", "description": "Apple artistId (numeric) or Google developerId string." }, "lang": { "type": "string", "description": "Language. Derived from country when omitted." }, "limit": { "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991, "description": "Max apps returned. Default 60." }, "store": { "enum": [ "apple", "google" ], "type": "string", "description": "Target store." }, "country": { "type": "string", "description": "ISO-3166 alpha-2 storefront/region, lowercase. Defaults to us." }, "fullDetail": { "type": "boolean", "description": "Google only; expensive. Default false." } } }arguments 40 linesget_app_datasafety reads unknown 15h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "description": "Google package name." }, "lang": { "type": "string", "description": "Language." }, "store": { "enum": [ "google" ], "type": "string", "description": "Must be google. Default google." } } }arguments 24 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id10b6338ff9255cd5.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/10b6338ff9255cd5/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/10b6338ff9255cd5?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.