Skip to main content
Glama
chrischall

easytable-mcp

by chrischall

easytable_modify_booking

Modify an existing restaurant booking by changing date, time, party size, or guest details. Preview changes without applying, then confirm to update the reservation.

Instructions

Modify an existing booking (date/time/party size/details). Like create, it reads the Turnstile token from your signed-in widget tab. Get the existing booking id from easytable_find_bookings. Without confirm: true it returns a dry-run preview and makes NO network call; with confirm: true it applies the change.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesRestaurant id — the `id` in a book.easytable.com/book/?id=<id> link.
dateYesBooking date, ISO YYYY-MM-DD (from easytable_list_dates).
langNoWidget language code (en, se, da, …). Defaults to en.en
nameYesGuest name on the booking.
timeYesTime slot HH:MM (from easytable_list_times).
typeYesBooking area/type id from easytable_list_types.
emailNoGuest email.
eventNoOptional event id.
mobileYesGuest mobile in E.164 (e.g. +46701234567).
commentNoFree-text note / special requests.
companyNoOptional company name.
confirmNoMust be true to proceed. Without this, the tool returns a preview.
personsYesParty size.
existingYesId of the existing booking to modify (from easytable_find_bookings).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.4.1
    • changedInput schema / properties / email / pattern
      Previous value: -"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"New value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
  2. First observedv0.0.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, so the agent knows this is a mutating, non-idempotent operation. The description adds valuable behavioral context beyond annotations: the dry-run preview behavior, the fact that no network call is made without confirm:true, and the Turnstile token requirement. It doesn't detail side effects or error behavior, but the preview/confirm distinction is a significant behavioral disclosure.

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

Conciseness5/5

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

Three sentences with zero waste. The core action is front-loaded, the workflow dependency (find_bookings) is stated, and the critical confirm behavior is explained. Every sentence earns its place.

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 14-parameter mutation tool with no output schema, the description covers the essential workflow: where to get the id, the token requirement, and the confirm gate. It doesn't describe the return value or error cases, but the schema covers parameters and the description covers the critical behavioral gate. Slightly more detail on what the preview returns would push this to 5.

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 the schema already documents all 14 parameters. The description adds meaning for the key parameters (existing, confirm) by explaining their roles in the workflow, but it doesn't add much beyond the schema for the rest. Baseline 3 is appropriate when the schema carries the heavy lifting.

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 description states a specific verb ('Modify') and resource ('existing booking'), and enumerates the modifiable fields (date/time/party size/details). It also distinguishes itself from create and find_bookings by referencing them explicitly, so an agent can tell it apart from siblings without opening the 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?

The description gives explicit when-to-use guidance: get the existing booking id from easytable_find_bookings, and it explains the confirm flag semantics (dry-run preview without confirm, applies change with confirm). It also references the Turnstile token requirement, which is a clear prerequisite. This is strong usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.