Skip to main content
Glama

Create cart

create_cart

Creates a new Shopify cart with wine variants (variant_id from search_wines or get_wine) and returns cart_id, the items with live prices, the subtotal and checkout_url. No order is placed and no payment is taken here; checkout_url opens the checkout on shop.nevini.wine. Requires buyer_is_18_or_older: true, set only after the user has confirmed being 18 or older. To add wines to a cart the user already has, use add_to_cart instead.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "items": "<items>",
      "buyer_is_18_or_older": "<buyer_is_18_or_older>"
    },
    "name": "create_cart"
  }
}

Input Schema

NameRequiredDescriptionDefault
itemsYesWines to add. Duplicate variant ids are merged; a cart holds at most 25 different variants.
languageNoLanguage of item names and of the checkout: "nl" (default) or "en".
buyer_is_18_or_olderYesConfirms that the buyer is 18 or older and that the order is not for anyone under 18. Set it to true only after the user has said so in this conversation; if they have not, ask them first. The cart is only created when this is true.

Output Schema

NameRequiredDescriptionDefault
itemsYes
cart_idYes
currencyYes
warningsYes
next_stepYes
checkout_urlYes
order_placedYes
subtotal_eurYes
shipping_noteYes
total_quantityYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedOutput schema / properties / age_notice
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "cart_id",
      -  "order_placed",
      -  "currency",
      -  "items",
      -  "total_quantity",
      -  "subtotal_eur",
      -  "checkout_url",
      -  "next_step",
      -  "age_notice",
      -  "shipping_note",
      -  "warnings"
      -]New value: +[
      +  "cart_id",
      +  "order_placed",
      +  "currency",
      +  "items",
      +  "total_quantity",
      +  "subtotal_eur",
      +  "checkout_url",
      +  "next_step",
      +  "shipping_note",
      +  "warnings"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / buyer_is_18_or_older / description
      Previous value: -"Confirms that the buyer is 18 or older and that the order is not for anyone under 18. The cart is only created when this is true."New value: +"Confirms that the buyer is 18 or older and that the order is not for anyone under 18. Set it to true only after the user has said so in this conversation; if they have not, ask them first. The cart is only created when this is true."
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only say this is a non-idempotent, non-destructive mutation; the description adds critical context beyond that — no order is placed, no payment is taken, and checkout_url hands off to shop.nevini.wine. The 18+ confirmation requirement is a behavioral precondition not visible in annotations.

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

Conciseness5/5

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

Two tight sentences front-load purpose and return values, then follow with the payment-safety scope, the confirmation gate, and the sibling routing. No sentence is padding.

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?

Even though an output schema exists (so return values needn't be explained), the description still frames the checkout handoff and the no-payment guarantee. For a 3-param mutation tool, nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already documents the gid pattern, quantity range, merging of duplicate variants, the 25-variant cap, and the 18+ semantics. The description restates the variant_id provenance and the confirmation rule but adds no format or syntax detail beyond the schema, so baseline 3 applies.

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?

The description opens with a specific verb and resource ('Creates a new Shopify cart with wine variants') and immediately enumerates what comes back (cart_id, priced items, subtotal, checkout_url). This clearly distinguishes it from the sibling add_to_cart, which it names explicitly.

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

Usage Guidelines5/5

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

It routes the agent with an explicit alternative ('To add wines to a cart the user already has, use add_to_cart instead') and states the prerequisite gating condition for buyer_is_18_or_older ('set only after the user has confirmed being 18 or older'). Both when-to-use and when-not-to-use are covered.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources