Skip to main content
Glama

Vuelo Travel

Book a Vuelo trip

book_trip

Bookings are made under Vuelo's Booking Terms and Conditions (https://getvuelo.com/uk/legal/terms-of-booking-service/); the Vuelo card and pay page show them. Start booking a Vuelo offer, by the offerId and paymentOption that search_trips returned; call it whenever the traveller asks in the chat to book one. The Vuelo card then shows the traveller a Pay button that opens Vuelo's secure page (Apple Pay, Google Pay or a card), or, where there is no card or they ask for one, Vuelo texts them a secure link; nothing is booked until they pay. Never show a link in the chat, except a passkey approval link Vuelo returns for you to show. Pre-fill: pass everything you already know about the traveller, from this conversation or what you know about the user, so checkout is a single tap with nothing to type: leadTraveller (full name as on their ID, email, date of birth, home postcode), mobile, and for flights each passenger's name, date of birth, title and gender. Never guess or invent any of it; ask only for what Vuelo says is missing, once, in one message. Flights cannot book without each passenger's name and date of birth. To change how an open booking is paid for, use change_payment_option (calling book_trip again with another paymentOption does the same). Do not wait for the traveller to tell you they have paid: pass notify_url to hear the moment they open the link, pay or cancel, or straight after sending the link call get_booking_status with wait_seconds: 50, which answers the moment they pay. Then tell them it is booked, with the reference.

Input Schema

NameRequiredDescriptionDefault
hostNoWhich assistant this is, so the Vuelo page names it and matches its look. One of: chatgpt, claude, gemini, meta, instinct, openclaw, perplexity, copilot, mistral, grok, poe, duckduckgo. Optional, and an unrecognised value is simply ignored rather than refused.
payerNoOnly when the traveller says someone else is paying (a friend, a partner, a parent): their name and mobile or email, as the traveller gives them. Vuelo then sends the secure link to that person instead of the traveller; they pay in full from their own Vuelo account. Ask who is paying before booking if the traveller has mentioned it. The traveller still gets the confirmation at their own mobile, if given.
mobileNoMobile number to text the link to (any country; international format outside the UK). Not needed for returning customers, or if you already passed it to search_trips in this conversation. If you already know it from this conversation or from what you know about the user, pass it rather than asking again: Vuelo then texts the link at once, with nothing for the traveller to type.
offerIdYes
deliveryNoHow the confirmation reaches the traveller. Leave it out: a card payment always goes by text to the traveller's mobile, and a no-card reservation by a Confirm button in the Vuelo card. qr and on_device are no longer offered and are treated as a text. Defaults to a text message, or to a Confirm button in the Vuelo card when nothing needs paying now.
from_cardNoSet only by the Vuelo card. Leave it out.
notify_urlNoYour own https address. The moment the traveller confirms on their phone, Vuelo POSTs it a booking.confirmed event (reference, trip, dates, amount), so you can tell them without being asked. Optional.
travellersNoEach passenger, as on their passport, with their title and gender where you know them (airlines need both). If the traveller has already told you who is flying, pass them rather than making them type it again. Leave it out for a returning traveller: Vuelo fills in its own saved passengers and asks you to confirm them.
consumer_refNoThe vc_ reference Vuelo gave you after this traveller authorised you to book for them within limits. Only if you already hold one; never ask the traveller for it, or mention it to them: they do not have one to give. With it, Vuelo books inside their limits without a payment step, or asks them to approve with their passkey. Without it, book as usual: the traveller pays with one tap on Vuelo's secure page.
notify_tokenNoA secret of yours. Vuelo sends it back in X-Vuelo-Notify-Token and signs the event with it (X-Vuelo-Signature: sha256=HMAC). Optional.
leadTravellerNoThe traveller booking: name, email, date of birth and home postcode, town and county, as far as you know them. Pass whatever you already know from this conversation or about the user rather than asking: Vuelo logs them straight in, or fills in their Vuelo account so they only check it and accept Vuelo's terms. For a traveller new to Vuelo, their Vuelo account needs their name, date of birth and home postcode, town and county: pass them if you know them, or ask once before booking, so the pay page is one tap. Never invent any of it.
paymentOptionYesOne of the options search_trips returned as eligible
conversationIdNo
travellersConfirmedNoSet true when the traveller has confirmed the passengers Vuelo filled in and named back to you. Vuelo asks for this once, before it starts a booking with saved passengers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well past the annotations: nothing is booked until payment, the traveller sees a Pay button on the Vuelo card or an SMS link, links must never be shown in chat except a passkey approval link, and payer/consumer_ref paths change the flow. This is consistent with readOnlyHint=false and idempotentHint=false, and no claim contradicts destructiveHint=false.

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?

A single dense paragraph where nearly every sentence carries operational guidance, but the opening is a legal T&C link rather than the action, and the "never invent any of it" instruction is repeated in both the description and the leadTraveller schema. Minor front-loading and redundancy costs.

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?

For a 14-parameter, nested-object, no-output-schema mutation tool, it covers the end-to-end flow (pre-fill, pay link, notify, status poll, confirm with reference) well enough to call correctly. The only soft spot is that the response shape is only implied by "tell them it is booked, with the reference".

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 already 86%, and the description reinforces the highest-risk fields with intent rather than syntax: what to pre-fill into leadTraveller and travellers, that flights cannot book without passenger name and date of birth, and that nothing may be guessed. It adds little on consumer_ref, conversationId, delivery, or from_card, but the schema carries those.

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?

Names a specific verb+resource ("Start booking a Vuelo offer") and pins it to the required identifiers (offerId, paymentOption) that search_trips returned. It also draws an explicit boundary against the nearest sibling by name, stating that changing payment on an open booking is change_payment_option.

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 the trigger condition directly ("call it whenever the traveller asks in the chat to book one"), names the alternative for the adjacent case (change_payment_option), and prescribes the follow-up (notify_url or get_booking_status with wait_seconds: 50 rather than waiting for the user to say they paid). Nothing about when/when-not is left to inference.

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