Every public shop on OK Mart can be read by AI agents and assistants: a store MCP server, product feeds, a sitemap and an llms.txt, on the shop’s own address. Agents can find products and make a cart link; they cannot place orders or take payments.
What every public shop serves
At the shop’s own address: https://<shop>.okmart.app, or the shop’s own domain. Find shops in the shop directory.
Path
What it is
/mcp
MCP server. Model Context Protocol over Streamable HTTP: POST one JSON-RPC message (or a batch) and get JSON back. No session and no sign-in.
/.well-known/mcp.json
MCP server card. The server’s name, endpoint, transport, protocol versions and tools, for discovery.
/llms.txt
llms.txt. A plain-text summary of the shop: what it sells, delivery and pickup, payment, contact, and these addresses.
/feeds/google.xml
Google Merchant Center feed. RSS 2.0 with Google’s product fields, one item per variant.
/feeds/products.json
JSON product feed. The catalog as JSON with the field names of OpenAI’s product feed spec. A public URL any agent can read; it is not a submission to ChatGPT.
/sitemap.xml
Sitemap. Every product, collection, page and policy, with images and the shop’s other languages.
/robots.txt
robots.txt. Names the sitemap and the feeds. A merchant can keep AI crawlers (GPTBot, OAI-SearchBot, Google-Extended, PerplexityBot, ClaudeBot) out of their shop.
Feeds are served for shops that show their prices to everyone; a wholesale shop with hidden prices has none.
The store MCP server’s tools
Six read-only tools. A shop that sells at listed prices offers build_cart; a wholesale shop offers request_quote_link instead. The shop’s about page, policies and questions and answers are also MCP resources.
search_products
Search the catalog by words (names, brands, generic names of medicines, categories, sizes, colours; close spellings too), by category and to products in stock. Returns each product’s price (or “price on request”), availability and link.
get_product
A product’s details by handle or id: description, images, options and every variant with its id, price, quantity prices and availability, and how the shop delivers it.
get_policies
The shop’s policies (returns, shipping, privacy, terms, contact) and ordering terms: who sees prices, guest checkout, payment methods, minimum order, delivery, pickup and shipping.
answer_question
Answers a shopper’s question from what the shop wrote (questions and answers, policies, pages) and its settings, with where the answer comes from. Says so when the shop has written nothing on it; never guesses.
build_cart
A link that opens the shop with these items in the cart, priced by the shop. The shopper reviews and checks out on the shop’s site.
request_quote_link
For a wholesale shop: a link to the shop’s quote request with the items listed. The shopper sends it; the shop replies with prices.
Connect an agent
Any MCP client that speaks Streamable HTTP can connect: no account, key or sign-in. Replace yourshop.okmart.app with the shop’s address.
Claude Code
claude mcp add --transport http yourshop https://yourshop.okmart.app/mcp
The server card at /.well-known/mcp.json names the endpoint and tools. For the platform itself, read okmart.app/llms.txt (and llms-full.txt).
What agents can and cannot do
Read-only: every tool is marked readOnlyHint. The cart and quote links only open the shop with lines filled in; the shopper checks out.
Agents cannot place orders, take payments or see customers’ data. Prices come from the shop; a wholesale shop’s hidden prices stay hidden (“price on request”).
One shop per server: a server answers for its own shop only. A private shop, or one whose merchant turned the server off, has none (404).
Answers come in the shopper’s language when the shop has it (pass "language", or Accept-Language), else in the shop’s own.
Rate limited to 120 requests a minute per IP address. Protocol versions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05.
The merchant sees in the app which tools agents used and what they asked; no IP address is kept, and emails and phone numbers are removed from the questions.