Continente MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CONTINENTE_CREDENTIALS_FILE | No | Absolute path to the credentials file if kept elsewhere. Default is ~/.continentept-mcp/credentials.env |
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
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_productsA | Search the Continente.pt catalogue. No login needed. Results keep the website's relevance order and mark saved favorites; pass favoritesFirst to move them to the top. Each shows its price with what it is for (per item, piece, kg or litre), any promotions, the pack size, brand, category and productId. Filter with category, excludeCategory or brand, and sort by unit_price to compare packs. Pass nextCursor back as cursor, with the same query, for the next products. |
| get_productA | Get one product by productId: price, promotions with their dates, pack size, availability and sale rules (sale unit, minimum, maximum and step). A multi-buy or nth-unit offer is applied by the cart, not in the price shown. Availability is what the product page shows this session, signed in or not; it is not a delivery-slot stock check. Check this before choosing a quantity for weighted or bulk products. No login needed. |
| choose_productsA | Show the user the open choices of a request side by side, with photos where the client supports it, so they pick one product for each. Use it only when the user must decide between candidates, such as two milks or 500 g against 1 kg; settle everything else yourself (favorites, usual purchases, cheapest per kg). Put all open choices of a list in one call, at most 10, each with 2 to 4 candidates and your suggestion. It changes nothing: the choices come back as a chat message, then change the cart with set_cart_item_quantity. |
| get_product_labelsA | Ingredients, allergens and nutrition for up to 20 products, as the website's copy of each label declares them: the ingredient list, the words it prints in capitals (how labels mark allergens), the allergen and "may contain traces" statements, and nutrients per 100 g or ml. Use it only when a task needs them, such as checking vegan, gluten or allergens, or adding up protein. Nothing is inferred: absence of an allergen in these fields is not a "free from" claim, and the packaging prevails. No login needed. |
| list_favoritesA | List the products saved as favorites on the account. Uses a local snapshot that is refreshed automatically when missing; snapshots older than 24 hours are marked stale. Pass refresh: true to fetch the current list from the website. |
| get_cartA | Read the shopping cart: each line with productId, cartItemId, kind (product or bag), quantity, unit price (per item or per kg) and lineTotal, its promotions and lineTotalBeforeDiscount when the cart discounts the line, plus the totals (products, bags, deposit, delivery, discounts and grandTotal, the amount to pay), and checkout: the minimum order and whether the delivery fee is free with EntregaZero or set at checkout by day, slot and area (it is not in the totals until then). Use it to check current quantities before changing them and to verify any uncertain change. |
| preview_cart_changesA | Check products and the total wanted of each before changing the cart, without changing anything. For each: what the cart holds, what set_cart_item_quantity would do (add, increase, decrease, remove or none), why it would be refused (such as a minimum or step), availability, pack details and the estimated cost, plus the products total after the changes with its minimum order and delivery fee. Reads one product page per item, at most 30. Prices and stock can change before you apply it. |
| add_cart_itemA | Add an amount of a product to the cart, on top of any quantity already there. quantity is in the product sale unit (default 1). Use set_cart_item_quantity instead when the user wants a specific total. If the result has mutation.outcome "unknown", the cart may have changed: call get_cart before any further change and never repeat the request automatically. |
| set_cart_item_quantityA | Make the cart hold exactly this quantity of a product, adding it if it is not there yet. Zero removes it. Pass cartItemId from get_cart when the product has more than one line. If the result has mutation.outcome "unknown", the cart may have changed: call get_cart before any further change and never repeat the request automatically. |
| remove_cart_itemA | Remove a product line from the cart. Succeeds without changes if it is already absent. Pass cartItemId from get_cart when the product has more than one line. If the result has mutation.outcome "unknown", the cart may have changed: call get_cart before any further change and never repeat the request automatically. |
| clear_cartA | Remove every product from the cart in one step, with the website's own "remove all" action, and confirm the cart is empty. Only when the user asks to empty or clear the whole cart; pass confirm: true. To remove some products, use remove_cart_item. If the result has mutation.outcome "unknown", the cart may have changed: call get_cart before any further change and never repeat the request automatically. |
| list_ordersA | List recent orders, newest first, with their product lines. Each order has an orderId for get_order. Use detailLimit or includeLines: false to read fewer details, and pass the returned nextCursor as cursor to continue. |
| get_orderA | Get the product lines of one order by its orderId from list_orders (not the displayed order number). |
| list_frequently_bought_productsA | Rank products by how many recent orders contained them, with total quantities per unit. orderLimit sets how many recent orders to read (default 10); limit caps the products returned (default 25). Useful for building a usual shopping list. |
| get_session_statusA | Report local state without contacting the website: browser status, whether credentials and saved cookies exist, the last observed login state and favorites snapshot freshness. Never returns secrets. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| basket-planner | Workflow for choosing products, checking sale quantities and changing the cart safely. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| product-picker | Shows the products of choose_products with photos so the user can pick one for each choice. |
TDQS
Scored across 15 tools
Every tool targets a distinct resource plus action, and the two riskiest pairs (add_cart_item vs set_cart_item_quantity, get_cart vs preview_cart_changes) are explicitly disambiguated in the descriptions. Search/get/labels are cleanly separated by depth, and choose_products is clearly framed as a presentational decision step rather than a search or mutation.
All 15 names are snake_case verb_noun (get_product, list_orders, set_cart_item_quantity, clear_cart), with no camelCase or mixed verb styles. The vocabulary is consistent per resource (get_product/get_product_labels, add/set/remove_cart_item).
Fifteen tools sit at the top of the well-scoped range, and each covers a genuinely different step: discovery, inspection, decision support, safe mutation, and read-back. Cart operations are split finely but only because preview/safety semantics require it.
The shopping lifecycle is well covered: search, product detail, labels, favorites, orders, and a full cart surface (read, preview, add, set, remove, clear). Gaps are minor-to-notable: favorites are read-only and there is no checkout/place-order or login tool, though both can be completed by the user on the website.