ShopSavvy Data API MCP Server
Official# ShopSavvy MCP Server
Give any AI assistant real-time product prices, price history, deals and buying guides from [ShopSavvy](https://shopsavvy.com), via the [Model Context Protocol](https://modelcontextprotocol.io/).
**No signup and no API key needed.** Anonymous use is rate-limited per IP (10 tool calls per minute, 100 per hour). Add a Data API key for higher limits.
## Two ways to connect
### 1. Remote server (recommended)
ShopSavvy hosts the server. Clients that support remote MCP servers connect by URL, with nothing to install:
```
https://api.shopsavvy.com/mcp
```
That's the Streamable HTTP endpoint. Older clients that only speak the HTTP+SSE transport can use `https://api.shopsavvy.com/mcp/sse`.
Per-client setup (Claude Code, Claude Desktop, claude.ai, ChatGPT, Codex, Gemini CLI, Cursor, VS Code, Windsurf) is at **[shopsavvy.com/agents](https://shopsavvy.com/agents#install)**.
### 2. This package (for stdio-only clients)
Some clients can only launch a local command. This package is that command: a small bridge that relays MCP messages between your client and the hosted server. The tools always match the hosted server, because they come from it.
Requires Node.js 18+.
**Claude Desktop** — add to `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`, Windows: `%APPDATA%\Claude\`):
```json
{
"mcpServers": {
"shopsavvy": {
"command": "npx",
"args": ["-y", "@shopsavvy/mcp-server"]
}
}
}
```
Any other stdio client: run `npx -y @shopsavvy/mcp-server`.
## Higher limits with an API key
Get a key at [shopsavvy.com/data](https://shopsavvy.com/data), then:
- **Remote server:** send the header `Authorization: Bearer ss_live_…`
- **This package:** set the `SHOPSAVVY_API_KEY` environment variable:
```json
{
"mcpServers": {
"shopsavvy": {
"command": "npx",
"args": ["-y", "@shopsavvy/mcp-server"],
"env": { "SHOPSAVVY_API_KEY": "ss_live_your_key_here" }
}
}
}
```
## Tools
| Tool | What it does |
|------|--------------|
| `product_lookup` | Find a product by barcode/UPC/EAN, ASIN, URL, model number or name |
| `product_lookup_batch` | Look up several products at once |
| `product_search` | Keyword search across the catalog |
| `universal_search` | Ranked search with review summaries, good for category queries |
| `product_offers` | Current prices from every retailer |
| `product_offers_retailer` | Current prices from one retailer (e.g. `amazon.com`) |
| `product_price_history` | Price history over a date range |
| `product_schedule` / `product_unschedule` / `scheduled_products_list` | Automatic price monitoring (API key required) |
| `api_usage` | Your API key's usage |
| `content_best_picks` | Curated "best of" buying guides |
| `content_tldr_review` | Pros, cons and a verdict for a product |
| `content_qa_answers` | Answers to common questions about a product |
| `content_buying_guide` | When-to-buy timing advice |
## Try asking
- "What's the best price for AirPods Pro right now?"
- "Show me the price history for B0D1XD1ZV3 over the last month."
- "Best air fryers, and where are they cheapest?"
- "Is now a good time to buy a TV?"
## Development
```bash
git clone https://github.com/shopsavvy/shopsavvy-mcp-server
cd shopsavvy-mcp-server
bun install
bun run build
bun test
```
`SHOPSAVVY_MCP_URL` points the bridge (and its tests) at another deployment of the server.
## Support
- Docs: [shopsavvy.com/agents](https://shopsavvy.com/agents)
- Issues: [github.com/shopsavvy/shopsavvy-mcp-server/issues](https://github.com/shopsavvy/shopsavvy-mcp-server/issues)
- Email: hello@greatwork.company
## License
MIT, see [LICENSE](LICENSE).
TDQS
Scored across 9 tools
Each tool targets a distinct operation: lookup vs batch lookup, all-retailer offers vs specific-retailer offers, schedule vs unschedule, plus a dedicated usage tool. There is no meaningful overlap or ambiguity between tool purposes.
Most tools follow a clear product_<action> pattern (product_lookup, product_offers, product_schedule, product_unschedule). One exception is scheduled_products_list, which inverts the pattern and would be more consistent as product_list_scheduled, but overall the naming is predictable.
Nine tools is well-scoped for a product data API server. Each tool covers a distinct function—lookup, offers, history, scheduling, and usage—without unnecessary redundancy or bloat.
The surface covers core product lookup, offers, price history, and scheduling lifecycle (schedule, unschedule, list). A minor gap is the lack of an update mechanism for scheduled monitoring intervals, but the primary workflows are fully supported.