Skip to main content
Glama

Confirm an email code

confirm_booking
DestructiveIdempotent

Verifies the code the guest received by email for a booking_id, then holds an available room and submits the reservation for staff confirmation within 24 hours. Requires that booking_id and six-digit code. Repeating the same valid pair returns the same reservation. After email proof, checks stays matching only that proved email, overlapping dates and the 30-day continuous-stay limit, including a one-night gap. Starting over with the proved email for the same property, room type and dates returns the existing held chat reservation. Contact-based refusals give only the requested stay link and property phone. The guest brings photo ID and signs the guest agreement at check-in; no payment is taken.

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": {
      "booking_id": "<booking_id>",
      "code": "<code>"
    },
    "name": "confirm_booking"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeYesThe six-digit code received by the guest by email.
booking_idYesOpaque identifier returned by the first step.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, but the description adds real substance: the 24-hour staff-confirmation hold, the validation rules checked (overlapping stays, 30-day continuous-stay limit, one-night gap), the contact-based refusal behavior, and that no payment is taken. The one gap is that it never explains why the call is destructive – what holds or records could be affected if it fails partway.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but several sentences are dense and awkward – 'checks stays matching only that proved email, overlapping dates and the 30-day continuous-stay limit, including a one-night gap' requires re-reading. The check-in and no-payment details are useful but appended without clear structure.

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 mutating, open-world tool with no output schema, the description covers what happens (hold then staff confirmation), timing, idempotency, validation outcomes and refusal behavior. It does not describe the shape of a successful reservation response, which is the main remaining gap for an agent that needs to act on the result.

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 100%, with both code (six-digit pattern) and booking_id (opaque identifier from the first step) fully documented in the schema. The description's restatement of 'requires that booking_id and six-digit code' adds no new meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action chain: verify the emailed code for a booking_id, hold an available room, and submit the reservation for staff confirmation. That is well beyond a tautology and lets an agent place this tool in the booking flow. It stops short of naming siblings like start_booking or get_booking explicitly, relying on 'returned by the first step' to imply ordering.

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?

It establishes context clearly: this is the post-email-proof step keyed on a six-digit code, staff confirm within 24 hours, and repeating the same valid pair is safe because it returns the same reservation. It also explains the restart path (same email, property, room type and dates returns the existing held reservation). There is no explicit 'do not use this when…' routing to siblings such as cancel_booking or get_booking.

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