{"name": "AppstoreSpy", "description": "Google Play and App Store market intelligence: app and developer lookup, free-text and structured search, reviews, chart rankings, similar apps, download and revenue estimates, keyword suggestions, LiveOps events and localized store listings. Every skill is a read.", "supportedInterfaces": [{"url": "https://api.appstorespy.com/mcp", "protocolBinding": "MCP", "protocolVersion": "1.0"}], "provider": {"organization": "AppstoreSpy", "url": "https://appstorespy.com"}, "version": "1.0.0", "documentationUrl": "https://api.appstorespy.com/docs", "capabilities": {"streaming": false, "pushNotifications": false, "extendedAgentCard": false, "extensions": [{"uri": "https://modelcontextprotocol.io/specification/2025-06-18/basic/transports", "description": "Skills are MCP tools served over Streamable HTTP; a skill id is the tool name. There is no A2A JSON-RPC endpoint, so a client must speak MCP.", "required": true, "params": {"endpoint": "https://api.appstorespy.com/mcp", "transport": "streamable-http", "protocolVersions": ["2025-06-18", "2025-03-26", "2024-11-05"]}}, {"uri": "https://www.rfc-editor.org/rfc/rfc9727", "description": "The REST API behind these skills, and where to discover it.", "required": false, "params": {"apiCatalog": "https://api.appstorespy.com/.well-known/api-catalog", "openapi": "https://api.appstorespy.com/openapi.json", "apisJson": "https://api.appstorespy.com/apis.yml", "docs": "https://api.appstorespy.com/docs"}}]}, "securitySchemes": {"apiKey": {"apiKeySecurityScheme": {"location": "header", "name": "API-KEY", "description": "AppstoreSpy API key, issued at https://appstorespy.com/account"}}, "bearer": {"httpAuthSecurityScheme": {"scheme": "Bearer", "description": "The same API key sent as Authorization: Bearer <key>."}}}, "securityRequirements": [{"schemes": {"apiKey": {"list": []}}}, {"schemes": {"bearer": {"list": []}}}], "defaultInputModes": ["application/json"], "defaultOutputModes": ["application/json"], "skills": [{"id": "search_apps", "name": "Search apps", "description": "Free-text search over app listings on one store, returning a ranked list. Use this when you have a name or a phrase. To select apps by revenue, downloads, category or rating instead, use filter_apps, which is far more precise.", "tags": ["search", "apps", "google-play", "app-store", "read-only"]}, {"id": "get_app", "name": "Get app", "description": "Full listing for one app. The id is the bundle id on Google Play (com.twitter.android) and the numeric App Store id on iOS (333903271). On Google Play it also returns the store-page fields `category_name`, `content_rating`, `rating_histogram`, `price`, `free`, `currency`, `iap_price_min`, `iap_price_max`, `contains_ads`, `permissions`, `similar_apps`, `android_min_version` and `developer_url`, with `country_crawled` saying when the selected country's page was read. On the App Store, `screenshots_duo_inner` and `screenshots_duo_outer` hold the iPhone Duo screenshots, which `screenshots` leaves out; each is null when the app has none.", "tags": ["get", "app", "google-play", "app-store", "read-only"]}, {"id": "filter_apps", "name": "Filter apps", "description": "Search apps by structured criteria: revenue, downloads, rating, category, developer, release and update dates, countries of availability. This is the main market-research tool and the one to reach for over search_apps whenever the question is about a segment rather than a name.", "tags": ["filter", "apps", "google-play", "app-store", "read-only"]}, {"id": "summarize_apps", "name": "Summarise apps", "description": "Aggregate totals for every app matching a filter, without returning the apps. Use this first to size a segment: it answers 'how many apps and how much revenue' in one call, where paging through filter_apps would cost many.", "tags": ["summarize", "apps", "google-play", "app-store", "read-only"]}, {"id": "get_similar_apps", "name": "Get similar apps", "description": "Apps the store lists as similar to a given app. `link` set to `to` returns what the store shows on this app's page; `from` reverses the question and returns the apps that list this one as similar to them, which is how you find who is competing for its audience.", "tags": ["get", "similar", "apps", "google-play", "app-store", "read-only"]}, {"id": "get_app_reviews", "name": "Get app reviews", "description": "User reviews for one app. Reviews are storefront- and language-specific, so country and language change which set comes back rather than just how it is rendered.", "tags": ["get", "app", "reviews", "google-play", "app-store", "read-only"]}, {"id": "get_rankings", "name": "Get chart rankings", "description": "Chart positions over a date range, one row per app per chart per day. A chart is the triple (country, category, collection), plus platform on the App Store.", "tags": ["get", "rankings", "google-play", "app-store", "read-only"]}, {"id": "search_developers", "name": "Search developers", "description": "Free-text search over developers. The query also accepts `field:value` terms, for example `hq_country:US`.", "tags": ["search", "developers", "google-play", "app-store", "read-only"]}, {"id": "get_developer", "name": "Get developer", "description": "One developer record, including publisher identifiers and headquarters country.", "tags": ["get", "developer", "google-play", "app-store", "read-only"]}, {"id": "filter_developers", "name": "Filter developers", "description": "Search developers by structured criteria, with paging and sorting.", "tags": ["filter", "developers", "google-play", "app-store", "read-only"]}, {"id": "get_app_estimates", "name": "Get download and revenue estimates", "description": "Download and revenue estimates for one or more apps over a date range.", "tags": ["get", "app", "estimates", "google-play", "app-store", "read-only"]}, {"id": "get_keyword_suggestions", "name": "Get keyword suggestions", "description": "Google Play search autocomplete for a term. Answers 202 with a partial result while a fresh crawl runs, so call again shortly for the complete set.", "tags": ["get", "keyword", "suggestions", "google-play", "read-only"]}, {"id": "get_liveops_events", "name": "Get LiveOps events", "description": "LiveOps events Google Play shows on an app listing: sales, tournaments, updates and new content. Answers 202 while a fresh crawl runs.", "tags": ["get", "liveops", "events", "google-play", "read-only"]}, {"id": "get_app_listing", "name": "Get app listing", "description": "The Google Play store listing of one app for a country and language exactly as Google Play serves it: title, short and full description, what's new, icon, feature graphic, trailer and screenshots. Accepts any Google Play Console locale, not only the languages get_app stores, so use it for localized metadata such as Indonesian, Thai or Portuguese (Portugal). The listing is crawled on demand and kept; answers 202 while the crawl runs, so call again shortly. `translated` is true when Google Play shows a machine translation because the developer has not supplied that language.", "tags": ["get", "app", "listing", "google-play", "read-only"]}], "iconUrl": "https://appstorespy.com/s/icons/android-icon-192x192.png"}