Skip to main content
Glama

Checkout

checkout_session

Use this when the customer has picked specific teas.co.uk products and wants to buy them straight away, for example from a product result. Puts exactly these items in a fresh basket at live teas.co.uk prices and returns it with a secure link to pay on teas.co.uk; the basket the customer built earlier is not used or changed. checkout_session.items takes up to 20 products, each with an id from find_products (offerId from the product feed is tried when the id is not found) and a quantity of 1 to 99; name, description, images, url, merchant_name and price are for display only and never change what is charged. Items teas.co.uk cannot find are listed in unavailable and the rest go ahead; if none are found it returns an error. Nothing is charged here and no order is placed until the customer pays on teas.co.uk. To check out the basket they have already built, use checkout_link instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
checkout_sessionYesThe products to buy: items lists each product id (from find_products) and quantity, up to 20 products.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesNumber of items in the basket.
linesYes
deliveryYes
messagesYesAnything that could not be added or changed, in plain words.
subtotalNoPounds including VAT, before delivery.
basket_idNoPresent only when the host did not identify the user: pass it to later basket tools.
unavailableNoItems teas.co.uk could not add.
checkout_urlNoSecure link that opens this basket at teas.co.uk checkout.
how_it_worksNo
subtotal_textYes
link_valid_forNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedInput schema / properties / checkout_session / description
      Added value: +"The products to buy: items lists each product id (from find_products) and quantity, up to 20 products."
    • addedInput schema / properties / checkout_session / properties / items / description
      Added value: +"Each product and how many, up to 20 products."
    • addedInput schema / properties / checkout_session / properties / items / items / properties / description / description
      Added value: +"Optional, for display only; not used."
    • addedInput schema / properties / checkout_session / properties / items / items / properties / images / description
      Added value: +"Optional image links, for display only; not used."
    • addedInput schema / properties / checkout_session / properties / items / items / properties / merchant_name / description
      Added value: +"Optional, for display only; not used."
    • addedInput schema / properties / checkout_session / properties / items / items / properties / name / description
      Added value: +"Optional product name for display; teas.co.uk uses its own."
    • addedInput schema / properties / checkout_session / properties / items / items / properties / quantity / description
      Added value: +"How many packs, 1 to 99."
    • addedInput schema / properties / checkout_session / properties / items / items / properties / url / description
      Added value: +"Optional product link, for display only; not used."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false), and the description adds substantial behavior beyond them: nothing is charged, no order is placed until payment on teas.co.uk, the earlier basket is not used or changed, partially unfound items are surfaced in 'unavailable' while the rest proceed, and an error results if none are found.

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?

One dense paragraph but front-loaded with the trigger and the core effect before the parameter mechanics and the failure modes. Every sentence carries information; it is longer than ideal, though no sentence is filler.

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 nested, non-idempotent, open-world-ish checkout tool with an output schema present, the description covers trigger, pricing semantics, item handling, failure behavior, and the sibling alternative. Because an output schema exists, it correctly does not need to enumerate return fields beyond the secure link.

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, and the description genuinely exceeds it by explaining the id fallback to offerId from the product feed, the 1-99 quantity bounds, the 20-item cap, and that name/description/images/url/merchant_name/price are display-only and never affect the charge. It stops short of describing id format/length specifics.

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+resource: creates a fresh basket with exactly the chosen teas.co.uk products and returns a secure payment link. It explicitly distinguishes itself from checkout_link (existing basket) and ties the trigger to a customer picking products from a product result.

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?

Gives an explicit when-to-use condition ('customer has picked specific products and wants to buy them straight away') and names the alternative with its own condition: 'To check out the basket they have already built, use checkout_link instead.' Both the selection and the exclusion are stated.

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