Skip to main content
Glama

start_booking

Create a booking and get a secure Stripe checkout URL for the customer to pay. For product_type="tour": pass slug (from search_tours/get_service), selected_date (YYYY-MM-DD), pax, an optional option_id, and lead contact details. For product_type="transfer": pass from, to, optional vehicle/category/pickup_at, pax, and lead details. The price is calculated server-side and returned with the checkout_url. Payment confirms the booking.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNotransfer: drop-off location.
paxNoNumber of guests/passengers (default 1).
fromNotransfer: pickup location (airport / city / hotel).
slugNotour: service slug from search_tours/get_service.
notesNotransfer: optional notes.
airlineNotransfer: optional airline (airport transfers).
vehicleNotransfer: vehicle class (default "Standard Car").
categoryNotransfer: e.g. "Arrival Transfers", "Departure Transfers" (default Arrival).
option_idNotour: chosen option_id from get_service (optional — omit for the "from" price).
pickup_atNotransfer: pickup datetime (free text or ISO).
lead_emailYesCustomer email (booking confirmation is sent here).
lead_phoneNoCustomer phone (optional, E.164 preferred).
pickup_textNotour: optional pickup location / hotel.
lead_surnameYesCustomer surname.
product_typeYesWhat is being booked.
flight_numberNotransfer: optional flight number.
selected_dateNotour: travel date, YYYY-MM-DD (today or later).
lead_first_nameYesCustomer first name.
selected_start_timeNotour: optional start time, e.g. "09:00".

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds that the booking is created but not confirmed until payment (via Stripe checkout URL) and that price is server-calculated. This provides useful behavioral context beyond annotations, though it does not detail side effects like email sending or error handling.

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

Conciseness5/5

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

The description is concise (~100 words) and well-structured: it starts with the primary purpose, then breaks down parameters for each product type with clear bullet-like phrasing. Every sentence adds value, and there is no fluff.

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?

Despite 19 parameters and no output schema, the description covers the main workflow: product types, key parameters, and the return of checkout_url. It does not explain error states or payment failure handling, but for a booking initiation tool, the core flow is adequately described.

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 100%, so baseline is 3. The description groups parameters by product_type and highlights which are required for each, adding meaning beyond the raw schema. For example, it clarifies that for 'tour' you need slug, selected_date, pax, option_id, etc., which helps the agent select the correct parameters.

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?

The description clearly states the tool's purpose: 'Create a booking and get a secure Stripe checkout URL for the customer to pay.' It distinguishes between product types (tour vs transfer) and lists required parameters per type. Sibling tools are search tools, so this tool's booking role is unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context on when to use this tool (to create a booking and initiate payment) but does not explicitly state when not to use it or mention alternatives beyond the product type split. Since siblings are search tools, the usage distinction is clear, but some guidance on prerequisites (e.g., 'use search_tours or search_stays first') would improve it.

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.

TDQS

A4.1/5.0
Disambiguation4/5

Tools have distinct purposes: searches for tours and stays, getting details, and booking. However, get_service handles both tours and stays, which could cause slight ambiguity, though descriptions clarify usage.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores (get_service, search_stays, search_tours, start_booking), making it predictable.

Tool Count4/5

Four tools is a reasonable count for a tour/accommodation booking server, covering key operations without being overly minimal.

Completeness3/5

Covers search for tours and stays, details retrieval, and booking for tours and transfers. However, missing a search tool for transfers and any update/cancel functionality leaves notable gaps.

Resources