Back to Discover

splitbasket-mcp

connector

voicearc

Cached US grocery prices, age disclosed on every row - search, compare across banners, coverage.

View on GitHub
0 starsSynced Aug 9, 2026

Install to Claude Code

/plugin marketplace add voicearc/splitbasket-mcp

README

SplitBasket Grocery Prices — MCP server & data API

Cached US grocery prices for developers and agents, from the price panel behind SplitBasket. 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.

Connect over MCP

Endpoint: https://api.splitbasket.shop/v1/mcp (Streamable HTTP, bearer auth)

Claude Code:

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

curl "https://api.splitbasket.shop/v1/compare_price?q=whole+milk&zip=94110" \
  -H "Authorization: Bearer sk_live_..."

Tools

toolwhat it does
search_productsFind products near a location, with the price each nearby store last showed
get_priceThe cached price of one exact product (banner + product_id) at one place
compare_priceBest match at each banner for one query, ranked on canonical unit price
coverageWhat the API can actually answer at a location — call this first in an unfamiliar area
live_checkFetch from the retailer right now (paid tier); returns a job id + measured ETA
live_check_statusPoll 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 48, 3+ in 40. 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 for banners whose prices don't hold state-wide (target, smartandfinal, bashas, frys, foodsco) — measured, not assumed.
  • 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.

Rendered live from voicearc/splitbasket-mcp's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
streamable-http remoteHosted streamable-http endpointmcp-serverhttps://api.splitbasket.shop/v1/mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.