agent-bev
The world's largest agentic B2B hub for beer, wine and spirits. Powered by CUVEE. Trade only.
Should I use this
Quality & Safety
Findings (1)
- LOWin compare_drinks
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"bev-door": {
"command": "npx",
"args": [
"@agent-bev/mcp-server"
]
}
}
}Runnable packages
0.2.2stdioRemote endpoints
https://mcp.bev-buyer.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢search_drinks(query, node, category, limit)
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.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "name, style, origin or category"
},
"node": {
"type": "string",
"description": "optional node id, e.g. es-bev"
},
"category": {
"type": "string",
"enum": [
"beer",
"wine",
"spirits",
"cider_perry",
"rtd"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"query"
]
}🟢get_record(record_id)
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).
Input Schema
{
"type": "object",
"properties": {
"record_id": {
"type": "string"
}
},
"required": [
"record_id"
]
}🟢find_producer(producer, node)
Find a maker and its products across every open node, with the maker's name as each source wrote it.
Input Schema
{
"type": "object",
"properties": {
"producer": {
"type": "string"
},
"node": {
"type": "string"
}
},
"required": [
"producer"
]
}🟢list_nodes
List the countries on the record: each node's door, languages, state and, for an open node, its counts.
Input Schema
{
"type": "object",
"properties": {}
}🟢compare_drinks(record_ids)
Compare two to ten products side by side, field by field, each value with its source page.
Input Schema
{
"type": "object",
"properties": {
"record_ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"maxItems": 10
}
},
"required": [
"record_ids"
]
}🟢get_order_route(record_id)
Get the maker's or distributor's trade channel to order a product, as the record states it. Never a consumer channel.
Input Schema
{
"type": "object",
"properties": {
"record_id": {
"type": "string"
}
},
"required": [
"record_id"
]
}🟡create_order_intent(record_ids, quantity, market, needed_by, note, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"record_ids": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 10
},
"quantity": {
"type": "string",
"description": "quantity with its unit, e.g. 600 bottles (75 cl)"
},
"market": {
"type": "string",
"description": "delivery market (country)"
},
"needed_by": {
"type": "string",
"description": "YYYY-MM-DD"
},
"note": {
"type": "string"
},
"buyer": {
"type": "object",
"properties": {
"organisation": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"organisation",
"email"
]
}
},
"required": [
"record_ids",
"quantity",
"market",
"buyer"
]
}🟢get_offers(intent_id, email)
Read the makers' offers on an order intent, and the order once placed. By the buyer's email given on create_order_intent.
Input Schema
{
"type": "object",
"properties": {
"intent_id": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"intent_id",
"email"
]
}⚪accept_offer(intent_id, offer_id, email)
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.
Input Schema
{
"type": "object",
"properties": {
"intent_id": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"intent_id",
"offer_id",
"email"
]
}Community
Evidence