Skip to main content
Glama

BOP

Pay for a booking

complete_booking
Idempotent

Pay for a booking whose status is awaiting_payment, with a payment credential the customer approved for the booking's amount and currency. payment.handler_id must come from the booking's payment_handlers ("stripe_payments"), and credential is {type: "stripe_payment_token", token: "spt_…"}: a Stripe shared payment token issued to the handler's business_profile. Charges the customer once (repeating the call does not charge twice). Returns the booking (confirmed, or pending if the business confirms it) and the payment result; if payment.status is requires_action, open payment.redirect_url for the customer and call again with the same credential.

Input Schema

NameRequiredDescriptionDefault
paymentYesPayment credential for this booking
booking_idYesbooking_id returned by request_booking
business_idYesbusiness_id from search_businesses
status_tokenYesstatus_token returned once by request_booking
idempotency_keyNoOptional key (8–64 letters, digits, _ . : -) that makes retries safe: the same key with the same parameters returns the original result

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare non-read-only, idempotent, non-destructive, open-world, but the description adds real substance: it explains that the customer is charged once, that repeat calls do not double-charge, and it documents the two-phase requires_action flow with redirect_url. That is behavioral context the annotations cannot convey.

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 precondition and action, then the credential shape, then the retry/follow-up semantics — a logical order. The middle sentence is dense with nested colons and quotes, which slightly hurts readability, but no sentence is disposable.

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 five-parameter, nested-object, no-output-schema mutation tool, the description covers what it does, what it returns (booking confirmed or pending, plus the payment result and its possible requires_action status), and how to complete the flow. Nothing an agent needs in order to call it correctly is missing.

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 baseline is 3, but the description adds constraint-level meaning beyond the schema: the credential must be one the customer approved for the booking's exact amount and currency, and handler_id must be sourced from the booking's payment_handlers. It does not cover business_id, booking_id, status_token, or idempotency_key, which the schema handles.

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 ('Pay for') plus the resource and an explicit precondition ('a booking whose status is awaiting_payment'), which cleanly separates it from request_booking, modify_booking, and cancel_booking. The agent knows exactly what this tool accomplishes 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?

Gives concrete usage conditions: the booking must be awaiting_payment, handler_id must come from the booking's payment_handlers, and if payment.status is requires_action the agent must open payment.redirect_url and call again with the same credential. It does not explicitly name a sibling alternative or say when not to call it, which keeps it just under a 5.

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