Endpoint and transport
POST https://blackfridaymcp.com/mcp
MCP 2026-07-28, stateless; older stateless clients supported
Auth: OAuth 2.1 bearer token, scope shop:read
Unauthenticated requests get a 401 with a WWW-Authenticate challenge, so any compliant client discovers the flow on its own. Works with Claude, ChatGPT, Antigravity, Grok, Cursor, Codex, Claude Code, and any MCP SDK.
Authorization
Dynamic client registration at /oauth/register; client ID metadata documents accepted.
PKCE S256 required. Loopback redirect URIs with any port accepted.
Consent is one click and mints an anonymous install ID. No user accounts.
Access tokens last 30 days. Resource metadata at /.well-known/oauth-protected-resource/mcp.
Tools
All four are read-only. The exact JSON Schema is returned by tools/list.
Response shape
content[0].text: human-readable block, links as markdown
structuredContent:
products[]: asin, title, brand, url, image_url, availability, deal{badge, ends_at, access},
price{amount, currency, display, as_of, display_with_time},
savings{percent, amount, reference_type, reference_label, reference_price, evidence_note}
notes[], hint, market, disclosure
Prices carry their fetch time inline. The disclosure block appears once per response. check_deal adds a one-line verdict. Links are Amazon's own URLs, untouched.
Example response
structuredContent from a real search_deals call, trimmed to one product:
{
"query": "noise cancelling headphones",
"max_price": 300,
"count": 8,
"total_results": 306,
"products": [
{
"asin": "B0C8PR4W22",
"title": "Beats Studio Pro Premium Wireless Over-Ear Headphones…",
"brand": "Beats",
"price": { "amount": 169.95, "currency": "USD", "display": "$169.95", "as_of": "2026-09-18T19:08:48.066Z", "display_with_time": "$169.95 (as of Sep 18 3:08 PM EDT)" },
"savings": { "percent": 51, "amount": 180.04, "reference_type": "LIST_PRICE", "reference_label": "List Price:", "reference_price": "$349.99", "evidence_note": "weak evidence: list prices often sit above the usual selling price" },
"availability": "IN_STOCK",
"deal": { "badge": "Limited time deal", "ends_at": "2026-09-27T06:59:59Z", "access": "ALL" },
"image_url": "https://m.media-amazon.com/images/I/41BH74ZyJpL._SL160_.jpg",
"url": "https://www.amazon.com/dp/B0C8PR4W22?tag=bfmcp-serv-20&linkCode=osi&th=1&psc=1"
}
],
"hint": "In your reply, give each product's link exactly as shown above.",
"disclosure": "Black Friday MCP is free to use; Amazon pays it a small commission when you buy through these links…",
"market": "Amazon.com (US), USD"
}
Limits
Per connection: 150 Amazon lookups per day, 10 uncached lookups per minute, about 60 requests per minute burst.
Cached answers do not count. Prices are cached up to 1 hour, everything else up to 24 hours.
Responses aim for under 5 seconds, with a hard ceiling of about 9 seconds.
Rules the server follows
Amazon links pass through exactly as vended. No shorteners, no added parameters.
No scraping. Everything comes from Amazon's Creators API.
No stored price history. Discount evidence comes from Amazon's own reference price for each item.
US marketplace only, prices in USD.
Try it from a terminal
curl -si -X POST https://blackfridaymcp.com/mcp
# → 401 with WWW-Authenticate: Bearer resource_metadata=…