Skip to main content
Glama

review_booking

Approve or decline a pending booking request of the current team. Approving turns it into a confirmed meeting and sends the attendee the confirmation with the meeting address; declining sends a short "not approved" note with the optional reason. Only works on a booking whose status is pending, and a request whose meeting time has already passed can only be declined. On approval you may set the meeting link / instructions for this one meeting (leave empty to fall back to the team-level settings). Only the team owner / admin or the lead owner can review.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
decisionYesapprove = confirm the meeting and release the address; decline = reject the request
bookingIdYesThe booking id (the bookingId returned by list_bookings)
meetingLinkNoApprove only: the meeting URL for this meeting. Empty falls back to the team setting.
declineReasonNoDecline only: the reason shown to the attendee, max 500 chars. Optional.
meetingInstructionsNoApprove only: how to join / what to prepare, max 1000 chars. Empty falls back to the team setting.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
statusNoscheduled after approving, cancelled after declining
bookingIdNoThe booking that was reviewed
reviewedAtNoISO datetime of the review

TDQS

A4.5/5.0
Behavior5/5

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

The description enriches the annotations with real behavioral detail: approval sends confirmation with the meeting address, declining sends a note, expired requests cannot be approved, meeting link/instructions may fall back to team settings, and access is limited to owner/admin/lead owner. This is exactly the context beyond readOnly/destructive hints that is useful.

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?

Every sentence carries distinct information: the decision action, notification side effects, state constraints, per-meeting overrides, and authorization. It is dense yet not bloated, and it front-loads the core purpose.

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?

Given the output schema is present and the input schema is fully documented, the description covers all critical decision-relevant context: status preconditions, time-based limitation, side effects, optional parameter implications, and permission rules. Nothing essential is missing.

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%, and each parameter has a descriptive schema entry already. The description adds some usage context around approval vs decline behavior, but it largely mirrors the schema text for meetingLink, meetingInstructions, and declineReason. Thus it meets but does not exceed the baseline for complete schema coverage.

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 clearly states a specific action ('Approve or decline'), a specific resource ('a pending booking request'), and the current team scope. It differentiates the tool from siblings like update_booking_status by specifying the pending-status condition and the approval/decline decision structure.

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 provides explicit conditions: only pending bookings can be reviewed, and past-dated requests can only be declined. It does not name sibling alternatives directly, but the conditions on booking status effectively define when this tool is appropriate.

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.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools map to a distinct resource and action, and the descriptions actively disambiguate similar operations (e.g., get_form vs get_form_share_info vs get_form_stats). The main potential confusion is between list_records and list_leads and between get_record and get_lead, since both describe leads from slightly different angles.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun convention, with resources like form, question, lead, booking, examinee, translation, and tenant parallel across actions. The few non-CRUD verbs like prepare_/finalize_, duplicate_, and reschedule_ still fit the same uniform pattern.

Tool Count2/5

48 tools is well beyond the 3–15 ideal and even past the 25+ threshold, making the tool surface heavy for an agent to navigate. The broad platform scope explains some of the size, but the count still risks overwhelming context and increasing misselection.

Completeness4/5

The server covers form lifecycle, question editing, translations, CRM leads, examinees, records, bookings, team/tenant operations, image uploads, templates, and analytics extremely well. Minor gaps remain—such as no lead/record deletion, no member removal or role updates, and limited booking-settings management—but most workflows can be completed with the existing tools.

Resources