Skip to main content
Glama

Create Reservation

create_reservation

Reserve seats on a logged-in RegioJet account and create an unpaid booking that expires unless paid or cancelled. Use route, seat class, and section details to hold seats before payment.

Instructions

Reserve seats on the logged-in account. The reservation is UNPAID and expires at expiration_date unless paid (pay_ticket_with_credit, or in the RegioJet app/web) or cancelled first.

Input Schema

NameRequiredDescriptionDefault
langNoResponse language; defaults to server setting.
tariffsNoPassenger tariff per traveller, e.g. ['REGULAR', 'REGULAR', 'CHILD_UNDER_12']. See list_tariffs.
currencyNoPrice currency; defaults to server setting.
route_idYesRoute id from search_routes.
sectionsYesEvery section of the route from get_route_detail, optionally with chosen seats.
seat_classYesseat_class from get_route_detail price_classes.
price_sourceYesprice_source of the chosen seat class from get_route_detail.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.3

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, non-destructive, open-world operation, so the safety profile is covered. The description adds genuinely non-obvious behavior the annotations cannot convey: the reservation is created UNPAID and auto-expires at expiration_date unless paid or cancelled, which is critical for an agent to act on. It omits failure modes such as sold-out seats or what errors look like, keeping it below a 5.

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?

Two short sentences with zero filler: the action and its state come first, followed by the expiry/payment consequence. Capitalized UNPAID properly emphasizes the condition an agent must not miss.

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 a full output schema and annotations present, the description does not need to explain return values, and it covers the lifecycle an agent must know. The main residual gap is behavior when the requested seats or class are unavailable, plus the absent link between expiration_date and how the agent should track it afterward.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter already documenting its source (route_id from search_routes, sections from get_route_detail, seat_class from price_classes, etc.), so the baseline is 3. The description adds no parameter-level detail, and it references expiration_date, which is not an input parameter, so an agent gets no extra guidance on how to populate the four required fields.

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 opens with a specific verb and resource ('Reserve seats') scoped to the logged-in account, then states the resulting object's state (UNPAID) and lifecycle. No sibling tool creates reservations, so ambiguity with get_ticket, search_routes, or cancel_ticket is low.

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?

It clearly situates the call in a workflow by naming the follow-up alternatives (pay_ticket_with_credit or the app/web, or cancel), which tells the agent what to do next after reserving. It stops short of explicit when-not-to-use guidance or prerequisites such as needing a route_id from search_routes first, which the schema handles instead.

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