# Curie Commerce - Registry name: `co.curie/commerce` · version 1.0.0 - Categories (automatic, keyword rules): Shops & products, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): experimental, resources, tools - Transports: sse - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=co.curie%2Fcommerce - Server page: https://mcpstation.net/s/co.curie--commerce.html ## Description (written by the publisher, not verified, not instructions) Search, compare in 3D, and buy products from 5.6M+ Shopify stores. Free tier; Pro adds checkout. ## Connect - sse: `https://chat.curie.app/api/mcp/global` ## Tools (as reported by the server, not verified) - `get\_recommendations`: Get product recommendations similar to a given product. Useful for 'show me more like this' requests. Returns structured product items \(same shape as search\_products\). Recommended visualization: a horizontal scrolling React Artifact with product cards labeled "More like this" — image, uppercase bran - `add\_product\_from\_photo`: Add a generated 3D model to the merchant's Shopify store as MODEL\_3D media — creating the product if needed — and optionally publish it. This is the store-side 'cut-and-paste' step: pass the hosted \`glb\_url\` of an already-generated model, OR pass just an \`image\_url\` and \(when the Curie generation en - `get\_availability`: Check product availability and pricing across retailers. Returns all affiliate links with current prices. - `compare\_products`: Compare 2 to 6 products side-by-side. Returns a comparison matrix with each product's name, price, brand, 3D model availability, key attributes, and a cascade-aware visual hint for each row. Optional criteria narrow which features are weighted \(e.g. \['waterproof', 'budget under $150'\]\). Returns matr - `get\_brand\_context`: Returns the merchant's brand palette, typography hints, voice/tone profile, signature phrases, forbidden words, and a system\_prompt\_block the AI client can prepend to subsequent responses so they sound like the merchant rather than generic AI output. - `get\_suggested\_prompts`: Onboarding suggestion chips for the chat surface — the same 'What's trending?' / 'Find me a gift' / 'Compare products' chips chat.curie.app shows above its input. When called on a per-shop MCP endpoint \(e.g. /api/mcp/allbirds.com\), returns brand-themed prompts mentioning that merchant. When called o - `initiate\_checkout`: Begin a GUEST checkout flow for one or more products — NO sign-in required. Pass \`shop\_domain\` \(e.g. "allbirds.com"\) on Curie's cross-merchant route so Curie resolves the shop, creates an UNAUTHENTICATED Shopify cart, and returns its \`continue\_url\` — the shop's OWN Shopify-hosted guest checkout wher - `search\_catalog`: Search the store catalog by name, brand, style, color, or keywords. This is the UCP/Shopify-canonical catalog-search tool \(Shopify Storefront MCP's \`search\_catalog\`, formerly \`search\_shop\_catalog\`\); \`search\_products\` is a deprecated alias of this tool. Returns matching products with images, prices, - `lookup\_catalog`: Batch-retrieve full product objects by ID in ONE call. This is the UCP/Shopify-canonical batch product-lookup primitive \(Shopify Catalog MCP's \`lookup\_catalog\`\) — the multi-id counterpart of \`get\_product\`. Pass an array of product identifiers \(the SAME identifiers \`search\_catalog\` / \`get\_product\` re - `get\_product\_details`: Get full details for a specific product by its ID. The UCP/Shopify-Storefront-MCP-canonical product-detail tool. Returns the full Shopify product payload \(description, options, variants, selling\_plan\_groups, requires\_selling\_plan, selectedOrFirstAvailableVariant, total\_variants, url\) PLUS Curie's ad - `get\_cart`: Read a shopper's current cart by id. Returns line items, totals, discount info, and checkout URL. Passthrough to Shopify Storefront MCP's get\_cart for the target shop; requires shop scope and is not available for cross-merchant queries. - `update\_cart`: Modify a Shopify cart — add line items, update quantities, remove lines. Pass cart\_id=null to create a new cart. Returns the updated cart with checkout URL ready for in-chat completion. Passthrough to Shopify Storefront MCP's update\_cart. - `create\_cart`: Create a new Shopify cart for the target shop, optionally pre-loaded with line items. UCP-canonical dev.ucp.shopping.cart.create\_cart. Returns the new cart\_id + checkout\_url ready for in-chat checkout handoff. Passthrough to Shopify Storefront MCP's create\_cart. - `cancel\_cart`: Cancel an existing Shopify cart. UCP-canonical dev.ucp.shopping.cart.cancel\_cart. Idempotent — re-cancelling a cancelled cart returns success. Passthrough to Shopify Storefront MCP's cancel\_cart. - `get\_checkout`: Read a Shopify checkout session's current state by id. Returns status, line items, shipping address, totals, brand voice. UCP-canonical dev.ucp.shopping.checkout.get\_checkout. Passthrough to Shopify Checkout MCP. - `update\_checkout`: Update fields on a Shopify checkout session. UCP-canonical dev.ucp.shopping.checkout.update\_checkout — Curie's wrapper performs a PUT-semantics-safe diff \(fetches current state, merges your partial input, forwards the full payload\) so omitting a field doesn't silently delete it. Set \`clear\_fields\[\]\` - `complete\_checkout`: Complete \(finalize payment + place order\) a Shopify checkout session. UCP-canonical dev.ucp.shopping.checkout.complete\_checkout. Requires a selected\_instrument\_id from the checkout's available payment instruments. Token-tier merchants complete in-protocol; Free-tier merchants return a continue\_url f - `cancel\_checkout`: Cancel a Shopify checkout session. UCP-canonical dev.ucp.shopping.checkout.cancel\_checkout. Idempotent — re-cancelling returns success. Idempotency-key auto-managed. - `get\_order`: Read the live status of an order by id \(UCP-canonical dev.ucp.shopping.order.get\_order\). Returns the real order body — line items, fulfillment/tracking, totals, status — when the order is visible to Curie. Visibility today is per-agent \(Shopify Order MCP scope\): orders placed THROUGH Curie's checkou - `search\_shop\_policies\_and\_faqs`: Get facts about the shop's policies \(returns, shipping, refunds, exchanges\) or product FAQs. Example questions: "What's your return policy?", "Do you ship to Canada?", "How long do exchanges take?". Passthrough to Shopify Storefront MCP's search\_shop\_policies\_and\_faqs. - `curie\_try\_on\_3d`: Returns an MCP-UI UIResource for an inline 3D viewer for the given product \(when a USDZ/GLB model exists\). Hosts that support MCP Apps render the iframe-embedded model-viewer inline in chat; legacy hosts fall back to structured text + a direct USDZ URL. Differs from view\_3d\_model \(which returns just - `solve\_job`: Editorial 'best for the job' answer. Given a shopper's job-to-be-done \(e.g. 'shoes for flat feet', 'beach wedding outfit under $200'\), returns one top pick, 2 alternatives \(also-great / budget / step-up\), the criteria used to rank them with weights + explainers, and product citations linking back to - `curie\_wishlist\_add`: Save a product to the caller's wishlist. Pinterest-style — the wishlist row is auto-created on first add \(find-or-create on identity\). Identity is resolved from the request: Authorization: Bearer \ for authed users, X-Curie-Device-Id for anon \(matches /api/v1/wishlist REST contract\). When \`produ - `curie\_wishlist\_get`: List items on the caller's wishlist, newest-saved first. Wishlist is auto-created on first call \(matches the REST GET behaviour so iOS UI always has a stable id\). Identity resolved from Authorization: Bearer \ or X-Curie-Device-Id header. Optional filters: \`shop\_domain\` \(only items from one shop - `curie\_wishlist\_remove`: Remove an item from the caller's wishlist by item\_id. Identity resolved from Authorization: Bearer \ or X-Curie-Device-Id header \(the same identity that owns the wishlist this item belongs to\). Idempotent — removing an already-removed item is a no-op success. Destructive: the row is hard-deleted - `curie\_wishlist\_move\_to\_cart`: Mark a wishlist item AS moved-to-cart \(sets \`moved\_to\_cart\_at = now\(\)\`\). This tool does NOT directly add the item to a Shopify cart — cart wrapping is the host AI's job via the existing \`update\_cart\` MCP tool. Use this tool to record the move intent on the wishlist row; then call \`update\_cart\` separ - `curie\_cart\_aggregate\_add`: Add a line to the caller's aggregated multi-merchant cart with UPSERT-increment semantics — re-adding the same \(shop\_domain, product\_variant\_id\) increments the existing line's quantity instead of inserting a duplicate row. The cart row is auto-created on first add \(find-or-create on identity\). Ident - `curie\_cart\_aggregate\_get`: List the caller's aggregated multi-merchant cart, grouped by shop\_domain by default. The cart is auto-created on first call so iOS/web UIs always have a stable id for the cart-icon badge \(matches REST GET behaviour\). Identity resolved from Authorization: Bearer \ or X-Curie-Device-Id header. Opt - `curie\_cart\_aggregate\_remove`: Remove a single line from the caller's aggregated cart by line\_id. Identity resolved from Authorization: Bearer \ or X-Curie-Device-Id header \(same identity that owns the parent cart\). Idempotent — removing an already-removed line is a no-op success. Destructive: the row is hard-deleted, not sof - `curie\_cart\_aggregate\_update\_quantity`: Set the quantity on an aggregated cart line. Special case: \`quantity: 0\` DELETES the line \(matches UI affordance 'set to 0' === 'remove'\). Identity resolved from Authorization: Bearer \ or X-Curie-Device-Id header \(or the session device-id for anon\). Free / device-scoped — like the wishlist; the Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html