Skip to main content
Glama

Request a ride

uber_request_ride
Destructive

Preview a real ride with its current price, places, payment method, and confirm token; then book it only after explicit confirmation, unless the price rose or a cap would be passed.

Instructions

Request a real Uber ride, in two calls. Without confirm: a preview with the current price, the places, the payment method and a confirm_token; nothing is booked. With confirm (after the person's explicit yes to that preview, same arguments): books it, unless the price rose (a fresh preview comes back instead) or a cap would be passed. Sends a car and charges the payment method.

Input Schema

NameRequiredDescriptionDefault
optionYesAn option's id or name from uber_ride_options
pickupYesAs for uber_ride_options
confirmNoThe preview's confirm_token, only after the person said yes to that exact preview
dropoffYesAs for uber_ride_options
paymentNoPayment method id or name

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.15

TDQS

A4.6/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: the two-phase preview/commit flow, that nothing is booked in preview, the confirm_token, the price-rise refusal that returns a fresh preview, and the cap constraint. Given the destructive hint and open-world annotation, the description paints a clear picture of the mutation and its guards. It doesn't elaborate on what happens to an already-booked ride or cancellation, hence a 4 rather than 5.

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 the core verb and two-mode structure, then the constraints. It's a bit dense and could be tightened, but every sentence carries information about booking behavior. No filler.

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 destructive, open-world, non-idempotent tool with an output schema present, the description covers the safety-relevant flow completely: preview vs commit, token binding, price-change refusal, caps, and charging the payment method. An agent has what it needs to call correctly.

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 the schema documents every parameter including the confirm token and payment. The description adds meaning beyond the schema by explaining that confirm must be the exact preview's token, and that arguments must be identical across calls. That cross-parameter behavioral constraint is genuinely valuable.

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+resource ('Request a real Uber ride') and immediately distinguishes the two modes: preview without confirm, booking with confirm. The distinction from siblings like uber_ride_options and uber_cancel_ride is clear from the resource name and scope.

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

Usage Guidelines5/5

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

Explicitly defines when to call without confirm (preview, nothing booked) versus with confirm (only after the person's explicit yes to that exact preview, same arguments). It also names the fallback path to uber_ride_options for option ids and pickup/dropoff semantics.

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