E-commerce Search & Rankings MCP
Retrieves AliExpress keyword search results, including price, original price, discount, rating, and sales volume by ship-to country.
Retrieves Amazon search results and product pages by keyword, category, or URL, including title, price, rating, review count, ASIN, seller, and position.
Retrieves eBay search and category results across multiple marketplaces with keyword, price, condition, and seller filters.
Retrieves Etsy search results by keyword, category, or market page, including title, price, rating, reviews, badges, ad flag, and search rank.
Retrieves Google Shopping results, including products, prices, merchants, reviews, and offer links.
Retrieves the full catalog of any public Shopify store, including variant prices, SKUs, and stock status.
Retrieves Walmart.com and Walmart.ca search and category pages, including product name, price, availability, rating, and seller.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@E-commerce Search & Rankings MCPCompare top Amazon, eBay, and Walmart results for wireless earbuds by price and rating."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
E-commerce Search & Rankings MCP: Amazon, eBay, Walmart, Google Shopping, AliExpress, Shopify, Etsy
Marketplace search results and product rankings as MCP tools, in one bundle: what shows up, in what order and at what price when a shopper searches Amazon, eBay, Walmart, Google Shopping, AliExpress or Etsy, plus full catalogs of any public Shopify store. One hosted endpoint, one Actor per marketplace.
Hosted remote MCP server (Streamable HTTP) on Apify's MCP gateway. Client config plus a small open-source stdio proxy server. No Actor source.
Disclosure: entries marked "(maintained by us)" are Actors I maintain on Apify Store (publisher publicrecords). Every other Actor is independent, made by its own publisher and picked on merit (Store usage, ratings and recent maintenance). This repo is not affiliated with those publishers or with the sites the Actors read.
MCP endpoint
https://mcp.apify.com/?tools=junglee/Amazon-crawler,delicious_zebu/ebay-product-listing-scraper,e-commerce/walmart-fast-product-scraper,epctex/google-shopping-scraper,piotrv1001/aliexpress-listings-scraper,autofacts/shopify,publicrecords/etsy-search-scraperAuth: sign in with Apify (OAuth) when your client prompts, or send an Apify API token as a Bearer token. Runs are billed on your own Apify account under each Actor's own Store pricing; see each Store page.
Related MCP server: Kettu Marketplace Intelligence
Tools
Actor | Store page | MCP tool | What it returns |
Amazon Product Scraper |
| Amazon search results and product pages by keyword, category or URL: title, price, rating, review count, ASIN, seller, position. | |
eBay Listings Scraper |
| eBay search and category results across 8 marketplaces with keyword, price, condition and seller filters. | |
Walmart Fast Product Scraper |
| Walmart.com and Walmart.ca search and category pages: name, price, availability, average rating, seller. | |
Google Shopping Insights |
| Google Shopping results: products, prices, merchants, reviews and offer links. | |
AliExpress Search Scraper |
| AliExpress keyword search: price, original price, discount, rating and sales volume in your ship-to country. | |
Shopify Scraper |
| Any public Shopify store's catalog: every variant's price, SKU and stock status. | |
Etsy Search Scraper (maintained by us) |
| Etsy search results by keyword, category or market page: title, price, rating, reviews, Bestseller and Star Seller badges, ad flag and search rank. |
The Apify gateway also exposes helper tools to read run results (get-actor-run, get-dataset-items). Want fewer tools? Drop any Actor from the tools= list.
Who it's for
Sellers and brands: where does my product rank for a keyword on each marketplace?
Pricing teams: what do the top results for a query cost on Amazon, Walmart and Google Shopping today?
Dropshippers and sourcing: which AliExpress listings sell the most for a keyword?
Market research: how crowded is a niche across marketplaces?
Example prompts
Search Amazon, eBay and Walmart for
<keyword>and compare the top 10 results by price and rating.Which Etsy listings rank on page one for
<keyword>, and which carry a Bestseller badge or are ads?Find Google Shopping offers for
<product>and list the cheapest merchants.Pull the full catalog of
<shopify-store-url>with prices and stock status.
Cursor / Claude Code / any remote-MCP client
{
"mcpServers": {
"ecommerce-search": {
"url": "https://mcp.apify.com/?tools=junglee/Amazon-crawler,delicious_zebu/ebay-product-listing-scraper,e-commerce/walmart-fast-product-scraper,epctex/google-shopping-scraper,piotrv1001/aliexpress-listings-scraper,autofacts/shopify,publicrecords/etsy-search-scraper"
}
}
}Claude Code:
claude mcp add --transport http ecommerce-search "https://mcp.apify.com/?tools=junglee/Amazon-crawler,delicious_zebu/ebay-product-listing-scraper,e-commerce/walmart-fast-product-scraper,epctex/google-shopping-scraper,piotrv1001/aliexpress-listings-scraper,autofacts/shopify,publicrecords/etsy-search-scraper"Claude Desktop (local bridge)
{
"mcpServers": {
"ecommerce-search": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "junglee/Amazon-crawler,delicious_zebu/ebay-product-listing-scraper,e-commerce/walmart-fast-product-scraper,epctex/google-shopping-scraper,piotrv1001/aliexpress-listings-scraper,autofacts/shopify,publicrecords/etsy-search-scraper"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}Local stdio server (open source)
This repo also ships a small MCP server in src/ for clients that only run local stdio servers. It answers initialize and tools/list locally from tools.json, which is generated from each Actor's public input schema and checked for drift in CI and weekly, so any client or directory can inspect the tools with no token. tools/call is forwarded to the hosted Apify MCP endpoint above with your own APIFY_TOKEN; without a token a call returns a clear error instead of running anything. The token is only sent in the Authorization header and is never logged.
{
"mcpServers": {
"ecommerce-search": {
"command": "npx",
"args": ["-y", "github:GeminiGeorge22/ecommerce-search-rankings-mcp"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}Or from a clone:
git clone https://github.com/GeminiGeorge22/ecommerce-search-rankings-mcp.git
cd ecommerce-search-rankings-mcp && npm install
APIFY_TOKEN=YOUR_APIFY_TOKEN node src/server.jsOptional env: APIFY_ACTORS (comma-separated subset of the Actors above) and APIFY_MCP_URL (full endpoint override).
Tests run against an in-memory mock server, with no network and no token: npm test. Requires Node.js 18+.
Python (uvx/pip)
A matching Python version of this server lives in python/, built on the official mcp Python SDK: same tools, same APIFY_TOKEN, same hosted endpoint. Requires Python 3.10+.
{
"mcpServers": {
"ecommerce-search-rankings": {
"command": "uvx",
"args": ["ecommerce-search-rankings-mcp"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}Or with pip: pip install ecommerce-search-rankings-mcp, then run ecommerce-search-rankings-mcp. Python tests: cd python && pip install -e ".[test]" && env -u APIFY_TOKEN python -m pytest.
See also
ecommerce-sales-mcp: E-commerce sales signals
forecast-accuracy-mcp: Forecast accuracy and track records
sports-betting-stats-mcp: Sports betting odds and stats
sports-odds-mcp: Kambi sportsbook odds
etsy-sales-mcp: Etsy search and shop sales
ats-jobs-mcp: ATS job postings (Greenhouse, Lever, Ashby, SmartRecruiters)
gov-tenders-mcp: Government tenders and grants
Registry
Official MCP Registry name: io.github.GeminiGeorge22/ecommerce-search-rankings-mcp
License
MIT, for this documentation, config and the proxy server code in src/. Each Actor belongs to its publisher.
Available Tools
7 toolsautofacts--shopifyShopify Scraper - Products, Prices, Stock & InventoryARead-onlyInspect
Shopify Scraper - Products, Prices, Stock & Inventory. A Shopify product scraper for any public Shopify store: every variant's price, SKU and stock status, with barcodes, real inventory counts, videos and subscription plans where available. Crawl a whole catalog, a collection, one product URL or a keyword search. No API key needed.
When to use: Use when you need the product catalog of a public Shopify store: variants, prices, SKUs and stock.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "autofacts/shopify" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/autofacts/shopify
| Name | Required | Description | Default |
|---|---|---|---|
| proxy | No | Select proxies to be used by your crawler. | |
| query | No | Search query to find products. | |
| startUrls | Yes | Start URLs of Shopify site to start the actor. Site root url, category page urls, product page urls are all supported. Example: [{"url":"https://kith.com/collections/kith-tops"}] | |
| maxResults | No | Maximum number of results to return. Hidden parameter, overrides maxRequestsPerCrawl if set. | |
| grabRealInventory | No | Fetch each product's real per-variant inventory count from its product JSON. Billed as a separate event for every product that comes back with a real stock count. On collection crawls it also adds one request per product. Only works for stores that expose inventory in their storefront JSON — others report inventory as unknown, and are not billed for it. Off by default. | |
| grabContentSections | No | Also return the labelled information panels the store shows outside the description - tabs and accordions such as Features, Includes, Materials or Care - as the site renders them, in a `contentSections` field. Labels are kept exactly as shown, so panels like Shipping or Returns come along too and are yours to filter. Costs one extra page request per product on stores that have them; stores that have none are detected and skipped. Billed per product that actually returns panels. | |
| maxInventoryFetches | No | Hard cap on the extra per-product detail fetches used to read inventory on collection crawls. Advanced, not shown in the form: unlimited unless set. Pass a number in the JSON input to cap the run. Only applies when 'Grab real inventory' is enabled. | |
| maxRequestsPerCrawl | No | The maximum number of records saved to the dataset. Each record is one billed result, so this is also the run's cost cap. The scraper stops when the limit is reached. If set to 0 , there is no limit — use the run's Max total charge setting to bound spend instead. | |
| grabStorefrontDetail | No | Fetch each product's storefront payload for selling plans (subscriptions, pre-orders), video media, and the product's price span. Applies to collection crawls only — product URLs always fetch this payload, because it is where their stock availability comes from. Costs one extra request per product on collection crawls, and is not billed as a separate event. Off by default. | |
| maxStorefrontFetches | No | Hard cap on the extra per-product storefront fetches on collection crawls. Advanced, not shown in the form: unlimited unless set. Pass a number in the JSON input to cap the run. Only applies when 'Grab storefront detail' is enabled; product URLs are already bounded by the record limit. | |
| maxContentSectionFetches | No | Caps how many product pages the panel extraction may fetch in one run. Advanced, not shown in the form: unlimited unless set. Pass a number in the JSON input to cap the run. Only applies when "Grab product information panels" is on; a product URL is not capped by this. | |
| maxRecommendationsPerProduct | No | The maximum number of recommended products to fetch per product. Recommendations are returned nested inside the product record and are billed per recommended product, so a value of 20 can cost up to 20 extra events per product. Set to 0 to disable. Default is 0, max is 20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, openWorldHint, non-destructive), the description discloses that the call starts a run on Apify's hosted gateway, requires the caller's own APIFY_TOKEN, spends the caller's Apify account credits, and returns dataset rows plus run/dataset IDs for paging. It does not describe run latency or whether the call blocks until the run completes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the capability, then segmented into When to use / Returns / Behavior / Docs, so an agent can scan the decision-relevant part first. No sentence is filler; the only redundancy is the title echoed as the opening line, which is minor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter actor with no output schema, the definition still covers what comes back (one JSON row per result, plus run/dataset IDs for paging), the auth model, cost implications, and read-only safety. It leaves the mechanics of paging a dataset with those IDs unstated and gives no sense of run duration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the per-parameter descriptions are unusually rich (billing events, caps, defaults, interactions between flags), so the schema already carries the semantics. The prose names no parameter and adds no syntax, only loosely implying that optional flags exist for inventory, videos and subscription plans. Baseline 3 is appropriate when the schema does this much work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ("A Shopify product scraper for any public Shopify store") and enumerates the payload (variant price, SKU, stock, barcodes, inventory counts, videos, subscription plans) plus the four supported crawl modes. Because every sibling in the list is tied to a different marketplace (Amazon, eBay, Walmart, AliExpress, Etsy, Google Shopping), naming Shopify alone is sufficient differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit "When to use" clause scoped to public Shopify stores and need for catalog/pricing/stock data, and it clarifies the input modes (whole catalog, collection, single product URL, keyword search). It stops short of stating when NOT to use it or naming an alternative tool for private/admin APIs or non-Shopify stores.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delicious_zebu--ebay-product-listing-scrapereBay Scraper - Listings, Prices & 8 MarketsARead-onlyInspect
eBay Scraper - Listings, Prices & 8 Markets. Scrape eBay search results, filtered listings and category pages across 8 marketplaces. Build a search from built-in filters - keywords, category, price, condition, seller, location - or paste URLs. Returns title, price, currency, condition, seller rating, shipping, sold count and more.
When to use: Use when you need active eBay search results or category listings with price, condition, seller rating, shipping and sold count.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "delicious_zebu/ebay-product-listing-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/delicious_zebu/ebay-product-listing-scraper
| Name | Required | Description | Default |
|---|---|---|---|
| sortBy | No | Order of the results, matching eBay's own "Sort" dropdown on the listing page. This setting overrides any sort order already present in your input URL. Options: 12 = Best Match; 1 = Time: ending soonest; 10 = Time: newly listed; 15 = Price + Shipping: lowest first; 16 = Price + Shipping: highest first; 7 = Distance: nearest first. | 12 |
| sellers | No | eBay seller usernames (the seller's user ID), comma-separated, e.g. nike_store, best_deals_99. Use 'Sellers mode' below to keep only these sellers or to exclude them. | |
| category | No | Limit the search to one main eBay category. For a sub-category, paste a category page URL under 'Option 2 — Search by URL' instead. | 0 |
| ebaySite | No | Which eBay country site to run the search on. This changes the marketplace itself — currency, language, and which listings appear (e.g. eBay Germany shows German listings in EUR). Only affects the advanced search above; pasted URLs in Option 2 keep their own site. Note: on non-English sites, a few text fields (item location, shipping, sold, watchers) may occasionally be empty. Options: www.ebay.com = United States (ebay.com); www.ebay.co.uk = United Kingdom (ebay.co.uk); www.ebay.de = Germany (… | www.ebay.com |
| keywords | No | Search terms — one per line. Each runs as a separate eBay search using the filters below. You can also enter an item number, or use eBay syntax like an "exact phrase" in quotes. Example: ["High-speed infrared sensor"] | |
| maxPages | No | How many result pages to scrape per URL. Each page has up to 240 items. Leave at 0 to scrape every page, or set a number to stop early (e.g. 5). | |
| maxPrice | No | Highest price to include, in the currency of the marketplace set by 'eBay site' above (e.g. USD on ebay.com, EUR on ebay.de). | |
| minPrice | No | Lowest price to include, in the currency of the marketplace set by 'eBay site' above (e.g. USD on ebay.com, EUR on ebay.de). | |
| condition | No | Item condition, matching eBay's advanced search. 'New' and 'Used' are broad and work across all categories. Options: = Any; 1000 = New; 3000 = Used; 10 = Not specified. | |
| locatedIn | No | Only items physically located in this country. Different from 'Proxy country', which sets the IP location used to load eBay's localized pages. | |
| availableTo | No | Only items that ship to this country. Different from 'Located in', which is where the item physically is. | |
| listingUrls | No | List of eBay listing page URLs (e.g., https://www.ebay.com/sch/i.html?_nkw=dresses or https://www.ebay.com/sch/i.html?_from=R40&_nkw=shoe&_sacat=0&Brand=Nike&rt=nc&Occasion=Wedding&_dcat=93427) | |
| sellersMode | No | Whether the sellers above are included or excluded. Only takes effect when 'Sellers' is filled in. Options: 1 = Include only these sellers; 2 = Exclude these sellers. | 1 |
| buyingFormat | No | How the item is sold. Only one format applies at a time, matching eBay (which uses a single buying format). Leave as 'Any' to include all formats. Options: = Any; LH_BIN = Buy It Now; LH_Auction = Auction; LH_BO = Accepts offers; LH_CAds = Classified ads. | |
| freeShipping | No | Only show items with free shipping. | |
| keywordMatch | No | How keywords are matched, same as eBay's advanced search. Options: 1 = All words, any order; 2 = Any words, any order; 3 = Exact words, exact order; 4 = Exact words, any order. | 1 |
| proxyCountry | No | Which country's eBay results to load. eBay shows different prices, shipping, currency, and listings by country, so pick the country whose view you want (e.g. United States to see what a US shopper sees). This is different from the 'Located in' filter, which is where items are physically located. Options: US = United States; GB = United Kingdom; DE = Germany; AU = Australia; CA = Canada; FR = France; IT = Italy; ES = Spain; JP = Japan; NL = Netherlands; HK = Hong Kong; SG = Singapore; BR = Brazi… | US |
| splitByPrice | No | eBay only shows the first 100 pages of a search (up to 24,000 listings), and often far fewer when sorted by Best Match. Turn this on to get everything: the Actor splits your search into smaller price ranges that eBay can show in full, collects them one by one, and removes duplicates. Listings are then sorted newest first. Works for keyword searches and eBay search URLs (not category pages), and only when 'Max pages per URL' is 0. Popular keywords can have hundreds of thousands of listings, so s… | |
| excludeKeywords | No | Skip listings that contain these words. | |
| searchTitleDescription | No | Also search within item descriptions, not just titles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, non-destructive and non-idempotent, so that ground is covered; the description still adds real value by disclosing that each call starts one run of a specific Apify Actor via mcp.apify.com, requires the caller's own APIFY_TOKEN, and runs against the caller's Apify account. It also notes the run/dataset IDs used to page through the full dataset, though it does not state that runs consume paid Apify credits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sectioned as When to use / Returns / Behavior, with scope stated first, so it is easy to scan. The opening sentence redundantly repeats the title and the field list slightly overlaps the Returns paragraph, but there is no filler prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter scraper with no output schema, the description covers the essentials: what it returns (one row per result plus run/dataset IDs for paging), where it executes, and what credentials are needed. It is only marginally thin on pagination semantics and cost implications, which the maxPages and splitByPrice schema fields partially cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and every parameter carries enum value explanations, so the schema already does the heavy lifting. The description adds only a summary list of filter families (keywords, category, price, condition, seller, location) and no new meaning beyond it, which is the baseline case for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('scrape eBay search results, filtered listings and category pages across 8 marketplaces') and enumerates the returned fields, which makes it immediately distinguishable from the Amazon, Walmart, AliExpress and Etsy scrapers in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a labeled 'When to use' line, but it largely restates the capability ('active eBay search results or category listings') rather than giving discriminating conditions. It never says when not to use it, nor when to prefer the keyword-filter path over pasting listing URLs, which is the main decision an agent faces with this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
e-commerce--walmart-fast-product-scraperWalmart Fast Product ScraperARead-onlyInspect
Walmart Fast Product Scraper. Scrape product data from Walmart.com and Walmart.ca search and category pages, including name, priceInfo, availability, averageRating, and sellerName. Export data, run via API, schedule and monitor runs, or integrate with other tools.
When to use: Use when you need Walmart.com or Walmart.ca search or category results with price, availability, rating and seller.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "e-commerce/walmart-fast-product-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/e-commerce/walmart-fast-product-scraper
| Name | Required | Description | Default |
|---|---|---|---|
| startUrls | Yes | One or more Walmart search or category page URLs to scrape, for example https://walmart.com/search?q=tshirt. Each page is read in listing order, and its products are collected up to the limit set in Max products (per start URL). | |
| maxProductsPerStartUrl | No | The maximum number of products to scrape from each start URL, for example 10. Products are collected in listing order until this limit is reached. Example: 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-idempotent/non-destructive, but the description adds genuinely new context: it starts a run of a named Apify Actor through the mcp.apify.com gateway, requires the caller's own APIFY_TOKEN, consumes the caller's Apify account, and creates run and dataset records. It also clarifies that 'read-only' refers to the source site, resolving what would otherwise look like a tension with the account-side writes. It does not mention rate limits, run duration, or cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and segmented with When to use / Returns / Behavior / Docs, which is easy to scan. Minor waste: the leading 'Walmart Fast Product Scraper.' restates the title, and the marketing line 'Export data, run via API, schedule and monitor runs, or integrate with other tools' does not help an agent decide or call correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters and no output schema, the description covers everything an agent needs: input expectation (search/category URLs), return shape (one JSON row per result plus run and dataset IDs for paging), execution model, and auth requirement. Nothing material is left for the caller to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both startUrls and maxProductsPerStartUrl documented in the schema including an example URL and the listing-order collection rule. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: scrape Walmart.com and Walmart.ca search and category pages, and enumerates the extracted fields (name, priceInfo, availability, averageRating, sellerName). The marketplace domain alone separates it from every listed sibling (Amazon, eBay, AliExpress, Etsy, Google Shopping, Shopify).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'When to use' line scopes it to Walmart search or category results with price, availability, rating and seller. It gives no when-not conditions or named alternatives among the sibling marketplace scrapers, so the agent must infer that other retailers are out of scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epctex--google-shopping-scraperGoogle Shopping InsightsARead-onlyInspect
Google Shopping Insights. Unlock valuable insights from Google Shopping with our Data Extractor. Get reviews, descriptions, prices, merchant details, and affiliation links.
When to use: Use when you need Google Shopping results for a query: product, price, merchant and reviews across stores.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "epctex/google-shopping-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/epctex/google-shopping-scraper
| Name | Required | Description | Default |
|---|---|---|---|
| queries | No | (Required if you don't use 'Input URL') Here you can provide a list of search queries as a Javascript array. This takes precedence over 'Input URL'. Example: ["iPhone"] | |
| maxItems | No | Maximum number of listing items that you want as output. Default is all Example: 60 | |
| startUrls | No | URLs to start with. It should be list or detail URL Example: ["https://www.google.com/search?q=android&source=lnms&tbm=shop&tbs=vw:l"] | |
| countryCode | No | Country determines the IP address of the proxy used for the query and the Google Shopping domain (e.g. google.es for Spain). This setting only applies to Search queries , but not to URLs . | us |
| maxItemsPerQuery | No | Maximum number of listing items that you want as output per each query. Default is all Example: 100 | |
| includeComparisonPrices | No | (Optional) If you want to include the other shop prices, you can select this option as true. Please keep in mind that this option will slightly increase the total resource consumption. | |
| includeSponsoredResults | No | (Optional) If enabled, sponsored products will be included in the results. | |
| includeExtraProductDetails | No | (Optional) If enabled, the output will include additional product details. Note: Enabling this will increase scraping time and resource usage due to extra requests. This option is ignored if 'Include Comparison Prices' is enabled, as extra details are already included in that mode. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, non-idempotent, non-destructive, so credit goes to what the description adds: the tool launches a run of the 'epctex/google-shopping-scraper' Actor via Apify's mcp.apify.com gateway, requires the caller's own APIFY_TOKEN, and bills the caller's Apify account. It also explains that the response carries run and dataset IDs for paging the full dataset. It does not quantify cost or latency beyond the schema's 'resource consumption' notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded with labeled 'When to use', 'Returns', and 'Behavior' sections and a docs link, so an agent can scan it quickly. The 'Unlock valuable insights from Google Shopping with our Data Extractor' sentence largely restates the title and could be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, no-output-schema scraping tool the description covers the essentials: what it returns (one row per result plus paging IDs), that it is a hosted Actor run requiring auth, and that it is read-only. Nothing critical is missing, though the absence of an output schema means field-level expectations rely on the summary sentence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (queries, startUrls, countryCode, maxItems, maxItemsPerQuery, and the three include* toggles) is already documented, including precedence rules and enum semantics. The description adds nothing param-specific — it describes output fields rather than how to drive queries, URL vs. query precedence, or country selection. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: extracts Google Shopping results containing reviews, descriptions, prices, merchant details, and affiliation links, and the 'When to use' line narrows it to product/price/merchant/review queries across stores. The resource itself (Google Shopping) differentiates it from the Amazon/eBay/Walmart/AliExpress/Shopify/Etsy siblings without needing to name them. The opening 'Unlock valuable insights' is marketing filler, but the substance behind it is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The explicit 'When to use' clause gives a clear trigger condition (need Google Shopping results for a query across stores). It stops short of exclusions or naming an alternative sibling scraper for non-Google sources, so the agent still has to infer routing from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
junglee--Amazon-crawlerAmazon Product ScraperARead-onlyInspect
Amazon Product Scraper. Use this Amazon scraper to collect data based on URL and country from the Amazon website. Extract product information without using the Amazon API, including reviews, prices, descriptions, and Amazon Standard Identification Numbers (ASINs). Download data in various structured formats.
When to use: Use when you need Amazon product details or search/category results (title, price, ASIN, rating, reviews count) from product, search or category URLs.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "junglee/Amazon-crawler" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/junglee/Amazon-crawler
| Name | Required | Description | Default |
|---|---|---|---|
| zipCode | No | The zip code to use as the delivery location. This is useful for more precise location settings, especially in larger countries. | |
| language | 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 language of the domain. | |
| maxOffers | No | Enter the maximum number of offers you want to scrape per each product. This will let the scraper know when to stop. Note that this **will increase the number of requests** and **extend the scraping time**. | |
| countryCode | No | The country code to use as the delivery location. | |
| proxyCountry | No | You can set proxy country to **avoid geo-blocking** and **access region-specific content**. Amazon shows you the products that can be shipped to your address based on the proxy you use. *By default*, the scraper **automatically selects** the **proxy country** based on the used Amazon website domain, ensuring low blocking rates and results relevant to the base domain. | AUTO_SELECT_PROXY_COUNTRY |
| scrapeSellers | No | Enable this option to extract further information about sellers of the product. Scrapes the featured offer seller (main seller). This option goes hand in hand with the `maxOffers` option bby scraping the seller of each offer. If you set `maxOffers` to 0, only the featured offer seller will be scraped. Note that this **will increase the number of requests** and **extend the scraping time**. | |
| useCaptchaSolver | 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 well only for the `'.com'` Amazon domain, but even for that one Amazon doesn't show a few product fields after solving a captcha (specifically: 'attributes', 'manufacturer attributes', and 'bestseller ranks') | |
| maxItemsPerStartUrl | No | Enter the maximum number of results you want to scrape per each star URL. This will let the scraper know when to stop. Example: 100 | |
| scrapeProductDetails | No | If enabled, the scraper will extract each found product from the category page in detail (this is the default behavior). If disabled, the scraper will only extract the quick product information from the category page. Useful for faster and more lightweight searches for products. | |
| categoryOrProductUrls | Yes | Use a link to the Amazon category you want to scrape, e.g. video games - https://www.amazon.com/s?bbn=16225016011&rh=n%3A20972781011, https://www.amazon.com/dp/B0B3BVWJ6Y. You can also filter within the category with almost any filter available, i.e. price, manufacturer, rating, etc. By using a different URL you can also choose a different Amazon country, e.g. Germany: https://www.amazon.de/. You don't need to set a proxy country to do that. Example: [{"url":"https://www.amazon.com/s?k=keyboard… | |
| locationDeliverableRoutes | No | The list of routes/page types, for which the deliverable location settings should be applied. - This is useful for speeding up the scraping process by not applying the location settings to all pages, for which you don't need the localized data for. - For example, you can set it to `['SEARCH', 'PRODUCT']` to apply the location settings only to search and product pages. - By default, all pages are included. | |
| maxSearchPagesPerStartUrl | No | Enter the maximum number of search pages to scrape for each start URL. E.g. only scrape the first 5 pages. This field can also be used with the `maxItemsPerStartUrl` option, the scraper will stop after either one of these limits is reached. Example: 9999 | |
| scrapeProductVariantPrices | No | Enable this option to extract prices of different variations of a product. Useful when you need prices for each variant. Note that this **will increase the number of requests** and **extend the scraping time**. | |
| maxProductVariantsAsSeparateResults | No | Enter the maximum number of product variants you want to scrape per each product, outputted as separate results. **Please beware** that **you can already get** most of the **variant details** changes, in the **`variantDetails` field**, which is outputted by default. Note that this **will increase the number of requests** and **extend the scraping time**. Example: 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, openWorld, non-idempotent, and non-destructive behavior, and the description adds meaningful context beyond them: each call starts one run of the Apify Actor through the mcp.apify.com gateway, consumes the caller's own APIFY_TOKEN and Apify account, and only reads public data. It does not mention cost/credit consumption or run duration, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded into 'When to use', 'Returns', and 'Behavior' sections, making it easy to scan. The opening sentence partially duplicates the title, and the docs URL at the end is filler but harmless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter scraper with no output schema, the description explains what comes back (dataset rows as JSON, one per result, plus run and dataset IDs for paging), how the run is executed, and the auth requirement. It does not say how the caller should page the full dataset or what happens on long runs, so it is strong but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 14 parameters, including enums and their defaults; the baseline of 3 applies. The description only echoes 'URL and country' and adds no guidance on interplay between options such as maxOffers, scrapeProductDetails, or proxyCountry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: scrape Amazon product, search, or category URLs and extract reviews, prices, descriptions, and ASINs without the Amazon API. The title plus the enumeration of extractable fields clearly separates it from siblings like the eBay, Walmart, and AliExpress scrapers. It loses a point only because the opening sentence ('collect data based on URL and country') is vaguer than the details that follow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'When to use' section names the exact trigger: needing Amazon product details or search/category results from product, search, or category URLs. It gives a clear context but never names an alternative tool or states when NOT to use this one, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
piotrv1001--aliexpress-listings-scraperAliExpress Search Scraper | Price Tracker & Best SellersARead-onlyInspect
AliExpress Search Scraper | Price Tracker & Best Sellers. Search AliExpress by keyword or paste search URLs and get product listings with price, original price, discount, rating and sales volume, in your ship-to country and currency. For AliExpress price tracking, dropshipping product research and competitor analysis.
When to use: Use when you need AliExpress search results with price, discount, rating and sales volume for a ship-to country.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "piotrv1001/aliexpress-listings-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/piotrv1001/aliexpress-listings-scraper
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | The order of results, the same choices as the sort bar on AliExpress. Most orders sorts each results page by units sold. Options: bestMatch = Best match; orders = Most orders; priceAsc = Price: low to high; priceDesc = Price: high to low. | bestMatch |
| shipTo | No | The country you buy for. Prices (including VAT where the country charges it on imports, such as the EU and UK), delivery estimates and the products shown all follow this country, as on AliExpress itself. Pick from the list or type a country code or name, for example DE or Germany. Default: United States. | US |
| currency | No | The currency for every price, for example EUR or GBP. Default: USD. | USD |
| maxPrice | No | Only products priced at or below this, in the currency chosen above. Leave empty for no maximum. | |
| minPrice | No | Only products priced at or above this, in the currency chosen above. Leave empty for no minimum. | |
| minOrders | No | Only products with at least this many units sold (the totalSoldCount field). For a high minimum, sort by Most orders so the run finds them quickly. | |
| minRating | No | Only products rated at least this many stars out of 5, for example 4.5. Products with no rating yet are left out. | |
| choiceOnly | No | Only products in the AliExpress Choice program, which comes with faster delivery and easier returns. | |
| maxResults | No | Maximum number of products to return per run, across all search terms and URLs. Each AliExpress results page holds 60 products, so higher values fetch additional pages. | |
| searchUrls | No | Optional. Paste AliExpress search result URLs to scrape them exactly as-is — useful when you have already applied filters on the site. Combined with any search terms above. | |
| searchQueries | No | What to search for on AliExpress, one term per line. The Actor builds the search URL for you — this is the easiest way to start. Example: ["wireless earbuds"] | |
| proxyConfiguration | No | AliExpress blocks datacenter traffic aggressively. Leaving this on the default lets the Actor start on cheap proxies and fall back to residential only when it is actually blocked. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag read-only, open-world, non-destructive, non-idempotent, but the description adds material context: it starts a run of a specific Apify Actor via mcp.apify.com using the caller's own APIFY_TOKEN and Apify account, and returns dataset rows plus run/dataset IDs for paging. That auth/account/cost-bearing detail is exactly the kind of behavior an agent cannot infer from structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and clearly structured with 'When to use', 'Returns' and 'Behavior' labels, making it skimmable. Minor waste: the opening sentence restates the tool title verbatim, and the 'When to use' line repeats the field list from the purpose sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter scraping tool with no output schema, the description supplies the missing return-shape information and the auth/execution model, which is what an agent most needs. It stops short of noting run cost/credits or runtime expectations, but nothing essential for correct invocation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the per-parameter docs are unusually thorough (e.g. minOrders references totalSoldCount and recommends pairing with 'orders' sort; maxResults explains 60-per-page pagination). The description only restates the ship-to/currency dimension already covered by the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search AliExpress by keyword or paste search URLs') and enumerates the returned fields (price, original price, discount, rating, sales volume) scoped to ship-to country and currency. Sibling tools are other marketplaces (Amazon, eBay, Walmart, Etsy), so the AliExpress specificity alone differentiates it cleanly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The dedicated 'When to use' block gives clear triggering context: you need AliExpress search results with price/discount/rating/sales volume for a ship-to country. It lacks explicit exclusions or named alternatives (e.g. when to prefer a product-detail scraper or a different marketplace scraper), so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publicrecords--etsy-search-scraperEtsy Scraper — Listings, Prices & Best SellersARead-onlyInspect
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: position, price, rating, review count, Bestseller/Star Seller badges and whether the listing is an ad.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "publicrecords/etsy-search-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/publicrecords/etsy-search-scraper
| Name | Required | Description | Default |
|---|---|---|---|
| sort | 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; price_asc = Price: low to high; price_desc = Price: high to low; top_reviews = Top customer reviews. | relevance |
| source | 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 need it. | |
| queries | 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's rank order. Example: ["ceramic mug"] | |
| ship_to | No | Two-letter code, e.g. US, GB, DE. | |
| maxItems | No | Stop after this many listing rows across all inputs. Raise it (or set 0 for no cap) to get more pages. | |
| maxPages | 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. | |
| maxPrice | No | Highest price to include, whole units. Leave empty for no maximum. | |
| minPrice | No | Leave empty for no minimum. | |
| categoryUrls | No | Etsy category pages, e.g. https://www.etsy.com/c/jewelry/necklaces (no query string). Read in Etsy's default order. | |
| fillLazyCards | 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 per page only (faster, fewer requests on your proxy). | |
| free_shipping | No | Only return listings with free shipping. | |
| is_discounted | No | Only return listings currently on sale. | |
| marketPhrases | No | Phrases for Etsy's /market/ pages (any phrase resolves). Example: personalized dog collar | |
| is_best_seller | No | Only return listings marked Bestseller. | |
| is_star_seller | No | Only return listings from Star Seller shops. | |
| instant_download | No | Only return digital download listings. | |
| is_handmade_only | No | Only return listings Etsy flags as handmade. | |
| maxCacheAgeHours | 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 true and as_of (when they were read live), and are charged like live rows. 0 = always fetch live. | |
| is_personalizable | No | Only return listings that offer personalization. | |
| proxyConfiguration | No | Etsy blocks datacenter IPs. Default: Apify Proxy RESIDENTIAL, included in the event prices (no separate proxy or compute charge). Your own residential proxy works too. A blocked page is never charged. | |
| max_processing_days | No | Only return listings whose processing time is at most this many days (Etsy's ready-to-ship filter). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, openWorld, non-idempotent, non-destructive), the description discloses that the call starts a run on Apify's hosted MCP gateway using the caller's own APIFY_TOKEN and Apify account, that it is read-only against public data, and that run/dataset IDs are returned for paging. It even flags the docs URL and the account/billing implication, which is the kind of context an agent cannot get from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Labelled sections (When to use / Returns / Behavior) with the intended question front-loaded and zero filler; the docs link is the only non-essential element and it is short. Every sentence carries either selection guidance or behavioral fact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 21-parameter, no-output-schema scraping tool, the description supplies what an agent most needs: what the result set is, that rows come back as JSON with run/dataset IDs for paging the full set, that auth/billing ride on the caller's Apify account, and that it is read-only. Remaining specifics (sort, caps, cache age, proxy) are fully documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning by naming the three input modes (keywords, category URLs, market phrases) that the 21 parameters split into — something not obvious from a flat parameter list. Filter semantics, caching and truncation are left to the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — scrape Etsy search results by keyword, category or market page — and enumerates the fields returned (title, price, rating, reviews, badges, ad flag, rank). It doesn't explicitly distinguish itself from the one same-platform sibling (publicrecords--etsy-shop-velocity), so an agent must infer the split from titles alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'When to use' line states the intended question — what ranks on Etsy for a keyword/category/market page and with what position, price, rating and badges. There are no explicit exclusions or named alternatives (e.g. when to prefer the shop-velocity tool instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.2.1- First observed
autofacts--shopify - First observed
delicious_zebu--ebay-product-listing-scraper - First observed
e-commerce--walmart-fast-product-scraper - First observed
epctex--google-shopping-scraper - First observed
junglee--Amazon-crawler - First observed
piotrv1001--aliexpress-listings-scraper - First observed
publicrecords--etsy-search-scraper
TDQS
Scored across 7 tools
Each tool targets a clearly distinct marketplace (Amazon, Google Shopping, eBay, Walmart, AliExpress, Shopify, Etsy), so an agent can pick by platform without confusion. Descriptions reinforce the boundaries by naming the exact source and data returned.
All names use a vendor--kebab-case prefix, which is at least consistent, but the suffixes mix patterns ('crawler', 'google-shopping-scraper', 'ebay-product-listing-scraper', 'shopify') rather than a predictable verb_noun or resource_action scheme. The long vendor prefixes also make names noisy and inconsistent in structure even if readable.
Seven tools, one per marketplace, is well-scoped for a multi-marketplace search product. Each tool earns its place and there is no obvious redundancy.
The set covers seven major marketplaces but omits others (e.g. Target, Best Buy, Newegg) and offers no cross-marketplace aggregation or ranking/comparison operation, despite 'Rankings' in the server name. All tools are read-only scrapers with no way to combine results into a unified search or ranking view.
Maintenance
Related MCP Connectors
Amazon (11 marketplaces) and Walmart US product data: search, prices, stock, history, sellers.
Search and look up products across thousands of online stores, normalized into one schema.
1Search and look up products across thousands of online stores, normalized into one schema.
Real-time Amazon product, seller, and search data for AI agents across 21 marketplaces.
Related MCP Servers
- AlicenseAqualityBmaintenanceReal Amazon (US, UK, DE, CA, AU) & Walmart shopping data for AI assistants: ranked product shortlists, current prices, live stock, real ratings, and price/BSR history from a 17M+ product warehouse. Free hosted endpoint, no signup — 30 queries a day.181MIT
- AlicenseAqualityCmaintenanceEnables querying and comparing prices, availability, ratings, reviews, and seller details from major Russian and Chinese marketplaces (Wildberries, Ozon, Yandex Market, and others) without requiring API keys, via a unified MCP interface.425MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to normalized Amazon marketplace data, including product details, search, offers, reviews, sellers, categories, deals, best sellers, identifiers, stock, and sales estimates across 13 marketplaces.MIT
- AlicenseAqualityAmaintenanceEnables MCP clients to search Walmart products by keyword or category, retrieve product details including the buy box and other sellers, and page through customer reviews with filters, all as structured JSON without a Walmart developer account.359 npm27 PyPI10MIT