basketeer_basket_get
Get the current basket: line items, quantities, and guide price.
Run a Tesco grocery shop from an assistant — search by nutrition, manage the basket, book a slot and reorder your usual.
LABSCO SUMMARY
Ranking a live search by protein or sugar is the thing nothing else here does, and it works without signing in. The boundary is drawn where it should be: the basket, the slot and the amend window are all reachable, but checkout returns a URL and a person completes the payment.
An MCP server over your own Tesco account, talking to Tesco's GraphQL gateway rather than scraping the page. Its distinguishing feature is nutrition: where a product lists on-pack values, they come back as typed macros and named micronutrients you can filter and rank a search by. Checkout stops at the payment URL — a person finishes it in a browser.
A Tesco account and a saved session for anything account-scoped — favourites, basket, slots and orders. Nutrition and catalogue reads work anonymously with no login at all. Clients run the basketeer-mcp binary from the npm package over stdio; Node.js 18 or newer. Read-only and destructive tools carry MCP annotations, and 3-D Secure payment is deliberately left to a human in a browser.
One command — npm install basketeer
USE CASES
Search with nutrition constraints and rank the results by the macro you care about.
Start from your usuals, set each line to the quantity you want, and read the basket back with its guide price.
Read the last delivered order and add its items back to the basket.
List the slots for the week, then produce the checkout URL for a person to pay.
Check the upcoming order's amend window, then cancel in two steps with the confirmation token.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
basketeer_basket_getGet the current basket: line items, quantities, and guide price.
basketeer_basket_removeRemove a SKU from the basket entirely. Returns a compact receipt; call basketeer_basket_get for full basket contents.
basketeer_basket_setSet a SKU's basket line to an exact quantity (set-not-increment). quantity 0 removes the line. Returns a compact receipt; call basketeer_basket_get for full basket contents.
basketeer_checkoutPrepare checkout: returns the current basket and the URL where a HUMAN completes payment in a browser. This server never places or pays for an order — Tesco's 3-D Secure payment step is browser-bound by design. Two-step: call once with no args to preview the basket and get a confirmToken; call again with confirm set to that token to get the payment URL for the human to complete.
basketeer_favouritesList the signed-in customer's favourites ('my usuals') including price, offers, and quantityRules. Requires a saved session.
basketeer_last_orderReturn the last delivered (fulfilled) order and its items, e.g. for 'reorder my usual shop'. Returns null if there is none. This is a read — to reorder, add its items via basketeer_basket_set.
basketeer_nutritionNormalized nutrition (typed macros + micros) for a product by SKU.
basketeer_orders_cancelCancel an upcoming order outright (only before its amend/cancel cutoff). Two-step: call once with just orderNo to get a confirmToken and a preview; call again with confirm set to that token to actually cancel. Cancelling is irreversible.
basketeer_orders_listList upcoming (pending) orders with their items, slot, and amend window.
basketeer_productFetch one product by SKU (tpnc), including price, pack size, promotions, quantityRules (weight/bulk buy/catch weight options), and nutrition.
basketeer_searchSearch the Tesco grocery catalogue. Returns matching products with SKU, title, price, offers, and quantityRules (weight/bulk buy limits).
basketeer_search_by_nutritionSearch products by keyword, then filter/rank by nutrition (per 100g/ml). Hydrates each candidate with a throttled product fetch; bounded by hydrate.
basketeer_slots_listList delivery slots over a date window (defaults to today..+6 days). Dates are YYYY-MM-DD.
BEFORE YOU INSTALL
13 tools when we connected. Slot booking and order amendment exist in the SDK but have no tool: an agent can list slots but not book one.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 13 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npm install basketeer{
"mcpServers": {
"basketeer": {
"command": "npx",
"args": [
"-y",
"-p",
"basketeer",
"basketeer-mcp"
]
}
}
}