Skip to main content
Glama

Tethered Trust

Check a cart before checkout

check_cart_before_checkout
Read-only

Checks a cart at checkout. Takes the checkout session exactly as a commerce protocol returns it (a UCP checkout or an ACP CheckoutSession) or plain line items, plus what the customer already owns. Returns a decision per line item, safe_to_checkout, an action (proceed, resolve_conditions, do_not_checkout, ask_customer), questions, substitutions, a signed receipt, and a com.tetheredtrust.shopping.compatibility extension object to attach to the checkout.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ownedNoWhat the customer already owns that these items must work with (model numbers, URLs or descriptions; objects may carry config like memory_modules).
checkoutNoThe checkout session as your commerce protocol returns it: a UCP checkout (line_items[].item.title) or an ACP CheckoutSession (line_items[].item.id). Or send line_items directly.
productsNoACP only: map of item id → {title | url | gtin} from your product feed, because ACP line items carry only ids.
line_itemsNoGeneric cart: [{id, title | url | gtin | sku | text, quantity}]. Used when checkout isn't sent.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it enumerates the decision outputs, the action enum semantics, a signed receipt, and an extension object to attach to the checkout. It does not explain the idempotentHint=false implication (e.g., repeat calls may differ), which is the main omission.

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?

Two sentences, front-loaded with the purpose followed by behavior and outputs. Dense but every clause carries information; the long output enumeration is the only part that feels padded given an output schema exists.

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 high-complexity, multi-protocol tool with a rich nested schema and an output schema, the description covers input forms, ownership context, decision output, and the post-checkout handoff. An agent has enough to call it correctly without opening the schema.

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%, so the schema already documents the UCP/ACP/line_items input modes and the ACP products map. The description restates the protocol flexibility but adds no syntax, precedence rules, or format detail beyond what the schema provides; baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Checks a cart at checkout') and is clear about the input domain (UCP checkout, ACP CheckoutSession, or plain line items). It does not distinguish itself from near-neighbors like validate_purchase_plan, check_batch or check_compatibility, so an agent must infer the boundary from the name alone.

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

Usage Guidelines2/5

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

The description embeds timing ('at checkout') but gives no explicit when-to-use, when-not-to-use, or alternative routing. With 17 siblings including validate_purchase_plan, recheck_plan, check_batch and check_compatibility, the absence of any conditional guidance is a real gap.

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