Skip to main content
Glama

Plan hotel stays for an itinerary

plan_stays
Read-onlyIdempotent

Plan hotel stays for each India trip stop by calculating check-in/check-out dates, searching nearby hotels, ranking options by nightly price and drive time, and returning leave-by times and warnings.

Instructions

Plans where to stay for each stop of a trip in India. Each stay is an arrival (place + time) and the next departure (place + time); places are lat+lng, station code, IATA code or place name, so train and flight times from any source can be passed in. For every stay it works out check-in/check-out dates (early-morning arrivals book the previous night), searches hotels near the arrival point and, if elsewhere, the departure point, and ranks them by nightly price plus drive time from arrival and to departure (valued at value_of_time_inr_per_hour). Returns candidates with leave-by times that include a check-in buffer for trains or flights, IRCTC retiring-room options for 3–48 h stays at stations, and warnings for late arrivals, early departures and same-day stays. Does not book.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
staysYesOne entry per stop, in trip order.
adultsNoGuests in the room; searches are for one room.
min_starsNo
radius_kmNoHotel search radius around each point.
candidatesNoHotels to return per stay.
max_price_inrNoMaximum nightly price in INR.
value_of_time_inr_per_hourNoHow much an hour of transfer time is worth, to trade travel time against price (0 = price only).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesYes
staysYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, and the description goes well beyond them: check-in/check-out derivation with early-morning arrivals booking the previous night, the ranking formula (price plus drive time weighted by value_of_time_inr_per_hour), leave-by times with a check-in buffer, IRCTC retiring-room fallback for 3-48 h station stays, and warning conditions. That is unusually rich behavioral disclosure.

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?

Front-loaded with purpose and free of filler; the opening sentence answers what it does before the mechanics arrive. The middle sentence is dense with stacked clauses (ranking, buffers, retiring rooms, warnings), but that density reflects genuine tool complexity rather than padding.

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

Completeness5/5

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

For a 7-parameter, nested-array tool with an output schema, the description covers everything an agent needs: input point formats, temporal edge cases, ranking behavior, fallback options and the non-booking boundary. Return values need not be explained since the output schema exists, yet the description still summarizes them helpfully.

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%, so the baseline is 3, but the description adds real meaning: it explains that arrival/departure points accept lat+lng, station code, IATA code or place name, that early-morning arrivals shift the booked night, and that value_of_time_inr_per_hour trades transfer time against price. min_stars and max_price_inr remain unelaborated, keeping it from a 5.

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 ('Plans where to stay for each stop of a trip in India') and frames the scope at the whole-itinerary level, which separates it from single-point siblings like search_hotels and get_hotel_rates. An agent can tell what this tool produces (ranked stay candidates per stop) 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 Guidelines4/5

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

Usage context is clear: it is the itinerary-level planner, it accepts times 'from any source', and it explicitly closes the loop with 'Does not book', so an agent knows booking is out of scope. It never names an alternative sibling (search_hotels, find_retiring_rooms, compare_hotels) or states when to prefer them, so it stops short of explicit routing.

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