Skip to main content
Glama

Book a ride

request_ride
Destructive

Books a ride from a chosen quote after confirming the price; requires quote_id and confirmed_price_toman to dispatch a driver and charge the user.

Instructions

Books a ride using a quote_id from get_ride_quotes. This sends a real driver and charges the user, so only call it after the user has explicitly confirmed the service and price.

Input Schema

NameRequiredDescriptionDefault
quote_idYesThe quote_id the user chose.
confirmed_price_tomanYesThe exact price in Toman the user agreed to for this quote. Must match the quote, or nothing is booked.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, idempotentHint=false, and openWorldHint=true; the description adds real-world meaning beyond those flags by stating it dispatches an actual driver and charges the user, plus that calling prematurely is the risk. It does not explain idempotency in practice or what a partially failed booking leaves behind.

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 sentences, no filler, with the mechanism first and the safety gate second. Nothing could be removed without losing information the agent needs.

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

Completeness3/5

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

Covered well for a two-parameter, fully documented mutation, and the money/spawn consequences are stated. However, with no output schema, the agent is never told what a successful booking returns (ride identifier, status, next step), which matters for a tool the agent must follow up on with get_ride_status.

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 coverage is 100%, so both parameters are already documented, including the price-mismatch behavior. The description adds only the provenance of quote_id (it must come from get_ride_quotes), which is useful but marginal over the schema's own text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Books a ride') and names the prerequisite input source ('quote_id from get_ride_quotes'), which tells the agent where to get the required value. It stops short of distinguishing itself from the sibling schedule_ride, which also books future rides, so an agent must infer the split.

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?

Gives an explicit precondition: 'only call it after the user has explicitly confirmed the service and price,' which is exactly the gating rule an agent needs for a booking action. It does not state the negative case (e.g., use schedule_ride for future times, or get_ride_quotes first if no quote exists), so the routing is clear but not exhaustive.

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