neonjelly

Reference

MCP tools

60 tools. Start with a job — competitors, dropship, merch, outreach — then the catalog.

60 tools. Prefer the Playbooks / VC / Competitor / Dropship / Outreach groups. Raw wrappers are still there when you need one field.

whoami — this key's plan, usedToday, remainingToday, rate limit, expiry, and whether Signals is enabled. Does not meter. Same facts as GET /v1/whoami. Ask Cursor “what's my quota?”

limit is 1–100 unless noted. Lists use offset. Stop when hasMore is false. Search or resolve before inventing a domain.

ToolArgsDoes
whoamiReturn this key's plan, used today, remaining quota, and expiry. Not metered — call first for “what's my quota?”
upgradeReturn the paid checkout URL when trial ends, quota is 0, or Signals is blocked. Show the URL — do not invent one.
list_playbooksList composed-tool playbooks by job: store lists, VC, competitor, dropship, outreach, merch. Start here.
get_examplesSame playbook map as list_playbooks. Prefer list_playbooks.
brief_marketvertical, countryCode, minVisitsReturn a one-page TAM brief from 1.37M stores: vertical size, geos, movers, optional cohort. Quote catalog counts only.
cohort_tamfilters, groupBy, groupMetricRoll a filtered store cohort into a groupBy table. Not the unfiltered get_countries TAM.
find_peersdomain, limitFind stores in the same vertical, country, and visit band, then compare cards.
diligence_packdomainBuild an IC memo: growth, traffic, stack roles, bestsellers, changes, contacts.
compare_stacksdomains[2–8]Compare 2–8 app stacks: shared vs exclusive, tagged by role.
competitor_movesdomain, sinceList catalog store/SKU changes and vertical movers. Ads and daily units need a paid Signals watch.
overlap_vendorsdomainA, domainB, limitFind shared product vendors and the average price gap between two stores.
niche_researchq, market?, limit?Run semantic product-idea search plus saturation report and stores that sell the top hit. q is a name or category, not a domain.
search_product_ideasq, market, priceMin, priceMax, trending, countries, regionSearch product names/categories → ideas with seller count and UNTAPPED→SATURATED verdict. Prefer niche_research for “is this saturated?”
suggest_product_ideasq, limitAutocomplete product-idea names. Follow with niche_research.
trending_product_ideasList product ideas the catalog marks as heating up. Pair with get_product_research.
get_product_researchidReturn the saturation report for one idea. Copy id from search_product_ideas.
list_product_sellersid, sort, page, limitList stores selling that idea. sort=trafficprice.
screen_dropshipvertical, countryCode, minVisits, priceMax, limitList dropship-flagged stores plus their cheapest SKUs.
source_mapq, vendor, productType, storeVertical, priceMaxGroup a SKU search by vendor: store count + price min/max.
winning_skusstoreVertical or storeDomain, sinceList bestsellers, ≥10% markdowns, and new products. Need storeVertical or storeDomain.
product_searchq, storeDomain, vendor, productType, tag, storeVertical, isBestSeller, priceMin, priceMax, sort, order, limitSearch SKUs plus facets (vendors, types, stores, price). At least one filter required.
product_inteldomain+handle or qBuild one SKU memo: price vs compare-at, store, SKU history, bestsellers.
change_trackerdomain, since, limitReturn a full change board: unified feed + all product and store change types.
price_watchstoreDomain, productType, since, minPriceChangePctList markdowns and hikes. Default min 10%.
assortment_watchstoreDomain, productType, sinceList new / removed SKUs and bestseller enter / exit.
get_contactsdomain or qReturn emails, social URLs, and ESP/support tells. No phone or owner names.
find_outreachvertical, countryCode, appSlug, minVisits, limit≤10Filter 1.37M stores, hydrate cards, keep rows with email or Instagram. Caps at 10.
resolve_storeqResolve a brand or URL against 1.37M storefronts (up to 5 candidates). One hit → full store card.
get_upstream_healthReturn catalog health JSON. Use when a lookup fails unexpectedly.
search_storesq, vertical, category, industry, countryCode, isDropshipper, appSlug, min/max visits & revenue, minRating, groupBy, groupBy2, groupMetric, sort, order, limit, offsetFilter 1.37M Shopify stores into a list, or groupBy into tables (not store rows). Country is a filter, not a login region.
get_storedomainReturn one merchant card: traffic, modeled revenue, rating, apps, socials. Missing domain stays not_found.
compare_storesdomains[2–8]Compare 2–8 store cards side by side. Missing domains land in notFound.
get_store_trafficdomain, limit≤120Return monthly visits and channel mix for one store.
get_store_productsdomain, q, isBestSeller, vendor, productType, tag, priceMin, priceMax, sort, order, limit, offsetList SKUs for one merchant. Prefer this over global search when you have a domain.
get_store_appsdomainList Shopify apps detected on one merchant.
get_store_historydomain, limit≤365Return daily snapshots: visits, revenue band, rating, product counts.
get_store_changesdomain, changeType, since, limit, offsetList observation diffs: revenue, visits, products, rating, apps.
search_productsq, storeDomain, vendor, productType, tag, storeVertical, isBestSeller, priceMin, priceMax, sort, order, limit, offsetSearch SKUs across 368.9M products. At least one filter required. Saturation → niche_research.
get_productdomain, handleReturn one SKU by store domain plus Shopify handle.
get_product_changesstoreDomain, changeType, productType, since, minPriceChangePct, limit, offsetList price / new / removed / position / bestseller SKU movements.
get_changesentity, domain, since, limitReturn the unified store + product movement feed. Prefer change_tracker for a full board.
search_appsq, category, pricingType, minRating, builtForShopify, sort, order, limit, offsetSearch the Shopify App Store catalog.
get_appslugReturn one app plus an install-base sample.
get_app_storesslug, limit, offsetList merchants observed running that app, sorted by visits.
get_analytics_overviewReturn coverage counts, averages, top verticals and countries. Quote snapshot figures only.
get_verticalscountryCode, limitReturn market size by vertical. Pass countryCode to slice one geo.
get_countriesvertical, limitReturn unfiltered geo TAM. Filtered cohort → search_stores groupBy=country.
get_moversmetric, direction, vertical, countryCode, since, minPct, limitList stores growing or shrinking. Defaults: metric/direction any, minPct 5.
create_signaldomain, autoTrack?Paid only (trial 403). Create a Signals watch on this key. Tight cap. No probe.
list_signalslimit, offsetPaid only (trial 403). List watches stored on this key. Then GET a domain already on Signals.
get_signalidPaid only (trial 403). Return one signal card. id = Mongo id or domain.
get_signal_statsidPaid only (trial 403). Return totals plus store profile if already watched.
get_signal_salesid, from, toPaid only (trial 403). Return daily units + variants. Needs ≥2 inventory snapshots.
get_signal_inventoryidPaid only (trial 403). Return the stock timeline.
get_signal_socialidPaid only (trial 403). Return follower snapshots.
get_signal_adsid, slice, daysPaid only (trial 403). Return the ad library. slice: overview (default), ads, correlation, revenue, product-impact, timeline, events.
get_signal_appsid, changes?Paid only (trial 403). Return apps on a tracked store. changes=true → /apps/changes.
get_signal_product_changesidPaid only (trial 403). Return product movements on a tracked store.
get_signal_insightsidPaid only (trial 403). Return the per-signal insight feed.
list_signal_insightslimit, offsetPaid only (trial 403). Account-wide insights. Empty unless the key owns watches. Prefer get_signal_insights + domain.

Signals: create_signal (paid only, 8 watches on Explorer) maps the Neonjelly key to an EcomScout watch. GET stats/sales/ads/inventory if the domain is already on Signals. Neonjelly does not probe, patch, stop, or delete. Partner service keys cannot create new EcomScout watches — create still stores the domain on your key; new watches may need the EcomScout Signals dashboard.