{
  "markdown": "# SplitBasket Grocery Prices — MCP server & data API\n\nCached US grocery prices for developers and agents, from the price panel behind\n[SplitBasket](https://splitbasket.shop). Every price carries its observation\ndate; the API tells you what it can answer at a location before you ask, and\nreturns `found: false` rather than a plausible wrong number.\n\n- **API docs & quickstart:** https://splitbasket.shop/developers\n- **Terms:** https://splitbasket.shop/api-terms\n- **Get a key (free, closed beta):** email team@splitbasket.shop — one line\n  about what you're building; keys are issued by a human, usually within a day.\n\n## Connect over MCP\n\nEndpoint: `https://api.splitbasket.shop/v1/mcp` (Streamable HTTP, bearer auth)\n\nClaude Code:\n\n```bash\nclaude mcp add --transport http splitbasket \\\n  https://api.splitbasket.shop/v1/mcp \\\n  --header \"Authorization: Bearer sk_live_...\"\n```\n\nAny MCP client that speaks Streamable HTTP works the same way — point it at the\nendpoint with the `Authorization` header.\n\n## Or plain HTTP\n\n```bash\ncurl \"https://api.splitbasket.shop/v1/compare_price?q=whole+milk&zip=94110\" \\\n  -H \"Authorization: Bearer sk_live_...\"\n```\n\n## Tools\n\n| tool | what it does |\n|---|---|\n| `search_products` | Find products near a location, with the price each nearby store last showed |\n| `get_price` | The cached price of one exact product (banner + product_id) at one place |\n| `compare_price` | Best match at each banner for one query, ranked on canonical unit price |\n| `coverage` | What the API can actually answer at a location — call this first in an unfamiliar area |\n| `live_check` | Fetch from the retailer right now (paid tier); returns a job id + measured ETA |\n| `live_check_status` | Poll a live_check job |\n\n## Coverage, honestly\n\nTwo layers (measured weekly — 2026-08-09; `coverage` is the runtime source of truth):\n\n- **National layer** — six banners: Walmart, Costco, Whole Foods, Sprouts,\n  Sam's Club, Aldi. 51 states (incl. DC) with at least one priced, 2+ banner\n  comparison in 50, 3+ in 46 (measured 2026-08-11). These stores are priced\n  weekly against a ~43-item staples basket.\n- **Deep metros** — San Francisco, Fresno, Phoenix, Austin: 7–17 banners with\n  full shopping catalogs.\n\nPrices are cached observations, not live quotes. Exact-match rate by cache age,\nmeasured over 275k observation pairs: 99.6% under a day, 93.8% at a week, 79.9%\nat 30 days. Every row carries `price_as_of` and `price_age_days`; pass\n`max_age_days` to enforce what your use case tolerates.\n\n## What this deliberately is not\n\n- **No basket optimizer.** To estimate a basket, call `compare_price` per item\n  and sum it yourself.\n- **No state-level answers where prices measurably don't hold state-wide.**\n  Chain-wide for target, smartandfinal, bashas, frys, foodsco — and per-state\n  where a chain is bimodal: Costco in ten measured states, Whole Foods in CA\n  and NV. Measured, not assumed; the demote list tracks the weekly panel.\n- **No blended accuracy score.** Price staleness is bimodal: a stale price is\n  either exactly right or meaningfully wrong, so we disclose age instead of\n  averaging it away.\n\n---\n\nOperated by VoiceArc Inc. Not affiliated with or endorsed by any retailer;\nretailer names identify where a price was observed.\n",
  "bytes": 3258,
  "sha": "8031ca1e3b011c640386a7a2ddeb4e4ec53bf0fd913b5e5c9cfe44f748fad94e",
  "repo_slug": "voicearc/splitbasket-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_voicearc_splitbasket_prices_b48e143a/readme"
}