Skip to main content
Glama

Get checkout quote

checkout_quote
DestructiveIdempotent

Quote only the explicitly selected cart lines and available shipping before asking the user to confirm payment. Copy selectedLines and cartRevision from cart_get; unselected lines stay in the cart. If a selected price needs acceptance, this may update that cart line to the current price and advance the shared cart revision. It does not create an order or initiate a payment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressIdYesUUID of the selected shipping address.
promoCodeNoOptional promotional or coupon code. Validity confirmed at quote time.
useCreditsNoApply available account credits toward the total.
countryCodeYesISO 3166-1 alpha-2 market country code. Choose from market_list output.
cartRevisionYesThe global cart revision returned by cart_get.
currencyCodeYesISO 4217 alpha-3 market currency code. Choose from market_list output.
languageCodeYesLowercase ISO 639-1 language code. Choose from market_list output.
selectedLinesYesThe exact cart lines to check out. Copy itemId, configurationId when present, and wholesale from cart_get. Unlisted cart lines stay in the cart.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / cartRevision
      Added value: +{
      +  "description": "The global cart revision returned by cart_get.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / selectedLines
      Added value: +{
      +  "description": "The exact cart lines to check out. Copy itemId, configurationId when present, and wholesale from cart_get. Unlisted cart lines stay in the cart.",
      +  "items": {
      +    "properties": {
      +      "configurationId": {
      +        "pattern": "^[A-Za-z0-9._:-]{1,128}$",
      +        "type": "string"
      +      },
      +      "itemId": {
      +        "description": "An itemId copied from one selected line in cart_get.",
      +        "pattern": "^[A-Za-z0-9._:-]{1,128}$",
      +        "type": "string"
      +      },
      +      "wholesale": {
      +        "description": "The exact wholesale value copied from that cart_get line.",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "itemId",
      +      "wholesale"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 50,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "countryCode",
      -  "currencyCode",
      -  "languageCode",
      -  "addressId"
      -]New value: +[
      +  "countryCode",
      +  "currencyCode",
      +  "languageCode",
      +  "addressId",
      +  "cartRevision",
      +  "selectedLines"
      +]
  2. Changed6 schema fields changed
    • addedInput schema / properties / addressId / description
      Added value: +"UUID of the selected shipping address."
    • addedInput schema / properties / countryCode / description
      Added value: +"ISO 3166-1 alpha-2 market country code. Choose from market_list output."
    • addedInput schema / properties / currencyCode / description
      Added value: +"ISO 4217 alpha-3 market currency code. Choose from market_list output."
    • addedInput schema / properties / languageCode / description
      Added value: +"Lowercase ISO 639-1 language code. Choose from market_list output."
    • addedInput schema / properties / promoCode / description
      Added value: +"Optional promotional or coupon code. Validity confirmed at quote time."
    • addedInput schema / properties / useCredits / description
      Added value: +"Apply available account credits toward the total."
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

The annotations flag destructiveHint=true and idempotentHint=true, but the description earns credit by explaining the actual side effect: a selected line may be repriced to current value and the shared cart revision advanced, and that unselected lines are preserved. That is mutation detail not derivable from the hints, though the interaction between 'advance the shared cart revision' and idempotentHint is left unaddressed.

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?

Three sentences, front-loaded with the purpose, followed by input provenance, then behavior and exclusions. No sentence is redundant — each one carries either scope, precondition, or side-effect information.

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

Completeness4/5

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

For an 8-parameter mutation tool with no output schema, the description covers preconditions, side effects, and exclusions well, but it never indicates what the quote returns (prices, shipping options, acceptance flags), which is the tool's core output and would be the main remaining gap.

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 100%, so the baseline is 3, but the description adds provenance the schema lacks: selectedLines and cartRevision must be copied from cart_get, and unlisted lines remain in the cart. This is useful beyond the field-level descriptions.

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 states a specific verb and resource — quote the explicitly selected cart lines plus available shipping — and immediately bounds the scope. It also distinguishes itself from adjacent siblings by declaring 'It does not create an order or initiate a payment,' separating it from checkout_prepare_payment and checkout_create_payment_link.

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

Usage Guidelines4/5

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

It places the tool in the checkout flow ('before asking the user to confirm payment') and gives a concrete precondition: copy selectedLines and cartRevision from cart_get. It doesn't spell out when to re-quote versus proceed to payment, but the surrounding context is clear enough to act on.

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