Skip to main content
Glama

Loyalist Reservations

join_waitlist

Ask to be told if a table opens at a time the guest actually wants.

    This is not a reservation and never becomes one by itself. The venue contacts the
    guest if something frees up, so say that plainly rather than implying a table is
    held.

    Offer it whenever the guest cannot get a time that suits them, which is far more
    often than a venue being completely full: someone who wants 7:30 and is offered
    5:00 or 9:45 may well prefer to wait for 7:30. An empty get_availability is only
    the most obvious case. Try other times, party sizes and dates first, then ask
    whether they would rather wait than take a time that does not work. Record what
    they wanted in `time_range`, not the time you found.

    `date` is the venue's own local calendar date, `YYYY-MM-DD`. `time_range` is
    required and is the window in the guest's words, like "7:00 PM - 9:00 PM" or
    "7:00 PM"; ask the guest for it rather than guessing, because the venue works the
    list by when people wanted to come. The email address is where the confirmation
    goes, so it must be the guest's own.

    Not every venue accepts these. One that does not refuses with a message saying so,
    which is an answer, not an error to retry.

    There is no reference number to give the guest, so the response is the only record
    either of you gets. Confirm it back to them by the restaurant, date and time.

    Mention the confirmation email only when `confirmation_sent` is true. When it is
    false the request is still on the venue's list, the note simply did not go out, so
    say they are on the list and that no email is coming rather than promising one.
    

Input Schema

NameRequiredDescriptionDefault
dateYes
emailYes
notesNo
phoneNo
venue_idYes
last_nameYes
first_nameYes
party_sizeYes
time_rangeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false; the description adds substantive context beyond that: no reference number is issued, the response is the only record, venue refusal is a valid answer rather than a retryable error, and it explains the confirmation_sent=true/false outcomes and what to tell the guest in each case. This is exactly the behavioural disclosure annotations cannot carry.

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 purpose and the 'not a reservation' caveat are front-loaded, and most sentences carry operational guidance that earns its place. It is nonetheless long for the payload, with some repetition around the reservation framing ('not a reservation', 'rather than implying a table is held') that could be tightened.

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?

With no output schema, the description does the work of explaining the return semantics (confirmation_sent, absence of a reference number) and the failure mode (venue refuses). For a mutating, non-idempotent tool it omits any warning about duplicate join attempts and says nothing about notes/phone, but overall an agent has enough to call and report correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden. It does cover date format ('venue's own local calendar date, YYYY-MM-DD'), time_range requiredness, sourcing and syntax examples, and that email must be the guest's own, but venue_id, party_size, first_name, last_name, notes and phone receive no explanation at all. Useful but clearly incomplete compensation for a 9-parameter 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?

The opening states a specific verb and resource (ask to be told if a table opens) and the second sentence explicitly negates the nearest sibling behaviour: 'This is not a reservation and never becomes one by itself.' An agent can distinguish this from book and get_availability without opening either 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?

It gives explicit when-to-use guidance ('Offer it whenever the guest cannot get a time that suits them'), names the obvious trigger (an empty get_availability) and immediately widens it, and prescribes an ordering of alternatives: try other times, party sizes and dates first. It also states what to record and what to ask the guest, which is more than any sibling description would supply.

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