SmartBasket

Connect your AI assistant

Shop Smart Basket from Meta Muse, Claude or ChatGPT

Smart Basket runs a server that AI assistants can talk to. Once you connect your account, you can ask your assistant to check whether we deliver to you, find products and prices, add them to your cart, change quantities, and follow your orders. Checkout stays in the Smart Basket app, where you see the total and choose your delivery window before anything is charged.

Set it up

Meta Muse. Once Smart Basket is listed in Muse's connector directory, open Settings → Connectors, find Smart Basket and tap Connect. Until then, send Muse this message:

Add a custom connector for Smart Basket. It is a remote MCP server using streamable HTTP at https://api.getsmartbasket.com/v1/mcp/shopper with OAuth authentication. If you need a client id, use "muse".

Claude. In claude.ai, open Settings → Connectors → Add custom connector and paste https://api.getsmartbasket.com/v1/mcp/shopper. In Claude Code, run claude mcp add --transport http smartbasket https://api.getsmartbasket.com/v1/mcp/shopper.

ChatGPT. In Settings → Connectors, add a custom MCP server with the same address.

Whichever assistant you use, it opens a Smart Basket sign-in page. Enter the phone number you use in the app, type the code we text you, and tap Allow. That is a one-time step. Your assistant stays connected until you disconnect it, from the assistant or from Signed-in devices in the Smart Basket app.

What your assistant can do

What it cannot do today

Prices and stock are quoted as of the moment you ask and are confirmed in the app at checkout.

Privacy

Your assistant sees your first name, the last four digits of your phone number, your default delivery address's label, city and ZIP, your cart and your orders. Nothing else. Smart Basket does not share your phone number or payment details with the assistant, and does not use what you ask it for advertising. Every action an assistant takes on your account is logged, and you can review and revoke the connection at any time. Our privacy policy applies.

Technical reference

For assistant developers. The server implements the Model Context Protocol over Streamable HTTP with JSON responses, one request per call, no sessions.

EndpointPOST https://api.getsmartbasket.com/v1/mcp/shopper
Public endpoint (no sign-in)POST https://api.getsmartbasket.com/v1/mcp/public — delivery area and catalog only
AuthorizationOAuth 2.1 authorization code with PKCE (S256). Smart Basket is the authorization server.
Discovery/.well-known/oauth-authorization-server and /.well-known/oauth-protected-resource/v1/mcp/shopper on the same origin
Client registrationDynamic (RFC 7591); none, client_secret_basic and client_secret_post are accepted. Meta Muse may also use the pre-registered public client id muse.
Scopemcp (the only scope)
TokensAccess token valid 24 hours; refresh token always issued, rotated on use
RevocationPOST /oauth/revoke; also from the shopper's Signed-in devices in the app
Rate limits120 calls per minute per shopper; 60 per minute per IP on the token endpoint; HTTP 429 when exceeded
ErrorsA refusal the shopper can act on (out of stock, over the per-order limit, cart locked while an order is being picked) is returned as a tool result with isError: true and a plain-language message. An expired or revoked token gets HTTP 401 with a WWW-Authenticate challenge naming the resource metadata.

Tools

Classification follows Meta's connector guidelines: Read retrieves without changing anything; Write changes data on the shopper's behalf; a Sensitive write is irreversible or consequential and is approved by the shopper every time. The current tools are reads and cart writes; sensitive-write tools such as placing an order are planned and will be added to this table when they ship.

ToolClassSign-inInputsReturns and side effects
check_delivery_areaReadNozipWhether we deliver, and the store; for an unserved ZIP, the served ZIPs and a notify-me link. Records the unserved ZIP as a demand signal.
list_delivery_areasReadNononeServed ZIP codes.
search_productsReadNoquery, optional zip, pageMatching products with price, list price, size, stock and sale limit. Records the search.
get_productReadNoproductId, optional zipOne product in full.
list_categoriesReadNononeAisles and subcategories.
list_productsReadNooptional categoryId, pageA page of the catalog: name, price, size.
get_app_linkReadNononeApp Store and Google Play links.
get_accountReadYesnoneFirst name, masked phone, default address label, city and ZIP.
get_cartReadYesnoneCart lines, subtotal, delivery fee, total, and whether the cart is editing a placed order.
add_to_cartWriteYesproductId, quantity (1–99)Adds to the cart and returns it. Refuses out-of-stock, coming-soon and over-limit items.
set_cart_quantityWriteYesproductId, quantity (0–99)Sets a line; 0 removes it. Returns the cart.
remove_from_cartWriteYesproductIdRemoves the line. Returns the cart.
list_ordersReadYeslimit (1–20)Recent orders with status, delivery window, total and items.
get_orderReadYesorderIdOne order in full.

Every cart tool returns the whole cart after the change, so an assistant reports the real state rather than assuming the write succeeded. Order status values are the app's own, with the promised delivery window.

Questions

Email contact@getsmartbasket.com. Security reports to the same address are read first.