MCPサーバー

tickets

brussels.toots/tickets

この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.
読み取り専用
入力スキーマ
{'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.'}}}
出力スキーマ
{'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.
読み取り専用
入力スキーマ
{'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'}}}
出力スキーマ
{'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.
読み取り専用
入力スキーマ
{'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.'}}}
出力スキーマ
{'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.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}}}
出力スキーマ
{'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.
入力スキーマ
{'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.'}}}
出力スキーマ
{'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.
読み取り専用
入力スキーマ
{'type': 'object', 'properties': {'locale': {'enum': ['fr', 'en', 'nl'], 'type': 'string', 'description': 'Language for titles, labels and the returned URLs. Defaults to fr.'}}}
出力スキーマ
{'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.
外部アクセスあり 冪等
入力スキーマ
{'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."}}}
出力スキーマ
{'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).
冪等
入力スキーマ
{'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.'}}}
出力スキーマ
{'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.
入力スキーマ
{'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'}}}
出力スキーマ
{'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.
入力スキーマ
{'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'}}}
出力スキーマ
{'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.
破壊的操作あり 冪等
入力スキーマ
{'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'}}}
出力スキーマ
{'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.
冪等
入力スキーマ
{'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.'}}}
出力スキーマ
{'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.
読み取り専用
入力スキーマ
{'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}}}
出力スキーマ
{'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}}}
追加
pay_with_shared_payment_token
2026年9月23日2:52
追加
recover_tickets
2026年9月17日7:58
追加
get_booking_status
2026年9月17日7:58
追加
wait_for_payment
2026年9月17日7:58
追加
release_booking
2026年9月17日7:58
追加
redeem_gift_card
2026年9月17日7:58
追加
redeem_pass
2026年9月17日7:58
追加
set_contact
2026年9月17日7:58
追加
hold_tickets
2026年9月17日7:58
追加
get_venue_info
2026年9月17日7:58
追加
get_availability
2026年9月17日7:58
追加
get_event
2026年9月17日7:58
追加
list_events
2026年9月17日7:58