Skip to main content
Glama

Daytrip

Server Details

Search, quote and book Daytrip private door-to-door car transfers in 130+ countries.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation4/5

The three tools map to distinct funnel stages: search_trips (search options), get_quote (price a chosen option and issue a single-use quoteId), and get_booking_link (handover URL for the traveler to self-serve). Boundaries are clear, though get_quote and get_booking_link both take the same offerId/vehicleType/stops arguments and are only separated by the eventual outcome, which could cause occasional misselection.

Naming Consistency5/5

All three names follow a clean verb_noun snake_case pattern (search_trips, get_quote, get_booking_link). The verbs are semantically accurate: search for discovery, get for fetching a derived artifact.

Tool Count3/5

Three tools covering search, quote and handover is thin for a booking lifecycle and leaves the set at the borderline of under-scoped. The descriptions reference book_trip as a peer operation, implying the intended surface is larger than what is exposed here.

Completeness3/5

Search and handover-link paths are complete, but get_quote returns a quoteId explicitly for book_trip, which is not part of this server — a dead end unless the agent falls back to get_booking_link. There is also no way to retrieve or cancel an existing booking, so the lifecycle is only partially covered.

Available Tools

3 tools
get_quoteQuote a Daytrip transferA
Read-onlyIdempotent
Inspect

Price one search_trips option exactly as it will be booked: the chosen vehicle, the party and any stops. Returns everything the traveler must see before committing (seller, total price and currency, what is included, when they are charged, cancellation policy and free-cancellation deadline) and a single-use quoteId for book_trip.

Returns one of:

  • status "quoted": present price, cancellationTerms and paymentTiming to the traveler; if previousPrice is set, the price differs from the search option and must be confirmed again. The quote can be booked until expiresAt; afterwards call get_quote again.

  • status "offer_expired" (OFFER_EXPIRED): the search option is gone; call search_trips again.

  • status "route_not_available" (ROUTE_NOT_AVAILABLE): the trip can no longer be priced; call search_trips again or suggest alternatives.

  • status "invalid_input" (INVALID_INPUT): the vehicleType or a stop does not belong to that offer, or a customStops place could not be resolved; the message says what to fix.

Nothing is reserved and no personal data is needed. Each call prices the trip afresh.

NameRequiredDescriptionDefault
stopsNoSightseeing stops from the search's availableStops the customer wants to add, in any order.
adultsYesNumber of adult passengers, including the lead traveler.
localeNoLanguage of the traveler's pages and emails (en, de, es, fr, pt).en
offerIdYesofferId of the chosen search_trips option.
childrenNoNumber of children.
currencyNoISO 4217 code to show the price in as well; use the one from search_trips.
customStopsNoStops at places not in availableStops. The trip is then routed and priced through them, so the price will differ from the search.
vehicleTypeYesvehicle.type of the chosen search_trips option (a class identifier such as sedan or van).
additionalLuggageNoSuitcases beyond one per passenger.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare readOnlyHint/idempotentHint/destructiveHint=false, and the description corroborates rather than contradicts: 'Nothing is reserved and no personal data is needed. Each call prices the trip afresh.' It goes well beyond annotations by disclosing the quote validity window (expiresAt), the re-confirmation requirement when previousPrice is set, and what payload a successful quote returns.

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?

Front-loaded with the core purpose, then a clean status-by-status breakdown that every agent needs. It is on the long side, but nearly every line carries actionable information; only minor trimming is possible.

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?

With no output schema, the description carries the full return-value burden and does so: it enumerates all four statuses, the fields returned on success, and the quote's lifetime. An agent has everything needed to call it and interpret every response.

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?

Schema coverage is already 100%, so this scores above baseline only for added meaning, and it does add some: it explains that customStops get routed and therefore change the price versus the search, and that invalid_input arises when vehicleType or a stop does not belong to that offer. It does not elaborate on currency/locale/luggage behavior beyond the schema, keeping it at a 4.

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?

Opens with a specific verb + resource ('Price one search_trips option exactly as it will be booked') and explicitly scopes it to the chosen vehicle, party and stops. It names the sibling search_trips as the source of the offer, so an agent can distinguish it from search_trips and get_booking_link immediately.

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?

States the use case (everything the traveler must see before committing) and gives explicit recovery paths per failure mode: call get_quote again after expiresAt, call search_trips again on OFFER_EXPIRED/ROUTE_NOT_AVAILABLE, fix inputs on INVALID_INPUT. It also names the downstream consumer of quoteId (book_trip), so the call is clearly positioned in the flow.

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

search_tripsSearch Daytrip transfersA
Read-onlyIdempotent
Inspect

