Beta

The Partner Trading API v1 is in beta — endpoints and response shapes may still change.

Developers
Cru World Wine
API v1 · REST & MCP
MCP server

MCP server

Cru runs a Model Context Protocol server, so a Cru customer can use their own account from Claude, ChatGPT and other AI assistants: find wines, read both sides of the market, review their portfolio, bids, listings and trades — and, if they allow it, bid, buy, list and sell, each confirmed by them in the conversation.

MCP server URL · selected market
https://us.cruworldwine.com/api/mcp
MCP server · AI assistants. Claude, ChatGPT, Claude Code or any MCP client connects to Cru’s MCP server as the customer. Its tools read the market, and a trade waits for the customer’s yes in the conversation.

1 / 5Claude connects with nothing but the URL, signed in as the customer. tools/list returns only the tools they allowed.

Who it is for

The MCP server is for customers, each connecting their own Cru account through an assistant they already use. It signs in with OAuth on Cru’s site, so the assistant never sees a password and gets only the permissions the customer ticks. Partners integrating a business server-to-server should use the REST API, which the tools are built on: every tool reads from the same place as its REST endpoint, with the same prices and rules.

One connection per market

Every market’s host serves the server at /api/mcp. The host decides the market, and with it the currency of every price, the site product links point at and the site a trade is placed on. To use two markets, add two connectors.

MARKETCURRENCYPRODUCTION MCP URL
United KingdomGBPhttps://uk.cruworldwine.com/api/mcp
United StatesUSDhttps://us.cruworldwine.com/api/mcp
Hong KongHKDhttps://hk.cruworldwine.com/api/mcp
SingaporeSGDhttps://sg.cruworldwine.com/api/mcp
EuropeEURhttps://eu.cruworldwine.com/api/mcp
United Arab EmiratesAEDhttps://ae.cruworldwine.com/api/mcp

Trading needs the customer’s yes

The trading tools never trade. Each prepares an instruction and returns a one-sentence summary and a confirmation code; only confirm_instruction carries it out, and the assistant is told to call it only after the customer says yes in the conversation. A code lasts 15 minutes and works once.

A trade, from request to done

4 STEPS
  1. The customer

    The customer asks for a trade

    “Bid £1,650 for a case of Lafite 2024.” The assistant finds the wine and its market first.

  2. The assistant

    The assistant prepares the instruction

    MCPplace_bid

    A trading tool only stages: it returns a one-sentence summary and a confirmation code, and changes nothing.

    KEEPconfirmation_code, summary

  3. The customer

    The customer reads the summary and says yes

    In the conversation. There is no email or website step: the yes in the chat is the confirmation, so the assistant is told never to confirm on anything else’s say-so.

  4. The assistant

    The assistant confirms it

    MCPconfirm_instruction

    Within 15 minutes, once. Cru re-checks the price and availability, and executes exactly what was staged.

Trading tools appear only if the customer ticked the trading permissions when connecting — they start unticked. How confirmation works →

Partner keys are the exception: called with them, a write tool is carried out at once, as over REST, and takes a reference. With partner keys →

Protocol

Transport Streamable HTTP: POST only, one JSON-RPC message per request, JSON responses. No server-sent events, no sessions — every request stands alone, and no Mcp-Session-Id is issued.
Versions2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26 — the stateless 2026-07-28 revision and the three before it. The 2024 HTTP+SSE transport is not supported.
Capabilities Tools only. No resources, prompts or sampling. tools/list returns just the tools the connection’s permissions allow.
Servercru-world-wine “Cru World Wine” 1.0.0, with instructions for the assistant — below.
Limits 60 tool calls a minute per connection; bodies up to 1 MiB; no batches. A call over the limit returns a tool error saying when to try again.
Browsers No CORS. A request with an Origin header is refused unless it is the server’s own host or localhost, so an inspector must run locally.

What the assistant is told

The server hands every assistant these instructions when it connects:

Cru World Wine is a fine wine marketplace. These tools read its live market for the signed-in customer, quoted in the currency of their market. Wines are identified by LWIN18 (wine, vintage and pack size): find them by name with search_wines, then use list_offers for what a wine would cost to buy, list_bids for what it could be sold for, or list_market for both. Bid prices are net of Cru's commission. Every price is a normal amount in the stated currency. If the customer allowed it, the bid, buy, listing and sell tools prepare an instruction that only happens when confirm_instruction is called after the customer agrees, unless the tool says it is carried out straight away. Anything else the customer does on the Cru website, which product_url links to.

Signing in

An assistant connects with nothing but the URL. Its first request gets 401 and a WWW-Authenticate header naming /.well-known/oauth-protected-resource/api/mcp; from there it finds Cru’s authorization server, registers itself, and sends the customer to Cru’s consent page. The OAuth flow in full →

The connection then lasts while the assistant keeps refreshing its token — 30 days from its last use. If the customer’s account goes on hold, it stops.

Errors

Refused before the protocol401 to sign in, 403 with access_denied for an account on hold or a market the customer did not allow, 403 for plain HTTP or a browser Origin Cru does not allow, 405 for anything but POST, and 413 for an oversized body.
Protocol errors JSON-RPC errors: -32700 parse error, -32600 invalid request (and a tool the connection was not granted, with a 403 naming the scope), -32601 unknown method, -32602 bad parameters or unknown tool, -32603 an internal error, -32022 a protocol version Cru does not support, listing the ones it does, and, on version 2026-07-28, -32020 when a header is missing or disagrees with the body: MCP-Protocol-Version, Mcp-Method, and Mcp-Name for a tool call.
Tool errors A bad argument, a refused trade, a price that moved: a normal result with isError: true and the reason as text, so the assistant can read it and try again differently.
Switched on per environment

The MCP server is enabled with connected apps, environment by environment. Where it is not yet, /api/mcp answers 404.

Cru World Wine Developers · Partner Trading API v1
Based on the API as built on 15 October 2026.

API credentials

Enter the client key and secret issued by Cru. They are kept for this browser tab’s session — a reload keeps them, closing the tab or clearing them ends them.

Credentials are never included in copied examples, and are redacted from anything the console prints back.

Request API access

Tell us who you are and what you want to build. Cru issues a client key and secret for your organisation, scoped to what you need.

Markets you trade in (choose one or more)

We use what you send here to reply about API access, and for nothing else. Cloudflare Turnstile checks the form for bots (privacy policy).