
UK Supermarkets
io.github.jbeshirPublished by GitHub account jbeshirv1.0.3Updated Oct 30, 2026
Search and compare grocery prices across UK supermarkets with product details.
Overview
Searches and compares grocery prices across nine UK supermarkets, with product details, category browsing and Tesco basket tools.
- What you can do
- List supported supermarkets and their status
- Search products across one or more stores and compare prices for an item
- Read product details such as price, description, ingredients and nutrition
- Browse product categories for a supermarket
- With Tesco login: read order history, view the basket, add items or change quantities, and remove items
- When to use it
- Useful when you want an assistant to price-check groceries, compare the same item across UK stores, or look up ingredients and nutrition while planning a shop. Tesco basket and order-history tools only matter if you shop at Tesco and enable login.
- Requirements
- Runs as a local process (Go binary, pre-built release, or Docker image). Chrome, Chromium or Edge is needed for Tesco, Asda and Waitrose and for any login; CHROME_EXEC_PATH can point at the browser binary. No environment variables are required for browsing without login; login is enabled per store with variables such as TESCO_LOGIN, and SUPERMARKET_COOKIE_DIR overrides where cookies are stored. Network access to the supermarket sites is required.
Installation
In SourceWeft
- Open UK Supermarkets in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
supermarkets-uk-mcp
An MCP server for searching and comparing grocery prices across 9 UK supermarkets. It provides product search, price comparison, category browsing, and (for Tesco) order history and basket management. Each supermarket is implemented as a pluggable datasource behind a common interface, with the server fanning out concurrent requests across stores and aggregating the results.
Getting Started
Requirements
-
Go 1.27.3+ (to build from source)
-
Chrome, Chromium, or Microsoft Edge — required for Tesco, Asda, and Waitrose (headless browser rendering), and for login to any supermarket. Sainsbury's, Ocado, Morrisons, and the Shopify stores work without a browser.
On Linux, avoid snap-packaged Chromium (Ubuntu's default
chromiumpackage). It is known to hang indefinitely — both on graceful CDP tab-close and on OS-level process reaping after a forced kill — when launched as a descendant of certain parent processes (observed running under Claude Desktop's Electron process tree). The hang was 100% reproducible under that setup and never reproduced with the same code against a non-snap Chrome/Chromium build. Install Google Chrome or a non-snap Chromium build instead, and pointCHROME_EXEC_PATHat it if it isn't picked up automatically.
Installation
Pre-built binaries are available from Releases.
Install from source:
Or build from the repo root:
A Dockerfile is also provided, based on chromedp/headless-shell so that browser-based stores work out of the box:
Configuration
No environment variables are required to get started — all supermarkets work without login.
See Login below for the additional variables that enable interactive login.
Claude Desktop
Claude Code
Tools
Supported Supermarkets
Product Information Coverage
Not all supermarkets provide the same level of detail:
Login
Login is optional and enables personalised results (e.g. local stock, delivery availability), order history, and basket management. It requires running the server locally with a browser available.
To enable login, set <SUPERMARKET>_LOGIN=true for each supermarket you want to log in to. On first use, a visible browser window opens for you to complete login manually. Session cookies are cached to disk and reused across restarts. If cookies expire, the server clears them and triggers a fresh login automatically.
Login requires Chrome, Chromium, or Edge for all supermarkets, including those that do not otherwise need a browser. Supermarket sessions tend to expire frequently, so expect to be prompted to log in again regularly.
Example with login enabled:
Key Concepts
- Datasource — A pluggable adapter for a single supermarket. Each datasource implements a common
ProductSourceinterface (search, product details, category browsing) using whatever transport the supermarket requires: JSON API, server-rendered HTML scraping, or headless Chrome rendering. - AuthProductSource — An extension of
ProductSourcethat supports session cookie injection and validation. Six of the nine supermarkets implement this interface, allowing logged-in features like personalised results. The three Shopify-based stores are plainProductSourceimplementations with no auth support. - Client orchestrator — The
client.Clienttype wires together all nine datasources. It manages concurrent fan-out for searches, lazy authentication with session expiry detection, and per-host rate limiting. - Auth resolver — A per-supermarket wrapper that handles lazy login. On first use of a login-enabled supermarket, it opens a visible browser window for the user to complete login manually. Session cookies are persisted to disk and reused. If a request returns
ErrSessionExpired, the resolver clears the cookies and triggers a fresh login. - Shared browser — A single headless Chrome instance (via chromedp) shared across all browser-based datasources. Each request opens a new tab within the shared browser context so that cookies persist between navigations.
- OSP (Ocado Smart Platform) — Ocado and Morrisons share a common server-rendered HTML structure. A single
osppackage implements both, parameterised by store-specific config.
Architecture
External Dependencies
Data Flow
A search_products call with multiple supermarkets triggers concurrent requests across all targeted stores. Individual store failures are captured per-result rather than failing the entire request.
When a logged-in request fails with ErrSessionExpired, the auth resolver clears the cached cookies, opens a browser window for re-login, and retries the request transparently.
Source: supermarkets-uk/README.md at commit 27dc1b2
Tools
0Version history
2- v1.0.3LatestOct 29, 2026
- v1.0.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts