io. github. IsaiahDupree/ storebridge-mcp
by IsaiahDupree · remote · no sign-in to list tools · v1.0.0 · published by GitHub user IsaiahDupree
Remote MCP connector for App Store + Google Play data via StoreBridge API. No auth required.
13 tools: 1 change things and 12 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads12Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http storebridge https://storebridge-mcp.vercel.app/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
13 tools
Changes things 1Claude Code: ask
autocomplete_suggestUp to 5 autocomplete completions for a partial search query.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Up to 5 autocomplete completions for a partial search query. First-class on both stores.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 12Claude Code: allow
get_appFull details for one app: description, version, release dates, content rating, genres, screenshots, languages, rating (with histogram and current-version stats), version history, s…No findings
Why it is in this group
- The name "get_app" says "get": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_app_datasafetyGoogle Play "Data safety" section for one app: data shared, data collected, security practices, and privacy policy URL.No findings
Why it is in this group
- The name "get_app_datasafety" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_app_permissionsGoogle Play declared device/data permissions for one app, grouped by permission group.No findings
Why it is in this group
- The name "get_app_permissions" says "get": a word for reading.
Description, as the server wrote it Google Play declared device/data permissions for one app, grouped by permission group. Google only — passing store="apple" returns a not_supported error.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_app_reviewsReviews for one app.No findings
Why it is in this group
- The name "get_app_reviews" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_apps_batchResolve a single Apple app by bundleId (e.g.No findings
Why it is in this group
- The name "get_apps_batch" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_aso_keywordsDirectional 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 pane…No findings
Why it is in this group
- The name "get_aso_keywords" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_aso_rankPoint-in-time rank of one app across up to 20 keywords (one live search per keyword, fan-out capped at 20).No findings
Why it is in this group
- The name "get_aso_rank" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_categoriesList categories for a store.No findings
Why it is in this group
- The name "get_categories" says "get": a word for reading.
Description, as the server wrote it List categories for a store. Apple returns its static 6000/7000-range genre map; Google returns its categories() constants.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_chartsRanked top-chart entries (App summary plus rank) for a store.No findings
Why it is in this group
- The name "get_charts" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_developerA developer record plus their published apps.No findings
Why it is in this group
- The name "get_developer" says "get": a word for reading.
Description, as the server wrote it A developer record plus their published apps. {id} is the Apple artistId (numeric) or the Google developerId string (e.g. "Google LLC").
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_similar_apps"Customers also bought" / related apps for one app.No findings
Why it is in this group
- The name "get_similar_apps" says "get": a word for reading.
Description, as the server wrote it "Customers also bought" / related apps for one app. First-class on both stores.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_appsSearch apps on the Apple App Store, Google Play, or both.No findings
Why it is in this group
- The name "search_apps" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http storebridge https://storebridge-mcp.vercel.app/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__storebridge__search_apps",
"mcp__storebridge__get_apps_batch",
"mcp__storebridge__get_app",
"mcp__storebridge__get_app_reviews",
"mcp__storebridge__get_similar_apps",
"mcp__storebridge__get_app_permissions",
"mcp__storebridge__get_app_datasafety",
"mcp__storebridge__get_charts",
"mcp__storebridge__get_categories",
"mcp__storebridge__get_developer",
"mcp__storebridge__get_aso_keywords",
"mcp__storebridge__get_aso_rank"
],
"ask": [
"mcp__storebridge__autocomplete_suggest"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as storebridge. Review it before you use it.
