Kuaidi100 launched China's first MCP-protocol-compatible logistics information service platform. The core API services of Kuaidi100's Baidiy
E-commerce Sales Signals is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
E-commerce sales signals: Amazon bestsellers and reviews, eBay sold prices, TikTok Shop, Etsy sales.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --env 'APIFY_TOKEN=${APIFY_TOKEN}' --transport stdio e-commerce-sales-signals-mcp '--' uvx ecommerce-sales-mcp
# 2 — ask your agent for something these tools do
# junglee--amazon-bestsellers, junglee--amazon-reviews-scraper, caffein-dot-dev--ebay-sold-listings and 3 more
It needs APIFY_TOKEN: this reads it from your environment, so export it first.
E-commerce Sales Signals costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one can run either way — at an address its publisher runs, or as a process under your own user, with your files and your network — and this marketplace is in the path of neither.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. Claude Code reads APIFY_TOKEN (Your own Apify API token. Needed for tools/call; tools/list works without it) from your environment each time it starts the server, so the value stays out of its config: export it in your shell profile (macOS, Linux), or run setx APIFY_TOKEN … and open a new terminal (Windows). The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user --env 'APIFY_TOKEN=${APIFY_TOKEN}' --transport stdio e-commerce-sales-signals-mcp '--' uvx ecommerce-sales-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Its publisher also runs it at https://mcp.apify.com/?tools=junglee/amazon-bestsellers,junglee/amazon-reviews-scraper,caffein.dev/ebay-sold-listings,unseenuser/TikTok-Shop-Scraper,publicrecords/etsy-shop-velocity,publicrecords/etsy-search-scraper: nothing to start on your machine, and this marketplace is not in the path.
claude mcp add --scope user --transport http e-commerce-sales-signals-mcp 'https://mcp.apify.com/?tools=junglee/amazon-bestsellers,junglee/amazon-reviews-scraper,caffein.dev/ebay-sold-listings,unseenuser/TikTok-Shop-Scraper,publicrecords/etsy-shop-velocity,publicrecords/etsy-search-scraper'It reaches a system of yours, so it needs your own credential rather than the publisher’s: APIFY_TOKEN — Your own Apify API token. Needed for tools/call; tools/list works without it.. You set it in your own client’s config, on your machine — this marketplace never holds it.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
6 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Amazon Bestsellers Scraper. Scrape the Amazon Best Sellers categories and extract details on top 100 most popular items on Amazon. Download product name, price, URL, and thumbnail image. Best used on .com, .co.uk, .de, .fr, .es, and .it domains. Download your data in various formats: HTML table,…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| categoryUrls | array | yes | Pick one or a few Best Seller categories to scrape. If you enter a top-level category, all subcategories will be scraped (up to max depth). Category URL has to contain Best-Sellers , best-sellers or b |
| maxItemsPerStartUrl | integer | no | Enter the maximum number of results you want to scrape per each star URL. Note that Amazon has a hard limit of 100 bestsellers per category. Example: 100 |
| depthOfCrawl | integer | no | Amazon Best Sellers covers 42 main categories. Each of those have at least one more subcategory level. Setting this field to 2 will get you roughly 550 subcategories, each with 100 results. |
| language | string | no | Language to use on Amazon. Disclaimer: each Amazon domain has a different set of supported languages. If you choose a language that is not supported by the domain, the scraper will use the default |
| detailedInformation | boolean | no | Check this if you want to get the maximum amount of information about individual products. However, choosing this option means the scraper could take longer, since it is extracting more data. |
| useCaptchaSolver | boolean | no | If enabled the scraper will automatically solve captchas thrown by Amazon. This will decrease the amount of request retries and increase the speed of the scraper. *IMPORTANT* - This option works w |
Amazon Reviews Scraper. Amazon scraper to extract reviews from Amazon products. Scrape and download detailed reviews without using the Amazon API, including rating score, review description, reactions and images. Download your data as HTML table, JSON, CSV, Excel, XML. When to use: Use when you…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| productUrls | array | yes | Enter the URL or URLs of the Amazon products you want to scrape. (E.g., https://www.amazon.com/Sceptre-E248W-19203R-Monitor-Speakers-Metallic/dp/B0773ZY26F). Click + Add to scrape multiple URLs at onc |
| maxReviews | integer | no | Type in the amount of reviews to be scraped. Leave this blank if you want to extract all reviews. ❗ Note: max amount of reviews per product is 100 per star count (e.g. 100 reviews per 1 star), 100 per |
| includeGdprSensitive | boolean | no | Personal data such as name, ID or profile image is protected by GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate r |
| sort | string | no | Select by which criteria the reviews should be sorted. Amazon's default is Top reviews . Options: helpful = Top reviews; recent = Most recent. |
| reviewsCutoffDate | string | no | Limit how far back to the history the scraper should go. The date should be in YYYY-MM-DD or full ISO absolute format or in relative format e.g. 1 days, 2 months, 3 years. All time values are taken in |
| filterByRatings | array | no | Select the number of stars by which reviews should be filtered. Amazon's default is All stars . Duplicate reviews, caused by selecting overlapping ratings (e.g., 1 star and All critical ) will be filt |
| reviewsUseProductVariantFilter | boolean | no | If the product has multiple variants (e.g., different colors, sizes, etc.) , you can scrape reviews only for the selected variant. |
| reviewsFilterByKeywords | array | no | Enter keywords by which the reviews should be filtered. Each keyword is scraped separately, in a combination with Filter by ratings option. Duplicate reviews, caused by selecting overlapping keywords, |
| scrapeProductDetails | boolean | no | If enabled, the Actor will scrape and save product data the same way as the [Amazon Product Scraper](https://console.apify.com/actors/BG3WDrGdteHgZgbPK). The product details will be available in the ` |
| reviewsAlwaysSaveCategoryData | boolean | no | If enabled, the Actor will return the review category data even if there are no reviews. - Normally, only reviews are saved, if there are no reviews, the review category data is not saved. - With this |
| deduplicateRedirectedAsins | boolean | no | If set, the crawler will deduplicate the redirected ASINs (by default). Otherwise the product will be saved multiple times under the ASINs it was redirected to. |
eBay Sold Listings Search. Get confirmed eBay sold prices. Search by keyword across 8 marketplaces, filter by date range, and export clean structured data for comps, resale pricing, and market research. When to use: Use when you need what items actually sold for on eBay (sold comps) for a…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| keywords | array | no | One or more search keywords. Each keyword runs as a separate search with the same filters applied to all. Example: ["rtx 4080"] |
| keyword | string | no | Single search keyword. Deprecated: use the 'keywords' array field instead. |
| search | string | no | Deprecated: alias for the single-keyword keyword field. Use the keywords array instead. Accepted for backward compatibility with callers that send search. Backslash-escaped quotes (\") in the va |
| categoryId | string | no | eBay category ID — maps directly to the _sacat URL parameter. Enter ANY eBay category ID as free text; you are not limited to a preset list. Use "0" (the default) for All Categories. Don't know the |
| subcategoryId | string | no | Optional eBay subcategory ID — also maps to _sacat. Enter ANY subcategory ID as free text. When set, it overrides the Category field above. Leave blank to search at the category level. Full ID refer |
| ebaySite | string | no | eBay site to scrape from Options: ebay.com = eBay.com (US); ebay.co.uk = eBay.co.uk (UK); ebay.de = eBay.de (Germany); ebay.fr = eBay.fr (France); ebay.it = eBay.it (Italy); ebay.es = eBay.es (Spain); |
| daysToScrape | integer | no | Number of days back to scrape sold listings (default: 30) |
| count | integer | no | Number of listings to scrape (default: 100) |
| sortOrder | string | no | Sort order for the sold search results page. Options: endedRecently = Ended recently; timeNewlyListed = Time: newly listed; pricePlusPostageLowest = Price + postage: lowest first; pricePlusPostageHigh |
| minPrice | integer | no | Minimum sold price filter (search-page filter). |
| maxPrice | integer | no | Maximum sold price filter (search-page filter). |
| buyingFormat | string | no | Search-page buying format filter. Options: all = All; auction = Auction; buyItNow = Buy It Now; acceptsOffers = Accepts Offers. |
| itemLocation | string | no | Search-page item location filter. Options: default = Default; domestic = Domestic only; worldwide = Worldwide. |
| sellerCountry | string | no | Only return listings from sellers located in this country. Two-letter ISO code, e.g. JP or GB . When set, the Item location filter is ignored. If no listing matches, eBay can return listings from othe |
| postalCode | string | no | Delivery postal code for more accurate shipping prices, in the format of the selected eBay site (e.g. a ZIP code on ebay.com, SW1A 1AA on ebay.co.uk). Leave blank to use a central postcode for the sit |
| itemCondition | string | no | Search-page condition filter. Options: any = Any; new = New; used = Used. |
| conditionId | integer | no | Numeric eBay condition ID — overrides itemCondition when set. |
| sellerType | string | no | Filter by seller type. EU sites only — works on ebay.de, ebay.fr, ebay.it and ebay.es. On all other sites this filter is ignored and results are unfiltered. Options: any = Any; private = Private; busi |
| aspectFilter | object | no | eBay aspect facet filters, e.g. {"Brand": "Nike"}. Keys and values are double-encoded per eBay's convention. |
| includeCompletedListings | boolean | no | When true (default), includes eBay's Completed Listings filter alongside the Sold filter. This enables accurate detection of 'Best Offer Accepted' listings via the listingType and isBestOfferAccepted |
TikTok Shop Scraper [NO COOKIES] ✅. Extract product data, reviews, seller info, creator affiliates, and GMV/sales estimates from TikTok Shop at scale. Filter by category, price range, and country (US, UK). Built for dropshippers, e-commerce sellers, and DTC brands hunting trending products before…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mode | string | yes | Pick what you want to scrape. The matching section below has the same emoji. |
| searchKeywords | array | no | What you'd type into TikTok Shop's search bar. One per line. |
| shopUrls | array | no | Full store URLs. On the app, tap a shop name and copy the link. Format: https://www.tiktok.com/shop/store/ / |
| productUrls | array | no | Full product detail page URLs. Right-click any TikTok Shop product and copy the link. Format: https://www.tiktok.com/shop/pdp/ / |
| usernames | array | no | TikTok handles, one per line. The @ prefix is optional - both 'hyram' and '@hyram' work. |
| region | string | no | The United States is the only fully supported market and the only one this Actor is tested against. The other markets are selectable and sometimes return data, but they are unreliable and may come bac |
| sortBy | string | no | Only used in Shop Catalog mode. 'Best selling' surfaces a store's proven winners; 'Newest' surfaces what they just launched. Options: top = 🔥 Best selling (default); new_releases = 🆕 Newest releases |
| maxResults | integer | no | 0 = return all available results (no limit). Any other number is a limit per query, shop or creator: with 5 keywords and 100 here, you get up to 500 rows in total. There is no ceiling on this number. |
| maxReviewsPerProduct | integer | no | 0 = fetch every review the product has (no limit). Only used in Product Reviews mode. There is no ceiling here either, so be aware that popular products can carry tens of thousands of reviews and each |
| getRelatedVideos | boolean | no | Only used in Product Details mode. Adds a relatedVideoCount field. The affiliate videos themselves are returned either way, so this changes very little - it is hidden from the form and kept only so th |
Etsy Shop Sales Tracker & Scraper. Track Etsy shop sales counters with this Etsy shop scraper: measured sales counts with the date each was read. When to use: Use when you need how many sales an Etsy shop has made, or how fast shops are selling, filtered by shop name, title keyword, category or…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| shops | array | no | Etsy shop names (the part after etsy.com/shop/). Leave empty to use the keyword or category filters. Example: ["OrelCeramics","Bestickend"] |
| keywords | array | no | Case-insensitive words matched against the shop title and headline. |
| category | string | no | Exact panel category label, matched case-insensitively, e.g. "kids & baby > toys", "home & living > home decor > scatter cushions", "art & collectibles > fine art ceramics". The label is filled for ab |
| minSales | integer | no | Only shops at or above this sales counter. |
| since | string | no | ISO date. Return only shops whose counters changed since this date. Empty = all matching shops. |
| maxShops | integer | no | Upper bound on rows returned (and charged). |
Etsy Scraper — Listings, Prices & Best Sellers. Scrape Etsy search results by keyword, category or market page: title, price, rating, reviews, Bestseller and Star Seller badges, ad flag and search rank. When to use: Use when you need what ranks on Etsy for a keyword, category or market page:…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| queries | array | no | Keywords to search, one per line (e.g. ceramic mug). Each keyword lands on Etsy's /market page, then pages through Etsy's own search API — every listing on the page (rendered and lazy-loaded), in Etsy |
| sort | string | no | Order of results, as on Etsy's own sort menu. Applies to search keywords (a market phrase with a sort set runs as a keyword search). Options: relevance = Relevance (Etsy default); newest = Newest; pri |
| minPrice | integer | no | Leave empty for no minimum. |
| maxPrice | integer | no | Highest price to include, whole units. Leave empty for no maximum. |
| marketPhrases | array | no | Phrases for Etsy's /market/ pages (any phrase resolves). Example: personalized dog collar |
| categoryUrls | array | no | Etsy category pages, e.g. https://www.etsy.com/c/jewelry/necklaces (no query string). Read in Etsy's default order. |
| maxPages | integer | no | Pages per input, 1–20 (Etsy's own cap). On the Standby/MCP endpoint one call stops at 240 s and says so (truncated:true with pagesDone/pagesRequested); big jobs belong in a batch run. |
| maxItems | integer | no | Stop after this many listing rows across all inputs. Raise it (or set 0 for no cap) to get more pages. |
| maxCacheAgeHours | integer | no | Serve a keyword from our recent snapshot of the same search when it is at most this many hours old and holds every row you asked for; otherwise fetch live. Snapshot rows say data_source "cache", stale |
| fillLazyCards | boolean | no | Etsy renders 12 cards and lazy-loads the rest (48 more on page 1). On, the run fetches them the way Etsy's own page does, so you get the whole page in rank order. Off, you get the 12 rendered cards pe |
| is_best_seller | boolean | no | Only return listings marked Bestseller. |
| is_star_seller | boolean | no | Only return listings from Star Seller shops. |
| free_shipping | boolean | no | Only return listings with free shipping. |
| is_discounted | boolean | no | Only return listings currently on sale. |
| instant_download | boolean | no | Only return digital download listings. |
| is_handmade_only | boolean | no | Only return listings Etsy flags as handmade. |
| is_personalizable | boolean | no | Only return listings that offer personalization. |
| max_processing_days | integer | no | Only return listings whose processing time is at most this many days (Etsy's ready-to-ship filter). |
| ship_to | string | no | Two-letter code, e.g. US, GB, DE. |
| source | string | no | Optional free-text label for this run (for example the Make template that started it). Copied onto every listing row and onto RUN_SUMMARY so template runs can be filtered. Leave empty if you do not ne |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install E-commerce Sales Signals or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.2.1. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish E-commerce Sales Signals can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.