Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Neonjelly

REMOTE · MCP.NEONJELLY.IO · SCANNED SEP 20

Remote MCP over 1.37M Shopify stores. 14-day trial, 100/day, no account. Paid from $29/mo.

Available components

+3 this week 84 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security83
Transport & Reachability100
Schema Quality & AI Usability87
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6497 tokens (~103/item across 63 items; 60 tools + 3 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management50
  • Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 60 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 62 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Neonjelly MCP server?

Neonjelly is a hosted endpoint at https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.neonjelly.io

# add to Claude Code
claude mcp add --transport http io-neonjelly-mcp 'https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "io-neonjelly-mcp": {
      "url": "https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "io-neonjelly-mcp": {
      "type": "http",
      "url": "https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.io-neonjelly-mcp]
url = "https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-neonjelly-mcp": {
      "type": "remote",
      "url": "https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-neonjelly-mcp --url 'https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-neonjelly-mcp:
    url: "https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "io-neonjelly-mcp": {
      "Transport": "http",
      "Url": "https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp"
    }
  }
}
# add to Vellum
assistant mcp add io-neonjelly-mcp -t streamable-http -u 'https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp'
// mcp.json
{
  "mcpServers": {
    "io-neonjelly-mcp": {
      "type": "http",
      "url": "https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 7 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 6 Sept 26 0
    • Stability: unverified → 0.03 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://mcp.neonjelly.io/c/{connect_token}/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.neonjelly.io CN=YE2,O=Let's Encrypt,C=US 22 Aug 2026 20 Nov 2026 ECDSA 256 ECDSA-SHA384 6d4eb7c0a4e42c136a3897c601f76eec678
SANs: mcp.neonjelly.io
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.neonjelly.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
neonjelly.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200

Protected resource metadata

Retrieved No
Problem no_resource_metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.neonjelly.io/c/{connect_token}/mcp Verified 200
http (plaintext) http://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp HTTPS enforced 301 https://mcp.neonjelly.io/c/%7Bconnect_token%7D/mcp
MCP tools · 60 exposed · ~6,122 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
assortment_watch ~112

List new and removed SKUs plus bestseller enter/exit. Filter by storeDomain or productType when the user names a shop or category.

NameTypeReqDescription
limitintegerAssortment rows. Max 50.
productTypestringShopify product type. Example: T-Shirt or Hoodie
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
storeDomainstringLimit to one merchant hostname. Example: gymshark.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

brief_market ~115

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.

NameTypeReqDescription
countryCodestringISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN
minVisitsnumberMinimum monthly visits. Example: 10000
verticalstringCatalog vertical. Example: Skincare, Apparel, Fashion
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

change_tracker ~100

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.

NameTypeReqDescription
domainstringOptional store hostname without protocol. Example: gruntstyle.com
limitintegerSKU rows. Max 80.
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

cohort_tam ~182

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.

NameTypeReqDescription
categorystringStore category label from the catalog.
countryCodestringISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN
groupBystringRoll rows into a breakdown table instead of store cards.
groupMetricstringHow to aggregate visits/revenue when groupBy is set.
isDropshipperbooleanIf true, only stores the catalog flags as dropship.
minVisitsnumberMinimum monthly visits. Example: 10000
verticalstringCatalog vertical. Example: Skincare, Apparel, Fashion
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

compare_stacks ~71

Compare 2–8 store app stacks: shared vs exclusive apps, tagged by role (email, support, reviews, subs, ads). Pass hostnames, not brand names.

NameTypeReqDescription
domainsarrayyes2–8 store hostnames. Example: ["gymshark.com","allbirds.com"]
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

compare_stores ~69

Compare 2–8 store cards side by side (traffic, revenue band, apps, rating). Missing domains land in notFound — do not invent the missing rows.

NameTypeReqDescription
domainsarrayyes2–8 store hostnames. Example: ["gymshark.com","allbirds.com"]
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

competitor_moves ~80

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.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

create_signal ~91

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.

NameTypeReqDescription
autoTrackstringSignals auto-track mode. bestsellers watches top SKUs; none is the card only.
domainstringyesStore hostname without protocol. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

diligence_pack ~62

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.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

find_outreach ~161

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.

NameTypeReqDescription
appSlugstringShopify app slug. Example: klaviyo-email-marketing
countryCodestringISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN
limitintegerMax stores to hydrate. Caps at 10 — each costs a catalog call.
minVisitsnumberMinimum monthly visits. Example: 10000
verticalstringCatalog vertical. Example: Skincare, Apparel, Fashion
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

find_peers ~80

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.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
limitintegerHow many peer stores to return. Default 8, max 25.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_analytics_overview ~40

Return catalog coverage: store/SKU counts, averages, top verticals and countries. Quote these snapshot figures only — do not invent traffic totals.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_app ~54

Return one Shopify app plus an install-base sample. Copy slug from search_apps, then get_app_stores for the merchant list.

NameTypeReqDescription
slugstringyesShopify App Store slug. Example: klaviyo-email-marketing
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_app_stores ~99

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.

NameTypeReqDescription
limitintegerPage size. Default 20, max 100.
offsetintegerSkip this many rows. Pair with limit to page.
slugstringyesShopify App Store slug. Example: klaviyo-email-marketing
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_changes ~105

Return the unified store + product movement feed. Prefer change_tracker when the user wants every change type on one board.

NameTypeReqDescription
domainstringOptional store hostname without protocol. Example: gruntstyle.com
entitystringLimit the unified change feed to products or stores.
limitintegerPage size. Default 20, max 100.
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_contacts ~74

Return emails, social URLs, and ESP/support app tells for one store. No phone or owner names in this catalog — pass domain or q.

NameTypeReqDescription
domainstringOptional store hostname without protocol. Example: gruntstyle.com
qstringOptional free-text query. Example: hoodie or gymshark
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_countries ~75

Return unfiltered geo TAM (store counts by country). Pass vertical to slice one market; a filtered cohort belongs on search_stores groupBy=country.

NameTypeReqDescription
limitintegerPage size. Default 20, max 100.
verticalstringCatalog vertical. Example: Skincare, Apparel, Fashion
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_examples ~34

Same playbook map as list_playbooks (VC, competitor, dropship, outreach). Prefer list_playbooks on new sessions.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_movers ~168

List stores growing or shrinking on visits or modeled revenue. Defaults: metric/direction any, minPct 5. Quote catalog movers only.

NameTypeReqDescription
countryCodestringISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN
directionstringMover direction. Default any.
limitintegerPage size. Default 20, max 100.
metricstringMover metric. Default any.
minPctnumberMinimum percent move for movers. Default 5.
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
verticalstringCatalog vertical. Example: Skincare, Apparel, Fashion
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_product ~72

Return one SKU by store domain plus Shopify handle. Use get_store_products or product_search when you do not yet have the handle.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
handlestringyesShopify product handle from the PDP URL. Example: classic-hoodie
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_product_changes ~166

List price, new, removed, position, and bestseller SKU movements. Filter by storeDomain or productType; default noise floor is minPriceChangePct.

NameTypeReqDescription
changeTypestringOne SKU movement type.
limitintegerPage size. Default 20, max 100.
minPriceChangePctnumberMinimum absolute price-change percent. Default 10.
offsetintegerSkip this many rows. Pair with limit to page.
productTypestringShopify product type. Example: T-Shirt or Hoodie
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
storeDomainstringLimit to one merchant hostname. Example: gymshark.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_product_research ~57

Return the saturation report for one product idea. Copy id from search_product_ideas or niche_research — do not invent seller counts.

NameTypeReqDescription
idstringyesProduct-idea id from search_product_ideas or niche_research.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal ~55

Paid plans only (trial 403). Return one signal card. id is a Mongo id or a domain already on Signals.

NameTypeReqDescription
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_ads ~92

Paid plans only (trial 403). Return the ad library or a slice (overview default). No probe — domain must already be on Signals.

NameTypeReqDescription
daysintegerLookback window in days for ad slices. Max 365.
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
slicestringAd library slice. Default overview.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_apps ~74

Paid plans only (trial 403). Return apps observed on a tracked store. Set changes=true for app change history.

NameTypeReqDescription
changesbooleanIf true, return app change history instead of the current stack.
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_insights ~57

Paid plans only (trial 403). Return the insight feed for one watched domain. Prefer this over list_signal_insights.

NameTypeReqDescription
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_inventory ~55

Paid plans only (trial 403). Return the stock timeline for a watched store. Domain must already be on Signals.

NameTypeReqDescription
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_product_changes ~57

Paid plans only (trial 403). Return product movements on a tracked store. Catalog-wide SKU moves use get_product_changes.

NameTypeReqDescription
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_sales ~86

Paid plans only (trial 403). Return daily units and variants. Needs ≥2 inventory snapshots on the watch — do not invent unit counts.

NameTypeReqDescription
fromstringInclusive start date YYYY-MM-DD.
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
tostringInclusive end date YYYY-MM-DD.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_social ~54

Paid plans only (trial 403). Return follower snapshots for a watched store. Domain must already be on Signals.

NameTypeReqDescription
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_signal_stats ~55

Paid plans only (trial 403). Return totals plus store profile for a signal. Domain must already be on Signals.

NameTypeReqDescription
idstringyesSignal Mongo id or a domain already on Signals. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_store ~60

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.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_store_apps ~50

List Shopify apps detected on one merchant. Use compare_stacks when the user wants shared vs exclusive apps across several domains.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_store_changes ~127

List observation diffs for one store: revenue, visits, products, rating, apps. For a mixed product+store board, prefer change_tracker.

NameTypeReqDescription
changeTypestringOne store observation-diff type.
domainstringyesStore hostname without protocol. Example: gruntstyle.com
limitintegerPage size. Default 20, max 100.
offsetintegerSkip this many rows. Pair with limit to page.
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_store_history ~69

Return daily snapshots: visits, revenue band, rating, and product counts, up to 365 days. Use for growth charts after get_store.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
limitintegerDaily snapshot days. Max 365.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_store_products ~233

List SKUs for one merchant with price, vendor, type, and bestseller filters. Prefer this over global search_products when you already have a domain.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
isBestSellerbooleanIf true, only SKUs currently flagged as bestsellers.
limitintegerPage size. Default 20, max 100.
offsetintegerSkip this many rows. Pair with limit to page.
orderstringSort direction. Default desc.
priceMaxnumberMaximum listed price in store currency.
priceMinnumberMinimum listed price in store currency.
productTypestringShopify product type. Example: T-Shirt or Hoodie
qstringOptional free-text query. Example: hoodie or gymshark
sortstringSKU sort: price, merchandising position, or last scrape.
tagstringShopify product tag.
vendorstringProduct vendor / supplier name as listed on the storefront.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_store_traffic ~64

Return monthly visits and channel mix for one store. Use after get_store when the user asks how traffic is trending.

NameTypeReqDescription
domainstringyesStore hostname without protocol. Example: gruntstyle.com
limitintegerMonthly traffic points. Max 120.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_upstream_health ~32

Return catalog health JSON and whether auth is required. Use when a lookup fails unexpectedly — not for store research.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

get_verticals ~90

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.

NameTypeReqDescription
countryCodestringISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN
limitintegerPage size. Default 20, max 100.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

list_playbooks ~51

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

list_product_sellers ~110

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.

NameTypeReqDescription
idstringyesProduct-idea id from search_product_ideas or niche_research.
limitintegerSellers to return. Max 100.
pageinteger1-based page. Default 1.
sortstringSeller list sort: store traffic or SKU price.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

list_signal_insights ~77

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.

NameTypeReqDescription
limitintegerPage size. Default 20, max 100.
offsetintegerSkip this many rows. Pair with limit to page.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

list_signals ~79

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.

NameTypeReqDescription
limitintegerPage size. Default 20, max 100.
offsetintegerSkip this many rows. Pair with limit to page.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

niche_research ~105

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.

NameTypeReqDescription
limitintegerProduct ideas to return. Max 40.
marketstringKeep ideas with this saturation verdict only.
qstringyesProduct name or category, not a domain. Example: neck fan or yoga mat
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

overlap_vendors ~94

Find product-vendor overlap and the average price gap between two stores. Use after compare_stacks when you need shared suppliers, not shared apps.

NameTypeReqDescription
domainAstringyesFirst store hostname. Example: gymshark.com
domainBstringyesSecond store hostname. Example: allbirds.com
limitintegerShared-vendor rows to return. Min 5, max 80.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

price_watch ~127

List price decreases and increases across stores or one merchant. Default minPriceChangePct is 10 — raise it to cut noise.

NameTypeReqDescription
limitintegerChange rows. Max 60.
minPriceChangePctnumberMinimum absolute price-change percent. Default 10.
productTypestringShopify product type. Example: T-Shirt or Hoodie
sincestringInclusive start date YYYY-MM-DD. Example: 2026-08-01
storeDomainstringLimit to one merchant hostname. Example: gymshark.com
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

product_intel ~99

Build one SKU memo: card, discount vs compare-at, store, SKU change history, and store bestsellers. Pass domain+handle, or q to resolve first.

NameTypeReqDescription
domainstringOptional store hostname without protocol. Example: gruntstyle.com
handlestringOptional Shopify product handle. Example: classic-hoodie
qstringOptional free-text query. Example: hoodie or gymshark
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

product_search ~243

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.

NameTypeReqDescription
isBestSellerbooleanIf true, only SKUs currently flagged as bestsellers.
limitintegerSKU rows. Max 80.
orderstringSort direction. Default desc.
priceMaxnumberMaximum listed price in store currency.
priceMinnumberMinimum listed price in store currency.
productTypestringShopify product type. Example: T-Shirt or Hoodie
qstringOptional free-text query. Example: hoodie or gymshark
sortstringSKU sort: price, merchandising position, or last scrape.
storeDomainstringLimit to one merchant hostname. Example: gymshark.com
storeVerticalstringVertical of the selling store. Example: Apparel
tagstringShopify product tag.
vendorstringProduct vendor / supplier name as listed on the storefront.
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

resolve_store ~81

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.

NameTypeReqDescription
qstringyesBrand, product, or free-text query. Example: gymshark or neck fan
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

screen_dropship ~149

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.

NameTypeReqDescription
countryCodestringISO-3166 alpha-2 country filter, not a login region. Example: US, GB, IN
limitintegerHow many dropship-flagged stores to screen. Max 12.
minVisitsnumberMinimum monthly visits. Example: 10000
priceMaxnumberMaximum listed price in store currency.
verticalstringCatalog vertical. Example: Skincare, Apparel, Fashion
NameTypeReqDescription
errorstringSet when the call failed. Example: not_found
messagestringHuman-readable error or hint

No examples provided.

Common questions

What is the Neonjelly MCP server?

Neonjelly is an MCP server listed in the public MCP registry as io.neonjelly/mcp. Remote MCP over 1.37M Shopify stores. 14-day trial, 100/day, no account. Paid from $29/mo. This page covers its hosted endpoint (https://mcp.neonjelly.io/c/{connect_token}/mcp).

Is the Neonjelly MCP server safe to use?

Neonjelly scores 84 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Neonjelly MCP server expose?

Neonjelly exposes 60 tools: whoami, upgrade, resolve_store, list_playbooks, get_examples, and 55 more. Their descriptions and schemas cost roughly 6,122 tokens of context every time the server is loaded.

Does the Neonjelly MCP server require authentication?

Yes. Neonjelly asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Neonjelly MCP server still maintained?

Neonjelly is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.