Skip to main content
Glama

Latchbell

Book a time

book

Use to complete a booking, only after the customer agrees to the exact services, price and time. start comes from find_times; catalog_revision and expected_estimate_cents from the estimate they saw. Needs a phone or email so the business can reach them, and an address for a service at their place. A retry with the same request_key returns the same booking. Only status confirmed means booked; otherwise next says what the customer still has to do. Repeat with repeat and visits, or dates. Keep reply_token private: it is how the customer sees, moves or cancels it.

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": {
      "business": "<business>",
      "selections": "<selections>",
      "catalog_revision": "<catalog_revision>",
      "expected_estimate_cents": "<expected_estimate_cents>",
      "customer_authorized": "<customer_authorized>",
      "request_key": "<request_key>",
      "start": "<start>"
    },
    "name": "book"
  }
}

Input Schema

NameRequiredDescriptionDefault
whoNoWho they'd like, by name, from the catalog's team. A wish: someone else may take it, unless only_who
zipNo
noteNo
datesNoExact starts for several visits, e.g. one per guest checkout
startYesAn exact start from find_times
repeatNo
visitsNoWith repeat: how many visits, including the first
addressNoThe street address, for a service at the customer's place
businessYes
only_whoNoOnly this person: fewer times, but it stays with them
inquiry_idNoAn open conversation to book in, with its reply_token
selectionsYes
reply_tokenNo
request_keyYesA private unique key: a retry with it never books twice
customer_nameNoNot needed when the sign-in or X-User-Name gives it, and likewise phone and email
customer_emailNo
customer_phoneNo
catalog_revisionYesFrom quote or find_times
customer_authorizedYes
expected_estimate_centsYesThe total the customer agreed to

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 only say this is a non-read-only, open-world, non-destructive write. The description adds the important behavior: idempotency ('A retry with the same request_key returns the same booking'), result interpretation ('Only status confirmed means booked; otherwise next says what the customer still has to do'), and a secrecy constraint on reply_token. Those are exactly the traits an agent could not infer from the structured fields.

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?

The blocking condition and the entry point ('start comes from find_times') are front-loaded and no sentence is filler. The telegraphic fragments ('Repeat with repeat and visits, or dates.') are efficient but slightly terse, which costs a little readability on a 20-parameter tool.

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 complex, high-stakes write with no output schema, the description still covers idempotency, how to read the result (status/next), privacy of reply_token, contact requirements and the multi-visit path — enough for an agent to call it correctly and interpret the response. Only customer_authorized and a few optional fields go unexplained.

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 20 parameters at 55% schema description coverage, the description adds real cross-field meaning: where start, catalog_revision and expected_estimate_cents come from, that phone or email is needed for contact and address for at-location service, and how repeat pairs with visits or dates. It leaves required fields like customer_authorized, plus who/only_who, zip, note and selections, 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?

States a specific verb and resource ('Use to complete a booking') plus a gating condition ('only after the customer agrees to the exact services, price and time'). That distinguishes it from discovery/quoting siblings such as find_times, which is explicitly named as the source of 'start'.

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 explicit preconditions for calling (customer must have agreed to services, price and time) and routes the agent to find_times for the start value, plus conditional guidance on when to use repeat/visits vs dates. It does not name other booking-shaped siblings (e.g. add_booking, cancel_booking) as alternatives, so it stops short of full alternative routing.

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