Mercadona MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MERCADONA_STATE_PATH | No | Override path for storage state file (default ~/.mercadona/storage_state.json). | |
| MERCADONA_BROWSER_CHANNEL | No | Browser channel to use for login (default chrome). | chrome |
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 |
|---|---|
| get_shopping_guideA | Return the Mercadona shopping playbook: how to present products (ALWAYS as a photo-grid artifact), fill and review the real cart, use 'my regulars', and reorder past shops. Call this once at the start of any Mercadona task — before searching or adding to the cart — and follow it. |
| auth_statusA | Check whether the Mercadona session is valid and how long the token lasts. |
| loginA | Open a browser window to sign in to Mercadona. The user logs in (and handles any 2FA/SCA); the session is then saved so all other tools work. Call this when not signed in, or when a tool reports the session expired. |
| search_productsA | Find a product and its id (needed before add_to_cart), scoped to the user's delivery area. Use a short term; prefer the house brand 'Hacendado' unless asked otherwise. Returns matches with ids and prices. |
| get_productA | Get details for a single product by id. |
| get_cartB | Show the current real shopping cart (items, quantities, total). |
| get_my_regularsA | Products you usually buy. kind='precision' = most bought; kind='recall' = also bought. |
| get_purchase_historyB | List past orders (date, total, status, item count). Page is 1-based. |
| get_order_itemsA | List the products in a past order (without adding anything). Defaults to the most recent order if order_id is omitted. |
| get_delivery_slotsA | Available delivery slots. Uses your first address if address_id is omitted. |
| add_to_cartA | Add a product to the real cart by id (get the id from search_products or get_my_regulars first). If already present, increases the quantity. Returns the updated cart with its total. |
| set_quantityA | Set the exact quantity of a product in the cart. Quantity 0 removes it. Returns the updated cart. |
| remove_from_cartB | Remove a product from the cart entirely. Returns the updated cart. |
| reorder_orderA | Add all items from a past order to the cart in one step (a 'buy again'). Defaults to the most recent order. Skips items no longer available and reports them. Returns the updated cart. |
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 14 tools
Each tool has a clearly distinct purpose: search vs product details, cart operations (add, remove, set quantity) are separate, past orders vs current cart, authentication, delivery slots, regulars, and a guide. No two tools overlap in function.
All tool names follow a consistent verb_noun pattern in snake_case, e.g., add_to_cart, get_cart, search_products, set_quantity. Minor deviations like 'auth_status' or 'login' are still clear and consistent with the style.
14 tools cover the essential operations for a grocery delivery service: authentication, search, product details, cart management, order history, and delivery slots. The number is well-scoped and neither too few nor excessive.
The tool set covers search, cart management, and history, but notably lacks a checkout or place_order tool. Users can fill a cart but cannot complete a purchase through the server. Delivery slots are viewable but not selectable. This is a significant gap for an e-commerce server.