MCP Server

agent-bev

ai.agent-bev/bev-door
Business & Operations Commerce & Retail Public & reachable MCP 2026-07-28

What this MCP does

Searches and compares European beer, wine, spirits, cider, and ready-to-drink products and provides producer and trade-order routes.

accept_offer
Accept offer
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.
Open world Idempotent
Input schema
{'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_drinks
Compare drinks
Compare two to ten products side by side, field by field, each value with its source page.
Read only Idempotent
Input schema
{'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"]'}}}
create_order_intent
Create order intent
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.
Open world
Input schema
{'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_producer
Find producer
Find a maker and its products across every open node, with the maker's name as each source wrote it.
Read only Idempotent
Input schema
{'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"}}}
get_offers
Get offers
Read the makers' offers on an order intent, and the order once placed. By the buyer's email given on create_order_intent.
Read only Open world Idempotent
Input schema
{'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_order_route
Get order route
Get the maker's or distributor's trade channel to order a product, as the record states it. Never a consumer channel.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['record_id'], 'properties': {'record_id': {'type': 'string', 'description': 'the record id, <node>:<6 digits>, e.g. es-bev:000123'}}}
get_record
Get record
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).
Read only Idempotent
Input schema
{'type': 'object', 'required': ['record_id'], 'properties': {'record_id': {'type': 'string', 'description': 'the record id, <node>:<6 digits>, e.g. es-bev:000123'}}}
list_nodes
List nodes
List the countries on the record: each node's door, languages, state and, for an open node, its counts.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}}
search_drinks
Search drinks
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.
Read only Idempotent
Input schema
{'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)'}}}
Changed
accept_offer
Oct. 2, 2026, 2:40 a.m.
Changed
get_offers
Oct. 2, 2026, 2:40 a.m.
Changed
create_order_intent
Oct. 2, 2026, 2:40 a.m.
Changed
get_order_route
Oct. 2, 2026, 2:40 a.m.
Changed
compare_drinks
Oct. 2, 2026, 2:40 a.m.
Changed
list_nodes
Oct. 2, 2026, 2:40 a.m.
Changed
find_producer
Oct. 2, 2026, 2:40 a.m.
Changed
get_record
Oct. 2, 2026, 2:40 a.m.
Changed
search_drinks
Oct. 2, 2026, 2:40 a.m.
Added
accept_offer
Sept. 30, 2026, 2:40 a.m.
Added
get_offers
Sept. 30, 2026, 2:40 a.m.
Added
create_order_intent
Sept. 30, 2026, 2:40 a.m.
Changed
get_order_route
Sept. 30, 2026, 2:40 a.m.
Changed
compare_drinks
Sept. 30, 2026, 2:40 a.m.
Changed
list_nodes
Sept. 30, 2026, 2:40 a.m.
Changed
find_producer
Sept. 30, 2026, 2:40 a.m.
Changed
get_record
Sept. 30, 2026, 2:40 a.m.
Changed
search_drinks
Sept. 30, 2026, 2:40 a.m.
Added
get_order_route
Sept. 28, 2026, 2:40 a.m.
Added
compare_drinks
Sept. 28, 2026, 2:40 a.m.
Added
list_nodes
Sept. 28, 2026, 2:40 a.m.
Added
find_producer
Sept. 28, 2026, 2:40 a.m.
Added
get_record
Sept. 28, 2026, 2:40 a.m.
Added
search_drinks
Sept. 28, 2026, 2:40 a.m.