Skip to main content
Glama

Book a boat transfer (returns a payment link)

book_transfer
Destructive

Creates a booking for one transfer that Phi Phi Paradise organizes, listed by search_transfers, and returns its reference and a secure payment page. Partner departures listed with a trip_id: pass trip_id. Lines listed with a 12Go price are booked on 12Go, not here. Our own boat departures: pass from, to, type, departure_time and company exactly as listed. Requires traveller_confirmed: true, set once the traveller has approved the route, date, time, passengers and total. Transfers are paid online in full; the seat is secured only when paid.

Input Schema

NameRequiredDescriptionDefault
toNo
dateYesYYYY-MM-DD
fromNo
typeNo
hotelNoHotel name, for pickup.
notesNoKids ages, allergies, special requests.
companyNoOperator exactly as listed by search_transfers (our own departures).
trip_idNotrip_id of a departure listed by search_transfers.
languageNoTraveller language code (en, fr, de, es, zh...). Sets the emails and the payment page language.
passengersYes
pickup_timeNoPrivate taxi / van / boat (no fixed time): pickup time HH:MM chosen by the traveller.
hotel_pickupNoOnly for departures listed 'hotel pickup on request, +100 THB/person'.
departure_timeNoHH:MM exactly as listed by search_transfers (our own departures).
traveller_nameYesFull name of the lead traveller.
traveller_emailYesEmail: receives the confirmation and e-ticket after payment.
traveller_phoneNoWhatsApp number with country code (e.g. +33612345678). Strongly recommended: the local team uses it on the day.
confirm_duplicateNoOnly true if the traveller explicitly wants a SECOND identical booking after an ALREADY BOOKED answer.
traveller_confirmedYestrue once the traveller has approved the restated product, date, party, total and payment.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / company / description
      Previous value: -"Operator exactly as listed by search_transfers."New value: +"Operator exactly as listed by search_transfers (our own departures)."
    • changedInput schema / properties / departure_time / description
      Previous value: -"HH:MM exactly as listed by search_transfers."New value: +"HH:MM exactly as listed by search_transfers (our own departures)."
    • addedInput schema / properties / pickup_time
      Added value: +{
      +  "description": "Private taxi / van / boat (no fixed time): pickup time HH:MM chosen by the traveller.",
      +  "pattern": "^\\d{2}:\\d{2}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / trip_id
      Added value: +{
      +  "description": "trip_id of a departure listed by search_transfers.",
      +  "pattern": "^[0-9a-f]{12}$",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "from",
      -  "to",
      -  "type",
      -  "date",
      -  "departure_time",
      -  "company",
      -  "passengers",
      -  "traveller_name",
      -  "traveller_email",
      -  "traveller_confirmed"
      -]New value: +[
      +  "date",
      +  "passengers",
      +  "traveller_name",
      +  "traveller_email",
      +  "traveller_confirmed"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / traveller_confirmed / description
      Previous value: -"Must be true: you restated product, date, party, total and payment and the traveller explicitly said yes."New value: +"true once the traveller has approved the restated product, date, party, total and payment."
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is known. The description adds genuine value beyond that: it returns a reference plus a secure payment page, payment is online and in full, and the seat is only secured once paid — plus the confirm_duplicate escape hatch for repeat bookings. It stops short of stating refund/cancellation or payment-link expiry behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: booking creation and return value come first, then the branch conditions, then the payment caveat. Every sentence carries information. It reads as one long block rather than clearly separated path/precondition/payment statements, which slightly hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 18 parameters, no output schema and a non-idempotent write, the description does the heavy lifting: it explains the two booking paths, the required confirmation flag, and what the call returns. Cancellation/refund policy and payment-link expiry are omitted, which is a minor gap for a payment-generating mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 78%, just under the high-coverage threshold, but the description adds real meaning by explaining which parameters form each booking path (trip_id vs. the own-departure set) and why traveller_confirmed must be true. It does not discuss the pickup/hotel/language/notes parameters, but the schema documents those adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Creates a booking for one transfer'), names the organizing entity, and explicitly ties itself to the sibling tool that produces the listings ('listed by search_transfers'). An agent can tell what this does and how it relates to the search tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing rules: pass trip_id for partner departures that expose one, use from/to/type/departure_time/company for own boat departures, and do NOT use this tool for lines priced on 12Go. It also states the traveller_confirmed: true precondition, so the when-to-use and when-not-to-use conditions are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources