此 MCP 可以做什么
Provides app-store optimization tools for keyword research, rankings, reviews, competitor analysis, alerts, and ASO scoring on iOS and Android.
工具
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['set_id'], 'properties': {'layout': {'type': 'object', 'description': 'Omit for a blank screen.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'set_id': {'type': 'string', 'minLength': 1, 'description': 'Screenshot set to append to.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'type': {'enum': ['rank_drop', 'rank_gain', 'entered_top10', 'left_top10', 'new_ranking', 'rating_drop', 'review_spike', 'competitor_change', 'top_chart'], 'type': 'string', 'description': 'Filter to one alert type. Omit for all types.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max events to return (1-200). Default 50.'}, 'since': {'type': 'string', 'minLength': 1, 'description': 'Only events created at/after this ISO 8601 timestamp (e.g. "2026-08-01T00:00:00Z"). Use your last poll time to fetch only new events.'}, 'app_id': {'type': 'string', 'minLength': 1, 'description': 'Filter to events about one tracked app (Sonar app UUID or store id).'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Sonar app UUID of YOUR OWN tracked app to analyze. NOT a store id, NOT a competitor id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store', 'store_id'], 'properties': {'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier. iOS: numeric track ID. Android: package name.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'type': {'enum': ['release', 'metadata', 'screenshots', 'price', 'category'], 'type': 'string', 'description': 'Filter to one change type. Omit for all types.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Max changes to return (1-200). Default 50.'}, 'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store', 'store_id'], 'properties': {'max': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of keywords to extract (1-50, default 20).'}, 'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier. iOS: numeric track ID. Android: package name.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size (1-200). Server default applies when omitted.'}, 'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}, 'cursor': {'type': 'string', 'minLength': 1, 'description': "Pagination cursor from a previous call's `next_cursor`. Omit for the first page."}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store', 'store_id'], 'properties': {'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier. iOS: numeric track ID (e.g. "123456789"). Android: package name (e.g. "com.spotify.music").'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'days': {'type': 'integer', 'maximum': 90, 'minimum': 7, 'description': 'Rank-history window in days (7-90). Default 30.'}, 'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID of one of your own tracked apps — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'History window in days (1-365). Default 30.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size (1-200). Server default applies when omitted.'}, 'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}, 'cursor': {'type': 'string', 'minLength': 1, 'description': "Pagination cursor from a previous call's `next_cursor`. Omit for the first page."}, 'keyword_id': {'type': 'string', 'minLength': 1, 'description': 'Restrict to one keyword — a keyword_id from sonar_app_keywords. Omit for all tracked keywords.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store', 'store_id'], 'properties': {'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier. iOS: numeric track ID. Android: package name.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store', 'store_id'], 'properties': {'lang': {'type': 'string', 'pattern': '^[a-z]{2}$', 'description': 'Android only: fetch one language feed (e.g. ar, fr). Omit to merge the market language plus en, es, fr, ar; coverage is not exhaustive.'}, 'sort': {'enum': ['recent', 'helpful'], 'type': 'string', 'default': 'recent', 'description': 'Sort order. "recent" returns newest first, "helpful" returns most-voted first.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Maximum number of reviews to return (1-200).'}, 'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier. iOS: numeric track ID. Android: package name.'}, 'max_rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Filter to reviews with a star rating <= this value (1-5).'}, 'min_rating': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Filter to reviews with a star rating >= this value (1-5).'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'store'], 'properties': {'num': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Number of results to return (1-50, default 10).'}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Search query (e.g. "meditation", "meal planner").'}, 'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['competitor_app_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size (1-200). Server default applies when omitted.'}, 'cursor': {'type': 'string', 'minLength': 1, 'description': "Pagination cursor from a previous call's `next_cursor`. Omit for the first page."}, 'own_app_id': {'type': 'string', 'minLength': 1, 'description': "Sonar app UUID of your own app. When set, each keyword includes your current rank and a gap marker for keywords you don't rank for."}, 'competitor_app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID of the competitor — the `competitor.id` from sonar_track_competitor, or an `id` from sonar_list_apps where is_own is false. NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Sonar app UUID of YOUR OWN tracked app (an `id` from sonar_list_apps where is_own is true). NOT a store id, NOT a competitor id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['apps'], 'properties': {'apps': {'type': 'array', 'items': {'type': 'object', 'required': ['store', 'store_id'], 'properties': {'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults server-side.'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier. iOS: numeric track ID. Android: package name.'}}, 'description': 'One store version of the product.'}, 'maxItems': 2, 'minItems': 1, 'description': '1-2 store versions: a single iOS or Android app, or one of each for a cross-store product.'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Product name. Optional — defaults to the first app's name."}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_id', 'store', 'device_size'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Display name.'}, 'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'Target app store.'}, 'screens': {'type': 'array', 'items': {'type': 'object', 'description': 'A screenshot layout document ({background, layers}) — see sonar_screenshot_layout_guide. Image fields accept https:// URLs.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'maxItems': 10, 'minItems': 1, 'description': 'Initial screens, in order (max 10). Either this or template_id, not both; with neither you get one blank screen.'}, 'product_id': {'type': 'string', 'minLength': 1, 'description': 'Product the set belongs to.'}, 'device_size': {'type': 'string', 'minLength': 1, 'description': 'Device id from sonar_screenshot_devices, e.g. "iphone-6.7".'}, 'template_id': {'type': 'string', 'minLength': 1, 'description': 'Seed from a built-in template (see sonar_screenshot_layout_guide) instead of providing screens.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'The alert subscription UUID — the `id` returned by sonar_list_alerts or sonar_set_alert.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_id'], 'properties': {'product_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar product UUID — the `id` returned by sonar_list_products or sonar_create_product.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['screenshot_id'], 'properties': {'screenshot_id': {'type': 'string', 'minLength': 1, 'description': 'Screen id to delete.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['set_id'], 'properties': {'set_id': {'type': 'string', 'minLength': 1, 'description': 'Screenshot set id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tracked_keyword_id'], 'properties': {'tracked_keyword_id': {'type': 'string', 'minLength': 1, 'description': 'The tracked-keyword UUID — the `id` returned by sonar_app_keywords. NOT the keyword_id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max rows to return (1-500). Default 200.'}, 'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID of one of your tracked apps — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}, 'bucket': {'enum': ['ranked', 'gap', 'idea'], 'type': 'string', 'description': 'Filter by classification: "ranked" = the app already ranks for it, "gap" = a competitor ranks but the app does not, "idea" = verified research suggestion with no rank evidence yet. Omit for all.'}, 'source': {'enum': ['autocomplete', 'metadata', 'serp_scan', 'competitor', 'apple_ads', 'ai'], 'type': 'string', 'description': 'Filter by how the keyword was discovered. Omit for all sources.'}, 'status': {'enum': ['new', 'tracked', 'hidden', 'all'], 'type': 'string', 'description': 'Filter by row status. Default "new" — the still-actionable suggestions; "all" includes rows already tracked or hidden.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'Filter to one market (ISO country code). Omit for all markets.'}, 'min_relevance': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Only rows with AI relevance at or above this value (0-100).'}, 'min_opportunity': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Only rows with an opportunity score at or above this value (0-100).'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID of a tracked app — your own or a competitor (an `id` from sonar_list_apps). NOT a store id.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'Reviews market (ISO country code). Insights are generated per country. Default "us".'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['set_id'], 'properties': {'set_id': {'type': 'string', 'minLength': 1, 'description': 'Screenshot set id.'}, 'include_image_data': {'type': 'boolean', 'default': False, 'description': 'When false (default), inline base64 images are replaced with short placeholders to keep the response small. Set true only when you need the raw data URLs (a layout containing placeholders is rejected on update).'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store'], 'properties': {'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}, 'keyword': {'type': 'string', 'minLength': 1, 'description': 'Single keyword to fetch metrics for. Use this OR `keywords`, not both.'}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 25, 'minItems': 1, 'description': 'Bulk list of keywords to fetch metrics for (max 25). Use this OR `keyword`, not both. 1 credit per keyword.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['keyword_id'], 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'History window in days (1-365). Default 30.'}, 'keyword_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar keyword UUID — a `keyword_id` from sonar_app_keywords or sonar_competitor_keywords. NOT the keyword text.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'store'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Seed keyword to research (e.g. "meditation", "recipe app").'}, 'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['seed', 'store'], 'properties': {'seed': {'type': 'string', 'minLength': 1, 'description': 'Seed keyword. The store will return autocomplete suggestions starting from this term.'}, 'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size (1-200). Server default applies when omitted.'}, 'cursor': {'type': 'string', 'minLength': 1, 'description': "Pagination cursor from a previous call's `next_cursor`. Omit for the first page."}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_id'], 'properties': {'product_id': {'type': 'string', 'minLength': 1, 'description': 'Product id (find it with sonar_list_products).'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_id', 'competitor_app_id'], 'properties': {'product_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar product UUID — the `id` returned by sonar_list_products or sonar_create_product.'}, 'competitor_app_id': {'type': 'string', 'minLength': 1, 'description': "Sonar app UUID of the competitor to remove (the competitor's `id`, NOT a store id)."}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID of a tracked app — your own or a competitor (an `id` from sonar_list_apps). NOT a store id.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'Reviews market (ISO country code). Insights are generated per country. Default "us".'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['competitor_app_id', 'own_app_id'], 'properties': {'own_app_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Sonar app UUID of your own app the scan compares against. The competitor must be linked to this app.'}, 'competitor_app_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Sonar app UUID of the competitor to scan — the `competitor.id` from sonar_track_competitor, or an `id` from sonar_list_apps where is_own is false. NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['type'], 'properties': {'type': {'enum': ['rank_drop', 'rank_gain', 'entered_top10', 'left_top10', 'new_ranking', 'rating_drop', 'review_spike', 'competitor_change', 'top_chart'], 'type': 'string', 'description': 'The alert type to subscribe to. top_chart = one of your own apps entered or left a store top chart (overall + its category, free/paid/grossing).'}, 'enabled': {'type': 'boolean', 'description': 'Whether the rule is active. Defaults to enabled when omitted.'}, 'countries': {'anyOf': [{'type': 'array', 'items': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'maxItems': 10}, {'type': 'null'}], 'description': 'top_chart only: storefronts to watch (ISO 3166-1 alpha-2, e.g. ["us", "de"]), max 10. Omit to keep the stored list; null or [] = the countries you track keywords in.'}, 'threshold': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': "Sensitivity threshold (meaning depends on type; for top_chart it's the rank cutoff, 1-200, default 200). Omit or null to use the per-type default."}, 'scope_app_id': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}], 'description': 'Limit the alert to a single app (Sonar app UUID). Omit or null for an org-wide rule covering all tracked apps.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['set_id', 'locale', 'entries'], 'properties': {'locale': {'type': 'string', 'maxLength': 8, 'minLength': 2, 'description': 'Target locale code, e.g. "de-DE", "pt-BR", "zh-Hans".'}, 'set_id': {'type': 'string', 'minLength': 1, 'description': 'Screenshot set id.'}, 'entries': {'type': 'array', 'items': {'type': 'object', 'required': ['screenshot_id', 'overrides'], 'properties': {'overrides': {'type': 'object', 'description': 'Sparse overrides keyed by layer id, e.g. {"headline": {"text": "…"}, "device": {"screenshotDataUrl": "https://…"}}. Replaces the screen\'s stored overrides for this locale wholesale.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'screenshot_id': {'type': 'string', 'minLength': 1, 'description': 'Screen this entry localizes.'}}}, 'maxItems': 50, 'minItems': 1, 'description': 'One entry per screen to localize.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tracked_keyword_id', 'starred'], 'properties': {'starred': {'type': 'boolean', 'description': 'true to star the keyword (mark as a favorite/target), false to unstar.'}, 'tracked_keyword_id': {'type': 'string', 'minLength': 1, 'description': 'Tracked-keyword UUID — the `id` (not keyword_id) returned by sonar_app_keywords or sonar_track_keywords.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['store'], 'properties': {'chart': {'enum': ['free', 'paid', 'grossing'], 'type': 'string', 'default': 'free', 'description': 'Chart type: "free", "paid" or "grossing". Default "free".'}, 'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'Number of chart entries to return (1-200). Default 50.'}, 'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'default': 'us', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us", "gb", "de"). Default "us".'}, 'category': {'type': 'string', 'default': 'overall', 'description': 'Category key, e.g. "HEALTH_AND_FITNESS" (iOS) or "HEALTH_AND_FITNESS" / "GAME" (Android). Use "overall" (default) for the store-wide chart.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_id', 'store', 'store_id'], 'properties': {'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults server-side.'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier of the version to link. iOS: numeric track ID. Android: package name.'}, 'product_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar product UUID (from sonar_create_product). NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['product_id', 'store', 'store_id'], 'properties': {'store': {'enum': ['ios', 'android'], 'type': 'string', 'description': 'App store. "ios" for Apple App Store, "android" for Google Play.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults server-side.'}, 'store_id': {'type': 'string', 'minLength': 1, 'description': 'Store-specific app identifier of the COMPETITOR app to track. iOS: numeric track ID. Android: package name.'}, 'product_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar product UUID (from sonar_create_product). NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id', 'keywords'], 'properties': {'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID — the `apps[].id` returned by sonar_create_product (or sonar_track_app). NOT a store id; the store is implied by the app.'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'ISO 3166-1 alpha-2 country code (e.g. "us"). Optional — defaults to the product\'s country.'}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'maxItems': 200, 'minItems': 1, 'description': 'Keywords to start tracking (1-200). Duplicates and already-tracked terms are reported, not duplicated.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['app_id'], 'properties': {'all': {'type': 'boolean', 'description': 'Set true to untrack ALL keywords for the app. Mutually exclusive with `ids` — pass exactly one of `all` or `ids`.'}, 'ids': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1, 'description': 'Tracked-keyword ids to untrack (from sonar_app_keywords). Mutually exclusive with `all` — pass exactly one of `all` or `ids`.'}, 'app_id': {'type': 'string', 'minLength': 1, 'description': 'Sonar app UUID — the `id` returned by sonar_list_apps or sonar_create_product. NOT a store id.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tracked_keyword_id', 'note'], 'properties': {'note': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'description': 'Note text (max 1000 chars). Pass null or an empty string to clear the note.'}, 'tracked_keyword_id': {'type': 'string', 'minLength': 1, 'description': 'Tracked-keyword UUID — the `id` (not keyword_id) returned by sonar_app_keywords or sonar_track_keywords.'}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['screenshot_id', 'layout'], 'properties': {'layout': {'type': 'object', 'description': "The FULL replacement layout — this replaces the whole document, it does not merge. Never send a layout containing '[inline image omitted…]' placeholders; refetch with include_image_data first.", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'screenshot_id': {'type': 'string', 'minLength': 1, 'description': "Screen id (from the set's screens array)."}}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['set_id'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'New display name.'}, 'set_id': {'type': 'string', 'minLength': 1, 'description': 'Screenshot set id.'}, 'locales': {'type': 'array', 'items': {'type': 'string', 'maxLength': 8, 'minLength': 2}, 'maxItems': 40, 'description': 'Replaces the extra-locale list (e.g. ["de-DE","fr-FR"]). Locales removed here lose their stored translations.'}, 'screen_order': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1, 'description': "Full permutation of the set's screen ids in the new display order."}}}
近期工具变更
类似的 MCP 服务器
rankparse-mcp
Provides SEO and search marketing research including backlinks, authority, competitor gaps, Google Ads keyword metrics, and Googl…
Ai Briefing
Routes research questions to structured sources including financial, scientific, government, market, news, and economic data, wit…
42matters
Provides mobile app store intelligence, SDK and chart analysis, AI visibility checks, structured research across many data source…
Ai Feeds
Provides AI news feeds, AI visibility checks, and routed access to structured research and market data sources.
Textstats
Provides readability scoring, AI visibility audits, structured research across many data sources, and related research utilities.
Seo Serp
Provides Google organic SERP research and related routed structured-data and AI visibility capabilities.
Seo Ai Visibility
Checks brand visibility in LLM responses, generates llms.txt files, and provides broader routed research and structured-data look…
Always Seven
Provides structured-data research across thousands of sources, prediction-market analysis, persistent agent memory, and AI brand-…