Skip to main content
Glama

rami_levy_remove_item

Remove one product from the cart by productId and re-sync it with the Rami Levy server. Get the updated totals, plus clear notifications if items were rejected or the cart was reset after a recent order.

Instructions

Remove one product from the cart by productId, then re-syncs the remaining cart to the real account. Returns cartTotal (local estimate) and serverTotal (Rami Levy's own total — authoritative). ok:false with a transport reason means nothing changed. reason items_rejected means the server refused the listed products; they have been removed from the cart too, so tell the user and pick alternatives. If resetAfterOrder {orderId, createdAt} is present, an order was placed since the last sync, so the items from before it were treated as bought and cleared first; tell the user the cart started fresh after that order.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
productIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers thoroughly: it discloses the re-sync side effect, distinguishes local cartTotal from authoritative serverTotal, and explains two distinct failure modes (transport reason vs items_rejected) plus the resetAfterOrder edge case where prior items were treated as bought and cleared. This is exceptional disclosure for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: core action, return totals, transport-failure semantics, items_rejected handling, and the post-order reset state. It is front-loaded with the primary action, though it is a single wall of text that light paragraph breaks would improve.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter, no output schema, and no annotations, the description covers the core action, return fields, error semantics, and an edge-case state. An agent has enough information to invoke it correctly and interpret every plausible result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the only parameter is productId (string, minLength 1). The description states that productId selects the product to remove, which is the essential semantic the bare schema lacks. It does not mention where productId comes from, but for a single string parameter the description is adequately compensating.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Remove'), resource ('product from the cart'), and selection method ('by productId'), then clarifies the follow-up re-sync to the real account. The single-item scope clearly distinguishes it from siblings like rami_levy_clear_cart or rami_levy_add_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys side effects and post-conditions of removal so an agent understands what happens when it runs, but it never explicitly says when to choose this tool over alternatives (e.g., it does not name clear_cart for bulk removal or view_cart for inspection-first). Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.