Skip to main content
Glama

Check booking details before payment

booking_summary
Read-onlyIdempotent

Verifies a filled-in bus booking before payment—seats, passengers, contact, add-ons, and total fare—then returns a summary for user confirmation.

Instructions

Check a filled-in booking on the official site before the user pays.

Verifies the page is a real booking site, that seats match what the user asked, that every seat has one passenger with a valid name/age/gender (and respects women/men-only seats), the mobile and email, and that the total has no surprise add-ons. Returns a short summary; open payment only after the user replies "confirm" to it. Nothing is booked, paid or stored by this tool.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "page_url": "<page_url>",
      "operator": "<operator>",
      "origin": "<origin>",
      "destination": "<destination>",
      "travel_date": "<travel_date>",
      "departure": "<departure>",
      "seats": "<seats>",
      "passengers": "<passengers>",
      "contact_mobile": "<contact_mobile>"
    },
    "name": "booking_summary"
  }
}

Input Schema

NameRequiredDescriptionDefault
seatsYesSeat numbers selected on the page.
originYesFrom city.
add_onsNoPaid extras the user chose on the page, with price, e.g. 'Free Cancellation ₹140'. Empty if none.
operatorYesOperator as shown on the checkout page.
page_urlYesAddress of the checkout page currently open.
departureYesDeparture time, HH:MM.
passengersYesPassengers as typed on the page, one per seat.
total_fareNoTotal amount shown before payment, rupees.
destinationYesTo city.
seat_pricesNoPrice of each selected seat, same order as seats.
travel_dateYesTravel date, YYYY-MM-DD.
contact_emailNoEmail entered, if any.
boarding_pointNoBoarding point chosen.
contact_mobileYesMobile number entered on the page.
dropping_pointNoDropping point chosen.
requested_seatsNoSeat numbers the user asked for in chat.
seat_reserved_forNoPer selected seat: 'female', 'male' or ''.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.0

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description still adds real value beyond that by stating 'Nothing is booked, paid or stored by this tool', that it returns a short summary, and that a human 'confirm' reply is the gate to payment. It does not describe what the summary contains or what happens when a check fails, so it is informative but incomplete.

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?

Three short sentences plus a verification list, front-loaded with the action and its timing, then the checks, then the return/next-step contract. No filler and no repetition of the title.

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 17-parameter tool with no output schema, the description covers the preconditions, the validation intent and the post-call contract (summary, then user confirm). The remaining gap is that 'a short summary' is never characterized, so an agent cannot anticipate the failure/pass signal shape it must relay to the user.

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 per-parameter meaning is already documented; the baseline would be 3. The description adds cross-field semantics the schema cannot express: seats must match requested_seats, passengers must map one-to-one onto seats with valid name/age/gender, and seat_reserved_for gender restrictions are enforced. It also flags that the total must contain no surprise add-ons, tying total_fare and add_ons together.

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 ('Check a filled-in booking on the official site before the user pays') and then enumerates exactly what is verified: site authenticity, seat match against the user's request, one passenger per seat with valid name/age/gender and gender-only seat rules, mobile/email, and absence of surprise add-ons. That enumeration is distinctive enough to separate it from siblings like check_booking_safety, booking_steps and read_page without opening a 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?

Placement in the flow is unambiguous: run it on the checkout page before payment, and open payment only after the user replies 'confirm' to the returned summary. It does not name an explicit alternative tool or state when NOT to use it (e.g. n本书 not-yet-filled page), so it falls just short of full routing guidance.

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