xyz. trusteed/ mcp-gateway
by trusteed.xyz · remote · no sign-in to list tools · v1.0.0 · published by xyz.trusteed
Agentic commerce gateway: discovery, search, checkout across Shopify/Woo/Odoo/PrestaShop.
27 tools: 1 can delete or cancel things, 13 change things and 13 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things13Claude Code: ask: see these tools
- Only reads13Claude Code: allow: see these tools
40 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http gateway https://trusteed.xyz/demo-store/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "get_shipping_rates" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_shipping_rates" says "get": a word for reading.
- Warnpreview_checkout
The server marks "preview_checkout" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "preview_checkout" says "preview": a word for reading.
- Warnquote_checkout
The server marks "quote_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "quote_checkout" says "checkout": a word for a change.
The server marks "ucp_preview_checkout" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "ucp_preview_checkout" says "preview": a word for reading.
- Infocreate_cart
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Infocreate_cart
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Show 34 more findingsShow fewer
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Infoapply_discount
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Infoapply_discount
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Infopreview_checkout
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Infopreview_checkout
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
- Infopreview_checkout
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Infoquote_checkout
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The description mentions "credential".
What this check looks forMatched text
description: "...l `approval_status_url` with your agent credential, and send the mandate you receive as th..."
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The description is 2,547 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...t headers. Do not ask a person to log in: there is no human login for this store."
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Infoucp_get_checkout
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
- Infoucp_get_checkout
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The description mentions "credential".
What this check looks forMatched text
description: "...l `approval_status_url` with your agent credential, and send the mandate you receive as th..."
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
The input schema at properties.payment.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment.description: "...e Payment Mandate goes in instruments[].credential.token."
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The description mentions "credential".
What this check looks forMatched text
description: "Get a temporary sandbox credential for this demo store, valid 24h. Present..."
The description mentions "credential".
What this check looks forMatched text
description: "...heckout call is still running. Only the credential that made the purchase can read its rec..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
27 tools
Deletes or cancels 1Claude Code: deny
ucp_cancel_checkoutCancel a UCP checkout session.1 finding
Why it is in this group
- The name "ucp_cancel_checkout" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it Cancel a UCP checkout session. Transitions to 'canceled' status. Cannot cancel already completed checkouts. 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Changes things 13Claude Code: ask
apply_discountApply a discount or promo code to the cart.2 findings
Why it is in this group
- The name "apply_discount" says "apply": a word for a change.
Findings
- Info
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it Apply a discount or promo code to the cart. Checkout guide: read the MCP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
complete_checkoutComplete the purchase.4 findings
Why it is in this group
- The name "complete_checkout" says "checkout": a word for a change.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...l `approval_status_url` with your agent credential, and send the mandate you receive as th..."
- Info
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Info
The description is 2,547 characters long, over the 2,000 this check looks for.
What this check looks forMatched text
description ends: "...t headers. Do not ask a person to log in: there is no human login for this store."
Description, as the server wrote it Complete the purchase. Provide buyer.name and buyer.email from the conversation before opening approval; ask in chat if either is missing. The approval page only reviews these details. PREFER THE CART CARD: if there is an interactive card for this cart, let the buyer confirm and (when the store offers a choice) pick the payment method there — including retrying after a declined payment or switching method — instead of calling this tool yourself. Each call you make here opens a new card in the transcript instead of updating the one already open. Only call it yourself when there is no interactive card or the buyer explicitly asks you to complete it in chat. Idempotent — replay is keyed on checkout_session_id: any retry against a session that already has an order returns that same order (COMPLETED or PENDING_EXTERNAL_CONFIRMATION) without re-charging. The provided idempotency_key is recorded on the session for audit and short-circuits a repeated call with the same key. If the response has status PENDING_EXTERNAL_CONFIRMATION, no purchase has completed yet: read `order_placed` and `next_action` — a person has to approve or pay at its `url`; `next_action` says whether calling again with the same checkout_session_id and idempotency_key can read the outcome. KYAPAY (payment_method=KYAPAY or a kyapay_token): charging with KYApay is not available. KYApay is identity verification here, not a payment rail, so the call is rejected with PAYMENT_METHOD_NOT_CONFIGURED before anything is charged or written; use another payment method. The Skyfire KYA token serves identity on the REST API, not payment in this tool. On demo-store the approval step records a confirmation but does not verify that a human gave it. PAYMENT MANDATE: this tool also requires one, issued by the platform, not written by you. Call `preview_checkout` for this cart, open the `approval_url` it returns, poll `approval_status_url` with your agent credential, and send the mandate you receive as the `payment_mandate` argument or an `X-Payment-Mandate` header. The approval is bound to your agent credential and the cart; it does not verify that a person was present. Checkout guide: read the MCP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_cartCreate a shopping cart in Demo Store.2 findings
Why it is in this group
- The name "create_cart" says "create": a word for a change.
Findings
- Info
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it Create a shopping cart in Demo Store. Returns a cart_id. Pass it as cart_id to get_shipping_rates, select_shipping_option, apply_discount and preview_checkout; complete_checkout and get_trust_receipt take the same value as checkout_session_id. KYA IDENTITY: a Skyfire kya token has no effect on this tool (it grants no trust boost here); KYA identity applies to the REST agent API (`Authorization: Bearer`), not to the MCP tools. Checkout guide: read the MCP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
create_sandbox_keyGet a temporary sandbox credential for this demo store, valid 24h.1 finding
Why it is in this group
- The name "create_sandbox_key" says "create": a word for a change.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "Get a temporary sandbox credential for this demo store, valid 24h. Present..."
Description, as the server wrote it 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.
get_shipping_ratesGet available shipping rates for the cart.3 findings
Why it is in this group
- The name "get_shipping_rates" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Info
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Warn
The server marks "get_shipping_rates" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_shipping_rates" says "get": a word for reading.
Description, as the server wrote it Get available shipping rates for the cart. Requires shipping_address — pass it in the call. If the buyer requests the cheapest option, use cheapest_shipping_handle when non-null; it is null when rates cannot be compared in the cart currency. Rates marked authoritative=false are estimates, not the final charge. PREFER THE CART CARD: if create_cart returned an interactive card (the buyer can see and click it), let them enter the address and pick shipping there instead of calling this tool yourself — each top-level call you make here opens a new card in the transcript instead of updating the one already open. Only call it yourself when there is no interactive card (text-only client) or the buyer explicitly asks you to handle it in chat. Checkout guide: read the MCP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
preview_checkoutPreview the complete order summary before payment.4 findings
Why it is in this group
- The name "preview_checkout" says "preview": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Info
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Info
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Warn
The server marks "preview_checkout" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "preview_checkout" says "preview": a word for reading.
Description, as the server wrote it Preview the complete order summary before payment. Advances the session to ready-for-payment state. If you only need the price, call quote_checkout instead: it computes the same total without advancing the session or opening an approval. PREFER THE CART CARD: if there is an interactive card for this cart, let it compute and show the summary instead of calling this tool yourself — it keeps the flow in one card. Checkout guide: read the MCP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
quote_checkoutRead-only price quote.2 findings
Why it is in this group
- The name "quote_checkout" says "checkout": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Warn
The server marks "quote_checkout" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "quote_checkout" says "checkout": a word for a change.
Description, as the server wrote it Read-only price quote. Does not advance the session, open approvals or enable payment. To pay, call preview_checkout. Computes the same totals as preview_checkout for this cart (subtotal, shipping, discount, tax status, total_is_final), with status QUOTE_ONLY, but not the same checks: it does not check your payment mandate's spending cap; preview_checkout does. Read-only on Trusteed's side: where the store prices orders on its own platform (WooCommerce), the store builds a temporary cart to compute the quote and discards it. Checkout guide: read the MCP resource trusteed://guides/checkout.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
select_shipping_optionSelect a shipping method for the cart.2 findings
Why it is in this group
- The name "select_shipping_option" says "select": a word for a change.
Findings
- Info
The description mentions "CREDENTIAL".
What this check looks forMatched text
description: "...CP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it Select a shipping method for the cart. Must call get_shipping_rates first and provide idempotency_key. Reuse the same key for retries of the same cart and option; use a new key if either changes. PREFER THE CART CARD: if there is an interactive card for this cart, let the buyer pick shipping there instead of calling this tool yourself — it keeps the flow in one card instead of opening a new one per step. Checkout guide: read the MCP resource trusteed://guides/checkout. CREDENTIAL: this store needs one. Call the `create_sandbox_key` tool first (it is in this tool list and needs no credential), then pass the key you get back as the `agent_key` argument — or as an `Authorization: Bearer` header if your client can set headers. Do not ask a person to log in: there is no human login for this store.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
ucp_complete_checkoutComplete a UCP checkout session.5 findings
Why it is in this group
- The name "ucp_complete_checkout" says "checkout": a word for a change.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...l `approval_status_url` with your agent credential, and send the mandate you receive as th..."
- Info
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
- Info
The input schema at properties.payment.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment.description: "...e Payment Mandate goes in instruments[].credential.token."
- Info
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it 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 cart, open the `approval_url` it returns, poll `approval_status_url` with your agent credential, and send the mandate you receive as the `payment_mandate` argument or an `X-Payment-Mandate` header. The approval is bound to your agent credential and the cart; it does not verify that a person was present. Checkout guide: read the MCP resource trusteed://guides/checkout.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
ucp_create_checkoutCreate a UCP (Universal Commerce Protocol) checkout session from line items.2 findings
Why it is in this group
- The name "ucp_create_checkout" says "create": a word for a change.
Findings
- Info
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
ucp_preview_checkoutPreview a UCP checkout and move it to ready-for-payment.4 findings
Why it is in this group
- The name "ucp_preview_checkout" says "preview": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Info
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
- Info
The input schema at properties.payment_mandate.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.payment_mandate.description: "...re. The approval is bound to your agent credential and does not verify that a person was p..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
- Warn
The server marks "ucp_preview_checkout" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "ucp_preview_checkout" says "preview": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
ucp_update_checkoutUpdate a UCP checkout session.2 findings
Why it is in this group
- The name "ucp_update_checkout" says "update": a word for a change.
Findings
- Info
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it 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 trusteed://guides/checkout.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
verify_trust_receiptCheck a trust receipt's signature, revocation and chain coverage from inside this session (v1.0 receipts only; other profiles answer `unsupported_profile`, not invalid).1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it Check a trust receipt's signature, revocation and chain coverage from inside this session (v1.0 receipts only; other profiles answer `unsupported_profile`, not invalid). LIMIT: the issuer verifies its own receipt (`verified_by: issuer`, `independent: false`), so this is a consistency check, not proof to a third party; `independent_verification` tells you how to verify it yourself against the public JWKS. Pass the `jws` from get_trust_receipt. Checkout guide: read the MCP resource trusteed://guides/checkout.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 13Claude Code: allow
browse_categoriesList all product categories in Demo Store with product counts.No findings
Why it is in this group
- The name "browse_categories" says "browse": a word for reading.
Description, as the server wrote it List all product categories in Demo Store with product counts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
compare_productsCompare 2 to 5 products side-by-side with normalized attribute table and best-value recommendation.No findings
Why it is in this group
- The name "compare_products" says "compare": a word for reading.
Description, as the server wrote it Compare 2 to 5 products side-by-side with normalized attribute table and best-value recommendation.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_checkout_stateRead the current state of a cart created with create_cart: status, lines, totals, selected shipping, when it was previewed, its order if one exists and a pointer to get_trust_recei…1 finding
Why it is in this group
- The name "get_checkout_state" says "get": a word for reading.
Findings
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it Read the current state of a cart created with create_cart: status, lines, totals, selected shipping, when it was previewed, its order if one exists and a pointer to get_trust_receipt. Read-only: it changes nothing and does not open any approval. Use it to resume a purchase; for UCP checkouts use ucp_get_checkout. Checkout guide: read the MCP resource trusteed://guides/checkout.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_merchant_profileGet the complete profile — trust score, policies, compliance, and protocol support — of the merchant this MCP endpoint belongs to.No findings
Why it is in this group
- The name "get_merchant_profile" says "get": a word for reading.
Description, as the server wrote it Get the complete profile — trust score, policies, compliance, and protocol support — of the merchant this MCP endpoint belongs to. Takes NO parameters: the merchant is fixed by which store's /:storeSlug/mcp endpoint you connected to, not by an argument. To read a different merchant's profile, call this same tool on that merchant's own endpoint instead.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_page_contentGet a SUMMARY of a specific page on Trusteed: its title, description, keywords, related tools and the link to the full page.No findings
Why it is in this group
- The name "get_page_content" says "get": a word for reading.
Description, as the server wrote it Get a SUMMARY of a specific page on Trusteed: its title, description, keywords, related tools and the link to the full page. It returns a summary, not the full page text: read the linked URL when the whole page is needed. `content_scope` says what came back. Pass the page slug (e.g. 'for-agents', 'pricing', 'blog') or a blog post slug (returns its excerpt). Use get_site_map first to discover available slugs. Pass page='blog' to list all blog posts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_product_detailsGet detailed information about a specific product in Demo Store, including all variants, sizes, colors, and availability.No findings
Why it is in this group
- The name "get_product_details" says "get": a word for reading.
Description, as the server wrote it Get detailed information about a specific product in Demo Store, including all variants, sizes, colors, and availability.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_site_mapReturns the complete site map of Trusteed: all public pages organized by category.No findings
Why it is in this group
- The name "get_site_map" says "get": a word for reading.
Description, as the server wrote it Returns the complete site map of Trusteed: all public pages organized by category. Use this to discover what sections are available (docs, blog, integrations, legal, marketing) and find the right path before calling get_page_content.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_store_trustGet Demo Store's signed trust score (v4.1, 0-100) with per-signal data quality, confidence level, and a detached JWS for offline verification.No findings
Why it is in this group
- The name "get_store_trust" says "get": a word for reading.
Description, as the server wrote it Get Demo Store's signed trust score (v4.1, 0-100) with per-signal data quality, confidence level, and a detached JWS for offline verification. Don't trust the number — verify it: download the JWKS at jwks_snapshot_uri, validate jws_compact with signing_kid, and recompute payload_hash_sha256.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_trust_receiptRetrieve the signed trust receipt for a checkout.2 findings
Why it is in this group
- The name "get_trust_receipt" says "get": a word for reading.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...heckout call is still running. Only the credential that made the purchase can read its rec..."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it Retrieve the signed trust receipt for a checkout. A receipt records the complete_checkout call; read `order_placed` before telling anyone a purchase happened. Returns the receipt id, the JWS signature and how to verify it. Issuance is asynchronous: right after complete_checkout this may answer `status: "pending"` with a retry delay. `pending` with code `receipt_pending` means the purchase completed and the receipt is on its way; `checkout_in_progress` means the complete_checkout call is still running. Only the credential that made the purchase can read its receipt. A receipt attests that the call happened, not that money moved: read `settlement` (it is `not_attested` unless the payment rail confirmed it). PREFER THE CART CARD: if the purchase was completed on an interactive card, it already fetches and shows this receipt itself right after the order — calling this tool yourself right after is usually redundant and opens a new card in the transcript. Call it yourself only when there is no interactive card, or the buyer asks for the receipt later in a new turn. Checkout guide: read the MCP resource trusteed://guides/checkout.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_docsFull-text search across all Trusteed public documentation: pages, blog posts, FAQ entries, error codes, the agent checkout guide, and the tools of this endpoint.No findings
Why it is in this group
- The name "search_docs" says "search": a word for reading.
Description, as the server wrote it Full-text search across all Trusteed public documentation: pages, blog posts, FAQ entries, error codes, the agent checkout guide, and the tools of this endpoint. Returns ranked results by relevance. Use this to find answers about protocols, pricing, integration guides, trust scores, and more.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_productsSearch products in Demo Store.No findings
Why it is in this group
- The name "search_products" says "search": a word for reading.
Description, as the server wrote it Search products in Demo Store. Returns matching products with prices, images, availability, and direct links. Results include data for generating a visual product carousel artifact with category filtering.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_products_enrichedSearch products with enriched data including structured attributes, variants, GTIN, and images.No findings
Why it is in this group
- The name "search_products_enriched" says "search": a word for reading.
Description, as the server wrote it Search products with enriched data including structured attributes, variants, GTIN, and images. Ideal for comparison and detailed product discovery. Matching is keyword/substring-based (title, description, tags, vendor) with rating-then-review ordering — the rating and review count it orders by are asserted by the merchant and are not verified by Trusteed. Use this when you have concrete keywords, a category, or a price range.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
ucp_get_checkoutRetrieve a UCP checkout session by ID.2 findings
Why it is in this group
- The name "ucp_get_checkout" says "get": a word for reading.
Findings
- Info
The input schema at properties.meta.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.meta.description: "...rofile; it must be an https URL without credentials (at most 2048 characters)."
- Info
The input schema at properties.agent_key.description mentions "credential".
What this check looks forMatched text
inputSchema.properties.agent_key.description: "Sandbox credential from `create_sandbox_key`. Use this whe..."
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http gateway https://trusteed.xyz/demo-store/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__gateway__search_products_enriched",
"mcp__gateway__search_products",
"mcp__gateway__get_product_details",
"mcp__gateway__browse_categories",
"mcp__gateway__get_checkout_state",
"mcp__gateway__get_merchant_profile",
"mcp__gateway__ucp_get_checkout",
"mcp__gateway__get_site_map",
"mcp__gateway__get_page_content",
"mcp__gateway__search_docs",
"mcp__gateway__compare_products",
"mcp__gateway__get_trust_receipt",
"mcp__gateway__get_store_trust"
],
"ask": [
"mcp__gateway__create_cart",
"mcp__gateway__get_shipping_rates",
"mcp__gateway__select_shipping_option",
"mcp__gateway__apply_discount",
"mcp__gateway__preview_checkout",
"mcp__gateway__quote_checkout",
"mcp__gateway__complete_checkout",
"mcp__gateway__ucp_create_checkout",
"mcp__gateway__ucp_update_checkout",
"mcp__gateway__ucp_preview_checkout",
"mcp__gateway__ucp_complete_checkout",
"mcp__gateway__create_sandbox_key",
"mcp__gateway__verify_trust_receipt"
],
"deny": [
"mcp__gateway__ucp_cancel_checkout"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as gateway. Review it before you use it.