Skip to main content
Glama

Request a reservation

request_reservation

Create an anonymous reservation REQUEST (date-time, party size, note) for a listed restaurant and get a one-time confirmation link. PUBLIC tool, no auth. Send the guest to confirm_url: they enter their name and email or phone there and submit the request themselves — never through this tool. The restaurant then confirms or declines; the guest receives the confirmation code by email/SMS. A reservation is a REQUEST that the restaurant confirms; no per-slot capacity cap is configured, so busy_count is informational only. Never tell the guest a table is guaranteed or "available" — say the request will be sent and the restaurant will confirm.

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": {
      "restaurant": "<restaurant>",
      "reserved_at": "<reserved_at>",
      "party_size": "<party_size>"
    },
    "name": "request_reservation"
  }
}

Input Schema

NameRequiredDescriptionDefault
noteNoOccasion, seating preference, accessibility needs. Do not put the guest's name, phone or email here.
party_sizeYes
restaurantYes
reserved_atYesISO date-time; at least 30 minutes ahead, at most 90 days.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say non-read-only, non-idempotent, non-destructive, closed-world): it discloses that no per-slot capacity cap exists, that busy_count is informational only, that the restaurant confirms or declines, and that the guest receives the code by email/SMS. It also warns against telling the guest a table is guaranteed, which is exactly the behavioral constraint an agent needs.

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 core action and the confirm_url handoff, then adds constraints in descending priority. It runs slightly long and restates the REQUEST framing twice ('A reservation is a REQUEST that the restaurant confirms'), but every other sentence carries non-redundant operational information.

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 correctly covers the return path (confirm_url, confirmation code via email/SMS) and the full guest flow. The only meaningful omission is how to identify the 'restaurant' argument, which is the one thing an agent could get wrong at call time.

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 coverage is 50%; reserved_at and note are documented in the schema, and the description only informally repeats those fields. The 'restaurant' parameter is a bare string with no description, and the description never clarifies whether it takes a name, slug, or ID — a real gap that the description should have closed but did not.

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 ('Create an anonymous reservation REQUEST') plus the inputs it takes (date-time, party size, note) and the artifact it returns (a one-time confirmation link). The framing as a REQUEST rather than a confirmed booking cleanly separates it from siblings like cancel_reservation and get_reservation_slots.

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 operating conditions: PUBLIC tool, no auth, and the guest must complete name/email/phone on confirm_url rather than through this tool. It does not name sibling alternatives (e.g., get_reservation_slots for availability checks) or state prerequisites for finding a 'listed' restaurant, so the routing story is clear but not exhaustive.

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