MCP 服务器

Neonjelly

io.neonjelly/mcp

此 MCP 可以做什么

Analyzes Shopify stores, products, apps, traffic, competitors, catalog changes, market cohorts and outreach contacts across a large store dataset.

assortment_watch
Assortment watch
List new and removed SKUs plus bestseller enter/exit. Filter by storeDomain or productType when the user names a shop or category.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Assortment rows. Max 50.'}, 'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'productType': {'type': 'string', 'description': 'Shopify product type. Example: T-Shirt or Hoodie'}, 'storeDomain': {'type': 'string', 'description': 'Limit to one merchant hostname. Example: gymshark.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
brief_market
Brief a market
Return a one-page TAM brief: vertical size, geos, movers, and an optional filtered cohort from 1.37M stores. Pass a vertical; quote catalog counts only — do not invent TAM.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'vertical': {'type': 'string', 'description': 'Catalog vertical. Example: Skincare, Apparel, Fashion'}, 'minVisits': {'type': 'number', 'description': 'Minimum monthly visits. Example: 10000'}, 'countryCode': {'type': 'string', 'description': 'ISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
change_tracker
Change board
Return a full change board: unified feed, all 8 product change types, 5 store change types, and Signals SKU changes if watched. Prefer this over calling each change tool separately.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 80, 'minimum': 1, 'description': 'SKU rows. Max 80.'}, 'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'domain': {'type': 'string', 'description': 'Optional store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
cohort_tam
Cohort TAM
Roll a filtered store cohort into a groupBy table (country, vertical, industry, category). This is not the unfiltered get_countries TAM — use that when no filters apply.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'groupBy': {'enum': ['country', 'vertical', 'industry', 'category'], 'type': 'string', 'description': 'Roll rows into a breakdown table instead of store cards.'}, 'category': {'type': 'string', 'description': 'Store category label from the catalog.'}, 'vertical': {'type': 'string', 'description': 'Catalog vertical. Example: Skincare, Apparel, Fashion'}, 'minVisits': {'type': 'number', 'description': 'Minimum monthly visits. Example: 10000'}, 'countryCode': {'type': 'string', 'description': 'ISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN'}, 'groupMetric': {'enum': ['mean', 'median', 'max', 'min'], 'type': 'string', 'description': 'How to aggregate visits/revenue when groupBy is set.'}, 'isDropshipper': {'type': 'boolean', 'description': 'If true, only stores the catalog flags as dropship.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
compare_stacks
Compare app stacks
Compare 2–8 store app stacks: shared vs exclusive apps, tagged by role (email, support, reviews, subs, ads). Pass hostnames, not brand names.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domains'], 'properties': {'domains': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'minItems': 2, 'description': '2â\x80\x938 store hostnames. Example: ["gymshark.com","allbirds.com"]'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
compare_stores
Compare store cards
Compare 2–8 store cards side by side (traffic, revenue band, apps, rating). Missing domains land in notFound — do not invent the missing rows.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domains'], 'properties': {'domains': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 8, 'minItems': 2, 'description': '2â\x80\x938 store hostnames. Example: ["gymshark.com","allbirds.com"]'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
competitor_moves
Competitor moves
List catalog store and SKU changes plus vertical movers for one competitor domain. Ads and daily units need a paid Signals watch — do not offer create_signal on trial.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
create_signal
Watch a store (paid)
Paid plans only (trial 403). Create a Signals watch on a competitor domain for ads, units, inventory, and social. Tight watch cap; meters the key. No probe, no scrape.
可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}, 'autoTrack': {'enum': ['bestsellers', 'none'], 'type': 'string', 'description': 'Signals auto-track mode. bestsellers watches top SKUs; none is the card only.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
diligence_pack
Diligence pack
Build an IC memo for one domain: card, growth, traffic, stack roles, bestsellers, changes, and contacts. Includes Signals stats only if that domain is already watched.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
find_outreach
Outreach store list
Filter the 1.37M-store catalog, hydrate each row, and keep stores that have an email or Instagram. Caps at 10 (each costs a call) — country is a filter, not a login region.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'Max stores to hydrate. Caps at 10 â\x80\x94 each costs a catalog call.'}, 'appSlug': {'type': 'string', 'description': 'Shopify app slug. Example: klaviyo-email-marketing'}, 'vertical': {'type': 'string', 'description': 'Catalog vertical. Example: Skincare, Apparel, Fashion'}, 'minVisits': {'type': 'number', 'description': 'Minimum monthly visits. Example: 10000'}, 'countryCode': {'type': 'string', 'description': 'ISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
find_peers
Find peer stores
Find stores in the same vertical, country, and visit band as a target domain, then compare cards. Call resolve_store first if you only have a brand name.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'limit': {'type': 'integer', 'maximum': 25, 'minimum': 2, 'description': 'How many peer stores to return. Default 8, max 25.'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_analytics_overview
Catalog coverage
Return catalog coverage: store/SKU counts, averages, top verticals and countries. Quote these snapshot figures only — do not invent traffic totals.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_app
Get one app
Return one Shopify app plus an install-base sample. Copy slug from search_apps, then get_app_stores for the merchant list.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'Shopify App Store slug. Example: klaviyo-email-marketing'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_app_stores
Stores running an app
List merchants observed running a Shopify app, sorted by visits. Use for “who uses Klaviyo?” store lists — country filters live on search_stores, not here.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'minLength': 1, 'description': 'Shopify App Store slug. Example: klaviyo-email-marketing'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_changes
Unified change feed
Return the unified store + product movement feed. Prefer change_tracker when the user wants every change type on one board.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'domain': {'type': 'string', 'description': 'Optional store hostname without protocol. Example: gruntstyle.com'}, 'entity': {'enum': ['product', 'store'], 'type': 'string', 'description': 'Limit the unified change feed to products or stores.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_contacts
Store contacts
Return emails, social URLs, and ESP/support app tells for one store. No phone or owner names in this catalog — pass domain or q.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'domain': {'type': 'string', 'description': 'Optional store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_countries
Country TAM
Return unfiltered geo TAM (store counts by country). Pass vertical to slice one market; a filtered cohort belongs on search_stores groupBy=country.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'vertical': {'type': 'string', 'description': 'Catalog vertical. Example: Skincare, Apparel, Fashion'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_examples
Example playbooks
Same playbook map as list_playbooks (VC, competitor, dropship, outreach). Prefer list_playbooks on new sessions.
只读 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_movers
Growing / shrinking stores
List stores growing or shrinking on visits or modeled revenue. Defaults: metric/direction any, minPct 5. Quote catalog movers only.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'metric': {'enum': ['visits', 'revenue', 'any'], 'type': 'string', 'description': 'Mover metric. Default any.'}, 'minPct': {'type': 'number', 'description': 'Minimum percent move for movers. Default 5.'}, 'vertical': {'type': 'string', 'description': 'Catalog vertical. Example: Skincare, Apparel, Fashion'}, 'direction': {'enum': ['up', 'down', 'any'], 'type': 'string', 'description': 'Mover direction. Default any.'}, 'countryCode': {'type': 'string', 'description': 'ISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_product
Get one SKU
Return one SKU by store domain plus Shopify handle. Use get_store_products or product_search when you do not yet have the handle.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain', 'handle'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}, 'handle': {'type': 'string', 'minLength': 1, 'description': 'Shopify product handle from the PDP URL. Example: classic-hoodie'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_product_changes
SKU movements
List price, new, removed, position, and bestseller SKU movements. Filter by storeDomain or productType; default noise floor is minPriceChangePct.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}, 'changeType': {'enum': ['price_increase', 'price_decrease', 'new_product', 'removed_product', 'position_up', 'position_down', 'best_seller_entered', 'best_seller_exited'], 'type': 'string', 'description': 'One SKU movement type.'}, 'productType': {'type': 'string', 'description': 'Shopify product type. Example: T-Shirt or Hoodie'}, 'storeDomain': {'type': 'string', 'description': 'Limit to one merchant hostname. Example: gymshark.com'}, 'minPriceChangePct': {'type': 'number', 'description': 'Minimum absolute price-change percent. Default 10.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_product_research
Product-idea report
Return the saturation report for one product idea. Copy id from search_product_ideas or niche_research — do not invent seller counts.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Product-idea id from search_product_ideas or niche_research.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal
Signal card (paid)
Paid plans only (trial 403). Return one signal card. id is a Mongo id or a domain already on Signals.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_ads
Signal ads (paid)
Paid plans only (trial 403). Return the ad library or a slice (overview default). No probe — domain must already be on Signals.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}, 'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Lookback window in days for ad slices. Max 365.'}, 'slice': {'enum': ['overview', 'ads', 'correlation', 'revenue', 'product-impact', 'timeline', 'events'], 'type': 'string', 'description': 'Ad library slice. Default overview.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_apps
Signal apps (paid)
Paid plans only (trial 403). Return apps observed on a tracked store. Set changes=true for app change history.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}, 'changes': {'type': 'boolean', 'description': 'If true, return app change history instead of the current stack.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_insights
Signal insights (paid)
Paid plans only (trial 403). Return the insight feed for one watched domain. Prefer this over list_signal_insights.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_inventory
Signal inventory (paid)
Paid plans only (trial 403). Return the stock timeline for a watched store. Domain must already be on Signals.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_product_changes
Signal SKU changes (paid)
Paid plans only (trial 403). Return product movements on a tracked store. Catalog-wide SKU moves use get_product_changes.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_sales
Signal daily units (paid)
Paid plans only (trial 403). Return daily units and variants. Needs ≥2 inventory snapshots on the watch — do not invent unit counts.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}, 'to': {'type': 'string', 'description': 'Inclusive end date YYYY-MM-DD.'}, 'from': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_social
Signal social (paid)
Paid plans only (trial 403). Return follower snapshots for a watched store. Domain must already be on Signals.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_signal_stats
Signal stats (paid)
Paid plans only (trial 403). Return totals plus store profile for a signal. Domain must already be on Signals.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Signal Mongo id or a domain already on Signals. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_store
Get store card
Return one merchant card: traffic, modeled revenue, rating, apps, and socials. Call resolve_store first if you only have a brand name — missing domains stay not_found.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_store_apps
Store app stack
List Shopify apps detected on one merchant. Use compare_stacks when the user wants shared vs exclusive apps across several domains.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_store_changes
Store observation diffs
List observation diffs for one store: revenue, visits, products, rating, apps. For a mixed product+store board, prefer change_tracker.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}, 'changeType': {'enum': ['revenue_change', 'visits_change', 'products_change', 'rating_change', 'apps_change'], 'type': 'string', 'description': 'One store observation-diff type.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_store_history
Store history
Return daily snapshots: visits, revenue band, rating, and product counts, up to 365 days. Use for growth charts after get_store.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'limit': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Daily snapshot days. Max 365.'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_store_products
Store SKUs
List SKUs for one merchant with price, vendor, type, and bestseller filters. Prefer this over global search_products when you already have a domain.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'tag': {'type': 'string', 'description': 'Shopify product tag.'}, 'sort': {'enum': ['price', 'position', 'scraped'], 'type': 'string', 'description': 'SKU sort: price, merchandising position, or last scrape.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. Default desc.'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}, 'vendor': {'type': 'string', 'description': 'Product vendor / supplier name as listed on the storefront.'}, 'priceMax': {'type': 'number', 'description': 'Maximum listed price in store currency.'}, 'priceMin': {'type': 'number', 'description': 'Minimum listed price in store currency.'}, 'productType': {'type': 'string', 'description': 'Shopify product type. Example: T-Shirt or Hoodie'}, 'isBestSeller': {'type': 'boolean', 'description': 'If true, only SKUs currently flagged as bestsellers.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_store_traffic
Store traffic
Return monthly visits and channel mix for one store. Use after get_store when the user asks how traffic is trending.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'limit': {'type': 'integer', 'maximum': 120, 'minimum': 1, 'description': 'Monthly traffic points. Max 120.'}, 'domain': {'type': 'string', 'minLength': 1, 'description': 'Store hostname without protocol. Example: gruntstyle.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_upstream_health
Catalog health
Return catalog health JSON and whether auth is required. Use when a lookup fails unexpectedly — not for store research.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
get_verticals
Vertical market size
Return market size by vertical (store counts and averages). Pass countryCode to slice one geo — for a filtered cohort, use search_stores with groupBy=vertical.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'countryCode': {'type': 'string', 'description': 'ISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
list_playbooks
List playbooks
List composed-tool playbooks by job: store lists, VC, competitor, dropship, outreach, merch. Start here when the user has not named a tool — then call the playbook's first tool.
只读 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
list_product_sellers
Stores selling an idea
List stores selling a product idea, sorted by traffic or price. Copy id from search_product_ideas — this is who-sells-this, not a single merchant SKU list.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Product-idea id from search_product_ideas or niche_research.'}, 'page': {'type': 'integer', 'minimum': 1, 'description': '1-based page. Default 1.'}, 'sort': {'enum': ['traffic', 'price'], 'type': 'string', 'description': 'Seller list sort: store traffic or SKU price.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Sellers to return. Max 100.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
list_signal_insights
Account insight feed (paid)
Paid plans only (trial 403). Account-wide insight feed — often empty unless the key owns watches. Prefer get_signal_insights with a domain already on Signals.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
list_signals
List Signals watches (paid)
Paid plans only (trial 403). List Signals watches stored on this Neonjelly key. Then GET a domain that is already on Signals — do not advertise this on trial.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
niche_research
Niche saturation
Run semantic product-idea search plus a saturation report and the stores that sell the top hit. q is a product name or category, not a domain — quote seller count and the UNTAPPED→SATURATED verdict.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'minLength': 2, 'description': 'Product name or category, not a domain. Example: neck fan or yoga mat'}, 'limit': {'type': 'integer', 'maximum': 40, 'minimum': 1, 'description': 'Product ideas to return. Max 40.'}, 'market': {'enum': ['UNTAPPED', 'LOW COMPETITION', 'COMPETITIVE', 'SATURATED'], 'type': 'string', 'description': 'Keep ideas with this saturation verdict only.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
overlap_vendors
Vendor overlap
Find product-vendor overlap and the average price gap between two stores. Use after compare_stacks when you need shared suppliers, not shared apps.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domainA', 'domainB'], 'properties': {'limit': {'type': 'integer', 'maximum': 80, 'minimum': 5, 'description': 'Shared-vendor rows to return. Min 5, max 80.'}, 'domainA': {'type': 'string', 'minLength': 1, 'description': 'First store hostname. Example: gymshark.com'}, 'domainB': {'type': 'string', 'minLength': 1, 'description': 'Second store hostname. Example: allbirds.com'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
price_watch
Price watch
List price decreases and increases across stores or one merchant. Default minPriceChangePct is 10 — raise it to cut noise.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 60, 'minimum': 1, 'description': 'Change rows. Max 60.'}, 'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'productType': {'type': 'string', 'description': 'Shopify product type. Example: T-Shirt or Hoodie'}, 'storeDomain': {'type': 'string', 'description': 'Limit to one merchant hostname. Example: gymshark.com'}, 'minPriceChangePct': {'type': 'number', 'description': 'Minimum absolute price-change percent. Default 10.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
product_intel
SKU memo
Build one SKU memo: card, discount vs compare-at, store, SKU change history, and store bestsellers. Pass domain+handle, or q to resolve first.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'domain': {'type': 'string', 'description': 'Optional store hostname without protocol. Example: gruntstyle.com'}, 'handle': {'type': 'string', 'description': 'Optional Shopify product handle. Example: classic-hoodie'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
product_search
Search SKUs + facets
Search cross-store SKUs and return rows plus facets (vendors, types, stores, price band). At least one filter is required. For saturation / who-sells-this-idea, use niche_research.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'tag': {'type': 'string', 'description': 'Shopify product tag.'}, 'sort': {'enum': ['price', 'position', 'scraped'], 'type': 'string', 'description': 'SKU sort: price, merchandising position, or last scrape.'}, 'limit': {'type': 'integer', 'maximum': 80, 'minimum': 1, 'description': 'SKU rows. Max 80.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. Default desc.'}, 'vendor': {'type': 'string', 'description': 'Product vendor / supplier name as listed on the storefront.'}, 'priceMax': {'type': 'number', 'description': 'Maximum listed price in store currency.'}, 'priceMin': {'type': 'number', 'description': 'Minimum listed price in store currency.'}, 'productType': {'type': 'string', 'description': 'Shopify product type. Example: T-Shirt or Hoodie'}, 'storeDomain': {'type': 'string', 'description': 'Limit to one merchant hostname. Example: gymshark.com'}, 'isBestSeller': {'type': 'boolean', 'description': 'If true, only SKUs currently flagged as bestsellers.'}, 'storeVertical': {'type': 'string', 'description': 'Vertical of the selling store. Example: Apparel'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
resolve_store
Resolve a store
Resolve a brand name or URL against 1.37M Shopify storefronts and return up to 5 candidates. On a single hit, also return the full store card — call this before inventing a domain; missing stores stay not_found.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'minLength': 1, 'description': 'Brand, product, or free-text query. Example: gymshark or neck fan'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
screen_dropship
Screen dropship stores
List dropship-flagged stores in a vertical/geo plus their cheapest SKUs. Country is a filter, not a login region — quote the catalog flag, do not invent supplier names.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 12, 'minimum': 1, 'description': 'How many dropship-flagged stores to screen. Max 12.'}, 'priceMax': {'type': 'number', 'description': 'Maximum listed price in store currency.'}, 'vertical': {'type': 'string', 'description': 'Catalog vertical. Example: Skincare, Apparel, Fashion'}, 'minVisits': {'type': 'number', 'description': 'Minimum monthly visits. Example: 10000'}, 'countryCode': {'type': 'string', 'description': 'ISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
search_apps
Search Shopify apps
Search the Shopify App Store catalog by name, category, pricing, or rating. Follow a slug with get_app_stores to see which merchants run it.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'sort': {'enum': ['rating', 'reviews', 'name'], 'type': 'string', 'description': 'App catalog sort. Default rating.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. Default desc.'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}, 'category': {'type': 'string', 'description': 'Store category label from the catalog.'}, 'minRating': {'type': 'number', 'description': 'Minimum store or app rating 0â\x80\x935. Example: 4.2'}, 'pricingType': {'type': 'string', 'description': 'App Store pricing type filter. Example: free or subscription'}, 'builtForShopify': {'type': 'boolean', 'description': 'If true, only Built for Shopify apps.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
search_product_ideas
Search product ideas
Search product names/categories and return ideas with seller count, price, and UNTAPPED→SATURATED verdict — not one-store listings. Prefer niche_research when the user asks “is this saturated?”
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'minLength': 2, 'description': 'Product name or category, not a domain. Example: neck fan or yoga mat'}, 'page': {'type': 'integer', 'minimum': 1, 'description': '1-based page. Default 1.'}, 'market': {'type': 'string', 'description': 'Comma verdicts: UNTAPPED,LOW COMPETITION,COMPETITIVE,SATURATED'}, 'region': {'type': 'string', 'description': 'Optional region label for product-idea search.'}, 'priceMax': {'type': 'number', 'description': 'Maximum listed price in store currency.'}, 'priceMin': {'type': 'number', 'description': 'Minimum listed price in store currency.'}, 'trending': {'type': 'boolean', 'description': 'If true, only ideas marked trending.'}, 'countries': {'type': 'string', 'description': 'ISO-2 country list, comma-separated. Example: US,GB,CA'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
search_products
Search catalog SKUs
Search SKUs across the 368.9M-product catalog. At least one filter is required. For saturation or who-sells-this-idea, use niche_research.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'tag': {'type': 'string', 'description': 'Shopify product tag.'}, 'sort': {'enum': ['price', 'position', 'scraped'], 'type': 'string', 'description': 'SKU sort: price, merchandising position, or last scrape.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. Default desc.'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}, 'vendor': {'type': 'string', 'description': 'Product vendor / supplier name as listed on the storefront.'}, 'priceMax': {'type': 'number', 'description': 'Maximum listed price in store currency.'}, 'priceMin': {'type': 'number', 'description': 'Minimum listed price in store currency.'}, 'productType': {'type': 'string', 'description': 'Shopify product type. Example: T-Shirt or Hoodie'}, 'storeDomain': {'type': 'string', 'description': 'Limit to one merchant hostname. Example: gymshark.com'}, 'isBestSeller': {'type': 'boolean', 'description': 'If true, only SKUs currently flagged as bestsellers.'}, 'storeVertical': {'type': 'string', 'description': 'Vertical of the selling store. Example: Apparel'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
search_stores
Search store lists
Filter 1.37M Shopify stores into a list (emails/socials live on the card) or roll them up with groupBy. Without groupBy you get store cards; with groupBy you get breakdown rows, not stores. Country is a filter, not a login region.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'sort': {'enum': ['visits', 'revenue', 'rating', 'domain', 'stores'], 'type': 'string', 'description': 'Store list sort. Use stores when groupBy is set.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Page size. Default 20, max 100.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction. Default desc.'}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Skip this many rows. Pair with limit to page.'}, 'appSlug': {'type': 'string', 'description': 'Shopify app slug. Example: klaviyo-email-marketing'}, 'groupBy': {'enum': ['country', 'vertical', 'industry', 'category'], 'type': 'string', 'description': 'Roll rows into a breakdown table instead of store cards.'}, 'category': {'type': 'string', 'description': 'Store category label from the catalog.'}, 'groupBy2': {'enum': ['country', 'vertical', 'industry', 'category'], 'type': 'string', 'description': 'Second breakdown axis. Same values as groupBy. Example: country'}, 'industry': {'type': 'string', 'description': 'Store industry label from the catalog.'}, 'vertical': {'type': 'string', 'description': 'Catalog vertical. Example: Skincare, Apparel, Fashion'}, 'maxVisits': {'type': 'number', 'description': 'Maximum monthly visits. Example: 500000'}, 'minRating': {'type': 'number', 'description': 'Minimum store or app rating 0â\x80\x935. Example: 4.2'}, 'minVisits': {'type': 'number', 'description': 'Minimum monthly visits. Example: 10000'}, 'maxRevenue': {'type': 'number', 'description': 'Maximum modeled monthly revenue in USD. Example: 1000000'}, 'minRevenue': {'type': 'number', 'description': 'Minimum modeled monthly revenue in USD. Example: 50000'}, 'countryCode': {'type': 'string', 'description': 'ISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN'}, 'groupMetric': {'enum': ['mean', 'median', 'max', 'min'], 'type': 'string', 'description': 'How to aggregate visits/revenue when groupBy is set.'}, 'isDropshipper': {'type': 'boolean', 'description': 'If true, only stores the catalog flags as dropship.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
source_map
Map SKU sources
Group a SKU search by vendor: store count and price min/max across the catalog. Use for sourcing or arbitrage after niche_research names the product.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Optional free-text query. Example: hoodie or gymshark'}, 'limit': {'type': 'integer', 'maximum': 80, 'minimum': 5, 'description': 'Vendor groups to return. Min 5, max 80.'}, 'vendor': {'type': 'string', 'description': 'Product vendor / supplier name as listed on the storefront.'}, 'priceMax': {'type': 'number', 'description': 'Maximum listed price in store currency.'}, 'productType': {'type': 'string', 'description': 'Shopify product type. Example: T-Shirt or Hoodie'}, 'storeVertical': {'type': 'string', 'description': 'Vertical of the selling store. Example: Apparel'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
suggest_product_ideas
Suggest product ideas
Autocomplete product-idea names as the user types. Follow with search_product_ideas or niche_research on the chosen row.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'minLength': 1, 'description': 'Brand, product, or free-text query. Example: gymshark or neck fan'}, 'limit': {'type': 'integer', 'maximum': 15, 'minimum': 1, 'description': 'Autocomplete rows. Max 15.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
trending_product_ideas
Trending product ideas
List product ideas the catalog marks as heating up. Pair a hit with get_product_research and list_product_sellers — do not invent trend scores.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
upgrade
Get checkout URL
Return the paid upgrade URL when trial expired, daily quota is 0, or Signals is blocked. Does not count against quota. Always show the returned URL — never invent a checkout link.
只读 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
whoami
Check quota
Return this key's plan, used today, remaining quota, rate limit, and expiry. Does not count against daily quota — call first when the user asks “what's my quota?” If remaining is 0 or trial expired, call upgrade and open the URL.
只读 幂等
输入模式
{'type': 'object', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
winning_skus
Winning SKUs
List bestsellers, ≥10% markdowns, and new products for a vertical or one store. Require storeVertical or storeDomain — do not call empty.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'since': {'type': 'string', 'description': 'Inclusive start date YYYY-MM-DD. Example: 2026-08-01'}, 'storeDomain': {'type': 'string', 'description': 'Limit to one merchant hostname. Example: gymshark.com'}, 'storeVertical': {'type': 'string', 'description': 'Vertical of the selling store. Example: Apparel'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'error': {'type': 'string', 'description': 'Set when the call failed. Example: not_found'}, 'message': {'type': 'string', 'description': 'Human-readable error or hint'}}, 'description': 'JSON object this tool returns. Catalog tools wrap upstream rows; whoami/upgrade return quota fields.', 'additionalProperties': True}
已添加
list_signal_insights
2026年9月17日 12:53
已添加
get_signal_insights
2026年9月17日 12:53
已添加
get_signal_product_changes
2026年9月17日 12:53
已添加
get_signal_apps
2026年9月17日 12:53
已添加
get_signal_ads
2026年9月17日 12:53
已添加
get_signal_social
2026年9月17日 12:53
已添加
get_signal_inventory
2026年9月17日 12:53
已添加
get_signal_sales
2026年9月17日 12:53
已添加
get_signal_stats
2026年9月17日 12:53
已添加
get_signal
2026年9月17日 12:53
已添加
list_signals
2026年9月17日 12:53
已添加
create_signal
2026年9月17日 12:53
已添加
get_movers
2026年9月17日 12:53
已添加
get_countries
2026年9月17日 12:53
已添加
get_verticals
2026年9月17日 12:53
已添加
get_analytics_overview
2026年9月17日 12:53
已添加
get_app_stores
2026年9月17日 12:53
已添加
get_app
2026年9月17日 12:53
已添加
search_apps
2026年9月17日 12:53
已添加
get_changes
2026年9月17日 12:53
已添加
get_product_changes
2026年9月17日 12:53
已添加
get_product
2026年9月17日 12:53
已添加
search_products
2026年9月17日 12:53
已添加
get_store_changes
2026年9月17日 12:53
已添加
get_store_history
2026年9月17日 12:53
已添加
get_store_apps
2026年9月17日 12:53
已添加
get_store_products
2026年9月17日 12:53
已添加
get_store_traffic
2026年9月17日 12:53
已添加
compare_stores
2026年9月17日 12:53
已添加
get_store
2026年9月17日 12:53