Skip to main content
Glama

Approve a booking

approve_booking
DestructiveIdempotent

Approves a booking request and emails the customer. A class waitlist entry_id (wl_…) as item_id books that person in now and emails them.

Input Schema

NameRequiredDescriptionDefault
siteYes
item_idYes
messageNoA note for the customer
plugin_idNoDefault: booking page

Output Schema

NameRequiredDescriptionDefault
item_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / item_id / description
      Removed value: -"From get_lists"
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "item_id": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / plugin_id / description
      Previous value: -"Default: the booking page"New value: +"Default: booking page"
  4. Changed1 schema field changed
    • removedInput schema / properties / site / description
      Removed value: -"Site name"
  5. Changed4 schema fields changed
    • removedInput schema / properties / message / maxLength
      Removed value: -500
    • changedInput schema / properties / plugin_id / description
      Previous value: -"Default: the site's booking page"New value: +"Default: the booking page"
    • changedInput schema / properties / site / description
      Previous value: -"Site name, e.g. brave-otter-4821"New value: +"Site name"
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": {},
      -  "properties": {
      -    "agent_message": {
      -      "type": "string"
      -    },
      -    "confirm_token": {
      -      "type": "string"
      -    },
      -    "error": {
      -      "description": "On failure (isError): {code, message}"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  6. Changed3 schema fields changed
    • changedInput schema / properties / item_id / description
      Previous value: -"From list_plugin_data"New value: +"From get_lists"
    • changedInput schema / properties / plugin_id / description
      Previous value: -"From list_plugins"New value: +"Default: the site's booking page"
    • changedInput schema / required
      Previous value: -[
      -  "site",
      -  "plugin_id",
      -  "item_id"
      -]New value: +[
      +  "site",
      +  "item_id"
      +]
  7. Added

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered. The description adds the customer email side effect and the waitlist-conversion behavior, but says nothing about reversibility (whether an approval can be undone via cancel_booking), failure modes, or what the plugin_id toggle changes.

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?

Two sentences, zero filler, with the core action and its side effect front-loaded and the special-case input mode immediately after. Every clause carries information an agent cannot get from the schema or annotations.

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?

An output schema exists, so return values need no explanation, and annotations cover safety. What remains thin is recovery behavior (can an approved booking be reverted?) and the effect of plugin_id defaulting to the booking page, both relevant for a destructive mutation.

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?

With only 50% schema description coverage, the description meaningfully compensates for item_id by revealing it also accepts wl_ waitlist entry ids — a non-obvious format constraint. It says nothing about the required site parameter or the message field beyond what the schema already documents.

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?

States a specific verb and resource (approve a booking) plus its immediate side effect (emails the customer), and clarifies a second mode where a waitlist entry_id is accepted as item_id. It is clearly distinguishable from add_booking, cancel_booking and edit_booking by name semantics, though it never names a sibling explicitly.

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?

The waitlist sentence gives a concrete usage context that an agent would otherwise not infer: passing a wl_… id books that person in immediately rather than performing a plain approval. What is missing is an exclusion rule against nearby siblings such as edit_booking or set_booking_outcome, so routing depends partly on inference.

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