Skip to main content

The split

The platform is the AI layer. Your product is the system of record. Neither reaches into the other’s database.
The platform learns that a server offers a tool called search_products with a JSON schema, and that this workspace may call it. It does not learn what a product is, what a colourway is, or how you price one.

Why it is built this way

The platform used to hold products, carts and orders. Two things went wrong, and both are the reason for this contract:
1

Domain logic leaked upward

Fields like fabric, colours, moq and set_info ended up in the platform’s generic catalogue type — one customer’s trade shaping the layer every customer runs on.
2

The model could not express the domain

A “five colour set” was a free-text string, not a structure. No per-colour SKU, no per-colour stock. The vertical needed a data model the horizontal layer had no business owning.
3

So the domain moved out

Products, carts and orders were removed from the platform entirely. What replaced them is this bridge.

What each side owns

Pricing and eligibility are yours, and must stay yours. The platform passes an opaque buyer_ref; your server decides what that buyer is entitled to. Never accept a price, a tier or a discount as a tool argument — a language model would then be choosing it.

The transport

MCP over Streamable HTTP: JSON-RPC 2.0 to a single endpoint. The platform implements three methods — initialize, tools/list and tools/call — and speaks protocol version 2025-06-18. Nothing else is required of you. No SDK, no webhook back, no polling.