Skip to main content
Glama

Final POS – Custom POS Builder

Create a booking rule set

hub_create_booking_rules

Create a booking policy. Call get_booking_rules FIRST and reuse a matching set instead — these are shared company-wide, not per product. weeklyHours are LOCAL wall-clock times at the outlet; if neither the outlet nor the company has a timezone the engine refuses availability with a 400, so fix the outlet rather than guessing an offset. bufferMinutes consumes grid time for slot bookings (cleaning between appointments); for overnight stays use checkInTime/checkOutTime instead and leave the buffer at 0 — the cleaning window lives in the gap and does not consume a night.

Input Schema

NameRequiredDescriptionDefault
nameYesHow the merchant refers to it, e.g. "Haircuts 9–18"
ratePeriodYesWhat ONE unit of price buys. `slot` for appointments and hourly rental. `week` and `month` are in the enum but NOT offered: the grid still cuts them one day at a time, so a weekly rate would be charged per day
bookingTypeYesappointment = a person's time; rental = an asset; overnight = nights; group = a class
checkInTimeNoOvernight only, "15:00"
holdMinutesNoHow long an unpaid hold survives before the window frees itself. Default 10
weeklyHoursYesOpening hours per weekday, local time. Days left out are closed. For overnight stays leave hours off only if the property has none — an empty list there means every day.
checkOutTimeNoOvernight only, "11:00"
bufferMinutesNoDead time after each booking, e.g. 15 for cleaning. Consumes the grid
maxAdvanceDaysNoHow far ahead bookings open. 0 = no limit
minNoticeMinutesNoShortest notice accepted, e.g. 60
slotLengthMinutesYesHow long one booking lasts, e.g. 30

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare the generic mutation profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds real behavioral context beyond that: the company-wide blast radius of a created set, a concrete failure mode (engine refuses availability with a 400 when neither outlet nor company has a timezone), and the interaction between bufferMinutes and overnight checkIn/checkOut windows. It omits auth/permission requirements, which is the only meaningful gap.

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 tightly packed sentences, front-loaded with the core action and the redirect to the read tool before any field-level detail. Every sentence carries non-obvious operational information; there is no filler or restated schema text.

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 an 11-parameter mutation with no output schema, the description covers the highest-risk interactions (shared scope, timezone failure, buffer vs overnight). It does not say what is returned on success or how duplicate/conflicting rule sets are handled, but with no output schema declared that omission is minor.

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, but the description genuinely adds cross-parameter semantics the schema does not: weeklyHours are LOCAL wall-clock times at the outlet (with the timezone precondition), bufferMinutes consumes grid time for slots, and overnight stays should use checkInTime/checkOutTime with buffer at 0. That is additive meaning rather than restatement.

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?

Opens with a specific verb+resource ('Create a booking policy') and immediately distinguishes itself from the sibling hub_get_booking_rules by telling the agent to call that first. An agent can tell this is the write side of the booking-rules pair without opening any 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?

Explicit when-not guidance: 'Call get_booking_rules FIRST and reuse a matching set instead — these are shared company-wide, not per product.' It names the alternative tool and the condition (shared scope) that should route the agent away from this call, which is exactly the exclusion guidance most definitions lack.

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.