@retailerapi/mcp
OfficialThis server provides a unified API for US retail product data, enabling product lookups, price comparisons, price history tracking, seller information, and review summaries — with a primary focus on Walmart.
lookup_product: Resolve a product identifier (UPC, EAN, ISBN, GTIN, ASIN, or retaileritem_id) into a normalized summary including title, brand, image, current price, identifiers, weight, dimensions, MSRP, description, categories, marketplace fees (referral_fee_usd,wfs_fee_usd), and stats (estimated_sales,is_best_seller,hazmat, etc.).Cross-retailer pricing (
include_cross_retailer=true): Fetch cached price and availability data from Amazon, eBay, Target, Best Buy, Lowe's, and Home Depot.Seller context (
include_seller_context=true): Add live seller-side state such as restrictions and WFS eligibility.Force refresh: Bypass cache for a fresh scrape of a specific retailer.
get_offers: List current marketplace sellers on a Walmart product, including price, in-stock status, and buy box ownership.price_history: Get a time-series of price and in-stock status for a Walmart product over configurable ranges (7d, 30d, 90d, 1y, or all).get_seller: Fetch a Walmart seller's profile by seller ID, including name, total listings, rating, status, and location.get_reviews: Retrieve a Walmart product's review summary (average rating, total reviews, rating distribution) and up to 10 recent reviews, with optional date range filtering.
Provides tools for interacting with Walmart product data, including product lookup, price history, offers, seller profiles, reviews, and sales stats.
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., "@@retailerapi/mcpLook up UPC 045496590161 and tell me the brand and price."
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.
@retailerapi/mcp
Model Context Protocol server for retailerapi.com — a unified product-data API covering major US retailers. Two tools your AI agent can call directly: product lookups and live offers.
Works with Claude Desktop, Claude Code, Cursor, and any other MCP-compatible client over stdio.
Covered retailers: Walmart, Amazon, eBay, Target, Best Buy, Lowe's, Home Depot. Set include_cross_retailer=true on a product lookup to surface cached cells for every retailer we have for that UPC.
Quick start
1. Get an API key
Sign in at app.retailerapi.com and create a key on the API Keys page. Keys look like rk_live_…. Free tier is 1,000 lookups/month — no card.
2. Add the server to your MCP client
Claude Desktop
Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json) and add:
{
"mcpServers": {
"retailerapi": {
"command": "npx",
"args": ["-y", "@retailerapi/mcp"],
"env": {
"RETAILERAPI_KEY": "rk_live_your_key_here"
}
}
}
}Restart Claude Desktop. The retailerapi tools will appear in the tool picker.
Claude Code
claude mcp add retailerapi npx -y @retailerapi/mcp \
--env RETAILERAPI_KEY=rk_live_your_key_hereCursor
Add to ~/.cursor/mcp.json (or the project-level .cursor/mcp.json):
{
"mcpServers": {
"retailerapi": {
"command": "npx",
"args": ["-y", "@retailerapi/mcp"],
"env": {
"RETAILERAPI_KEY": "rk_live_your_key_here"
}
}
}
}Generic stdio
RETAILERAPI_KEY=rk_live_your_key_here npx @retailerapi/mcpThe process speaks MCP over stdio (newline-delimited JSON-RPC on stdin/stdout). Logs go to stderr.
Related MCP server: Webotee Amazon Product Research
Tools
lookup_product
Resolve any identifier (UPC / EAN / ISBN / GTIN / Amazon ASIN / retailer item_id) into a normalized product summary. Base call (1 token) returns: title, brand, image, current price, identifiers, weight, dimensions, MSRP, description, categories, full price history, aggregated stats, retailer_links (free 'where to find it'), Bucket-1 facts (sold_tag, estimated_sales, is_best_seller, pack_count, hazmat), and computed marketplace fees (referral_fee_usd, wfs_fee_usd). Fees are FREE in base call — Keepa parity.
Set include_cross_retailer=true to add the cross_retailer block — a map keyed by retailer slug of cached per-retailer cells (price, in_stock, Bucket-1 fields) for every retailer we have for this UPC (+2 tokens). Read-only over our cache. Set include_seller_context=true to add live seller-side state (is_restricted, WFS eligibility) on marketplace retailers (+3 tokens).
To force a fresh scrape of a specific retailer (bypassing cache), call with retailer=<slug> and force_refresh=true. This is the only way to force fresh data from the API.
Barcode lookups also return a diagnostic _meta block with the source retailer for each top-level field (including weight_lbs_source and dimensions_source — useful when one retailer's catalog is missing physical specs and another retailer backfills them) and a data_quality_score (0.0–1.0).
Package vs assembled. Retailers that distinguish boxed-for-shipping weight from product weight populate weight_assembled_lbs + weight_package_lbs (and parallel dimensions_assembled + dimensions_package). Top-level weight_lbs / dimensions are the derived "best available" — assembled wins, package fills in, plain weight is the last resort. Retailers exposing only one weight populate weight_lbs and leave the explicit pair as null.
Field | Type |
| string (required) |
|
|
| boolean (optional — default |
| boolean (optional — default |
| string (optional) — anchor to a specific retailer slug |
| boolean (optional — default |
Example prompts:
"Look up UPC 045496590161 — what's the brand, price, and Walmart referral fee?"
"Find UPC 194629116676 across every retailer — who has it cheapest?"
"What's the WFS fee on this product? Are there any seller restrictions on Amazon?"
get_offers
List current marketplace sellers on a product, including price, in-stock state, and which seller owns the buy box.
Field | Type |
| string (required) |
Example prompt: "Who has the buy box on item 1689065034 and what's the next-cheapest seller?"
Errors
Tool calls return structured JSON errors instead of crashing the agent:
Status | Error code | Meaning |
401, 403 |
| API key invalid or missing scope. Check |
404 |
| Product or item_id not found. |
429 |
| Quota or burst limit hit. Includes |
5xx |
| Backend issue. Retry shortly. |
— |
|
|
Environment
Variable | Required | Default |
| yes | — |
| no |
|
Develop locally
pnpm install
pnpm --filter @retailerapi/mcp build
RETAILERAPI_KEY=rk_live_… node packages/mcp/dist/index.jsThe MCP Inspector (npx @modelcontextprotocol/inspector) is the easiest way to exercise the tools manually.
License
MIT
Available Tools
5 toolsget_offersA
List the current sellers on a Walmart product. Returns each offer with seller_id, seller_name, price, condition, and a buybox_owner flag. Use this to compare seller prices or find the buybox holder.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Walmart item_id. Use `lookup_product` first if you only have a UPC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and while the description mentions return fields, it lacks details on behavior like missing items, rate limits, or authentication requirements.
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?
Two sentences efficiently convey purpose, returned fields, and use cases without extraneous information.
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 simple tool with one parameter and no output schema, the description covers the essential purpose and parameter guidance, though it could mention what happens for invalid item_ids.
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?
The schema description for the single parameter item_id adds explicit guidance to use lookup_product if only a UPC is available, which adds significant value beyond the type.
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 clearly states the tool lists current sellers on a Walmart product and specifies the returned fields (seller_id, seller_name, price, condition, buybox_owner flag), making its purpose unambiguous.
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 description suggests two use cases (compare prices, find buybox holder) and implies when to use, but does not explicitly differentiate from sibling tools like get_reviews or price_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reviewsA
Get a Walmart product review summary plus the top recent reviews. Returns average_rating, total_reviews, rating distribution, and an array of up to 10 reviews. Optional date range narrows the window.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Walmart item_id. | |
| start_date | No | Optional ISO date (YYYY-MM-DD). Reviews on or after this date. | |
| end_date | No | Optional ISO date (YYYY-MM-DD). Reviews on or before this date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the read behavior (Get) and the return structure, but does not mention idempotency, authentication needs, rate limits, or potential side effects. With no annotations provided, the description carries full burden and is adequate but not comprehensive.
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?
Two sentences with no fluff. The first sentence states purpose and output, the second explains optional date range. Efficient and front-loaded.
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?
Given no output schema or annotations, the description covers the return structure (average_rating, total_reviews, rating distribution, up to 10 reviews) and date range effect. It is missing details like error handling, pagination beyond 10, or empty result behavior, but is fairly complete for a simple review tool.
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?
The schema covers all 3 parameters with descriptions (100% coverage). The description adds minimal extra value for parameters, noting that the date range 'narrows the window'. This provides context but does not significantly enhance understanding beyond the schema.
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 clearly states the tool retrieves a Walmart product review summary with specific fields. The verb 'Get' and resource 'review summary plus top recent reviews' are precise. It is distinct from sibling tools like get_offers or lookup_product, which focus on different data.
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 description implies use when review data is needed but does not explicitly state when to use this tool vs. alternatives, nor does it mention conditions to avoid. It provides basic context but lacks guidance on exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sellerA
Fetch a Walmart seller profile by seller_id. Returns name, total_listings, rating, status, and location fields when available.
| Name | Required | Description | Default |
|---|---|---|---|
| seller_id | Yes | Walmart seller_id (often a numeric string). You can get this from `get_offers`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It notes that fields are returned 'when available,' hinting at optionality, and describes the seller_id format. However, it does not disclose side effects, authentication needs, or error behavior.
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?
Two concise sentences front-load the purpose and specify return fields. No wasted words.
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 simple fetch tool with one parameter and no output schema, the description is adequate. It lists return fields and parameter source, though it could mention error handling or response format.
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% for the single parameter. The tool description adds return field info but does not enhance parameter semantics beyond what the schema already provides (seller_id format and source).
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 clearly states the action (fetch), the resource (Walmart seller profile), and the specific fields returned (name, total_listings, rating, status, location). This distinguishes it from sibling tools like get_offers and get_reviews.
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?
While it mentions that seller_id can be obtained from get_offers, it provides no explicit guidance on when to use this tool versus alternatives like lookup_product or get_reviews. There is no when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_productA
Look up a product by UPC, EAN, ISBN, or Walmart item_id. Returns title, brand, primary image, current Walmart price, number of offers, item_id, walmart_url. Optionally returns cross-retailer pricing (Amazon, eBay, Lowe's, Target, Best Buy, Home Depot) when include_cross_retailer=true. Cross-retailer cells may be marked status="indexing" on first lookup; subsequent calls (after a few seconds) typically return populated data.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | The product identifier — UPC, EAN, ISBN, or Walmart item_id. | |
| identifier_type | No | Optional type hint. If omitted, the server auto-detects. Set explicitly when the input could be ambiguous (e.g. a 12-digit number that is both a valid UPC and a valid item_id). | |
| include_cross_retailer | No | Include current pricing from non-Walmart retailers (Amazon, eBay, Lowe's, Target, Best Buy, Home Depot). Returns each retailer's status: "ok" (data current), "stale" (data older than retailer-specific TTL), "indexing" (no data yet — first request triggers a background fetch), "not_found" (retailer doesn't carry this product). Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral transparency. It discloses that cross-retailer data may have a 'indexing' status on first lookup and that subsequent calls typically return populated data, along with all possible status values ('ok', 'stale', 'indexing', 'not_found'). This is clear and honest.
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 two sentences, front-loading the purpose and returned fields, then providing additional behavioral context. Every sentence is necessary and there is no waste.
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?
Given no output schema, the description lists all returned fields (title, brand, primary image, current Walmart price, etc.) and explains cross-retailer statuses. It covers input ambiguity and async behavior, making it complete for a product lookup tool.
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 baseline is 3. The description adds value by explaining that identifier_type auto-detects if omitted and that include_cross_retailer triggers a background fetch and returns statuses, which supplements the schema's descriptions.
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 clearly specifies the tool's action (look up a product) and the accepted identifiers (UPC, EAN, ISBN, Walmart item_id). It distinguishes itself from sibling tools like get_offers, get_reviews, etc., which handle different aspects of product data.
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 description explains when to use the tool (product lookup) and when to explicitly set identifier_type to avoid ambiguity. It also advises that cross-retailer data may be initially 'indexing' and that subsequent calls are needed, providing practical usage guidance. However, it does not explicitly state when not to use this tool or direct users to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_historyA
Get the price history time series for a Walmart product by item_id. Returns an array of {recorded_at, price, in_stock} samples. Use the range parameter to limit the window (default 30d).
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Walmart item_id (numeric string). Get this from `lookup_product` if you only have a UPC. | |
| range | No | Time range. Defaults to 30d. | 30d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently describes the return format (array of objects with recorded_at, price, in_stock), implying a read-only operation. It does not discuss rate limits or authorization, but the scope is sufficiently disclosed.
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 two sentences, front-loaded with the purpose, and every sentence adds meaningful information. No redundant or filler content.
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?
Given the tool's simplicity, no output schema, and full parameter documentation, the description is complete. It describes the return format, parameter defaults, and provides a cross-reference for obtaining the item_id.
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 description adds valuable context beyond the schema: for item_id, it explains how to obtain it if only a UPC is available; for range, it notes the default value. This significantly aids correct parameter usage.
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 clearly states the action ('Get the price history time series'), the resource ('Walmart product'), and the identifier ('item_id'). It distinguishes the tool from its siblings (e.g., get_offers, lookup_product) by specifying the exact data returned.
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 description provides clear guidance on the range parameter and its default, but does not explicitly state when not to use this tool or suggest alternatives. The sibling context implies alternatives are available, but no direct exclusions are given.
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.
5 tool updates
v0.2.0- First observed
get_offers - First observed
get_reviews - First observed
get_seller - First observed
lookup_product - First observed
price_history
TDQS
Scored across 5 tools
Each tool targets a distinct aspect of retail product data: offers, reviews, seller profile, product lookup, and price history. No overlap.
Most tools follow verb_noun pattern (get_offers, get_reviews, get_seller, lookup_product), but 'price_history' is a noun_noun exception.
5 tools is well-scoped for a retail product data API, covering the essential read operations without unnecessary bloat.
Covers key product data retrieval (lookup, offers, reviews, seller, price history); minor gaps like keyword search or category listing.
Maintenance
Related MCP Connectors
AMZScout Skill + MCP gives AI agents live access to real Amazon marketplace data across 14 Amazon marketplaces. Analyze any ASIN, validate product ideas, research niches, compare competitors, discover profitable keywords, and build data-driven PPC strategies using trusted Amazon insights instead of AI assumptions. Works with Claude, ChatGPT, Cursor, and any other MCP-compatible AI client. To connect, you'll need an AMZScout API plan and authorize your account. Get access and view pricing here: https://learn.amzscout.net/amazon-product-api-for-ai-agents
Real-time Amazon, WIPO & PACER data for AI agents — 19 tools via the MCP protocol.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Real-time Amazon product, seller, and search data for AI agents across 21 marketplaces.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables scraping Walmart product data, including product details, top products by category, and monitoring scraping tasks.4MIT
- AlicenseAqualityAmaintenanceHosted Amazon market-intelligence MCP for Claude and ChatGPT: query brands, sellers, ASINs, under-competed niches, the cross-seller operator network, observed buy-box history, and Amazon/Walmart cross-marketplace overlap. 65 read-only research tools over a pre-collected research dataset.172MIT
- AlicenseBqualityFmaintenanceEnables AI agents to search products, manage cart, and track orders on Walmart.com via browser automation.1228 npm3MIT

Easyparserofficial
AlicenseAqualityBmaintenanceReal-time, structured Amazon data for AI agents across 21 marketplaces: product details, seller offers, search results, 12-month sales history, Best Sellers Rank, package dimensions, and seller intelligence. 16 tools including free bulk-job monitoring and account usage tracking, available as a hosted endpoint or via npx.1759 npmMIT