fr-grocery-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FR_GROCERY_CONFIG | No | Path to a JSON configuration file. Without a file, only Super U is plugged in. | |
| FR_GROCERY_STATE_DIR | No | Directory where the picked Leclerc store is remembered (default ~/.fr-grocery-mcp). | |
| FR_GROCERY_CHROME_PORT | No | Overrides the Chrome debugging port set in the configuration file. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_storesA | Lists the plugged-in retailers and their capabilities (product page, store selection, minimum order, booked slot). With check: true, also checks that each session responds and shows the active store. |
| search_productsA | Searches the retailer's catalogue. For each product: id, label (brand and size included), price, price per kg/l/piece, availability, typed promotions (immediate, multibuy, loyalty) and best net offer. |
| get_productA | Reads a product page: ingredient list (allergens in capitals, possible traces), allergen statement if the site provides it, and origin. Ingredients are null for a raw product (fruit, fresh meat). |
| get_cartA | Reads the retailer's actual cart: lines (id, label, quantity, line total, unit price) and total. |
| get_order_conditionsA | Reads, for one retailer or all of them (store omitted), the selected store, the booked slot, the next pickup and delivery slots (structured dates) and the minimum order. Books nothing. |
| add_to_cartA | Adds units of a product on top of those already present, then reads the cart back to confirm. |
| set_quantityA | Sets a product's quantity in the cart (replaces the current one; 0 removes the product), then reads the cart back. |
| remove_from_cartA | Removes a product from the cart entirely, then reads the cart back. |
| find_storesB | The retailer's stores around a postcode or town, nearest first (if the retailer supports it, see list_stores). |
| set_storeA | Selects the retailer's active store among the find_stores results and remembers it. The site session must be on this store: on "session expired", open it on the site. |
| compare_cartsA | Reads each retailer's cart: total, lines, minimum order and missing amount, next slots. Sorted from cheapest to most expensive. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Most tools have clearly distinct purposes (cart mutation vs. reading vs. product lookup), but list_stores (retailers) and find_stores (physical locations) are easy to conflate by name alone, and store/slot/minimum-order data is duplicated across list_stores, get_order_conditions, and compare_carts. The descriptions do resolve these overlaps, so misselection is unlikely but possible.
Every tool is snake_case, verb-first, and noun-scoped (list_stores, search_products, get_cart, add_to_cart, set_quantity, remove_from_cart, compare_carts). Verb choices vary appropriately with the action rather than being forced into one pattern.
11 tools sit in the ideal range and each maps to a real step in a grocery workflow: discover retailer, pick store, search/browse products, manage cart lines, read conditions, compare baskets. No tool looks redundant or filler.
The surface covers discovery, product inspection, full cart CRUD (add/set/remove/read), conditions, and cross-retailer comparison, which is coherent for a browsing/assembly server. The notable gap is order placement/checkout and any slot booking, plus no session/login tool despite the 'session expired' note — manageable but a dead end if an agent is expected to complete a purchase.