{"serverId":"mcp-registry/xyz.trusteed/mcp-gateway","tools":[{"name":"create_sandbox_key","fixed":{"name":"create_sandbox_key","description":"Get a temporary sandbox credential for this demo store, valid 24h. Present it as an `Authorization: Bearer` header, or — when your client cannot set headers — as the `agent_key` argument of the checkout tools. Payments here are simulated: this credential settles nothing and works only on the demo store. No human login is involved at any point.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":145,"tokensAfter":145},{"name":"ucp_complete_checkout","fixed":{"name":"ucp_complete_checkout","description":"Complete a UCP checkout session. Transitions to 'completed' status. Idempotent — safe to retry with the same idempotency_key. Use ONLY for a checkout session created with ucp_create_checkout (Universal Commerce Protocol); for the standard flow (create_cart, preview_checkout, complete_checkout) do not call this tool. For a cart built with create_cart use complete_checkout. PAYMENT MANDATE: this tool also requires one, issued by the platform, not written by you. Call `preview_checkout` for this ca","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["checkout_id","idempotency_key"],"properties":{"ap2":{"type":"object","required":["checkout_mandate"],"properties":{"checkout_mandate":{"type":"string","pattern":"^[A-Za-z0-9_.~-]+$","maxLength":262144,"minLength":1,"description":"AP2 Checkout Mandate (SD-JWT chain) the user signed over the exact checkout returned by the last ucp_get_checkout."}},"description":"AP2 mandates extension. Required when the checkout carries ap2.merchant_authorization.","additionalProperties":true},"meta":{"description":"UCP request metadata. meta['ucp-agent'].profile = URL of the platform profile; it must be an https URL without credentials (at most 2048 characters).","type":"string"},"buyer":{"type":"object","properties":{"name":{"type":"string","description":"Buyer full name"},"email":{"type":"string","format":"email","description":"Buyer email address"},"phone":{"type":"string","description":"Buyer phone number"}},"description":"Buyer name and email, needed to request the approval link.","additionalProperties":true},"payment":{"type":"object","properties":{"instruments":{"type":"array","items":{"type":"object","properties":{"credential":{"type":"object","properties":{"token":{"type":"string","maxLength":262144,"description":"AP2 Payment Mandate (SD-JWT chain)."}},"additionalProperties":true}},"additionalProperties":true},"maxItems":16}},"description":"UCP payment. With AP2, the Payment Mandate goes in instruments[].credential.token.","additionalProperties":true},"agent_key":{"type":"string","description":"Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header."},"checkout_id":{"type":"string","description":"UCP checkout session ID (valid UUID)"},"x402_payload":{"description":"x402: signed payment for the server offer (omit to get it).","type":"string"},"payment_option":{"enum":["demo_card","demo_wallet","own_wallet","merchant_card","paypal"],"type":"string","description":"Payment method THE PERSON chose, when preview_checkout returned payment_options. Ask the person; never choose for them. Card numbers and wallet keys are never sent here: the person approves (and, with own_wallet, signs) on the approval page."},"idempotency_key":{"type":"string","pattern":"^[A-Za-z0-9._:/-]{1,128}$","maxLength":128,"description":"REQUIRED as an argument in this tool: the `Idempotency-Key` header or `_meta` alone is not enough. 1-128 chars from [A-Za-z0-9._:/-]. Reuse the same value when retrying the same operation."},"payment_handler":{"enum":["stripe","x402"],"type":"string","description":"Payment handler the store profile publishes. Omit for default."},"payment_mandate":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"string"}],"description":"Payment mandate issued by the platform for this cart: the compact JWS you receive after the approval opened by `preview_checkout` is granted (its `exp` is Unix seconds and `aud` is this store's slug). Forward it as received; a mandate you write yourself is not accepted here. The approval is bound to your agent credential and does not verify that a person was present. Use this when your client cannot set an `X-Payment-Mandate` header."},"shared_payment_token":{"type":"string","pattern":"^spt_[A-Za-z0-9_]+$","description":"Stripe Shared Payment Token (spt_…) granted by the buyer's agent wallet for payment_method=ACP. Issued by Stripe, scoped to this merchant, amount and currency, and consumed when used: it can be charged once. Only honoured when this deployment enables native ACP settlement."}},"additionalProperties":true},"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: meta, x402_payload. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":1161,"tokensAfter":1170},{"name":"ucp_create_checkout","fixed":{"name":"ucp_create_checkout","description":"Create a UCP (Universal Commerce Protocol) checkout session from line items. Returns a UCP checkout object with status 'incomplete'. Starts the UCP flow (ucp_* tools); for the standard flow use create_cart instead. Do not mix the two flows on the same purchase. Checkout guide: read the MCP resource trusteed://guides/checkout.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["currency","line_items"],"properties":{"meta":{"description":"UCP request metadata. meta['ucp-agent'].profile = URL of the platform profile; it must be an https URL without credentials (at most 2048 characters).","type":"string"},"label":{"type":"string","description":"Optional label for additional identifiers (e.g. external order ref, multi-PSP reference)"},"intent":{"type":"object","required":["action"],"properties":{"action":{"type":"string","description":"Intent action (e.g. 'purchase', 'gift', 'compare')"},"locale":{"type":"string","description":"ISO locale"},"context":{"type":"string","description":"Natural language context for personalization"}},"description":"Intent context for relevance and personalization","additionalProperties":true},"currency":{"type":"string","maxLength":3,"minLength":3,"description":"ISO 4217 currency code (e.g. USD)"},"agent_key":{"type":"string","description":"Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header."},"line_items":{"type":"array","items":{"type":"object","required":["product_id","title","quantity","price"],"properties":{"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","minimum":0,"description":"Ignored: the catalogue price is used and returned per line. Any non-negative integer is accepted."},"currency":{"type":"string","maxLength":3,"minLength":3,"description":"ISO 4217 currency code"}},"additionalProperties":false},"title":{"type":"string","minLength":1,"description":"Ignored: the catalogue title is used. Any non-empty string is accepted."},"quantity":{"type":"integer","description":"Quantity","exclusiveMinimum":0},"product_id":{"type":"string","minLength":1,"description":"Product identifier"},"variant_id":{"type":"string","minLength":1,"description":"Variant (size/colour) id as listed by get_product_details. Required when the product has more than one variant; the price and stock of THAT variant apply."}},"additionalProperties":true},"minItems":1,"description":"Line items for the checkout"},"idempotency_key":{"type":"string","pattern":"^[A-Za-z0-9._:/-]{1,128}$","maxLength":128,"description":"REQUIRED for this write unless sent as the `Idempotency-Key` header or `params._meta[\"trusteed/idempotency-key\"]`. 1-128 chars from [A-Za-z0-9._:/-]. Reuse the same value when retrying the same operation."}},"additionalProperties":true},"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: meta. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":801,"tokensAfter":806},{"name":"ucp_get_checkout","fixed":{"name":"ucp_get_checkout","description":"Retrieve a UCP checkout session by ID. Returns the current state of the checkout. Use ONLY for a checkout session created with ucp_create_checkout (Universal Commerce Protocol); for the standard flow (create_cart, preview_checkout, complete_checkout) do not call this tool. Checkout guide: read the MCP resource trusteed://guides/checkout.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["checkout_id"],"properties":{"meta":{"description":"UCP request metadata. meta['ucp-agent'].profile = URL of the platform profile; it must be an https URL without credentials (at most 2048 characters).","type":"string"},"agent_key":{"type":"string","description":"Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header."},"checkout_id":{"type":"string","description":"UCP checkout session ID (valid UUID)"}},"additionalProperties":true},"annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: meta. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":267,"tokensAfter":272},{"name":"ucp_preview_checkout","fixed":{"name":"ucp_preview_checkout","description":"Preview a UCP checkout and move it to ready-for-payment. Call after destination and shipping are set, before ucp_complete_checkout. Use ONLY for a checkout created with ucp_create_checkout. Checkout guide: read the MCP resource trusteed://guides/checkout.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["checkout_id"],"properties":{"meta":{"description":"UCP request metadata. meta['ucp-agent'].profile = URL of the platform profile; it must be an https URL without credentials (at most 2048 characters).","type":"string"},"agent_key":{"type":"string","description":"Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header."},"checkout_id":{"type":"string","description":"UCP checkout session ID (valid UUID)"},"payment_mandate":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"string"}],"description":"Payment mandate issued by the platform for this cart: the compact JWS you receive after the approval opened by `preview_checkout` is granted (its `exp` is Unix seconds and `aud` is this store's slug). Forward it as received; a mandate you write yourself is not accepted here. The approval is bound to your agent credential and does not verify that a person was present. Use this when your client cannot set an `X-Payment-Mandate` header."}},"additionalProperties":true},"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: meta. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":397,"tokensAfter":401},{"name":"ucp_update_checkout","fixed":{"name":"ucp_update_checkout","description":"Update a UCP checkout session. Send line_items to replace all lines (each line may name a variant_id), and/or fulfillment to set the delivery address (fulfillment.destination, which returns the shipping options) and choose one (fulfillment.selected_option_id, which adds shipping to the totals). Only allowed when status is 'incomplete'. Use ONLY for sessions created with ucp_create_checkout; for the standard flow use create_cart and select_shipping_option. Checkout guide: read the MCP resource tr","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["checkout_id"],"properties":{"meta":{"description":"UCP request metadata. meta['ucp-agent'].profile = URL of the platform profile; it must be an https URL without credentials (at most 2048 characters).","type":"string"},"currency":{"type":"string","maxLength":3,"minLength":3,"description":"ISO 4217 currency code (e.g. USD). Optional: defaults to the checkout's currency."},"agent_key":{"type":"string","description":"Sandbox credential from `create_sandbox_key`. Use this when your client cannot set an `Authorization: Bearer` header."},"line_items":{"type":"array","items":{"type":"object","required":["product_id","title","quantity","price"],"properties":{"price":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"number","minimum":0,"description":"Ignored: the catalogue price is used and returned per line. Any non-negative integer is accepted."},"currency":{"type":"string","maxLength":3,"minLength":3,"description":"ISO 4217 currency code"}},"additionalProperties":false},"title":{"type":"string","minLength":1,"description":"Ignored: the catalogue title is used. Any non-empty string is accepted."},"quantity":{"type":"integer","description":"Quantity","exclusiveMinimum":0},"product_id":{"type":"string","minLength":1,"description":"Product identifier"},"variant_id":{"type":"string","minLength":1,"description":"Variant (size/colour) id as listed by get_product_details. Required when the product has more than one variant; the price and stock of THAT variant apply."}},"additionalProperties":true},"minItems":1,"description":"Replacement line items (replaces all lines). Omit to leave the lines as they are."},"checkout_id":{"type":"string","description":"UCP checkout session ID (valid UUID)"},"fulfillment":{"type":"object","properties":{"destination":{"type":"object","required":["address1","city","country_code","zip"],"properties":{"zip":{"type":"string","description":"Postal / ZIP code"},"city":{"type":"string","description":"City"},"address1":{"type":"string","description":"Street address"},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. US, ES)"},"province_code":{"type":"string","description":"Province or state code (optional)"}},"description":"Delivery address. Sending it loads the shipping options for that destination; the response lists them in fulfillment.options.","additionalProperties":true},"selected_option_id":{"type":"string","description":"Id of one of fulfillment.options. Choosing it adds the shipping amount to the totals."}},"description":"Delivery. Send destination first, then selected_option_id (or both in one call).","additionalProperties":true},"idempotency_key":{"type":"string","pattern":"^[A-Za-z0-9._:/-]{1,128}$","maxLength":128,"description":"REQUIRED for this write unless sent as the `Idempotency-Key` header or `params._meta[\"trusteed/idempotency-key\"]`. 1-128 chars from [A-Za-z0-9._:/-]. Reuse the same value when retrying the same operation."}},"additionalProperties":true},"annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: meta. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":1010,"tokensAfter":1014}],"toolsChanged":6,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}