Skip to main content

BasketWatch

com.basketwatchireland/basketwatchVersion 1.0.1

Irish grocery prices at Aldi, Tesco, SuperValu, Dunnes and Lidl: compare, baskets, offers, history

Status

Responds114 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:48 UTC
Latency
114 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://basketwatchireland.com/mcpResponds114 ms
No sign-in

Claude Code

claude mcp add --transport http basketwatch https://basketwatchireland.com/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: basketwatch
Remote MCP server URL: https://basketwatchireland.com/mcp

Cursor

{
  "mcpServers": {
    "basketwatch": {
      "url": "https://basketwatchireland.com/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"basketwatch","type":"http","url":"https://basketwatchireland.com/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

17 tools

Tools of BasketWatch
Read-only
Idempotent
Open world
best_dealsToday's real deals at Aldi, Tesco, SuperValu, Dunnes Stores and Lidl: offers at the lowest price on record for that product at that shop, or the first offer it has ever had. Each is measured against the product's own price history, not the shop's was price, so a recurring or long-running price does not count as a deal. The biggest saving comes first, against the usual price or the price it typically sold at, whichever is less, so a product that is usually on offer does not lead. By that saving, the shops take turns among deals that save alike, so one shop does not fill the top of the list, and no deal comes ahead of one that saves more than twice as much. Every promotion on sale is judged, so this covers them all, and offset reaches every deal. Covers food, drinks, alcohol, household, baby and pet products unless another aisle is named. Tobacco, infant formula and medicines are never included. Returns {"as_of", "note", "total", "deals"}. total counts every deal for this search, across all pages, and next_offset is the next page's offset, missing on the last page. Each deal has name, store, pack, you_pay, regular_price, saving_eur, saving_pct, card_needed, buy_quantity, offer_ends, url and category, and the record behind it: kind, lowest_since, low_before, low_before_date, offer_start, run_start, days_on_offer, started_today, cut_today, yesterday_price, back_after_days, typical_price, offer_share and abv. started_today is true only for an offer that began on the collection day; an offer running for weeks whose price fell that day has cut_today instead, and offer_start says since when it has been on offer. One credit per deal returned.NoYesYesYes
check_creditsHow many BasketWatch credits the signed-in account has left, and when they expire. Free to call. One credit is one record returned.NoYesYesYes
compare_price_across_storesRaw per-store search results for a product name at all five supermarkets: every matching line at each store, including other pack sizes, without matching the same product across stores, so its rows are not like for like. stores is keyed by store, each shop's closest matches first; total_by_store is how many each has in all; as_of is the day the prices are from. Each product returned costs one credit, up to limit_per_store at each of the five stores.NoYesYesYes
compare_pricesFind where a product is cheapest right now. Matches the same product at Aldi, Tesco, SuperValu, Dunnes Stores and Lidl and returns each store's current price side by side, with unit prices, offers and member prices (Tesco Clubcard, SuperValu Real Rewards, Lidl Plus). It answers for one product a call. To list the products matched at several stores, leave out query and set min_stores, e.g. min_stores=5 for every product matched at all five. Free: no BasketWatch account needed. total is how many matched products the search found in all. cheapest_match is the cheapest product of the kind asked for, by shelf price; matches lists the closest matches first, not the cheapest, so the first of them is not the cheapest. In each match, prices is keyed by store; cheapest_store goes by shelf price and cheapest_store_with_card by the loyalty-card price where a shop has one. unit_price is in the shop's own measure (unit_basis); price_per_kg or price_per_litre is the same figure per kilo or per litre. A store missing from "prices" did not have that product in its online range today and may still sell it in store: say "not found online", not that the store lacks it. offer_ends is the last day an offer applies (Irish time): say when an offer ends, as online orders are priced for the delivery or collection day.NoYesYesYes
find_productsFind products that meet ingredient, nutrition, alcohol or offer conditions, optionally sorted. For questions like "biscuits without palm oil", "nut-free snacks at Tesco", "vegan chocolate", "cereal with the least sugar", "high protein yoghurt", "bread with the fewest ingredients", "alcohol-free beer", "low salt soup" or "cheapest olive oil at Aldi". Fibre and saturated fat are not recorded. quality_mark finds products by mark (Bord Bia, organic, free range), with or without a query. A search is for one kind of product: every word of query has to be in a product's name, so several kinds in one query ("lentils chickpeas beans") match nothing. A search on price or offers alone returns short rows: name, pack, shop, shelf, price, offer and unit price (unit_price in the shop's own measure, price_per_kg or price_per_litre the same figure per kilo or per litre). A search with an ingredient, nutrition, additive, origin or strength condition, or sorted on one, returns each product's label as well: nutrition, ingredients, ingredient count, allergy advice and where they came from. detail chooses either for any search. With no store, results alternate across the stores (each store's best match, then each store's next), and matched_by_store gives each store's full count: the first row is one store's best, and the best of a kind across the stores is among each store's first rows. The counts add up: of_kind, the products that are the kind searched for, is matched + left_out_unknown + left_out_failed_filters + left_out_partly_from_origin + left_out_may_contain, and "N of M" is matched of of_kind. A product whose ingredient list or nutrition is not on record, or whose ingredient list on record is incomplete, is left out, never assumed to pass: left_out_unknown counts them, left_out_by_reason gives the reasons, and caveats lists known gaps (Aldi's own ingredient lists are often cut short, so an Aldi product is offered as free from something only when its full list comes from the saNoYesYesYes
get_price_historyA product's recorded daily prices over a date range. BasketWatch has kept every night's price at Aldi, Tesco, SuperValu and Dunnes Stores since May 2026 and at Lidl since 17 October 2026, and, with with_nutrition_and_ingredients, each day's nutrition per 100g or 100ml and ingredients list as the retailer's own data stated them, kept since 16 October 2026: for questions like "has the sugar in Frosties changed". Takes product ids (as returned in product results; an Aldi id has no store prefix, and "aldi:" in front of one is accepted) or a query; with a query, the closest matching product at each shop is looked up first, one a shop, so a month of days fits whole, and each row names the product it is for. A range returns one row per product per day, and each row costs one credit; with from_date equal to to_date, one day's price is returned. One credit per row comes to about 31 for one product for a month and about 155 for a product at five shops, and a look-up by name adds one for each shop that has the product. Every product gets the same days. When products x days would pass the row limit, the range is shortened to its most recent days for all of them and note says so; ids with no price in the range are listed in not_found. Returns rows (id, name, store, scrape_date, price, unit_price, unit_basis, clubcard_price, offer_text, was_price), the days covered, not_found, note.NoYesYesYes
get_product_detailsNutrition per 100g or 100ml (energy, fat, carbohydrate, sugars, protein, salt), the ingredients list as printed (allergens included), how many ingredients it lists, country of origin, a quality mark the pack shows (Bord Bia Quality Assured), alcohol strength, pack size, description and today's price, for particular products. Products are looked up by product id (store-prefixed, as returned in product results), by the retailer's own item numbers (skus with store, as printed on its receipts), or by name (query). ingredients_incomplete marks an ingredient list on record that is cut short, which cannot show that an ingredient is absent. A product looked up by id or item number answers even after it has left the shop's range: in_range_today false marks one, and its price is then the last one recorded (price_date), not today's. Ids with no product on record are listed in not_found. Results carry a note that nutrition and ingredients are for information only. Each product returned costs one credit.NoYesYesYes
get_promotionsList products currently on promotion at a given supermarket, the biggest saving the shop states first. Every promotion can be reached: each call returns one page, and offset moves through the whole list. These are the shop's own offers, as it states them, on the products it still lists. Aldi runs no multibuys or member prices: its list is the price cuts and offers its own site shows. Returns offer label (e.g. "3 for €5", "SAVE €0.75"), was-price, validity window, offer_ends (the last day the offer applies, Irish time), and where applicable Tesco Clubcard prices, SuperValu Real Rewards prices, Dunnes member offers or Lidl Plus prices (scan the Lidl Plus app at the till). next_offset is the next page's offset, and is missing on the last page. Each offer returned costs one credit.NoYesYesYes
lookup_barcodeFind the products carrying one or more barcodes (GTIN, EAN or UPC) at Aldi, Tesco, SuperValu, Dunnes Stores and Lidl in one call: what a scanned or printed code is, and its price at each shop that lists it. Needs a signed-in BasketWatch account. Returns products (each with its store, matched_barcodes, name, brand, pack_size, price and its full barcodes list), not_found and invalid. One credit per barcode found, however many retailers stock it; codes with no match cost nothing.NoYesYesYes
newly_added_productsProducts newly listed at a supermarket within a configurable lookback window: range additions and new launches, each with first_seen, the day it appeared. more is true when the page is full, so there may be more. Each product returned costs one credit.NoYesYesYes
price_basketPrice a whole shopping list, or every line of a grocery receipt (up to 100 lines in one call), at Aldi, Tesco, SuperValu, Dunnes Stores and Lidl: each item matched to the same product at every store, the cheapest store for each item, each store's basket total, and a cheaper product of the same kind (often own-label) where one exists. Each line takes name (plain words with brand and size, e.g. "avonmore fresh milk 2l"; receipt abbreviations such as "AVNMR FRSH MLK 2L" match poorly) and optionally sku (the retailer's item number as printed on its receipts; the name is used when the number is not found), barcode, store, quantity, and paid (the line total, which gives the saving against what was paid). Irish product names say "low fat milk" for what the UK calls "semi skimmed". Bags, deposits, discounts and totals are not products. Returns, per line, the match and matched_by (sku, barcode or name), the cheapest store and price, a cheaper alternative with its pack size and, for a receipt, price_at_store_bought; then each store's total with its items_missing, cheapest_complete_store, mix_and_match_total and not_found. A store's total covers only the lines found in its online range, so a total with items_missing is a smaller basket, not a cheaper shop. Prices are each retailer's online shelf price from the overnight collection; in-store prices can differ. Member prices (Tesco Clubcard, SuperValu Real Rewards, Lidl Plus) are reported separately. Each matched item costs one credit; items not found are free.NoYesYesYes
price_basket_over_timeHow the cost of the same basket changed between two dates, at the store it was bought from: each product's price on both dates, whether it was on promotion, the basket total on each date, and the products that moved it. BasketWatch has recorded every product's price every night since May 2026 (Lidl's since 17 October 2026). Up to 100 lines per call; each line takes name, sku (the retailer's printed item number, with the line's words in name), barcode, store and quantity. change_pct is the change in what the basket cost (promotions included); shelf_change_pct is regular prices only, so the gap between the two is promotions starting or ending, not price rises. biggest_rises and biggest_falls list the lines that moved most; pack_changed marks a product whose pack size changed, confirmed over three days of records (a smaller pack at the same price is a hidden rise). Lines in not_compared were not found, or not sold on one of the dates. Each product compared costs one credit.NoYesYesYes
price_movementsHow a whole category's prices moved between two dates, in one call: the biggest regular-price rises and falls, promotions starting and ending, member price changes (Tesco Clubcard, SuperValu Real Rewards, Lidl Plus) and pack-size changes, kept apart, with a summary over every product compared (average and median shelf change, counts of rises and falls) overall and per store. shelf_rise and shelf_fall are changes to the regular price; promotion_started and promotion_ended are changes in what was paid while the regular price stayed the same (a product at 18 euro on promotion and 23 euro after is a promotion ending, not a 27.8% price rise); loyalty_change is a member price moving; pack_change is the same product in a different pack size, confirmed over three days of records (a smaller pack at the same price is a hidden rise); was_price_change is an offer running at both dates while only its "was" price moved, kept out of the shelf figures because nobody paid it. Averages are geometric, so a half-price offer starting and ending cancel out; average_member_paid_change_pct uses member prices where they apply. Each mover returned costs one credit; the summaries are free.NoYesYesYes
recent_price_changesPrice movements at one supermarket between the latest nightly snapshot and the previous one: shelf price rises and falls with old price, new price and % change, and promotions starting or ending listed separately (an offer ending is not a price rise). It covers those two snapshots only. The lists' _total fields say how many changed in all. Each product returned costs one credit.NoYesYesYes
removed_productsProducts that have disappeared from a supermarket's catalogue: delistings and range cuts, each with last_seen, the last day it was listed, and last_price. A product counts as removed once it has been off the shop's site for 8 days (3 at Lidl, whose whole range is read every night), so the window runs from days_back days ago to that many days ago and never covers the last days. A product missing online may still be sold in store: it is no longer listed online, which is not the same as discontinued. more is true when the page is full, so there may be more. Each product returned costs one credit.NoYesYesYes
search_productsSearch products by name across one or all Irish supermarkets: each shop's closest matches for the words, for a product that can be named ("kerrygold butter"). Matches on the name only: no ingredient, nutrition or offer filters, and no price sorting. The answer has total (every match, with total_by_store when all five shops are searched) and as_of, the day the prices are from; when nothing matches, hint says which word no product has. unit_price is in the shop's own measure (unit_basis); price_per_kg or price_per_litre is the same figure per kilo or per litre. A row marked removed has left the shop's online range: its price is its last one, of the day in its scrape_date. Each product returned costs one credit.NoYesYesYes
statusA freshness snapshot per supermarket: products tracked, products on promotion, the last collection date and the status of the most recent run. Free to call.NoYesYesYes

Details

Registry status
Active
Published
Oct 18, 2026
Updated
Oct 18, 2026
Repository
Not given
Categories (suggested)
E-commerceSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing