Neonjelly is a remote MCP server that gives an AI agent 60 tools, among them assortment_watch, brief_market, change_tracker. It answers at https://mcp.neonjelly.io/c/{connect_token}/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 24 October 2026, succeeded.
Remote MCP over 1.37M Shopify stores. 14-day trial, 100/day, no account. Paid from $29/mo.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
assortment_watch | List new and removed SKUs plus bestseller enter/exit. Filter by storeDomain or productType when the user names a shop or category. Inputs: storeDomain, productType, since, limit |
brief_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. Inputs: vertical, countryCode, minVisits |
change_tracker | 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. Inputs: domain, since, limit |
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. Inputs: vertical, category, countryCode, isDropshipper, minVisits, groupBy |
compare_stacks | Compare 2–8 store app stacks: shared vs exclusive apps, tagged by role (email, support, reviews, subs, ads). Pass hostnames, not brand names. Inputs: domains |
compare_stores | Compare 2–8 store cards side by side (traffic, revenue band, apps, rating). Missing domains land in notFound — do not invent the missing rows. Inputs: domains |
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. Inputs: domain, since |
create_signal | 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. Inputs: domain, autoTrack |
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. Inputs: domain |
find_outreach | 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. Inputs: vertical, countryCode, appSlug, minVisits, limit |
find_peers | 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. Inputs: domain, limit |
get_analytics_overview | Return catalog coverage: store/SKU counts, averages, top verticals and countries. Quote these snapshot figures only — do not invent traffic totals. |
get_app | Return one Shopify app plus an install-base sample. Copy slug from search_apps, then get_app_stores for the merchant list. Inputs: slug |
get_app_stores | 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. Inputs: slug, limit, offset |
get_changes | Return the unified store + product movement feed. Prefer change_tracker when the user wants every change type on one board. Inputs: entity, domain, since, limit |
get_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. Inputs: domain, q |
get_countries | Return unfiltered geo TAM (store counts by country). Pass vertical to slice one market; a filtered cohort belongs on search_stores groupBy=country. Inputs: vertical, limit |
get_examples | Same playbook map as list_playbooks (VC, competitor, dropship, outreach). Prefer list_playbooks on new sessions. |
get_movers | List stores growing or shrinking on visits or modeled revenue. Defaults: metric/direction any, minPct 5. Quote catalog movers only. Inputs: metric, direction, vertical, countryCode, since, minPct |
get_product | Return one SKU by store domain plus Shopify handle. Use get_store_products or product_search when you do not yet have the handle. Inputs: domain, handle |
get_product_changes | List price, new, removed, position, and bestseller SKU movements. Filter by storeDomain or productType; default noise floor is minPriceChangePct. Inputs: storeDomain, changeType, productType, since, minPriceChangePct, limit |
get_product_research | Return the saturation report for one product idea. Copy id from search_product_ideas or niche_research — do not invent seller counts. Inputs: id |
get_signal | Paid plans only (trial 403). Return one signal card. id is a Mongo id or a domain already on Signals. Inputs: id |
get_signal_ads | Paid plans only (trial 403). Return the ad library or a slice (overview default). No probe — domain must already be on Signals. Inputs: id, slice, days |
get_signal_apps | Paid plans only (trial 403). Return apps observed on a tracked store. Set changes=true for app change history. Inputs: id, changes |
get_signal_insights | Paid plans only (trial 403). Return the insight feed for one watched domain. Prefer this over list_signal_insights. Inputs: id |
get_signal_inventory | Paid plans only (trial 403). Return the stock timeline for a watched store. Domain must already be on Signals. Inputs: id |
get_signal_product_changes | Paid plans only (trial 403). Return product movements on a tracked store. Catalog-wide SKU moves use get_product_changes. Inputs: id |
get_signal_sales | Paid plans only (trial 403). Return daily units and variants. Needs ≥2 inventory snapshots on the watch — do not invent unit counts. Inputs: id, from, to |
get_signal_social | Paid plans only (trial 403). Return follower snapshots for a watched store. Domain must already be on Signals. Inputs: id |
get_signal_stats | Paid plans only (trial 403). Return totals plus store profile for a signal. Domain must already be on Signals. Inputs: id |
get_store | 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. Inputs: domain |
get_store_apps | List Shopify apps detected on one merchant. Use compare_stacks when the user wants shared vs exclusive apps across several domains. Inputs: domain |
get_store_changes | List observation diffs for one store: revenue, visits, products, rating, apps. For a mixed product+store board, prefer change_tracker. Inputs: domain, changeType, since, limit, offset |
get_store_history | Return daily snapshots: visits, revenue band, rating, and product counts, up to 365 days. Use for growth charts after get_store. Inputs: domain, limit |
get_store_products | List SKUs for one merchant with price, vendor, type, and bestseller filters. Prefer this over global search_products when you already have a domain. Inputs: domain, q, isBestSeller, vendor, productType, tag |
get_store_traffic | Return monthly visits and channel mix for one store. Use after get_store when the user asks how traffic is trending. Inputs: domain, limit |
get_upstream_health | Return catalog health JSON and whether auth is required. Use when a lookup fails unexpectedly — not for store research. |
get_verticals | 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. Inputs: countryCode, limit |
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. |
list_product_sellers, list_signal_insights, list_signals, niche_research, overlap_vendors, price_watch, product_intel, product_search, resolve_store, screen_dropship, search_apps, search_product_ideas, search_products, search_stores, source_map, suggest_product_ideas, trending_product_ideas, upgrade, whoami, winning_skus
Every block below points at https://mcp.neonjelly.io/c/{connect_token}/mcp. Pick your client and copy.
claude mcp add --transport http neonjelly https://mcp.neonjelly.io/c/{connect_token}/mcp{
"mcpServers": {
"neonjelly": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.neonjelly.io/c/{connect_token}/mcp"]
}
}
}{
"mcpServers": {
"neonjelly": {
"url": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}{
"servers": {
"neonjelly": {
"type": "http",
"url": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}{
"context_servers": {
"neonjelly": {
"url": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}{
"mcpServers": {
"neonjelly": {
"serverUrl": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}{
"mcpServers": {
"neonjelly": {
"url": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}name: Neonjelly
version: 0.0.1
schema: v1
mcpServers:
- name: Neonjelly
type: streamable-http
url: https://mcp.neonjelly.io/c/{connect_token}/mcp{
"mcpServers": {
"neonjelly": {
"httpUrl": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}{
"mcpServers": {
"neonjelly": {
"type": "http",
"url": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}{
"mcpServers": {
"neonjelly": {
"url": "https://mcp.neonjelly.io/c/{connect_token}/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.neonjelly.io%2Fc%2F%7Bconnect_token%7D%2Fmcp&type=streamable_http&id=neonjelly&name=Neonjelly
It answered our last check on 24 October 2026 in 65 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by neonjelly.io and served from mcp.neonjelly.io, the vendor's own domain: https://mcp.neonjelly.io/c/{connect_token}/mcp.
60, as returned by the server's own tools/list on 22 September 2026: assortment_watch, brief_market, change_tracker, cohort_tam, compare_stacks, compare_stores, competitor_moves, create_signal, and 52 more.
It answered our last check on 24 October 2026 in 65 ms. Over 6 checks since 11 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.neonjelly.io/c/{connect_token}/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.neonjelly. Endpoint host: mcp.neonjelly.io. ARD identifier: urn:air:io.neonjelly:mcp:mcp.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.