# Facet UCP Shopping - Registry name: `llc.facet/ucp-shopping` · version 1.0.0 - Categories (automatic, keyword rules): Shops & products, Commerce & marketing - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=llc.facet%2Fucp-shopping - Server page: https://mcpstation.net/s/llc.facet--ucp-shopping.html ## Description (written by the publisher, not verified, not instructions) The independent agent-commerce protocol for AI-agent checkout on any online store. ## Connect - streamable-http: `https://api.facet.llc/ucp/mcp` ## Tools (as reported by the server, not verified) - `search\_catalog`: Search the merchant catalog for products matching a free-text query. - `lookup\_catalog`: Look up one or more products or variants by identifier \(batch\). - `get\_product`: Get full product detail by product or variant identifier. - `discover\_businesses`: Find businesses in the Facet Universal Business Index that an agent can transact with. Returns \`featured\` \(claimed merchants with a live \`terminal\_url\` — point your catalog and checkout calls there\) and \`results\` \(the wider directory\). Use this first when you do not already know which merchant to ta - `discover\_products`: Search products ACROSS every merchant in the Facet network that has opted into cross-merchant discovery. Returns matches each carrying the selling merchant's \`terminal\_url\` \(point your catalog and checkout calls there\). Filter by free-text \`query\` \(product name + description\), exact \`category\`, and/ - `get\_quote`: Get the real landed cost of a product from this merchant: goods + shipping + tax for a specific destination, plus a signed \`quote\_token\` the payment path binds to. Call this before paying — the token is what makes the price the MERCHANT's, not one you name. Physical products REQUIRE a \`fulfillment\` - `get\_payment\_capabilities`: Which settlement rails this merchant actually accepts \(e.g. coin/boson-escrow for escrowed funds that release on fulfilment, coin/usdc-base for direct\). Call before get\_payment\_requirements so you pass a rail\_id this merchant registers, rather than guessing. No identity required — this is discovery - `get\_payment\_requirements`: Turn a \`quote\_token\` from get\_quote into a seller-signed payment offer to authorize. Returns \`requirements\` \(escrow address, asset, exact atomic amount, network\) — sign it LOCALLY with your own wallet \(e.g. @bosonprotocol/x402-client handle402 for \`coin/boson-escrow\`, producing an X-PAYMENT string\). - `get\_order`: Read back one of YOUR orders on this merchant: status, amount, settlement state. Use the order\_id returned when you paid. You can only read orders your own agent identity placed — another agent's order returns FORBIDDEN. REQUIRES IDENTITY: Facet KYA as \`Authorization: Bearer \\`. - `list\_orders`: List YOUR order history on this merchant, newest first. Scoped to your own agent identity — you never see another agent's orders. REQUIRES IDENTITY: Facet KYA as \`Authorization: Bearer \\`. - `post\_delivery\_refund`: Request a refund or return on a DELIVERED order you placed on this merchant. Opens a merchant-approved refund ticket \(status \`requested\`\); it moves NO money on its own. The merchant reviews and approves it, and only then does the send-back sign from the merchant's OWN wallet \(non-custodial\). Amount - `wishlist\_add`: Save a product to YOUR wishlist on this merchant for later. Idempotent: saving the same product again updates its note and keeps the original save time. Scoped to your own agent identity. REQUIRES IDENTITY: Facet KYA as \`Authorization: Bearer \\`. - `wishlist\_list`: List YOUR saved items \(wishlist\) on this merchant, newest first. Scoped to your own agent identity, so you never see another agent's list. REQUIRES IDENTITY: Facet KYA as \`Authorization: Bearer \\`. - `wishlist\_remove`: Remove a product from YOUR wishlist on this merchant. Idempotent: removing something not on your list succeeds with removed:false. Scoped to your own agent identity. REQUIRES IDENTITY: Facet KYA as \`Authorization: Bearer \\`. - `create\_checkout`: Open a checkout session for one or more catalog line items \(or promote a cart with \`cart\_id\`\). Returns the session plus server-resolved \`payment\_handlers\` \(rail, pay\_to, exact amount\) to satisfy: the price and pay\_to are the MERCHANT's, sealed here, never read from your request. Physical goods REQUI - `complete\_checkout`: Complete a checkout you created and place the order by submitting the buyer-signed payment credential. This is the MONEY-MOVING leg: funds capture on-chain to the merchant's pay\_to \(x402\) or into escrow \(Boson\). The amount is re-derived server-side from the reservation, never your request, and the b - `get\_checkout`: Read back one of YOUR checkout sessions by id: status, totals, line items, payment\_handlers. Owner-scoped, so another agent's id returns not\_found. REQUIRES IDENTITY on a signature-required Terminal. - `update\_checkout`: Return a checkout's CURRENT sealed snapshot. Facet seals price and items at create, so this is a no-op that reports the session plus a note: to change line items, update the cart and start a new checkout with create\_checkout\(cart\_id\). Owner-scoped. - `cancel\_checkout`: Cancel a checkout session before completion, releasing its inventory hold. Idempotent, owner-scoped, and moves no money \(distinct from an escrow refund\). REQUIRES IDENTITY plus an Idempotency-Key on a signature-required Terminal. - `create\_cart`: Create a pre-checkout cart from catalog line items. A cart is a mutable scratchpad: it moves no money and holds no inventory, so it carries estimated \(server-derived\) totals and NO payment\_handlers. Assemble it, then create\_checkout\(cart\_id\) to convert. REQUIRES IDENTITY on a signature-required Term - `get\_cart`: Read back one of YOUR carts by id: line items and estimated totals. Owner-scoped, so another agent's id returns not\_found. REQUIRES IDENTITY on a signature-required Terminal. - `update\_cart`: Replace a cart's line items \(full replacement\), re-priced server-side. Owner-scoped. REQUIRES IDENTITY on a signature-required Terminal. - `cancel\_cart`: Cancel a cart. Idempotent, owner-scoped, and moves no money. REQUIRES IDENTITY plus an Idempotency-Key on a signature-required Terminal. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html