Skip to main content
Glama

booking_intent

WHAT BECOMES OF THE MONEY: it sits in an on-chain escrow that stays the buyer's, and it reaches the shop only when the buyer acts on the link in their own mail — this platform cannot move it, by construction. A hold nobody acts on goes home when its window closes. IF THE APPOINTMENT IS CANCELLED, the shop's own cancellation terms decide, and they were SEALED onto this hold when it opened: the free-cancel window, what a late cancel or a no-show keeps, and a dispute window (72 hours on the standard terms). The arbiter enforces the copy recorded at open, not a later opinion. Read the shop's OWN terms back to your human rather than describing a default — ask the shop, never assume. Open a reversible DEPOSIT hold on a real appointment, in your human's name. Same ceiling as checkout_intent and the same reason: this is a HOLD, not a booking that has taken money. The code that completes it goes to the buyer's own inbox, never to you, and an unfunded hold hands the slot back on its own. FUND IT YOURSELF when buyer_wallet is your own purse — the human should be confirming a deposit that is already sitting in escrow, not sending one. Hand the funding transaction over only when the wallet is theirs. You must pass the buyer's real email and Stellar public key, and the shop's cancellation policy is consented to by asking for this.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoanything the shop should know
shopYesthe shop's slug
becauseNothe brief-line that drove this booking — it rides the buyer's mail
serviceYesthe service id from booking_offer
starts_atYesthe opening you want, ISO — from booking_offer's list
buyer_nameYeswho the appointment is for
buyer_emailYesthe buyer's real inbox — the release code lands there, not here
buyer_walletYesthe wallet this deposit REFUNDS to (G + 55 base32) — your own purse when you hold one, and then you fund it yourself; otherwise the buyer's own key

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only mark the tool as non-read-only, open-world, non-idempotent, and non-destructive; the description goes far beyond this by disclosing escrow custody, that money reaches the shop only when the buyer acts, cancellation-term enforcement, a 72-hour dispute window, and that the completion code goes to the buyer's inbox. There is no contradiction with readOnlyHint=false or openWorldHint=true. This is rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a long unbroken paragraph that opens with money-flow exposition rather than the core purpose, uses ALL-CAPS emphasis and parenthetical asides, and repeats concepts like escrow and cancellation multiple times. While information-dense, it is not front-loaded or appropriately sized for a tool definition.

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 hold-creation tool with complex financial and cancellation semantics, the description covers the important behavioral, parameter, and funding nuances needed to invoke it. The main gap is the lack of any explicit statement about what the tool returns (e.g., hold ID or status), and there is no output schema to fill that gap. Otherwise, it is remarkably complete.

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 parameters are already documented. The description adds crucial semantics for buyer_wallet by explaining when the agent must fund the hold itself versus when the buyer's own wallet should be used, and for buyer_email by stating the release code lands there. This extra guidance elevates the description above the schema baseline.

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?

The description explicitly states the core action: 'Open a reversible DEPOSIT hold on a real appointment, in your human's name.' It also contrasts with checkout_intent by calling this a HOLD, not a booking that has taken money, and clarifies that the hold is reversible. This is a specific verb+resource statement that distinguishes the tool from its siblings.

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?

The description gives clear operational context: it is for opening a deposit hold, funding it yourself when buyer_wallet is your own purse, and never handing the funding transaction to the buyer unless the wallet is theirs. It names checkout_intent as a related alternative and explains the difference between a hold and a booking that has taken money. It does not enumerate all sibling tools or state explicit when-not-to-use conditions for every alternative.

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