The world's largest agentic B2B hub for beer, wine and spirits. Powered by CUVEE. Trade only.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Accept one offer and place the order through the Bourse. Accepting is one x402 paid call (HTTP 402 with the payment offer until paid): it settles and signs the order. The goods are paid between the two companies on the offer's own terms.
the buyer's email given on create_order_intent
the offer to accept, as get_offers lists it
the order intent id, oi-<16 hex>
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Accept one offer and place the order through the Bourse. Accepting is one x402 paid call (HTTP 402 with the payment offer until paid): it settles and signs the order. The goods are paid between the two companies on the offer's own terms.
| Argument | Type | Description |
|---|---|---|
| email* | string | the buyer's email given on create_order_intent |
| offer_id* | string | the offer to accept, as get_offers lists it |
| intent_id* | string | the order intent id, oi-<16 hex> |
{
"type": "object",
"required": [
"intent_id",
"offer_id",
"email"
],
"properties": {
"email": {
"type": "string",
"description": "the buyer's email given on create_order_intent"
},
"offer_id": {
"type": "string",
"description": "the offer to accept, as get_offers lists it"
},
"intent_id": {
"type": "string",
"description": "the order intent id, oi-<16 hex>"
}
}
}Compare two to ten products side by side, field by field, each value with its source page.
| Argument | Type | Description |
|---|---|---|
| record_ids* | array | two to ten record ids, e.g. ["es-bev:000123", "fr-bev:000456"] |
{
"type": "object",
"required": [
"record_ids"
],
"properties": {
"record_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 2,
"description": "two to ten record ids, e.g. [\"es-bev:000123\", \"fr-bev:000456\"]"
}
}
}Place an order intent for one to ten records (quantity, delivery market, optional date and note, the buyer's organisation and email). The Bourse routes it to each maker; verified makers answer with offers, and a maker's own Brand Agent address comes back with the routing. The email stays private: it is the buyer's key to read offers and accept one.
| Argument | Type | Description |
|---|---|---|
| note | string | optional note to the makers |
| buyer* | object | the buying organisation and its email (kept private; the key to read offers and accept one) |
| market* | string | delivery market (country) |
| quantity* | string | quantity with its unit, e.g. 600 bottles (75 cl) |
| needed_by | string | YYYY-MM-DD |
| record_ids* | array | one to ten record ids to order, e.g. ["es-bev:000123"] |
{
"type": "object",
"required": [
"record_ids",
"quantity",
"market",
"buyer"
],
"properties": {
"note": {
"type": "string",
"description": "optional note to the makers"
},
"buyer": {
"type": "object",
"required": [
"organisation",
"email"
],
"properties": {
"email": {
"type": "string",
"description": "the buyer's email"
},
"organisation": {
"type": "string",
"description": "the buying organisation's name"
}
},
"description": "the buying organisation and its email (kept private; the key to read offers and accept one)"
},
"market": {
"type": "string",
"description": "delivery market (country)"
},
"quantity": {
"type": "string",
"description": "quantity with its unit, e.g. 600 bottles (75 cl)"
},
"needed_by": {
"type": "string",
"description": "YYYY-MM-DD"
},
"record_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"description": "one to ten record ids to order, e.g. [\"es-bev:000123\"]"
}
}
}Find a maker and its products across every open node, with the maker's name as each source wrote it.
| Argument | Type | Description |
|---|---|---|
| node | string | optional node id, e.g. es-bev |
| producer* | string | the maker's name, or part of it |
{
"type": "object",
"required": [
"producer"
],
"properties": {
"node": {
"type": "string",
"description": "optional node id, e.g. es-bev"
},
"producer": {
"type": "string",
"description": "the maker's name, or part of it"
}
}
}Read the makers' offers on an order intent, and the order once placed. By the buyer's email given on create_order_intent.
| Argument | Type | Description |
|---|---|---|
| email* | string | the buyer's email given on create_order_intent |
| intent_id* | string | the order intent id from create_order_intent, oi-<16 hex> |
{
"type": "object",
"required": [
"intent_id",
"email"
],
"properties": {
"email": {
"type": "string",
"description": "the buyer's email given on create_order_intent"
},
"intent_id": {
"type": "string",
"description": "the order intent id from create_order_intent, oi-<16 hex>"
}
}
}Get the maker's or distributor's trade channel to order a product, as the record states it. Never a consumer channel.
| Argument | Type | Description |
|---|---|---|
| record_id* | string | the record id, <node>:<6 digits>, e.g. es-bev:000123 |
{
"type": "object",
"required": [
"record_id"
],
"properties": {
"record_id": {
"type": "string",
"description": "the record id, <node>:<6 digits>, e.g. es-bev:000123"
}
}
}Read one product in full by record_id: every field with its source page, reader and state; its CUVEE; its claim status; the signed record (JWS).
| Argument | Type | Description |
|---|---|---|
| record_id* | string | the record id, <node>:<6 digits>, e.g. es-bev:000123 |
{
"type": "object",
"required": [
"record_id"
],
"properties": {
"record_id": {
"type": "string",
"description": "the record id, <node>:<6 digits>, e.g. es-bev:000123"
}
}
}List the countries on the record: each node's door, languages, state and, for an open node, its counts.
No arguments.
{
"type": "object",
"properties": {}
}Find beers, wines, spirits, ciders and ready-to-drink drinks by name, style, origin or category across every open country node. Returns record ids with each record's CUVEE.
| Argument | Type | Description |
|---|---|---|
| node | string | optional node id, e.g. es-bev |
| limit | integer | optional number of results, 1 to 100 |
| query* | string | name, style, origin or category |
| category | string | optional category to keep: beer, wine, spirits, cider_perry or rtd (ready-to-drink) |
{
"type": "object",
"required": [
"query"
],
"properties": {
"node": {
"type": "string",
"description": "optional node id, e.g. es-bev"
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "optional number of results, 1 to 100"
},
"query": {
"type": "string",
"description": "name, style, origin or category"
},
"category": {
"enum": [
"beer",
"wine",
"spirits",
"cider_perry",
"rtd"
],
"type": "string",
"description": "optional category to keep: beer, wine, spirits, cider_perry or rtd (ready-to-drink)"
}
}
}