Thrifle MCP server
US return policies, price-match rules, discounts, deals, credit-card terms and Amazon buy-or-wait verdicts โ as read-only tools for Claude, ChatGPT, Cursor and any MCP client.
https://api.thrifle.com/api/mcp
No auth. No signup. 24 tools. Every answer links to the thrifle.com page it comes from.

What you can ask
| Tool | Example |
|---|
get_return_policy | What is Costco's return policy on a laptop? |
compare_return_policies | Is it easier to return to Target or Walmart? |
search_return_policies | Which furniture stores offer free returns? |
get_price_match_policy | Does Best Buy price match Amazon? |
who_will_price_match | Who will match this Amazon price on a TV? |
get_merchant_discounts ยท search_discounts | Does Home Depot have a military discount? |
get_cancellation_guide | How do I cancel Planet Fitness? |
get_birthday_freebie ยท search_birthday_freebies | What does Starbucks give you on your birthday? |
search_deals ยท get_deal ยท get_deal_of_the_day ยท get_store_deals | Is there a deal on AirPods Pro right now? |
predict_amazon_price | Should I buy this Amazon product now or wait? |
search_credit_cards ยท get_credit_card ยท get_store_credit_cards | Does the Lowe's card use deferred interest? |
get_money_monitor ยท get_price_pulse | What is the average credit-card APR right now? |
check_product_recalls | Has this product been recalled? |
about_thrifle | What is Thrifle and what does it cover? |
The data behind these tools: a return-policy database covering 2,250 US retailers with an A+โDโ grade computed from the policy's own terms, price-match and price-adjustment policies, military/student discount programmes, birthday offers, cancellation guides, a curated deal feed, a credit-card database built from issuer pricing pages, and price history for hundreds of thousands of Amazon products. All of it is editor-verified and every record carries a last_verified date.
Connect it
Claude.ai / Claude Desktop (every plan; Free allows one custom connector)
Settings โ Connectors โ Add custom connector โ paste the URL โ leave authentication empty.
Claude Code
claude mcp add --transport http thrifle https://api.thrifle.com/api/mcp
ChatGPT โ Settings โ Apps & Connectors โ Create (developer mode) โ paste the URL, no authentication.
Cursor โ click the badge above, or add to ~/.cursor/mcp.json:
{ "mcpServers": { "thrifle": { "url": "https://api.thrifle.com/api/mcp" } } }
VS Code โ click the badge above, or code --add-mcp '{"name":"thrifle","type":"http","url":"https://api.thrifle.com/api/mcp"}'.
Perplexity (+ Custom connector โ Remote), Grok (grok.com/connectors โ Custom), Mistral Le Chat (Connectors โ Custom MCP Connector), Gemini CLI (httpUrl under mcpServers), Gemini Enterprise (Manage team โ Connected apps โ Add MCP Server) all accept the same URL.
Claude Code plugin โ this repo is also a Claude Code plugin (.claude-plugin/plugin.json, .mcp.json, and a thrifle-shopping skill that teaches the model which tool answers which question).
Try it from a terminal
curl -s https://api.thrifle.com/api/mcp | jq .tools
curl -s -X POST https://api.thrifle.com/api/mcp \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_return_policy","arguments":{"merchant":"Costco"}}}'
Run it yourself
git clone https://github.com/ejazmu/thrifle-mcp && cd thrifle-mcp
npm install
npm start
npm test
This is the same code that serves api.thrifle.com/api/mcp. THRIFLE_API_BASE points it at a different API base; MCP_RATE_PER_MIN / MCP_RATE_PER_DAY set the per-IP limits; MCP_API_KEYS (comma-separated) lists keys that bypass them via Authorization: Bearer.
How it is built
- Stateless Streamable HTTP. One
McpServer + transport per request, JSON responses, no sessions โ nothing to resume, nothing shared between callers, nothing for a CDN to buffer. GET on the endpoint returns a human-readable discovery document.
- Tools call Thrifle's public REST API, never a database. That keeps the MCP answer identical to the website's answer: affiliate-link handling, expired-deal rules and serve-time grading all apply automatically.
src/api-client.js is a 60-line loopback fetch.
- Shapers, not raw payloads.
src/shape.js turns each API response into the facts plus the canonical thrifle.com url and a cite block, and drops internal fields. Pure functions, all covered by fixtures.
- Read-only by construction. Every tool declares
readOnlyHint: true; the catalogue in src/tools.js has no write path.
- Price verdicts never trigger a live fetch โ they read the tracked-price database only.
Fair use and licensing
Free for assistants answering a person's question: 60 calls a minute and 1,500 a day per address. Bulk or commercial use is licensed โ see thrifle.com/data-licensing; a licence comes with a key that lifts the limits. Deal buy_url values are thrifle.com redirects and may be affiliate links.
Links
Docs: https://thrifle.com/mcp ยท Return-policy database: https://thrifle.com/return-policy ยท Price Predict: https://thrifle.com/price-predict ยท Money: https://thrifle.com/money ยท Contact: hello@thrifle.com
MIT licensed. ยฉ 2026 Thrifle Technologies LLC.