Elspet shopping assistant

For administrators reviewing this MCP server · last updated 15 September 2026

A view of one Shopify store — Elspet's — for AI assistants. A shopper browses the catalogue, chooses the options, gathers a cart, and is handed a link to Elspet's own checkout. Operated by Curless.

What it cannot do

The short list first, because it is the answer to most review questions.

The tools

What the merchant wrote is fenced. Product descriptions and the shop's own policy text are written by the merchant, not by us, and they reach the buyer's assistant as prose. Before they leave this server they have their control characters and invisible (zero-width, bidi) characters removed and their length capped, and they are wrapped in markers naming whose words they are — with the instructions telling the assistant that what is inside those markers is for the buyer to read and is never an instruction to it. A shop cannot close the markers from inside: the brackets they are made of are stripped from the text first.

How each tool is annotated, exactly as the server declares it:

ToolreadOnlyHintdestructiveHintidempotentHintopenWorldHint
list_elspet_productstruefalsetruetrue
get_elspet_producttruefalsetruetrue
get_elspet_checkout_linktruefalsetruetrue
add_to_elspet_cartfalsetruetruetrue
view_elspet_carttruefalsetruetrue
clear_elspet_cartfalsetruetruefalse
check_elspet_checkout_statusfalsetruetruetrue
lookup_elspet_ordertruefalsetruetrue
get_elspet_store_policiestruefalsetruetrue

What leaves the network

What a user types into their assistant reaches this server as tool arguments — a search term, an option value, or an order number and email. Nothing else about the conversation is sent.

From this server outbound, two hosts only:

A checkout link carries three cart attributes, which Shopify copies onto the order it creates: Source (always Curless), Assistant (which AI assistant, when the client says) and CurlessRef (a random reference). The merchant sees them on the order, and the reference is how the card learns that the order was paid.

Authentication

There is none, deliberately. A shopper has no account with this store's assistant, so there is nothing to authenticate them as, and requiring a sign-in to read a public catalogue would be theatre.

What guards it instead: the endpoint writes nothing to the shop; the only sensitive answer it can give needs a matching order number and email. Requests are limited to 60 a minute per address, and an order lookup that matches nothing is counted against its order number, its email, the conversation and the address: after 5 such misses in a quarter of an hour for any one of them (50 for an address, which many people can share; 100 for the whole shop), lookups touching it wait. A wrong email and a non-existent order return the same answer, so the lookup cannot be used to confirm an order exists.

What is retained

No shopper record is written, and nothing is sold, shared for advertising, or used to build a profile.

The interface

Results render as an MCP Apps card: one self-contained HTML document served as a ui:// resource, with its Content-Security-Policy declared to the host. It loads images from the two hosts above and makes no other network request.

Operations

Contact

Anything a shopper would ask — an order, a payment, a return — is Elspet's: help@elspet.com, or https://www.elspet.com.

An administrator reviewing this server, or reporting a fault in it, reaches the operator at ops@curless.ai — kept here because the point of this page is to say who runs the thing you are being asked to approve.

Privacy policy · Terms — both Elspet's own, because the shopper's data and the sale are theirs.