{"name":"Trusteed","checkout_guide":"https://trusteed.xyz/.well-known/agent-checkout-guide.json","version":"1.5","serverInfo":{"name":"Trusteed","version":"1.5"},"url":"https://trusteed.xyz/{storeSlug}/mcp","protocolVersion":"2025-11-25","protocolVersions":["2025-11-25","2025-06-18","2025-03-26","2024-11-05","2024-10-07"],"description":"Multi-merchant MCP platform. Each connected store exposes its own MCP endpoint via Streamable HTTP. Use endpoint_template with a store slug to connect to a specific merchant.","canonical_scope":"Lightweight MCP Server Card for crawlers and registries. Declares capabilities, tools, resources, and discovery links. `tools` is the always-on floor, not the full catalogue — read tool_list_semantics before concluding a tool does not exist. For full manifest see /mcp.json. For agent policies see agent-policy.json.","mcp_version":"2025-11-25","sdk_version":"1.29.0","updated":"2026-10-05","generated_at":"2026-10-05T19:34:50.929Z","endpoint_template":"https://trusteed.xyz/{storeSlug}/mcp","endpoint_template_note":"endpoint_template always renders the canonical domain. It is a fallback, not an address: a merchant homed on another deployment answers on its own host. Resolve a slug by reading that merchant's mcp_endpoint (and mcp_endpoints_by_bucket) in /.well-known/merchant-index.json, which carries the real host per row; use this template only when the merchant is not listed there. A 'Store not found' from the canonical domain does not mean the merchant does not exist — it may mean it is not homed here.","transport":"streamable-http","authentication":{"type":"oauth2","resource_metadata_url":"https://trusteed.xyz/.well-known/oauth-protected-resource/{storeSlug}/mcp"},"capabilities":{"tools":true,"resources":true,"prompts":false},"client_capabilities_used":{"elicitation":{"used_by":["get_shipping_rates","complete_checkout"],"required":false,"fallback":"form/URL response in the tool result when unsupported"},"sampling":{"used_by":[],"required":false}},"tools":["apply_discount","attach_agent_identity","browse_catalog_feed","browse_categories","cancel_payment_mandate","check_agent_consent","compare_products","complete_checkout","complete_visa_payment","create_cart","create_payment_mandate","enroll_payment_method","explore_store","get_acp_orders","get_merchant_profile","get_page_content","get_payment_methods","get_product_details","get_shipping_rates","get_site_map","get_tool_details","onx_cancel_order","onx_create_return","onx_get_fulfillments","onx_get_inventory","onx_get_orders","onx_get_returns","preview_checkout","process_agent_payment","run_scenario","search_docs","search_products","search_products_enriched","search_tools","select_shipping_option","ucp_add_items_to_checkout","ucp_cancel_checkout","ucp_complete_checkout","ucp_create_checkout","ucp_get_checkout","ucp_update_checkout","update_payment_mandate","verify_age_over_n","verify_legal_person_authorization","verify_residence_country"],"tool_list_semantics":{"meaning":"`tools` is the FLAG-FREE REFERENCE SET, not the catalogue and not a bound: it is every tool identity gated by neither a per-store nor a platform flag. Corrected 2026-09-05 — this field used to call it the 'always-on floor', and /llms.txt called the same number 'a ceiling, not a floor'. Both were wrong, in opposite directions, and the measurement settles it: a store that never saved an `enabledTools` list serves 12 of these, so it is no floor; and a store whose platform-flagged tool is ON serves MORE (legacy `tools/list` returned 46 that day, this set plus `get_store_trust`), so it is no ceiling. Treat it as what a crawler can name without knowing any store, then call `tools/list` on the endpoint you will use and read the answer. Tools gated behind a per-store or platform flag are listed separately in excluded_conditional_tools; read each entry's `availability` before assuming a flag being on is enough — `served_where_flag_on` means exactly that, `not_served` means we measured it not answering anywhere and `why` says when. Absence from `tools` never means a tool does not exist.","excluded_conditional_tools":[{"name":"create_agent_credential","gated_by":"guestCredentialIssuer","scope":"platform","availability":"served_where_flag_on","why":"Governed by a deployment flag of this platform, not by the merchant."},{"name":"create_sandbox_key","gated_by":"sandboxKeyIssuer","scope":"platform","availability":"served_where_flag_on","why":"Governed by a deployment flag of this platform, not by the merchant."},{"name":"get_store_trust","gated_by":"GET_STORE_TRUST_TOOL_ENABLED","scope":"platform","availability":"served_where_flag_on","why":"Governed by a deployment flag of this platform, not by the merchant."},{"name":"get_trust_receipt","gated_by":"trustReceiptLookup","scope":"platform","availability":"served_where_flag_on","why":"Governed by a deployment flag of this platform, not by the merchant."},{"name":"nlweb_ask","gated_by":"nlwebEnabled","scope":"per-store","availability":"not_served","why":"Deployed but not answering. The reason is structural, not a snapshot: turning the per-store flag on is necessary but NOT sufficient — the tool only resolves once the NLWeb index has been built, and while it is not the underlying /{slug}/ask route reports VECTOR_DB_UNAVAILABLE. Do not take this sentence as today's state: check it yourself with a tools/call for nlweb_ask against the store you target, where -32602 'Tool nlweb_ask not found' means the index is still not ready. Use search_products meanwhile."},{"name":"ucp_get_catalog","gated_by":"ucpCatalogEnabled","scope":"per-store","availability":"served_where_flag_on","why":"The merchant must switch this on for their store; most have not."}],"counts":{"registry_catalogue":51,"always_on":45,"conditional":6},"effective_list_for_a_store":"POST https://trusteed.xyz/{storeSlug}/mcp with a JSON-RPC `tools/list` request. That answer, and only that answer, is what a given merchant serves."},"resources":[],"prompts":[],"discovery":{"merchant_index":"https://trusteed.xyz/.well-known/merchant-index.json","store_directory":"https://api.trusteed.xyz/api/v1/stores/directory","agent_commerce":"https://trusteed.xyz/.well-known/agent-commerce.json"},"testing":{"mcp_playground":"https://trusteed.xyz/en/demo-store/playground","agent_rules_playground":"https://trusteed.xyz/en/demo-store","description":"Two interactive sandboxes. On demo-store, the discovery endpoint needs no key: browse and read the catalogue with no credential at all. The checkout endpoint needs one for every tool, `create_cart` included. Without it the call answers HTTP 200 with a JSON-RPC error whose `error.data.code` is `no_credentials` (no WWW-Authenticate header): branch on that code, not on the HTTP status. A self-service sandbox key from the `create_sandbox_key` tool covers it. An `X-Payment-Mandate` header is also needed by the checkout tools that spend or settle (preview_checkout, complete_checkout, process_agent_payment, complete_visa_payment, ucp_complete_checkout); the other checkout tools (create_cart and attach_agent_identity and verify_age_over_n and verify_residence_country and verify_legal_person_authorization and apply_discount and get_shipping_rates and select_shipping_option and create_payment_mandate and update_payment_mandate and cancel_payment_mandate and ucp_create_checkout and ucp_update_checkout and ucp_add_items_to_checkout and ucp_get_checkout and ucp_cancel_checkout and get_trust_receipt) don't need it. Without it, demo-store answers HTTP 200 with a JSON-RPC error whose `error.data.code` is `demo_sandbox_mandate_required` (`demo_sandbox_mandate_malformed` plus `remediation.mandate_issues` if it does not parse); branch on that code, not on the HTTP status. A real merchant answers 403 `payment_mandate_required`. Payment is simulated. Step by step: https://trusteed.xyz/.well-known/agent-checkout-guide.json Agent Rules simulator needs no authentication. Agent Rules simulator: test 46 of the engine's 52 merchant rules and the KYAI policy engine against predefined agent profiles. Declared is not active: most rules are off in production and merchants start in observation mode."},"related_documents":{"mcp_manifest":"/mcp.json","agent_policy":"/.well-known/agent-policy.json","agent_commerce":"/.well-known/agent-commerce.json","agent_trust_manifest":"/.well-known/agent-trust-manifest.json","agent_playbooks":"/.well-known/agent-playbooks.json","agent_pay":"/.well-known/agent-pay.json","agent_failsafe":"/.well-known/agent-failsafe.json","merchant_index":"/.well-known/merchant-index.json","llms_txt":"/llms.txt","oauth_resource":"/.well-known/oauth-protected-resource/{storeSlug}/mcp"}}