Skip to main content
Glama

Start a table booking

book_table
Read-onlyIdempotent

Turn a time from find_table_times into a link the guest taps to finish booking. This does NOT book anything: it returns a short-lived URL on the venue's own booking page, already opened at that party size and that exact sitting, where the guest enters their own details and confirms.

The venue holds the table from the moment the guest opens the link, for about ten minutes, which is what gives them time to fill the form in. Until they open it nothing is held, so give them the url promptly and say the table is not theirs until they do.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
venueYesThe venue's booking slug, exactly as get_venue returned it or as it appears in the venue's own booking link (the last path segment of gaplessly.com/book/<slug>). Not the business name.
partySizeYesThe same party size passed to find_table_times. The link opens on it.
slotTokenYesA `slotToken` from find_appointment_times or find_table_times, copied exactly. It is signed and carries the venue and the time inside the signature, so it cannot be edited, built by hand, or used at a different venue. It expires about 30 minutes after the search.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, and the description reinforces this by stating it books nothing, then adds genuinely new behavioral context: a short-lived URL, a ~ten-minute hold that begins only when the guest opens the link, and nothing held beforehand. This is exactly the operational detail 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?

Front-loads the most important clarification (this does not book) before detailing the URL mechanism and the hold. Two tight paragraphs, though the second paragraph's 'tenant' guidance repeats the do-not-hold point slightly.

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?

With no output schema, the description correctly explains the return value (a short-lived url) and the agent's obligation to hand it over promptly. For a three-required-param, non-destructive tool this is complete enough to invoke 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 100%, so venue, partySize, and slotToken are already fully documented including the signing/expiry semantics of slotToken. The description only loosely ties the URL to 'that party size and that exact sitting', adding no meaning beyond the schema, so baseline 3 applies.

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+resource outcome (turn a find_table_times slot into a tappable booking link) and immediately distinguishes it from what an agent might assume by clarifying it does NOT book anything. This makes it easily separable from its sibling book_appointment.

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?

Explicitly names the upstream source (a time from find_table_times) and the downstream consumer (the guest, who completes booking themselves), giving clear context for when to call it. It does not explicitly contrast with the sibling book_appointment, which would be the natural alternative an agent might consider.

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