io.github.voicearc/splitbasket-prices
Cached US grocery prices, age disclosed on every row - search, compare across banners, coverage.
Open source Repository Open in the app JSON README (API)
About
Cached US grocery prices, age disclosed on every row - search, compare across banners, coverage.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- voicearc
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 1.0.0
- Last push
- 2026-08-13T14:50:00Z
- Repository state
- ativo
- Added
- 2026-08-29 04:01:39
- Updated
- 2026-08-29 04:01:39
- Origin id
io.github.voicearc/splitbasket-prices
README
# SplitBasket Grocery Prices — MCP server & data API Cached US grocery prices for developers and agents, from the price panel behind [SplitBasket](https://splitbasket.shop). Every price carries its observation date; the API tells you what it can answer at a location before you ask, and returns `found: false` rather than a plausible wrong number. - **API docs & quickstart:** https://splitbasket.shop/developers - **Terms:** https://splitbasket.shop/api-terms - **Get a key (free, closed beta):** email team@splitbasket.shop — one line about what you're building; keys are issued by a human, usually within a day. ## Connect over MCP Endpoint: `https://api.splitbasket.shop/v1/mcp` (Streamable HTTP, bearer auth) Claude Code: ```bash claude mcp add --transport http splitbasket \ https://api.splitbasket.shop/v1/mcp \ --header "Authorization: Bearer sk_live_..." ``` Any MCP client that speaks Streamable HTTP works the same way — point it at the endpoint with the `Authorization` header. ## Or plain HTTP ```bash curl "https://api.splitbasket.shop/v1/compare_price?q=whole+milk&zip=94110" \ -H "Authorization: Bearer sk_live_..." ``` ## Tools | tool | what it does | |---|---| | `search_products` | Find products near a location, with the price each nearby store last showed | | `get_price` | The cached price of one exact product (banner + product_id) at one place | | `compare_price` | Best match at each banner for one query, ranked on canonical unit price | | `coverage` | What the API can actually answer at a location — call this first in an unfamiliar area | | `live_check` | Fetch from the retailer right now (paid tier); returns a job id + measured ETA | | `live_check_status` | Poll a live_check job | ## Coverage, honestly Two layers (measured weekly — 2026-08-09; `coverage` is the runtime source of truth): - **National layer** — six banners: Walmart, Costco, Whole Foods, Sprouts, Sam's Club, Aldi. 51 states (incl. DC) with at least one priced, 2+ banner comparison in 50, 3+ in 46 (measured 2026-08-11). These stores are priced weekly against a ~43-item staples basket. - **Deep metros** — San Francisco, Fresno, Phoenix, Austin: 7–17 banners with full shopping catalogs. Prices are cached observations, not live quotes. Exact-match rate by cache age, measured over 275k observation pairs: 99.6% under a day, 93.8% at a week, 79.9% at 30 days. Every row carries `price_as_of` and `price_age_days`; pass `max_age_days` to enforce what your use case tolerates. ## What this deliberately is not - **No basket optimizer.** To estimate a basket, call `compare_price` per item and sum it yourself. - **No state-level answers where prices measurably don't hold state-wide.** Chain-wide for target, smartandfinal, bashas, frys, foodsco — and per-state where a chain is bimodal: Costco in ten measured states, Whole Foods in CA and NV. Measured, not assumed; the demote list tracks the weekly panel. - **No blended accuracy score.** Price staleness is bimodal: a stale price is either exactly right or meaningfully wrong, so we disclose age instead of averaging it away. --- Operated by VoiceArc Inc. Not affiliated with or endorsed by any retailer; retailer names identify where a price was observed.