Skip to main content
Glama

Conduit Agentic Commerce

Execute order

order_execute
Idempotent

Handoff or autonomous checkout. Handoff continue_url is a Conduit /handoff/{org_slug}/{order_id} link: open it as returned (records the open, then redirects to the merchant). Autonomous needs badge payable_now (covering mandate fits). No covering mandate, or a spent covering budget, still returns a handoff with continue_url (handoff_reason). Use idempotency_key. Prefer supply_delivery when only comparing delivery.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
carrierNoThe shipping rate to buy, as the option's own `title` from supply_delivery. Conduit selects it on the merchant checkout, so the buyer opens the page on that rate instead of the merchant's default, which is the cheapest one. A title the merchant does not quote for this address leaves its default in place, and the response says so via shipping_selected.
agent_idYesOwning agent id
pay_withNoRail key to pay with when multiple are enabled
quantityNoUnits to buy (default 1)
search_idNosearch_id from supply_search for correlation
supply_idYesOffer supply id to purchase
session_tokenNoSession token from agent_authenticate — required whenever agent_id is passed
idempotency_keyNoClient idempotency key — reuse to safely retry the same execute
payment_term_idNoPayment term id from supply_details payment_terms[] (e.g. net 30). Omit to pay immediately

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNo
nextNo
noteNo
errorNo
detailNo
statusNo
productNo
order_idNo
pay_withNo
quantityNo
rail_keyNo
supplierNo
shortfallNo
simulatedNo
supply_idNo
bill_totalNo
created_atNo
continue_urlNo
address_statusNo
bill_breakdownNo
purchase_draftNo
supplier_orderNo
handoff_qualityNo
shipping_optionNo
handoff_endpointNo
idempotent_replayNo
shipping_selectedNo
external_checkout_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / next / properties / args / additionalProperties / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "boolean"
      +  }
      +]
    • removedOutput schema / properties / next / properties / args / additionalProperties / type
      Removed value: -"string"
  2. Changed2 schema fields changed
    • addedOutput schema / properties / purchase_draft
      Added value: +{}
    • addedOutput schema / properties / supplier_order
      Added value: +{}
  3. Changed3 schema fields changed
    • changedInput schema / properties / carrier / description
      Previous value: -"Preferred carrier when delivery options allow"New value: +"The shipping rate to buy, as the option's own `title` from supply_delivery. Conduit selects it on the merchant checkout, so the buyer opens the page on that rate instead of the merchant's default, which is the cheapest one. A title the merchant does not quote for this address leaves its default in place, and the response says so via shipping_selected."
    • addedOutput schema / properties / shipping_option
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / shipping_selected
      Added value: +{
      +  "type": "boolean"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / address_status
      Added value: +{
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / payment_term_id
      Added value: +{
      +  "description": "Payment term id from supply_details payment_terms[] (e.g. net 30). Omit to pay immediately",
      +  "type": "string"
      +}
  6. Changed24 schema fields changed
    • removedOutput schema / properties / billBreakdown
      Removed value: -{}
    • removedOutput schema / properties / billTotal
      Removed value: -{}
    • addedOutput schema / properties / bill_breakdown
      Added value: +{}
    • addedOutput schema / properties / bill_total
      Added value: +{}
    • removedOutput schema / properties / continueUrl
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / continue_url
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / createdAt
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / created_at
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / externalCheckoutId
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / external_checkout_id
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / handoffEndpoint
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / handoffQuality
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / handoff_endpoint
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / handoff_quality
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / idempotentReplay
      Removed value: -{
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / idempotent_replay
      Added value: +{
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / orderId
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / order_id
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / payWith
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / pay_with
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / railKey
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / rail_key
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / supplyId
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / supply_id
      Added value: +{
      +  "type": "string"
      +}
  7. Changed1 schema field changed
    • addedInput schema / properties / session_token
      Added value: +{
      +  "description": "Session token from agent_authenticate — required whenever agent_id is passed",
      +  "type": "string"
      +}
  8. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark this as non-read-only, idempotent, and non-destructive, but the description adds valuable side-effect context: opening the continue_url records the open, autonomous checkout requires a covering mandate, and unmet conditions still return a handoff with handoff_reason. This is exactly the kind of behavioral nuance annotations cannot express.

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?

The description is dense but every sentence earns its place: it front-loads the core mode distinction, then adds behavioral details, fallback behavior, idempotency guidance, and a cross-tool routing note. There is no filler or repetition of schema content.

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-stakes, 9-parameter checkout tool with an output schema, the description covers the mode decision, side effect of opening the URL, fallback behavior, idempotency, and the one cross-tool alternative. Parameter details live in the fully covered schema and return details in the output schema, so nothing required for correct invocation is missing.

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 all nine parameters. The description reinforces idempotency_key usage but does not materially expand parameter meaning beyond what the input schema already provides; no compensation for undocumented params is needed.

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 a specific behavior: 'Handoff or autonomous checkout,' and immediately explains what each mode entails, including the continue_url redirect and the autonomous precondition. The title and sibling set make the resource clear, and the closing pointer to supply_delivery helps separate checkout from delivery comparison.

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?

It explicitly tells the agent to prefer supply_delivery when only comparing delivery, and it explains when autonomous checkout is available (badge payable_now / covering mandate) versus when a handoff is returned. It also instructs the agent to use idempotency_key for safe retries, giving concrete invocation guidance.

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