Skip to main content
Glama

Quote an order

shop.order.quote

Price snapshot for items of one merchant (slug): total_usd, expiry (15 min by default), stock held until then. Pay with x402 using pay.x402 (payTo, amount, network, asset, extra.quote_id). Physical items need shipping_option (an id from the product shipping_options; its price is added as shipping_usd) and, when the product lists delivery_slots, delivery_slot (held until the quote expires). A subscription item is quoted alone with subscribe: true (422 if the item has no subscription); the quote is period 1. Errors: 409 out_of_stock (alternatives), 409 slot_unavailable (alternatives = free slots), 429 test_sku_daily_cap.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes
merchantYesMerchant slug.
buyer_refNo
subscribeNotrue: quote period 1 of the item subscription (one item, qty 1). The answer carries subscription_terms.
delivery_slotNo
shipping_optionNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
payYes
itemsYes
order_idYes
quote_idYes
total_usdYes
expires_atYes
requires_piiYes
shipping_usdNo
delivery_slotNo
fee_disclosedYes
shipping_optionNo
subscription_termsNo
terms_update_pendingNo
merchant_encryption_keyNo
requires_human_confirmationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / subscribe
      Added value: +{
      +  "description": "true: quote period 1 of the item subscription (one item, qty 1). The answer carries subscription_terms.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / subscription_terms
      Added value: +{
      +  "additionalProperties": {},
      +  "type": "object"
      +}
  2. Changed3 schema fields changed
    • addedOutput schema / properties / delivery_slot
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / shipping_option
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / shipping_usd
      Added value: +{
      +  "type": "number"
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / merchant_encryption_key
      Added value: +{}
  4. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only give the safety trio; the description adds the real behavioral traits: a price snapshot that holds stock for ~15 minutes (a side effect despite readOnlyHint=false), delivery slots held until expiry, 422 for non-subscription items quoted with subscribe, and specific failure modes (409 out_of_stock with alternatives, 409 slot_unavailable with free slots, 429 test_sku_daily_cap). This is rich, non-obvious disclosure beyond structured fields.

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?

Front-loaded with the core purpose, then branches and errors. It is dense and slightly run-on, but nearly every clause conveys a constraint or state transition an agent needs; little is filler.

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 a mutation-adjacent, side-effecting quote tool with an output schema (which relieves it of describing returns), it covers branches, expiry, holds and error recovery well. The only real omission is any mention of buyer_ref's purpose.

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 only 33%, so the description must carry the load and largely does: it explains merchant as slug, subscribe semantics (period 1, one item, qty 1, subscription_terms in response), shipping_option as a product shipping_options id whose price becomes shipping_usd, and delivery_slot ties. Only buyer_ref remains undocumented.

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 'Price snapshot for items of one merchant (slug)' — a specific resource plus scope — and immediately names the downstream action (pay with x402). An agent can distinguish this from shop.order.pay, shop.order.get and shop.catalog.get without opening any schema.

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 states the conditional branches clearly: physical items require shipping_option (and delivery_slot when the product lists slots); subscription items must be quoted alone with subscribe:true. It routes to the pay path but never explicitly says 'call this before shop.order.pay' or states when not to use it, so it falls just short of a full 5.

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.