MCP server for Continente.pt — search products, manage your cart, and browse order history.
Continente MCP has 7 tools with clear verb-noun naming (search_products, get_favorites, add_to_cart, etc.). All tools have descriptions (avg ~80 chars, baseline 194 chars). Input schemas are present with type definitions and parameter descriptions. However, descriptions are significantly shorter than production baselines and lack actionable context (e.g., no guidance on when to use search vs. get_most_bought, no dependency hints). Output schemas are not documented in the source. Error handling is minimal, no recovery guidance or error categorization visible. Parameter constraints (e.g., query length 250 chars, limit 1-50) are documented in descriptions but lack formal enum/pattern declarations. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Add a product to the shopping cart
Retrieve the current shopping cart contents and total
Retrieve the user's favorite products list
Retrieve the user's most frequently purchased products
Retrieve the user's order history
Search for products on Continente.pt by query string
Update the quantity of a product in the shopping cart or remove it
Output schemas not documented. LLMs cannot infer what fields get_favorites, get_cart, get_order_history return, forcing them to guess downstream field names and risk broken tool chains.
Descriptions are 50 - 65 chars (baseline 194 chars). Too brief to guide LLM selection. E.g., 'Retrieve the user's favorite products list' lacks context on when to call this vs. search_products or get_most_bought.
No tool annotations (readOnlyHint, destructiveHint). Metadata shows add_to_cart and update_cart_item are WRITE operations, but this is not declared in the tool schema. LLMs cannot distinguish safe vs. unsafe tools without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No error handling guidance. If search_products returns no results or authentication fails, the tool provides no recovery path. LLMs cannot self-correct or retry intelligently.
Parameter constraints (e.g., query max 250 chars, limit 1-50) are documented in descriptions as text but not formalized as JSON Schema constraints (minLength, maxLength, minimum, maximum, enum). LLMs may not parse text constraints reliably.