Skip to main content
Glama
dragosh29

Bookwhen MCP server

by dragosh29

List tickets for an event

list_event_tickets
Read-onlyIdempotent

Retrieve every ticket type for a single event, including availability, spaces left, cost, booking limits, and group or course ticket details.

Instructions

Every ticket type for one event with availability: number issued (null = no limit), number taken (booked or reserved in checkout), spaces left, availability window, cost, and whether it is a group ticket (min/max people) or a course ticket (books all events in the course).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
event_idYesEvent ID (required by GET /tickets)
max_resultsNo
include_contact_detailsNoStop redacting email addresses and phone numbers from ticket titles and details

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description adds data semantics ('null = no limit', 'taken = booked or reserved in checkout'), which is useful, but says nothing about auth needs, rate limits, pagination, or redaction behavior. Moderate added value against an already-covered safety profile.

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?

A single dense sentence front-loaded with the resource and scope, then the field inventory. No filler, though the run-on list of fields is slightly harder to parse than separate clauses.

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?

There is no output schema, so the description carries the return-value burden and does so thoroughly, enumerating the fields the caller receives and clarifying ambiguous ones (null=unlimited, reserved-in-checkout, group/course ticket). The remaining gaps are behavioral (max_results/pagination) rather than structural.

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 67%, the mid-band baseline. The description adds no parameter guidance at all: event_id is only implied by 'for one event', max_results is undocumented anywhere, and include_contact_details (a surprising redaction toggle) is explained only by the schema. It does not compensate for the coverage gap.

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?

Specific verb+resource-scope: 'Every ticket type for one event with availability.' An agent can tell this lists ticket types rather than fetching a single ticket (get_ticket) or event-level data (get_event). It does not explicitly name a sibling, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative guidance. It never mentions events as a precondition in a routing sense (only implies it via the field list) and never contrasts itself with get_ticket or list_class_passes. The agent must infer fit from the purpose alone.

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