Skip to main content
Glama

RoboTrunk

Hand off to the store's checkout to pay

complete_checkout
DestructiveIdempotent

Creates a short-lived tracked payment handoff for a checkout at a store and returns its link. Use this when the checkout is ready to pay. The checkout can be finished in either of two ways: the person taps the link in their own browser, or you open it and complete the store's own checkout. human_tap.budget_ceiling_minor is the highest total, shipping and tax included, that RoboTrunk checked the store's total against, and RoboTrunk refuses the handoff with BUDGET_EXCEEDED when the store's total is above it. human_tap.affiliate.disclosure is present when an affiliate link applies. RoboTrunk never takes the payment or sees the card. The link goes through RoboTrunk straight to the store's own checkout, with no approval page, and can be opened again within its 30 minutes, each time landing on the same store checkout; a HEAD request or a request with a Purpose header gets an empty 204 and goes nowhere. Not for claiming an order was placed. Outputs: human_tap.url and the envelope. If the status is requires_escalation or the answer carries store_checkout_step, the store needs a step finished on its own checkout page: the link opens that page, and the step is finished there before paying, by the person or by you. With click_and_collect_on_store_page, keep this checkout's link to collect: the choice is on that page; send the person there, not to the store's website separately. Error recovery: buyer_identity_contact_method_required means send buyer.email from the person with update_checkout, then call this again; HANDOFF_NOT_AVAILABLE means the store has not supplied a handoff yet, so call get_checkout and try again later; CHECKOUT_NOT_FOUND, continuation_not_found or RUN_AUTH_REQUIRED means the handle cannot be used, so send checkout_id exactly as an earlier answer returned it and, if you did, call create_checkout again; HANDOFF_SESSION_INVALID means the link cannot be used, so call complete_checkout again for a new one; BUDGET_EXCEEDED means the store's total is now over the ceiling, so tell the person the new total and raise budget_ceiling_minor with update_checkout only on their new approval; IDEMPOTENCY_CONFLICT means use a new key only for a different request; any other error, including tool_layer_failure: retry once, then call submit_feedback. Next: read the result with get_checkout once the payment is made at the store; watch_recalls then watches the products for a recall. Full guide: get_tool_guide or /agent/tools.json#complete_checkout Example call: {"checkout_id":"ucp_transcend-dev-lab_abc123"}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
checkout_idYesThe UCP checkout id returned by an earlier checkout tool.
idempotency_keyNoA printable ASCII key for safe retries, or null to generate one.
shopping_session_idNoOptional server-issued shopping session correlation ID. It is not purchase authority.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare destructive, idempotent, and open-world traits, yet the description still adds real behavior: the 30-minute replayable link, the no-approval-page path, the HEAD/Purpose-header 204 dead-end, BUDGET_EXCEEDED refusal, and 'RoboTrunk never takes the payment or sees the card'. That is well beyond what the structured fields convey, though the budget/affiliate fields are output-surface details rather than caveats about the call itself.

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

Conciseness3/5

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

The purpose and trigger are front-loaded, but the body is a dense single-block run-on that bundles handoff mechanics, output fields, and a long error-recovery catalog into one paragraph with no visual separation. Most clauses earn their place given the tool's complexity, yet the structure makes it harder to scan than it needs to be.

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?

With no output schema, the description compensates by naming the return values (human_tap.url and the envelope), enumerating the error codes and their fixes, and pointing to the follow-up tools get_checkout and watch_recalls. An agent has everything needed to call it and recover from failure without consulting external docs, which remain linked as a fallback.

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 description coverage is 100%, so the baseline would be 3, but the description adds operational meaning to the params: checkout_id must be sent 'exactly as an earlier answer returned it', and idempotency_key is constrained to a new key only for a different request. That is genuine semantics beyond the schema strings.

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 and resource — 'Creates a short-lived tracked payment handoff for a checkout at a store and returns its link' — which separates it cleanly from create_checkout, get_checkout, and update_checkout. The 'not for claiming an order was placed' clause further sharpens the boundary against neighboring tools.

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 explicit trigger ('Use this when the checkout is ready to pay'), two completion paths (person taps the link, or agent opens it), and an exclusion. The error-recovery block routes to alternatives by name (update_checkout, get_checkout, create_checkout, submit_feedback) with the condition that selects each.

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