tickets

Agenda and ticketing for Toots Jazz Club, Brussels: browse concerts, check seats, reserve tickets.

사용해야 할까요

품질 및 안전성

A
설명 품질
95%
스키마 완전성
93%
이름 품질
91%
오염 위험
60%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringpay_with_shared_payment_token에서
  • INFOTool description contains placeholder or incomplete textredeem_pass에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,339토큰 (도구 정의)
~2.2 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.61%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "tickets": {
      "url": "https://toots.brussels/mcp"
    }
  }
}

원격 엔드포인트

https://toots.brussels/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (13)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_events(locale)

All upcoming concerts with date, line-up, genres and a price/availability summary. Amounts are euro cents.

입력 스키마

{
  "type": "object",
  "properties": {
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "result"
  ]
}
🟢get_event(event_id, locale)

Full details of one concert: bio, line-up, other dates of the same run, prices and availability.

입력 스키마

{
  "type": "object",
  "properties": {
    "event_id": {
      "type": "string",
      "description": "The event_id from list_events."
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "event_id"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟢get_availability(event_id, locale)

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",
  "properties": {
    "event_id": {
      "type": "string",
      "description": "The event_id from list_events."
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "event_id"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "sessions": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "as_of": {
          "type": "string"
        },
        "max_age_seconds": {
          "type": "integer"
        }
      },
      "required": [
        "sessions"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟢get_venue_info(locale)

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": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  }
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
⚪hold_tickets(event_id, items, idempotency_key, locale)

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",
  "properties": {
    "event_id": {
      "type": "string",
      "description": "The event_id from list_events."
    },
    "items": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "properties": {
          "stock_id": {
            "type": "string",
            "description": "From get_availability."
          },
          "category_id": {
            "type": "string",
            "description": "From get_availability."
          },
          "price_id": {
            "type": "string",
            "description": "From get_availability."
          },
          "quantity": {
            "type": "integer",
            "minimum": 1
          }
        },
        "required": [
          "stock_id",
          "category_id",
          "price_id",
          "quantity"
        ]
      }
    },
    "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."
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "event_id",
    "items"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟡set_contact(booking_uuid, firstname, lastname, email, terms_accepted, ...)

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",
  "properties": {
    "booking_uuid": {
      "type": "string"
    },
    "firstname": {
      "type": "string"
    },
    "lastname": {
      "type": "string"
    },
    "email": {
      "type": "string",
      "description": "The buyer's email; the tickets are sent there."
    },
    "terms_accepted": {
      "type": "boolean",
      "description": "Must be true, and only after the buyer explicitly accepted the terms of sale."
    },
    "zip": {
      "type": "string"
    },
    "country": {
      "type": "string",
      "description": "Two-letter ISO code, e.g. BE."
    },
    "promo_code": {
      "type": "string"
    },
    "newsletter_opt_in": {
      "type": "boolean",
      "description": "Only true if the buyer explicitly asked to subscribe."
    }
  },
  "required": [
    "booking_uuid",
    "firstname",
    "lastname",
    "email",
    "terms_accepted"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟡redeem_pass(booking_uuid, code, locale)

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",
  "properties": {
    "booking_uuid": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "description": "The Toots Pass code, exactly as the buyer gave it."
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "booking_uuid",
    "code"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟡redeem_gift_card(booking_uuid, code, locale)

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",
  "properties": {
    "booking_uuid": {
      "type": "string"
    },
    "code": {
      "type": "string",
      "description": "The gift card code, exactly as the buyer gave it."
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "booking_uuid",
    "code"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟡pay_with_shared_payment_token(booking_uuid, shared_payment_token, locale)

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",
  "properties": {
    "booking_uuid": {
      "type": "string"
    },
    "shared_payment_token": {
      "type": "string",
      "description": "The spt_… token granted by the buyer's Link wallet."
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "booking_uuid",
    "shared_payment_token"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🔴release_booking(booking_uuid, locale)

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",
  "properties": {
    "booking_uuid": {
      "type": "string"
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "booking_uuid"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟢wait_for_payment(booking_uuid, timeout_seconds, locale)

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",
  "properties": {
    "booking_uuid": {
      "type": "string"
    },
    "timeout_seconds": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 20
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "booking_uuid"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟢get_booking_status(booking_uuid, locale)

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",
  "properties": {
    "booking_uuid": {
      "type": "string"
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "booking_uuid"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "booking_uuid": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "awaiting_contact",
            "awaiting_payment",
            "paid",
            "expired"
          ]
        },
        "payment_url": {
          "type": [
            "string",
            "null"
          ]
        },
        "ticket_url": {
          "type": "string"
        },
        "ticket_pdf_url": {
          "type": "string"
        },
        "total_cents": {
          "type": "integer"
        },
        "amount_to_pay_cents": {
          "type": "integer"
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "expires_in_seconds": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "booking_uuid",
        "status"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}
🟢recover_tickets(email, locale)

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",
  "properties": {
    "email": {
      "type": "string",
      "description": "The email address the buyer ordered with."
    },
    "locale": {
      "type": "string",
      "enum": [
        "fr",
        "en",
        "nl"
      ],
      "description": "Language for titles, labels and the returned URLs. Defaults to fr."
    }
  },
  "required": [
    "email"
  ]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "message": {
          "type": "string"
        }
      },
      "required": [
        "message"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ]
}

권장 프롬프트

retrieve_data
Get details about [item] from tickets
예상 도구: get_event
fetch_info
Fetch [information type] using tickets
예상 도구: get_event
list_items
List all [items] available in tickets
예상 도구: list_events
browse_collection
Show me the [collection] from tickets
예상 도구: list_events
explore_workflow
List available [items], then get details for each one using tickets
예상 도구: list_eventsget_event

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 13개
검증됨버전이 기록되지 않음도구 13개