Skip to main content
Glama

Set up bookings

set_booking
Destructive

Turn on online booking for a site and set it up: services (name, duration_minutes, optional buffer_minutes, price in RM, group_size for classes), weekly opening hours, optional staff (each with their own services and hours), seats (chairs/rooms when there is no staff), how far ahead and how late people can book, the cancellation window, and instant or manual confirmation. Only the fields you give change; a services or staff list replaces the current one. Then build the booking page with k.booking (see site_guide).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "site": "<site>"
    },
    "name": "set_booking"
  }
}

Input Schema

NameRequiredDescriptionDefault
siteYesSite slug (e.g. "kopitiam-muar") or id
hoursNoWeekly hours: { "mon": ["09:00-13:00", "14:00-18:00"], "sat": ["10:00-16:00"], "sun": [] } (24-hour, site time zone)
seatsNo
staffNoLeave out (or []) when anyone can serve; then seats sets how many bookings can run at once
confirmNomanual = bookings wait for the owner to confirm
enabledNo
servicesNo
timezoneNoDefault Asia/Kuala_Lumpur
notify_ownerNo
slot_minutesNoStart times every N minutes (default 30)
max_days_aheadNoDefault 30
whatsapp_alertNoWhatsApp the owner for each booking (needs a linked Komers store)
google_calendarNoUse the owner's Google Calendar: their busy times block slots, and bookings are added to a 'Komers bookings' calendar. Needs a linked Komers store with Google Calendar connected in Komers.
min_notice_minutesNoDefault 60
cancel_until_minutesNoCustomers can cancel/move until this long before (default 120)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the bar is lower, yet the description adds the single most important behavior: "Only the fields you give change; a services or staff list replaces the current one" — pinning down partial-update vs. list-replacement semantics that the annotations cannot express. It also flags that the flow continues with the page builder, though prerequisite constraints (linked Komers store for whatsapp_alert / google_calendar) live only in the schema, not the description.

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?

A single front-loaded paragraph that starts with the action and then walks the field groups in a logical order, ending with the follow-up step. It is dense but nearly every clause maps to a real parameter; the parenthetical enumerations get close to schema repetition but stay justified for a 15-parameter tool.

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 15-parameter, nested-object, destructive, no-output-schema mutation, the description covers the configuration surface, mutation semantics, and the next workflow step. It is slightly incomplete in that disabled settings are not described (does turning booking off clear config?), permissions are unaddressed, and several top-level flags (enabled, timezone, notify_owner, google_calendar) never appear in the narrative.

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?

With 73% schema coverage the baseline is 3, and the description earns above that by explaining the domain meaning of key knobs: price in RM, group_size for classes, buffer as clean-up time, seats as chairs/rooms used when there is no staff, and the ahead/late/cancellation window trio. Undocumented items (timezone, slot_minutes, notify_owner, enabled) are left entirely to the schema.

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+scope ("Turn on online booking for a site and set it up") and enumerates the exact configurables: services with duration/buffer/price/group_size, weekly hours, staff, seats, booking window, cancellation window, and confirmation mode. An agent can tell this is the full booking configuration tool rather than the per-booking tools (get_booking, update_booking, list_bookings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

Usage is implied by "Turn on online booking ... and set it up" and the closing workflow hint ("Then build the booking page with k.booking (see site_guide)"). However, there is no explicit routing between this and the sibling update_booking, and "Only the fields you give change" actively blurs that boundary, leaving the agent to infer which tool to call for a partial edit.

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