Daytrip
Server Details
Search, quote and book Daytrip private door-to-door car transfers in 130+ countries.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
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.
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.
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.
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 toolsget_booking_linkPrepare a Daytrip booking on daytrip.com (handover link)AInspect
Prepare a search_trips option on daytrip.com and return a link where the traveler finishes the booking themselves. Nothing is charged and no personal data is needed: on the link the traveler enters their name, email and phone, optional pickup address and flight number, and pays.
Use this when the traveler prefers to finish on the website, or when book_trip is not available to you. It does not create a booking.
Returns one of:
status "handover": give handoverUrl to the traveler and tell them to open it, complete their details and pay. summary describes the trip; the quoted price is held until expiresAt (the link keeps working afterwards, but the price may be re-quoted).
status "price_changed" (PRICE_CHANGED): the price moved since the search. Tell the traveler the new price; if they accept, call get_booking_link again with the returned offerId.
status "offer_expired" (OFFER_EXPIRED): call search_trips again and offer the fresh options.
status "route_not_available" (ROUTE_NOT_AVAILABLE): the trip can no longer be booked; 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.
Stops: pass availableStops entries as stops (price is known from the search) or other places as customStops (re-priced). The returned price is the total including stops.
Nothing is reserved or charged by this tool: the booking exists only once the traveler pays on the website. Never mention ids, tool names or internal steps to the traveler. Each call creates a new booking draft; call it once per confirmed choice.
| Name | Required | Description | Default |
|---|---|---|---|
| stops | No | Sightseeing stops from the search's availableStops the customer wants to add, in any order. | |
| adults | Yes | Number of adult passengers, including the lead traveler. | |
| locale | No | Language of the traveler's pages and emails (en, de, es, fr, pt). | en |
| offerId | Yes | offerId of the chosen search_trips option. | |
| children | No | Number of children. | |
| currency | No | ISO 4217 code to show the price in as well; use the one from search_trips. | |
| customStops | No | Stops at places not in availableStops. The trip is then routed and priced through them, so the price will differ from the search. | |
| vehicleType | Yes | vehicle.type of the chosen search_trips option (a class identifier such as sedan or van). | |
| additionalLuggage | No | Suitcases beyond one per passenger. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations: nothing is charged, no personal data needed, price held until expiresAt with re-quote caveat, each call creates a new draft, and call once per confirmed choice. Also documents the full status return vocabulary (handover, price_changed, offer_expired, route_not_available, invalid_input) with recovery actions.
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 purpose and handover semantics, and the status enumeration is genuinely useful. It is on the long side and repeats the no-charge/no-booking point in several places, but every section 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 fully compensates by enumerating return statuses and required agent actions. It covers parameters, error recovery, and behavioral caveats for a non-idempotent, open-world draft-creating tool. Nothing needed to invoke correctly 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% so baseline is 3, but the description adds real meaning: distinctions between stops (price known from search) and customStops (re-priced) clarify when to use which array, and it notes the returned price includes stops. This is meaningful value above 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 action (prepare a search_trips option and return a handover link) on a specific resource (daytrip.com booking). It explicitly distinguishes itself from book_trip and search_trips, so an agent can tell it apart from 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 names when to use it (traveler prefers the website, or book_trip is unavailable) and reinforces what it is not ("It does not create a booking"). The alternative selection is fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteQuote a Daytrip transferARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| stops | No | Sightseeing stops from the search's availableStops the customer wants to add, in any order. | |
| adults | Yes | Number of adult passengers, including the lead traveler. | |
| locale | No | Language of the traveler's pages and emails (en, de, es, fr, pt). | en |
| offerId | Yes | offerId of the chosen search_trips option. | |
| children | No | Number of children. | |
| currency | No | ISO 4217 code to show the price in as well; use the one from search_trips. | |
| customStops | No | Stops at places not in availableStops. The trip is then routed and priced through them, so the price will differ from the search. | |
| vehicleType | Yes | vehicle.type of the chosen search_trips option (a class identifier such as sedan or van). | |
| additionalLuggage | No | Suitcases beyond one per passenger. |
TDQS
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.
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.
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.
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.
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.
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 transfersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| adults | Yes | Number of adult passengers (the lead traveler counts as one). | |
| locale | No | Customer language (en, de, es, fr, pt). Used for the handover link. | en |
| origin | Yes | Pickup place as the customer said it: a city, airport, IATA code or "City, Country". To pick an ambiguous_location candidate, pass its label verbatim. | |
| children | No | Number of children (under 12). | |
| currency | No | ISO 4217 code the customer prefers (eur, usd, gbp, …). Adds priceInRequestedCurrency and makes the checkout charge in it. | |
| departureAt | Yes | Pickup 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. | |
| destination | Yes | Drop-off place, same rules as origin. | |
| additionalLuggage | No | Suitcases beyond one per passenger; each passenger already has one suitcase and one carry-on included. |
TDQS
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.
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.
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.
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.
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.
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.
3 tool updates
- First observed
get_booking_link - First observed
get_quote - First observed
search_trips
Related MCP Connectors
Book trip logistics in chat: cars, transfers, eSIM, luggage storage, tours & flight compensation.
Find, price, and book tours, day trips, and activities worldwide, with live dates and prices.
Search tours, attraction tickets, and holiday packages across 24 countries.
Search & compare prices for tours, activities and tickets across multiple providers.
Related MCP Servers
- 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
- AlicenseBqualityAmaintenanceOfficial MCP server for MAQAMI, a hotel and flight booking platform with 3M+ hotels. Search live hotel rates and flights, look up places, airports and hotel details, then prebook and book. Remote Streamable HTTP endpoint, no API key required.124156 npm2MIT
- AlicenseAqualityFmaintenanceReal-time last-minute tour and activity booking across 18 suppliers in 15 countries via the OCTO open standard. Search available slots, create Stripe checkout sessions, and check booking status.41MIT

Departi MCP Serverofficial
AlicenseAqualityCmaintenanceTravel compliance and trip planning for digital nomads — visa requirements, tax residency analysis, Schengen 90/180-day tracking, and curated accommodation, transport, and experience search across 189 European destinations.7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.