Search Daytrip private door-to-door car transfers between two places (city to city, airport to city, …) and get bookable prices for every vehicle class.

Returns one of:

  • status "ok": options[] (one per vehicle class) with price, capacity, duration and expiresAt, plus the resolved origin/destination and departureAt (local time). Present the options that fit the party (fitsPassengers) to the customer; when they choose, call get_quote with the option's offerId and vehicle.type (then book_trip with the quote), or get_booking_link with the same arguments for the traveler to finish on daytrip.com. availableStops[] lists sightseeing stops on the way with their extra cost per vehicle class (priceByVehicle, keyed by vehicle.type) and default time at the stop; offer them and pass the chosen ones to get_quote or get_booking_link. Only options with stopsAllowed can take stops (Lite classes are direct rides).

  • status "ambiguous_location" (code AMBIGUOUS_LOCATION): field says whether origin or destination was unclear, candidates[] lists the places it could mean. Ask the customer, then call search_trips again passing the chosen candidate's label verbatim in that field.

  • status "location_not_found" (LOCATION_NOT_FOUND): ask for a city, airport or IATA code.

  • status "invalid_departure" (INVALID_DEPARTURE): fix the date/time and retry.

  • status "route_not_available" (ROUTE_NOT_AVAILABLE): Daytrip does not serve that trip; suggest a nearby city/airport or another date.

  • status "price_unavailable" (PRICE_UNAVAILABLE): nothing could be priced for that date; suggest another date.

When talking to the customer, describe options by vehicle name and price and never mention ids, tool names or internal steps. Prices are per vehicle (not per person), all-inclusive and valid until expiresAt. price is in the trip's pricing currency; when a currency was requested and priceInRequestedCurrency is present, that is the amount the checkout charges, so quote that one to the customer. Only one-way transfers with a single vehicle are searched; larger parties may need two bookings. vehicle.type is the vehicle class identifier to pass on; show the customer vehicle.name. Read the daytrip://vehicle-classes and daytrip://cancellation-policy resources for what each class and policy means.

NameRequiredDescriptionDefault
adultsYesNumber of adult passengers (the lead traveler counts as one).
localeNoCustomer language (en, de, es, fr, pt). Used for the handover link.en
originYesPickup place as the customer said it: a city, airport, IATA code or "City, Country". To pick an ambiguous_location candidate, pass its label verbatim.
childrenNoNumber of children (under 12).
currencyNoISO 4217 code the customer prefers (eur, usd, gbp, …). Adds priceInRequestedCurrency and makes the checkout charge in it.
departureAtYesPickup date and time, ISO 8601. Without an offset it is local time at the pickup place (e.g. 2026-10-01T09:00); with an offset or Z it is converted to the pickup place's local time.
destinationYesDrop-off place, same rules as origin.
additionalLuggageNoSuitcases beyond one per passenger; each passenger already has one suitcase and one carry-on included.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description still adds real substance: prices are per vehicle and all-inclusive, valid until expiresAt, and priceInRequestedCurrency is what checkout actually charges. It also discloses the stops model (priceByVehicle, stopsAllowed, Lite classes being direct) and that only one-way single-vehicle trips are searched. Minor gap: no pagination or result-count expectations, though none appear to apply.

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?

Front-loaded with the one-line purpose followed by a scannable status-by-status breakdown, which suits a tool with six distinct error paths. It is long for a single tool, but nearly every sentence carries operational or customer-facing rules rather than restating the schema.

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?

With no output schema, the description fully carries the return-value burden by enumerating the options[] fields (price, capacity, duration, expiresAt, departureAt) and availableStops[] shape. Combined with the error taxonomy and currency rules, an agent has everything needed to call it and act on the result.

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?

Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter behavior the schema cannot express: party fit is evaluated via fitsPassengers, oversized parties may need two bookings, and the chosen stop list must be forwarded to get_quote/get_booking_link. It also clarifies that vehicle.type is the identifier to pass while vehicle.name is what the customer sees.

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?

States a specific verb and resource ('Search Daytrip private door-to-door car transfers') plus the scope ('between two places... bookable prices for every vehicle class'). It also implicitly separates itself from the retrieval siblings by framing search as the entry point that later feeds get_quote and get_booking_link.

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?

Gives an explicit decision tree: call get_quote with offerId and vehicle.type and then book_trip, or get_booking_link for self-serve checkout, plus a per-status recovery instruction for all six outcomes including re-calling search_trips with a candidate label verbatim. It also sets constraints (one-way, single vehicle, larger parties need two bookings).

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. 3 tool updates
    • First observedget_booking_link
    • First observedget_quote
    • First observedsearch_trips

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources