keepa-mcp
This server provides MCP tools to access Amazon product data, price history, sales rank trends, best-seller lists, and deals via the Keepa API.
get_product – Fetch current product details for an ASIN: title, brand, category, current Amazon/new/buy-box prices, review count, rating, number of new offers, and latest sales rank.
get_price_history – Retrieve historical Amazon, new third-party, used, and buy-box price data over a specified time range (30 days, 6 months, 1 year, or all-time).
get_sales_rank_history – Get historical Best Seller Rank data and a demand trend summary (improving, worsening, or stable).
search_products – Search Amazon products by keyword, optionally filtered by Keepa category, returning matching ASINs.
get_best_sellers – Return the top-selling ASINs in a specified Keepa category.
get_deals – Find current price-drop deals, filterable by minimum drop percentage and minimum rating, with pagination.
Supports multiple Amazon marketplaces via a domain parameter. All tools are read-only and communicate only with the Keepa API.
Provides tools for retrieving Amazon product details, price and sales rank history, product search, best sellers, and current deals via the Keepa API.
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., "@keepa-mcp What is the current Amazon price and rating for ASIN B08N5WRWNW?"
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.
keepa-mcp
Amazon price and sales-rank history for your AI assistant, via the Keepa API.
Unofficial package. keepa-mcp is not affiliated with, endorsed by, or supported by Keepa GmbH. "Keepa" and "Amazon" are trademarks of their respective owners. This is an independent open-source client for the publicly documented Keepa API.
What it does
Tool | Description | Example prompt |
| Title, brand, category, current prices, buy box, review count and rating | "What is the current Amazon price and rating for ASIN B08N5WRWNW?" |
| Decoded price time series for Amazon, new, used, and buy-box prices | "Show me the price history for B08N5WRWNW over the past year" |
| Sales rank over time plus a demand trend summary | "Is demand trending up or down for B07PXGQC1Q?" |
| Keyword product search, returns matching ASINs | "Find ASINs for 'wireless earbuds' on Amazon" |
| Top ASINs in a Keepa category | "What are the best sellers in Electronics?" |
| Current price-drop deals filtered by drop % and rating | "Show deals with at least 30% off and 4.5 stars" |
Related MCP server: ShopSavvy Data API MCP Server
Quick start
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"keepa": {
"command": "npx",
"args": ["-y", "keepa-mcp"],
"env": {
"KEEPA_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}Claude Code
claude mcp add keepa -e KEEPA_API_KEY=your_key -- npx -y keepa-mcpOpenAI Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.keepa]
command = "npx"
args = ["-y", "keepa-mcp"]
[mcp_servers.keepa.env]
KEEPA_API_KEY = "YOUR_API_KEY_HERE"Getting a Keepa API key
Sign up at https://keepa.com/#!api to get your API key.
The free tier provides 100 tokens per minute. Each product data request costs tokens proportional to the data retrieved (history length, number of offers, etc.). Typical product lookups cost 1-5 tokens; best-seller lists and deals cost more. See the Keepa API docs for the full token cost table.
Token economics at a glance:
get_product: ~2-4 tokens — the product record plus thestats,ratingandbuyboxadd-ons it needs. Keepa returns no current price, rating, review count or offer count without them.get_price_history/get_sales_rank_history: ~2-4 tokensget_best_sellers: 50-100 tokens per requestget_deals: 5-25 tokens per pageFree tier refills at 100 tokens/minute
Live offer data (offers) is not requested. It triggers a real-time
marketplace lookup costing 10+ extra tokens per call, which on a small bucket
can fail the request outright. Versions before 0.1.2 always sent offers=20,
so get_product never actually cost the 1 token this table used to claim.
If you hit the quota, the tool returns a clear error message and you can retry after the bucket refills.
Example conversations
1. Product research
"Look up B08N5WRWNW, then show me the last 6 months of price history and tell me whether demand has been growing."
The assistant calls get_product, then get_price_history with range="6m",
then get_sales_rank_history with range="6m", and synthesises a verdict.
2. Category opportunity scan
"Pull the top 20 best sellers in Electronics (category 172282), then get current details and sales rank trends for the first three."
The assistant calls get_best_sellers, then get_product and
get_sales_rank_history for the first three ASINs, and summarises
the demand signals.
3. Deal hunting
"Find highly-rated Amazon deals with at least 25% off, then show me the price history for the top result to confirm it is a genuine dip."
The assistant calls get_deals with min_price_drop_pct=25, min_rating=45,
picks the top ASIN, then calls get_price_history with range="6m" to
validate the claimed price drop against historical data.
Development
# Install dependencies
npm install
# Run tests (no live HTTP; all upstream calls are mocked)
npm test
# Build TypeScript to dist/
npm run build
# Start the server (requires KEEPA_API_KEY in environment)
KEEPA_API_KEY=your_key node dist/index.jsProject structure
src/
index.ts # Server entry point, tool registration
constants.ts # API base URL, Keepa time offset, limits
types.ts # TypeScript interfaces
services/
keepa-client.ts # Fetch wrapper, time utilities, history decoder
tools/
get-product.ts
get-price-history.ts
get-sales-rank-history.ts
search-products.ts
get-best-sellers.ts
get-deals.ts
tests/
keepa-client.test.ts # Unit tests for time conversion and history decoding
tools.test.ts # Integration tests with mocked fetch + fixture JSON
fixtures/ # Realistic Keepa response shapesBuilt by
Built by Puya Ventures LLC. I build custom MCP servers and AI integrations for product-research, e-commerce, and SaaS teams. Get in touch: purahmanian@gmail.com | Portfolio: puyarahmanian.com
Part of the Product-Research MCP Suite: keepa-mcp · google-trends-mcp · junglescout-mcp
Privacy
This server runs entirely on your machine. It collects no telemetry and stores no data. The only network calls it makes are to the Keepa API (api.keepa.com), sending your API key and the ASINs, keywords, or category ids you ask about. Your API key is read from the KEEPA_API_KEY environment variable and never written to disk or sent anywhere except Keepa. See Keepa's privacy policy: https://keepa.com/#!privacy
License
MIT. See LICENSE.
Available Tools
6 toolsget_best_sellersGet Best SellersARead-onlyIdempotent
Get the top-selling ASINs in a Keepa category.
Returns an ordered list of ASINs. Find category ids at: https://keepa.com/#!categorytree/1
Common category ids (amazon.com):
172282: Electronics
1055398: Computers & Accessories
3760901: Camera & Photo
2619533: Musical Instruments
284507: Kitchen & Dining
Args:
category_id (number): Keepa category id
domain (number, optional): Keepa domain id (default 1 = amazon.com)
Examples:
"What are the best sellers in Electronics?" -> category_id=172282
"Top Kitchen products" -> category_id=284507
Inputs: category_id (required), domain.
get_dealsGet DealsARead-onlyIdempotent
Fetch current Amazon price-drop deals from Keepa.
Returns products where the price has dropped significantly, filtered by minimum price drop percentage and minimum rating.
Args:
min_price_drop_pct (number, optional): Minimum % price drop (1-99). Default: 20
min_rating (number, optional): Min rating 0-50 (45 = 4.5 stars). Default: 40
page (number, optional): Page offset for pagination. Default: 0
domain (number, optional): Keepa domain id (default 1 = amazon.com)
Examples:
"Show me deals with at least 30% off" -> min_price_drop_pct=30
"Find highly-rated products on sale" -> min_rating=45, min_price_drop_pct=20
Inputs: page, domain, min_rating, min_price_drop_pct.
get_price_historyGet Price HistoryARead-onlyIdempotent
Fetch historical price data for an Amazon ASIN from Keepa.
Returns a decoded, downsampled time series (at most 60 data points) for:
Amazon price (sold by Amazon directly)
New (3P) price (lowest new third-party price)
Used price (lowest used price)
Buy box price
Keepa stores prices in cents. All prices returned are in USD. Keepa time values (minutes since 2011-01-01) are decoded to ISO dates.
Args:
asin (string): Amazon ASIN
range (string, optional): Time range. "30d", "6m", "1y", "all". Default: "90d"
domain (number, optional): Keepa domain id (default 1 = amazon.com)
Examples:
"Show price history for B08N5WRWNW over the past year" -> range="1y"
"What has the Amazon price been for B07PXGQC1Q in the last 30 days?" -> range="30d"
Inputs: asin (required), range, domain.
get_productGet Product DetailsARead-onlyIdempotent
Fetch current product details from Keepa for a given Amazon ASIN.
Returns: title, brand, category path, current Amazon price, new (3P) price, buy box price, review count, star rating, number of new offers, and latest sales rank.
Prices are in USD. A value of "N/A" means the price type is not currently available.
Args:
asin (string): Amazon ASIN, e.g. "B08N5WRWNW"
domain (number, optional): Keepa domain id (default 1 = amazon.com)
Examples:
"What is the current price of ASIN B08N5WRWNW?" -> use get_product with asin="B08N5WRWNW"
"Show me product details for B07PXGQC1Q" -> use get_product with asin="B07PXGQC1Q"
Error handling:
Returns an instructional message if KEEPA_API_KEY is missing.
Returns a not-found message for invalid ASINs.
Inputs: asin (required), domain.
get_sales_rank_historyGet Sales Rank HistoryARead-onlyIdempotent
Fetch historical sales rank data for an Amazon ASIN from Keepa.
Sales rank (BSR) is a proxy for demand: lower rank = faster sales velocity. Returns a decoded, downsampled time series plus a trend summary.
The trend summary indicates whether demand is improving (rank decreasing), worsening (rank increasing), or stable.
Args:
asin (string): Amazon ASIN
range (string, optional): Time range. "30d", "6m", "1y", "all". Default: "90d"
domain (number, optional): Keepa domain id (default 1 = amazon.com)
Examples:
"Is demand trending up or down for B08N5WRWNW?" -> use get_sales_rank_history
"Show 6-month BSR history for B07PXGQC1Q" -> range="6m"
Inputs: asin (required), range, domain.
search_productsSearch ProductsARead-onlyIdempotent
Search for Amazon products on Keepa by keyword.
Returns a list of matching ASINs. Use get_product on any returned ASIN to fetch full product details, prices, and history.
Args:
keyword (string): Search term, e.g. "wireless earbuds"
category_id (number, optional): Restrict to a Keepa category id.
domain (number, optional): Keepa domain id (default 1 = amazon.com)
Examples:
"Find products for 'yoga mat'" -> keyword="yoga mat"
"Search Electronics for 'USB-C hub'" -> keyword="USB-C hub", category_id=172282
Inputs: keyword (required), domain, category_id.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a clearly distinct data type: current product details, price time series, sales rank history, best-seller lists, keyword search, and deals. Even the two history tools are cleanly separated by price vs. rank.
All tools follow a consistent get_* or search_* verb + noun pattern in snake_case (e.g., get_product, get_price_history, search_products). No mixed conventions or vague verbs.
Six tools is well within the ideal 3-15 range and covers the core Keepa workflows without redundancy. The count feels deliberate, and each tool earns its place.
The surface covers the main read-only product intelligence needs: current data, historical prices and ranks, search, best sellers, and deals. Minor gaps like category tree lookup or offer-level detail exist, but workflows are not blocked.
Maintenance
Related MCP Connectors
Keepa MCP — wraps the Keepa API (keepa.com) for Amazon price + sales-rank HISTORY.
Real-time Amazon product, seller, and search data for AI agents across 21 marketplaces.
Real-time Amazon prices, product search, 90-day history, AI forecasts, and price drop alerts.
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
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides conversational access to Keepa's product and sales data for product research, sales velocity analysis, inventory optimization, and competitive intelligence.1176 npm50MIT
- AlicenseAqualityCmaintenanceProvides AI assistants with access to ShopSavvy's comprehensive product data, pricing information, and historical price tracking, enabling product lookup by barcode or ASIN, current offers, price history, and scheduling for automatic monitoring.9144 npm9MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to query Amazon search volume trends and growth signals for product research and consumer purchase intent analysis.3MIT
- AlicenseNot gradedqualityCmaintenanceProvides conversational access to Keepa Amazon product and sales data, enabling product research, sales velocity and inventory analysis, deal discovery, category intelligence, and competitive analytics.76 npmMIT