Skip to main content
Glama
retailerapi

@retailerapi/mcp

Official
by retailerapi

@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_here

Cursor

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/mcp

The 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

identifier

string (required)

identifier_type

"UPC" | "EAN" | "ISBN" | "GTIN" | "ASIN" | "item_id" (optional — auto-detect if omitted)

include_cross_retailer

boolean (optional — default false) — +2 tokens, read-only

include_seller_context

boolean (optional — default false) — +3 tokens

retailer

string (optional) — anchor to a specific retailer slug

force_refresh

boolean (optional — default false) — only valid with retailer; bypass cache + force fresh scrape

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

item_id

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

unauthorized

API key invalid or missing scope. Check RETAILERAPI_KEY.

404

not_found

Product or item_id not found.

429

rate_limited

Quota or burst limit hit. Includes retry_after_seconds.

5xx

upstream_error

Backend issue. Retry shortly.

missing_api_key

RETAILERAPI_KEY env var not set. Pointer to docs included.

Environment

Variable

Required

Default

RETAILERAPI_KEY

yes

RETAILERAPI_BASE_URL

no

https://api.retailerapi.com/v1

Develop locally

pnpm install
pnpm --filter @retailerapi/mcp build
RETAILERAPI_KEY=rk_live_… node packages/mcp/dist/index.js

The MCP Inspector (npx @modelcontextprotocol/inspector) is the easiest way to exercise the tools manually.

License

MIT

Available Tools

5 tools
get_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesWalmart item_id. Use `lookup_product` first if you only have a UPC.

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesWalmart item_id.
start_dateNoOptional ISO date (YYYY-MM-DD). Reviews on or after this date.
end_dateNoOptional ISO date (YYYY-MM-DD). Reviews on or before this date.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
seller_idYesWalmart seller_id (often a numeric string). You can get this from `get_offers`.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesThe product identifier — UPC, EAN, ISBN, or Walmart item_id.
identifier_typeNoOptional 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_retailerNoInclude 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

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesWalmart item_id (numeric string). Get this from `lookup_product` if you only have a UPC.
rangeNoTime range. Defaults to 30d.30d

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 5 tool updatesv0.2.0
    • First observedget_offers
    • First observedget_reviews
    • First observedget_seller
    • First observedlookup_product
    • First observedprice_history

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct aspect of retail product data: offers, reviews, seller profile, product lookup, and price history. No overlap.

Naming Consistency4/5

Most tools follow verb_noun pattern (get_offers, get_reviews, get_seller, lookup_product), but 'price_history' is a noun_noun exception.

Tool Count5/5

5 tools is well-scoped for a retail product data API, covering the essential read operations without unnecessary bloat.

Completeness4/5

Covers key product data retrieval (lookup, offers, reviews, seller, price history); minor gaps like keyword search or category listing.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Hosted 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.
    1
    72
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Real-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.
    17
    59 npm
    MIT