Back to Browse

Splitbasket MCP Server

Developer ToolsLow Risk10.0MCP RegistryRemote
Free

Server data from the Official MCP Registry

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

About

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

Remote endpoints: streamable-http: https://api.splitbasket.shop/v1/mcp

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (1 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry.

Endpoint verified · Requires authentication · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

How to Connect

Remote Plugin

No local installation needed. Your AI client connects to the remote endpoint directly.

Add this to your MCP configuration to connect:

{
  "mcpServers": {
    "io-github-voicearc-splitbasket-prices": {
      "url": "https://api.splitbasket.shop/v1/mcp"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub 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.

Reviews

No reviews yet

Be the first to review this server!