MAPL Tours Jamaica
Server Details
Private airport rides from Montego Bay (MBJ) to Jamaican hotels and villas, plus tours
- Status
- Healthy
- Uptime
- 99.9% over 36 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Tools are mostly distinct by resource and booking stage: destination lookup, quote, timing check, terms, tour details, and booking/payment actions. The main overlap is between start_transfer_booking and book_and_pay_transfer, which both book transfers but differ in payment path; descriptions clarify the difference, though an agent could still misselect.
Most names follow a predictable snake_case verb_noun pattern: find_transfer_destination, get_transfer_quote, check_transfer_timing, start_tour_booking, etc. Minor deviations are book_and_pay_transfer (two verbs) and the start_*_booking suffix, but the convention remains readable and consistent overall.
Nine tools is well-scoped for a tours-and-transfers booking server. Each tool covers a distinct stage of discovery, pricing, terms, timing, booking, or payment without obvious bloat.
The surface covers discovery, pricing, terms, timing, booking links, and direct transfer payment well. Gaps include no booking retrieval or cancellation tool and no direct tour payment option, though the booking-link and email/contact paths make these workable.
Available Tools
9 toolsbook_and_pay_transferBook and pay for a rideAInspect
Book an airport transfer and pay for it now with a Stripe shared payment token (spt_...) the traveller approved, for example from their Link wallet. CHARGES the traveller. Before calling: get the exact price with get_transfer_quote, tell the traveller the price and the cancellation terms (get_booking_terms), and get their explicit yes; pass that price as approved_total_usd. Needs every flight number and time the ride has, and the traveller's name, email and phone. An identical ride that is already paid is reported, never charged twice. Returns the booking reference; the confirmation email follows.
| Name | Required | Description | Default |
|---|---|---|---|
| guest | Yes | The traveller the booking is for | |
| direction | No | Required for a one-way | |
| trip_type | Yes | ||
| arrival_at | No | Flight arrival at MBJ, "YYYY-MM-DDTHH:MM" Jamaica time | |
| passengers | Yes | ||
| destination | Yes | Hotel or villa name, or id from find_transfer_destination | |
| departure_at | No | Hotel pickup for the flight home, "YYYY-MM-DDTHH:MM" Jamaica time. If you only know the flight time, pass departure_flight_at instead | |
| arrival_flight | No | Arrival flight number, e.g. AA1234 | |
| departure_flight | No | Departure flight number | |
| special_requests | No | Optional note for the driver, e.g. a car seat | |
| approved_total_usd | Yes | The total in USD the traveller approved; must equal the price from get_transfer_quote | |
| departure_flight_at | No | Flight home departs MBJ, "YYYY-MM-DDTHH:MM" Jamaica time; pickup is set 3 hours 30 minutes earlier | |
| shared_payment_token | Yes | Stripe shared payment token (spt_...) granted to MAPL Tours Jamaica for at least this amount in USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations only stating readOnlyHint=false, idempotentHint=false and destructiveHint=false, the description supplies the critical facts the agent actually needs: it CHARGES the traveller, an already-paid identical ride is reported and never charged twice, and the token must have been traveller-approved. That is meaningful behavior beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and the charge warning, then the prerequisite checklist, then the dedup and return-value guarantees. Dense but every sentence carries information; only the multi-prerequisite sentence is slightly overloaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, nested-object, payment-taking tool with no output schema, the description covers the charge, the prerequisite sequence, required traveller data, duplicate handling and the return value (booking reference, email follows). Nothing needed to invoke it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 85%, so the baseline is 3; the description goes further by tying approved_total_usd to the quote, specifying the guest fields needed (name, email, phone) and requiring every flight number/time. It doesn't explain direction/trip_type interplay, but adds real value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (book and pay) plus the resource (airport transfer) and the payment mechanism (Stripe spt token), which clearly separates it from sibling quote/terms/start tools. An agent reading only the first sentence knows exactly what this does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition chain ('Before calling: get the exact price with get_transfer_quote, tell the traveller the price and the cancellation terms (get_booking_terms), and get their explicit yes'), naming the sibling tools to call first. It does not, however, explain when to use this versus the unmentioned start_transfer_booking sibling, leaving one routing ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_transfer_timingCheck pickup timingARead-onlyIdempotentInspect
Check whether a pickup can be booked online. Bookings need 12 hours' notice in Jamaica time. Give arrival_at (flight lands at MBJ) and, for the flight home, departure_at (hotel pickup) or departure_flight_at (flight departs; the pickup is worked out from it), each as "YYYY-MM-DDTHH:MM" Jamaica local time with no timezone suffix. Returns whether each leg is bookable and the earliest bookable time. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| arrival_at | No | Flight arrival at MBJ, "YYYY-MM-DDTHH:MM" Jamaica time | |
| departure_at | No | Hotel pickup for the flight home, "YYYY-MM-DDTHH:MM" Jamaica time | |
| departure_flight_at | No | Flight home departs MBJ, "YYYY-MM-DDTHH:MM" Jamaica time; the hotel pickup is 3 hours 30 minutes earlier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint, so safety is covered, but the description adds the non-obvious 12-hour notice business rule, the Jamaica-time constraint, and a summary of what is returned (bookability per leg plus earliest bookable time). The trailing 'Read-only' restates the annotation but the rest adds real behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then prerequisites, then parameter guidance, then the return summary — a logical order with no filler. It is dense in a single paragraph, but each clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by summarizing the return (per-leg bookability and earliest bookable time), and it specifies the exact input format and timezone for all three optional parameters. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema by disambiguating departure_at (hotel pickup) from departure_flight_at (flight departure, pickup derived from it) and presenting them as alternatives for the return leg. That relational framing is not in the individual property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — checking whether a pickup can be booked online — with the scope of both legs (arrival and flight home). It is clearly distinguishable from the sibling booking tools (book_and_pay_transfer, start_transfer_booking) because it only checks eligibility rather than transacting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition (12 hours' notice in Jamaica time) and explains which parameters apply to which leg, which tells the agent when the tool is applicable. It stops short of naming alternatives or stating exclusions (e.g. 'use book_and_pay_transfer to actually book'), so it is strong context but not a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_transfer_destinationFind a hotel or villaARead-onlyIdempotentInspect
Find hotels and villas MAPL Tours Jamaica drives to from Sangster International Airport (MBJ), Montego Bay, Jamaica. Returns up to 8 matches with the id to use in get_transfer_quote, or the "Other hotel or villa" id for each area when nothing matches. Covers 199 properties from Montego Bay to Negril, Ocho Rios, Falmouth and Lucea. Kingston, Port Antonio and Mandeville are quoted by email instead.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Hotel, villa, resort or town name, e.g. "Sandals Negril" or "Ocho Rios" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavior beyond them: capped at 8 matches, a per-area "Other hotel or villa" fallback id when nothing matches, and 199 properties across named regions. It also discloses the out-of-scope regions handled by email instead, which prevents a dead-end call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each carrying distinct load: what is searched, what comes back, coverage extent, and where the tool does not apply. The return-shape and fallback id lead before the regional caveat, so the most decision-relevant facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating result count, return id semantics, and the no-match fallback. For a one-parameter read with full annotation coverage, nothing an agent needs in order to call it correctly or interpret the response is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single query parameter is fully described there, so the schema does the heavy lifting. The description adds only indirect signal about input tolerance (town names as well as property names, implied by the area/fallback behavior), which is a marginal gain over the existing example-bearing schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Find hotels and villas"), scopes it geographically to properties served from MBJ, and ties the output to a sibling ("the id to use in get_transfer_quote"). An agent can distinguish this lookup step from booking/quote/pricing siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use this to obtain the id consumed by get_transfer_quote, and use email quoting for Kingston, Port Antonio and Mandeville. It gives a clear when-to-use context and a regional exclusion, but never names the other siblings (check_transfer_timing, get_booking_terms) or says those should be called after this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_booking_termsBooking termsARead-onlyIdempotentInspect
What a MAPL Tours Jamaica booking includes and the rules that apply: all-in pricing, notice needed, flight tracking, cancellation and refunds, payment methods and contact. Tell the traveller the cancellation terms before they book. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered; "Read-only" in the description merely repeats this. The description adds the useful behavioral fact that this is static policy content to be surfaced to the traveller before booking, but says nothing about freshness, scope of applicability, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the scope and content inventory; every clause carries information about what the tool returns. Minor waste in the trailing "Read-only," which duplicates the annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the full burden of telling the agent what comes back, and it does so by enumerating the policy topics covered. An agent has enough to decide to call it and to relay the content to a traveller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case: there is nothing for the description to disambiguate beyond what the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (MAPL Tours Jamaica booking terms) and enumerates the content it returns: pricing, notice, flight tracking, cancellation/refunds, payment methods, contact. This clearly separates it from the action-oriented siblings (start_tour_booking, get_transfer_quote), though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Tell the traveller the cancellation terms before they book" gives a concrete when-to-use trigger tied to the booking flow. It is clear context but stops short of naming alternatives or stating when this tool is NOT the right one (e.g., for a specific tour's terms).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tourTour details and priceARead-onlyIdempotentInspect
Details for one tour: what it includes, ages, fitness, what to bring, how long the outing takes from hotels in Montego Bay, Ocho Rios and Negril (fromHotelAndBack; duration is the time at the activity, or Full day / Half day), the exact total for a party size, and the earliest bookable date. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| tour | Yes | Tour title or slug from list_tours | |
| guests | No | Party size to price, default 2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the trailing 'Read-only.' is redundant. What earns credit is the substantive disclosure about the response itself: the duration vs fromHotelAndBack distinction, the Full day/Half day convention, that price is an exact total for a party size, and that the earliest bookable date is included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence leads with the core purpose and enumerates the return contents, followed by a short clarifying clause. It is front-loaded and mostly waste-free, though the trailing 'Read-only.' adds nothing given the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the returned data and does so field by field, while the annotations cover the safety profile. Nothing essential for correct invocation appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, but the description adds real meaning: it clarifies that pricing depends on party size ('the exact total for a party size') and explains the vehicle/time semantics surrounding fromHotelAndBack and duration, which the two schema fields alone do not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Details for one tour') and enumerates exactly what is returned: inclusions, ages, fitness, what to bring, duration, price total, and earliest bookable date. This clearly separates it from list_tours (enumeration) and start_tour_booking (mutation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — an agent can infer this is the detail/price lookup for a single tour, and the schema points back to list_tours for the identifier. However, the description never explicitly says when to use it versus alternatives (e.g., list_tours, start_tour_booking) or states any prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transfer_quotePrice an airport rideARead-onlyIdempotentInspect
Exact all-in price in USD for a private airport transfer between Sangster International Airport (MBJ) and a hotel or villa, per vehicle for up to 4 passengers (5 to 7 priced per person; 8 or more are quoted by email at contact@mapltours.com). Round trip or one way, either direction. Also says how long before the flight home the hotel pickup should be. Use before start_transfer_booking. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No | One-way only. Default airport_to_hotel | |
| trip_type | No | Default round_trip (airport to hotel and back) | |
| passengers | No | Number of passengers, 1 to 7. Default 2 | |
| destination | Yes | Hotel or villa name, or an id from find_transfer_destination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the closing 'Read-only' is redundant. Beyond the annotations, the description discloses the pricing model (per vehicle up to 4, per person for 5-7), the email escalation path for 8+, and that a timing recommendation is returned — genuinely useful behavioral context an agent cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and price scope, then degraded gracefully into the edge-case parenthetical and the sequencing hint. The nested parenthetical about 5-7/8+ passengers is dense but each clause carries information; only the trailing 'Read-only' duplicates the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does name the two key outputs (all-in price, recommended pre-flight pickup time). Combined with full schema coverage and complete read-only annotations, an agent has what it needs, though the exact response shape and currency/multi-vehicle handling remain implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description still earns an increment by explaining the capacity-to-pricing relationship tied to the 'passengers' parameter and confirming that round trip / one way applies in either direction, which the schema's enums alone don't convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns exact all-in USD price for a private airport transfer between MBJ and a hotel/villa), plus the scope constraints around vehicle capacity and party size. It also names the sibling it precedes (start_transfer_booking), so an agent can distinguish it from start_transfer_booking or get_tour without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear sequencing rule ('Use before start_transfer_booking') and a routing rule for out-of-scope requests (8+ passengers must email). It does not address the overlap with check_transfer_timing, even though the description claims this tool returns pickup-timing guidance that the sibling presumably also covers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_toursList toursARead-onlyIdempotentInspect
List the 20 private tours and day packages MAPL Tours Jamaica runs in Jamaica (Dunn's River, Blue Hole, bamboo rafting, Rick's Cafe, zipline, ATV, horseback and more). fromPriceUsd is the price for the smallest party; priceUnit says whether it covers a party of up to N people or one person. Use get_tour with guests for the exact total. Hotel pickup included. Optional keyword or area filter; returns up to 12 rows. Read-only. duration is time at the activity; get_tour adds hotel-and-back times.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Town or area, e.g. "Ocho Rios", "Negril", "Montego Bay" | |
| query | No | Keyword, e.g. "waterfall", "rafting", "sunset" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld=false, so safety is covered. The description adds real context: fromPriceUsd covers the smallest party, priceUnit disambiguates per-person vs per-party, up to 12 rows returned, hotel pickup included, and duration excludes transfer time – all disclosed caveats that prevent misreading the data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads scope and offering examples, then bundles the pricing and duration caveats efficiently. Dense but nearly every clause conveys a usable fact; the parenthetical tour list is the only slightly expendable part.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return fields (fromPriceUsd, priceUnit, duration) and does so adequately. Minor gap: it doesn't describe the shape of returned rows beyond pricing and duration, though for a list tool this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both 'area' and 'query' already documented with examples, so the baseline is 3. The description only says 'Optional keyword or area filter' without adding syntax, matching behavior, or precedence beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list), resource (private tours and day packages), operator and geography, plus concrete example offerings. It clearly separates itself from get_tour by scoping this as the browse/list entry point rather than the detail lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Use get_tour with guests for the exact total' for precise pricing, while this tool returns fromPriceUsd. It also states the filters are optional and the row cap, so an agent knows what to expect without trial-and-error.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_tour_bookingGet a booking link for a tourARead-onlyIdempotentInspect
Make a mapltours.com booking link for a tour or day package on a date for a party size. The traveller opens it and lands on checkout with the tour, date and guests filled in; they add contact details, accept the activity waiver and pay there. Books and charges nothing by itself. Needs 12 hours' notice; get_tour gives the earliest date and the exact price. Confirm tour, date, guests and price with the traveller first.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Tour date "YYYY-MM-DD" (Jamaica); needs 12 hours' notice, get_tour gives the earliest date | |
| tour | Yes | Tour title or slug from list_tours | |
| guests | Yes | ||
| pickup_hotel | No | Where the traveller is staying, for the hotel pickup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that the tool reserves and charges nothing itself, that the traveller completes checkout elsewhere (contact details, waiver, payment), and that a 12-hour lead time applies. This is exactly the workflow context annotations cannot convey, and it is consistent with readOnlyHint/destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the downstream flow, the non-charging guarantee, and prerequisites in a tight sequence. Every sentence carries actionable information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a link-generating tool with no output schema, the description fully specifies the effect (a checkout link pre-filled with tour, date and guests), the prerequisites, and the required traveller confirmation. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema already documents date, tour and pickup_hotel. The description reinforces meaning by framing date against the 12-hour notice rule and guests as 'party size', and adds the confirmation step, though it does not explain the guests 1-12 bound or pickup_hotel's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Make a mapltours.com booking link for a tour or day package'), plus the scoping inputs (date, party size). It clearly contrasts with the transfer siblings (start_transfer_booking, book_and_pay_transfer) by naming the tour/product domain and its non-charging nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete when-to-use conditions: needs 12 hours' notice, consult get_tour for earliest date and price, and confirm tour/date/guests/price with the traveller first. Prerequisites and the informational alternative are explicit, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_transfer_bookingGet a booking link for a rideARead-onlyIdempotentInspect
Make a mapltours.com booking link for an airport transfer. The traveller opens it and lands on checkout with the hotel, trip type, passengers, flights and times filled in; they add name, email and phone and pay there (card, Apple Pay, Google Pay or Link). Books and charges nothing by itself. A one-way needs direction: airport_to_hotel takes arrival_at and arrival_flight; hotel_to_airport takes departure_at (or departure_flight_at) and departure_flight. Confirm the details and the price from get_transfer_quote with the traveller first.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No | Required for a one-way | |
| trip_type | Yes | ||
| arrival_at | No | Flight arrival at MBJ, "YYYY-MM-DDTHH:MM" Jamaica time | |
| passengers | Yes | ||
| destination | Yes | Hotel or villa name, or id from find_transfer_destination | |
| departure_at | No | Hotel pickup for the flight home, "YYYY-MM-DDTHH:MM" Jamaica time. If you only know the flight time, pass departure_flight_at instead | |
| arrival_flight | No | Arrival flight number, e.g. AA1234 | |
| departure_flight | No | Departure flight number | |
| departure_flight_at | No | Flight home departs MBJ, "YYYY-MM-DDTHH:MM" Jamaica time; pickup is set 3 hours 30 minutes earlier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is covered. The description adds genuinely new behavioral context: the link lands the traveller on checkout with fields pre-filled, payment is handled by the traveller (card/Apple Pay/Google Pay/Link), and the tool itself books and charges nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core action and outcome, and every sentence carries information. The direction/flight-field sentence is dense and semicolon-packed, but it earns its space by encoding conditional requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a link-generation tool with no output schema and 78% parameter coverage, the description covers what the tool produces, what the end user must supply, the prerequisite quote step, and per-direction input rules. Only the absence of explicit failure/edge-case behavior keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 78%, so the baseline would be 3, but the description adds conditional semantics the schema does not encode: airport_to_hotel pairs with arrival_at and arrival_flight, while hotel_to_airport uses departure_at (or departure_flight_at) plus departure_flight. That dependency mapping is real value beyond the field-level descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Make a mapltours.com booking link for an airport transfer' — and immediately clarifies the scope by saying it 'Books and charges nothing by itself.' This clearly separates it from siblings like get_transfer_quote (pricing) and start_tour_booking (a different product).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete prerequisite — 'Confirm the details and the price from get_transfer_quote with the traveller first' — and spells out which inputs each trip direction requires. It stops short of stating when not to use the tool, so it is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
start_tour_booking1 field changed- changed
Input schema / properties / date / descriptionPrevious value: -"Tour date \"YYYY-MM-DD\" (Jamaica); needs 24 hours' notice, get_tour gives the earliest date"New value: +"Tour date \"YYYY-MM-DD\" (Jamaica); needs 12 hours' notice, get_tour gives the earliest date"
1 tool update
- Added
book_and_pay_transfer
8 tool updates
- First observed
check_transfer_timing - First observed
find_transfer_destination - First observed
get_booking_terms - First observed
get_tour - First observed
get_transfer_quote - First observed
list_tours - First observed
start_tour_booking - First observed
start_transfer_booking
Related MCP Connectors
Private airport & cruise transfers: Gold Coast, Brisbane, Byron Bay (Queensland). Quotes + bookings.
Fixed-price airport transfers and long rides from Upper Austria, Salzburg, Passau
Fixed-price quotes and bookings for private airport transfers: Gold Coast, Brisbane, Byron Bay.
Gulf cross-border private transfers: routes, per-vehicle prices, border steps, booking inquiries
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceFixed London chauffeur prices for AI agents: Heathrow/Gatwick/Stansted/Luton and cruise-port transfers, hourly and full-day hire, private day trips, Heathrow VIP meet & greet, plus pre-filled booking links. Public remote endpoint, no API key.MIT
- AlicenseAqualityFmaintenanceEnables booking premium private chauffeur transfers in Paris and across Europe directly from AI agents. Provides tools to list vehicles, get quotes, book rides, and retrieve service information.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to get fixed-price quotes and book London airport transfers, with flight validation and inter-agent communication via A2A protocol.MIT
- AlicenseAqualityCmaintenanceFirst dedicated Hawaii tourism MCP server. Search 2,583 tours, 579 events, Groupon deals across Oahu, Maui, Big Island, and Kauai. Every result includes affiliate booking links. Powered by aloha.fyi.42MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.