Servidor MCP

tickets

brussels.toots/tickets
Comercio y retail Medios y contenido Público y accesible MCP 2026-07-28

Qué hace este MCP

Lists Toots Jazz Club concerts, checks live seat availability, holds tickets, and supports payment, booking status, ticket recovery, and release.

get_availability
Live seat availability
Live ticket availability for a concert, per session: the stock_id, category_id and price_id values that hold_tickets needs, with prices in euro cents and the maximum quantity per line.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['event_id'], 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'event_id': {'type': 'string', 'description': 'The event_id from list_events.'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['sessions'], 'properties': {'as_of': {'type': 'string'}, 'sessions': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'max_age_seconds': {'type': 'integer'}}, 'additionalProperties': True}}}
get_booking_status
Booking status
Current status of a booking: awaiting_contact, awaiting_payment (with payment_url and amount left), paid or expired. A paid booking carries ticket_url — the one link to share with the buyer, which adapts to their device (wallet on a phone, PDF and choices elsewhere) — plus the explicit ticket_pdf_url and, when configured, apple_wallet_url / google_wallet_url.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['booking_uuid'], 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'booking_uuid': {'type': 'string'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
get_event
Concert details
Full details of one concert: bio, line-up, other dates of the same run, prices and availability.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['event_id'], 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'event_id': {'type': 'string', 'description': 'The event_id from list_events.'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}}
get_venue_info
Venue information
Address, contact details and the venue's FAQ (house rules, practical questions). Use this to answer buyer questions about the club instead of guessing.
Solo lectura
Esquema de entrada
{'type': 'object', 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'additionalProperties': True}}}
hold_tickets
Reserve tickets
Reserves tickets and returns a booking_uuid. The hold expires after 15 minutes if the order is not paid, releasing the seats. Only call this once the buyer has chosen; do not hold speculatively.
Esquema de entrada
{'type': 'object', 'required': ['event_id', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['stock_id', 'category_id', 'price_id', 'quantity'], 'properties': {'price_id': {'type': 'string', 'description': 'From get_availability.'}, 'quantity': {'type': 'integer', 'minimum': 1}, 'stock_id': {'type': 'string', 'description': 'From get_availability.'}, 'category_id': {'type': 'string', 'description': 'From get_availability.'}}}, 'minItems': 1}, 'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'event_id': {'type': 'string', 'description': 'The event_id from list_events.'}, 'idempotency_key': {'type': 'string', 'description': 'Optional deduplication key of your choosing. Retrying a timed-out hold with the same key returns the original booking instead of reserving twice.'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
list_events
List upcoming concerts
All upcoming concerts with date, line-up, genres and a price/availability summary. Amounts are euro cents.
Solo lectura
Esquema de entrada
{'type': 'object', 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}}
pay_with_shared_payment_token
Pay with a Link Shared Payment Token
Pays the remaining balance of a booking (after set_contact, and after any pass or gift card) with a Shared Payment Token from the buyer's Link agent wallet. Request the token for exactly amount_to_pay_cents in EUR, scoped to the Stripe network profile profile_61VNUTvZyhaQmxLgqA6VNUTv7A9CUusxmQZ0xC5doSoy; the buyer approves that spend in Link. Charges the buyer, so only call it once they confirmed the purchase. On success the booking is paid and carries ticket_url; if the response says otherwise (payment_status, next_step) or errors, give the payment_url to the human buyer instead — the booking stays open until its hold expires.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['booking_uuid', 'shared_payment_token'], 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'booking_uuid': {'type': 'string'}, 'shared_payment_token': {'type': 'string', 'description': "The spt_… token granted by the buyer's Link wallet."}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
recover_tickets
Re-send tickets by email
For a buyer who lost their tickets: sends the ticket links of their past paid orders to their email address. The links go to the inbox only — the response never contains them — so the inbox is the proof of ownership. Tell the buyer to check their email (and spam folder).
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': 'The email address the buyer ordered with.'}, 'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['message'], 'properties': {'message': {'type': 'string'}}, 'additionalProperties': True}}}
redeem_gift_card
Pay with a gift card
Applies a Toots gift card code (given to you by the buyer) to a held booking, after set_contact. Uses as much of the card's balance as the order needs. Fully covered orders complete immediately (status paid); otherwise the response carries the payment_url for the balance.
Esquema de entrada
{'type': 'object', 'required': ['booking_uuid', 'code'], 'properties': {'code': {'type': 'string', 'description': 'The gift card code, exactly as the buyer gave it.'}, 'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'booking_uuid': {'type': 'string'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
redeem_pass
Pay with a Toots Pass
Applies a Toots Pass code (given to you by the buyer; format XXX-XXXXXX-XXX) to a held booking, after set_contact. Covers as many tickets as the pass has concerts left. If the order is fully covered the booking completes immediately (status paid); otherwise the response carries the payment_url for the balance. The code is a venue credential, not a payment instrument.
Esquema de entrada
{'type': 'object', 'required': ['booking_uuid', 'code'], 'properties': {'code': {'type': 'string', 'description': 'The Toots Pass code, exactly as the buyer gave it.'}, 'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'booking_uuid': {'type': 'string'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
release_booking
Release a hold
Gives an unpaid hold's seats back immediately, instead of letting them sit reserved until the 15-minute expiry. Call this when the buyer changes their mind. Paid bookings cannot be released.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['booking_uuid'], 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'booking_uuid': {'type': 'string'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
set_contact
Attach the buyer
Attaches the buyer to a held booking and returns the payment_url. Give that URL to the human buyer: payment (card or Bancontact) happens in their browser, never through this API. The tickets will be emailed to the address given here.
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['booking_uuid', 'firstname', 'lastname', 'email', 'terms_accepted'], 'properties': {'zip': {'type': 'string'}, 'email': {'type': 'string', 'description': "The buyer's email; the tickets are sent there."}, 'country': {'type': 'string', 'description': 'Two-letter ISO code, e.g. BE.'}, 'lastname': {'type': 'string'}, 'firstname': {'type': 'string'}, 'promo_code': {'type': 'string'}, 'booking_uuid': {'type': 'string'}, 'terms_accepted': {'type': 'boolean', 'description': 'Must be true, and only after the buyer explicitly accepted the terms of sale.'}, 'newsletter_opt_in': {'type': 'boolean', 'description': 'Only true if the buyer explicitly asked to subscribe.'}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
wait_for_payment
Wait for the payment
Like get_booking_status, but holds the request open (up to 25 seconds) and returns as soon as the booking is paid. Call it after handing the buyer the payment_url instead of polling in a loop; repeat while status is still awaiting_payment and the hold has time left.
Solo lectura
Esquema de entrada
{'type': 'object', 'required': ['booking_uuid'], 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}, 'booking_uuid': {'type': 'string'}, 'timeout_seconds': {'type': 'integer', 'default': 20, 'maximum': 25, 'minimum': 1}}}
Esquema de salida
{'type': 'object', 'required': ['result'], 'properties': {'result': {'type': 'object', 'required': ['booking_uuid', 'status'], 'properties': {'status': {'enum': ['awaiting_contact', 'awaiting_payment', 'paid', 'expired'], 'type': 'string'}, 'expires_at': {'type': ['string', 'null']}, 'ticket_url': {'type': 'string'}, 'payment_url': {'type': ['string', 'null']}, 'total_cents': {'type': 'integer'}, 'booking_uuid': {'type': 'string'}, 'ticket_pdf_url': {'type': 'string'}, 'expires_in_seconds': {'type': ['integer', 'null']}, 'amount_to_pay_cents': {'type': 'integer'}}, 'additionalProperties': True}}}
Añadido
pay_with_shared_payment_token
23 de September de 2026 a las 02:52
Añadido
recover_tickets
17 de September de 2026 a las 07:58
Añadido
get_booking_status
17 de September de 2026 a las 07:58
Añadido
wait_for_payment
17 de September de 2026 a las 07:58
Añadido
release_booking
17 de September de 2026 a las 07:58
Añadido
redeem_gift_card
17 de September de 2026 a las 07:58
Añadido
redeem_pass
17 de September de 2026 a las 07:58
Añadido
set_contact
17 de September de 2026 a las 07:58
Añadido
hold_tickets
17 de September de 2026 a las 07:58
Añadido
get_venue_info
17 de September de 2026 a las 07:58
Añadido
get_availability
17 de September de 2026 a las 07:58
Añadido
get_event
17 de September de 2026 a las 07:58
Añadido
list_events
17 de September de 2026 a las 07:58