Skip to main content
Glama

MAQAMI Travel

getExperienceTourBookingOptions

Overview

Resolve priced booking options, time slots, and required guest inputs for a selected tour date and participant mix.

When to Use

  • Option/slot pickers - Show available variants and start times for a date

  • Live pricing - Display authoritative slot sell totals (pricing.totals.net / priceSummary.netPrice)

  • Checkout forms - Collect bookingQuestionSchema before proceeding to payment

What You Get

  • Booking options - optionId, title, and bookingQuestionSchema

  • Time slots - dateTime, isAvailable, and slot-level pricing (unitNet / totalNet / totals.net / priceSummary.netPrice, plus totals.commission when markup applies)

  • Participant mapping - Uses ticketCategory keys from availability (e.g. adult, child)

Money semantics

Field names keep *Net from experiences-api; dispatcher marks commercial net up in place to partner sell. Use slots[].pricing.totals.net as selection.price.amount on prebook.

Quick Start

POST a body with language, currency, date (YYYY-MM-DD), and participants to /experiences/tours/{id}/booking-options. Use slot pricing.totals.net for display and checkout handoff.

Option-level price

options[].price.amount is overwritten from the lowest available slot pricing.totals.net for the requested mix (after markup). It is not the GYG catalog from-price. Checkout still uses the chosen slot pricing.totals.net.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNoDispatcher-standard envelope. Mirrors the normalized experiences-api payload: an object for single-resource responses (e.g. tour detail, availability) or an array when the provider returns a JSON array.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, openWorldHint=true, and idempotentHint=false, so safety profile is partly covered. The description adds real context beyond that: dispatcher net-to-sell markup applied in place, that `options[].price.amount` is overwritten from the lowest available slot, and an explicit warning that this is not the GYG catalog from-price. It does not cover auth needs, error behavior, or throughput limits, so it stops short of a 5.

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?

Headings (Overview, When to Use, What You Get, Money semantics, Quick Start) front-load the key facts and make it scannable. It is longer than necessary — pricing field paths (`totals.net` / `priceSummary.netPrice`) are repeated in three separate sections — but no section is filler.

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, and the description compensates well by enumerating returned fields (optionId, title, bookingQuestionSchema, dateTime, isAvailable, slot-level pricing, commission) and their interpretation. What is left unresolved is the mismatch between the documented request body and the envelope-only input schema, plus any required-parameter or failure semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema exposes only an opaque `data` envelope (100% coverage, 0 required), so the schema alone tells an agent nothing about the real payload. The description compensates by specifying the POST body contents (`language`, `currency`, `date` as YYYY-MM-DD, `participants`) and how participants map to `ticketCategory` keys. The residual gap is that it never reconciles these fields with the single `data` wrapper property.

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 Overview states a specific verb and resource — 'Resolve priced booking options, time slots, and required guest inputs for a selected tour date and participant mix' — with the scope (date + participant mix) named explicitly. It is clearly distinguishable from sibling tools like searchExperienceTours (catalog discovery) and getExperienceTourAvailability (availability without pricing/options).

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 'When to Use' section names three concrete scenarios (option/slot pickers, live pricing display, checkout form collection) and the 'Quick Start' names the exact endpoint and body fields. It also routes downstream to prebook via `selection.price.amount`, so the agent knows both when to call it and what comes next.

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