Agenda and ticketing for Toots Jazz Club, Brussels: browse concerts, check seats, reserve tickets.
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.
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.
The event_id from list_events.
Language for titles, labels and the returned URLs. Defaults to fr.
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.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| event_id* | string | The event_id from list_events. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| booking_uuid* | string |
{
"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"
}
}
}Full details of one concert: bio, line-up, other dates of the same run, prices and availability.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| event_id* | string | The event_id from list_events. |
{
"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."
}
}
}Address, contact details and the venue's FAQ (house rules, practical questions). Use this to answer buyer questions about the club instead of guessing.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
{
"type": "object",
"properties": {
"locale": {
"enum": [
"fr",
"en",
"nl"
],
"type": "string",
"description": "Language for titles, labels and the returned URLs. Defaults to fr."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| items* | array | |
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| event_id* | string | The event_id from list_events. |
| idempotency_key | string | 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": [
"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."
}
}
}All upcoming concerts with date, line-up, genres and a price/availability summary. Amounts are euro cents.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
{
"type": "object",
"properties": {
"locale": {
"enum": [
"fr",
"en",
"nl"
],
"type": "string",
"description": "Language for titles, labels and the returned URLs. Defaults to fr."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| booking_uuid* | string | |
| shared_payment_token* | string | The spt_… token granted by the buyer's Link wallet. |
{
"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."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| email* | string | The email address the buyer ordered with. |
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| code* | string | The gift card code, exactly as the buyer gave it. |
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| booking_uuid* | string |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| code* | string | The Toots Pass code, exactly as the buyer gave it. |
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| booking_uuid* | string |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| booking_uuid* | string |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| email* | string | The buyer's email; the tickets are sent there. |
| country | string | Two-letter ISO code, e.g. BE. |
| lastname* | string | |
| firstname* | string | |
| promo_code | string | |
| booking_uuid* | string | |
| terms_accepted* | boolean | Must be true, and only after the buyer explicitly accepted the terms of sale. |
| newsletter_opt_in | boolean | Only true if the buyer explicitly asked to subscribe. |
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.
| Argument | Type | Description |
|---|---|---|
| locale | string | Language for titles, labels and the returned URLs. Defaults to fr. |
| booking_uuid* | string | |
| timeout_seconds | integer |
{
"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": [
"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."
}
}
}