Skip to main content
Glama

Black Car Service — Bay Area Ride Quotes

Pay and confirm an approved reservation

complete_booking
DestructiveIdempotent

Charges the exact approved USD booking total using a Stripe shared payment token from the customer's authorized wallet, then verifies reservation confirmation. First call get_booking_status and obtain explicit customer approval of that total and the booking terms. Never accept card numbers, CVC, or saved-card IDs. The token must be issued to the returned Stripe business profile for this amount. Retries reuse the SAME checkout_url; this tool never creates another reservation. Follow customer_action: verify_in_agent_wallet means the issuing wallet must handle the issued token's next_action before retrying this same booking. Only a confirmed result means the ride is booked.

Input Schema

NameRequiredDescriptionDefault
currencyYes
checkout_urlYesExact secure checkout_url from book_ride. Treat it as private; never search for or share it publicly.
customer_confirmedYesOnly true after the customer approves this booking, its final total, terms, and this one-time payment through their agent wallet.
approved_total_centsYesExact USD total from get_booking_status that the customer explicitly approved for payment.
shared_payment_tokenYesStripe Shared Payment Token obtained from the customer's approved wallet, scoped to the returned Stripe profile and total. Never card numbers, CVCs, saved-card IDs, or a token invented by the assistant.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: retries reuse the SAME checkout_url and never create another reservation (concrete idempotency semantics), the token must be scoped to the returned Stripe business profile for that amount, and customer_action verify_in_agent_wallet must be resolved in the issuing wallet before retrying. Consistent with destructiveHint=true and idempotentHint=true, and adds the failure/next-action path an agent needs.

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 action, then prerequisites, then constraint and retry semantics; every sentence carries operational information. It is dense (six sentences) but not padded — only the final clause about 'confirmed result' borders on restating what should be obvious.

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 no output schema, the description does communicate that only a confirmed result counts and that a customer_action may require wallet-side handling before retry. Return-shape detail (what fields a confirmed result carries) is thin, but the critical agent-facing behavior for a money-moving tool is covered.

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 80%, and the description still adds meaning: the total must be the exact one from get_booking_status that the customer approved, and the token must be issued to the returned Stripe profile for that amount. It does not explicitly discuss checkout_url or customer_confirmed, but the schema covers both well.

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 precise verb and resource — charges the exact approved USD total via a Stripe shared payment token, then verifies confirmation — which is clearly distinct from siblings book_ride (creates the reservation) and get_booking_status (reads status). An agent can route to it 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 Guidelines5/5

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

Gives an explicit prerequisite sequence ('First call get_booking_status and obtain explicit customer approval of that total and the booking terms') and an explicit prohibition ('Never accept card numbers, CVC, or saved-card IDs'). It also names a sibling as the required prior step, leaving nothing to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources