{"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).", "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"}