Skip to main content
Glama

Final POS – Custom POS Builder

Hold a booking window

hub_hold_booking

Claim a window on one resource. The hold is what makes the window unavailable to everybody else, and it expires by itself if nobody pays — so holding is safe, and a hold nobody confirms costs nothing. startAt must be exactly a slot start from get_booking_availability, and endAt exactly where the last slot ends; anything else is refused rather than rounded. A refusal with 409 means somebody took it first: re-read availability and offer what is left, do not retry the same window.

Input Schema

NameRequiredDescriptionDefault
endAtYesISO instant, exactly where the booked window ends
startAtYesISO instant, exactly a slot start from availability
outletIdNoThe shop the sale happens at
productIdYesProduct id
customerIdNoWho it is for, id from get_customers. Omit for a walk-in nobody identified
resourceIdYesWhich resource — the barber, room or asset being booked

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 readOnlyHint=false, destructiveHint=false, and openWorldHint=false, but the description adds substantial behavioral context: the hold makes the window unavailable to others, it expires automatically if unpaid, holding is safe and costs nothing if unconfirmed, exact timestamps are enforced without rounding, and a 409 means a race was lost. This is rich disclosure beyond the annotations.

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?

Four sentences, front-loaded with the core purpose, then the safety model, then the strict timestamp rule, then conflict handling. Every sentence earns its place and there is no redundant filler.

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?

Covers purpose, behavior, prerequisites, and error handling well for a write operation with no output schema. However, it does not describe what a successful response returns (e.g., a hold identifier) or explicitly point to hub_confirm_booking as the follow-up action, leaving minor gaps for an agent orchestrating the full booking flow.

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 description coverage is 100%, so the baseline is 3. The description adds semantic meaning for startAt and endAt by stating they must be exact slot boundaries and that anything else is refused rather than rounded, which goes beyond the schema's static descriptions. It does not add information for productId, resourceId, outletId, or customerId.

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 and resource: 'Claim a window on one resource.' It distinguishes the hold from a confirmed booking by explaining that the hold is temporary and expires if nobody pays, which separates it from sibling tools like hub_confirm_booking and hub_cancel_booking.

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 clear prerequisites ('startAt must be exactly a slot start from get_booking_availability') and conflict handling ('re-read availability and offer what is left, do not retry the same window'). However, it does not explicitly name hub_confirm_booking as the next step or state when to prefer a hold over other booking actions.

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.