Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Dreamfare

REMOTE · API.DREAMFARE.APP · SCANNED SEP 24

Travel tools for AI agents: plan and edit real trips, search stays and tours, import travel videos.

0 this week 79 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 10319 tokens (~448/item across 23 items; 21 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management4
  • Stability check failed: schema churn in the 21 days we've observed: 25 tool removals, 0 breaking changes, 0 auth/transport breaks, 8 additions. See how to fix → Fail
Tool Coverage95
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 84% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
  • Supports UI / widget rendering.Pass
Install

How do I install the Dreamfare MCP server?

Dreamfare is a hosted endpoint at https://api.dreamfare.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.dreamfare.app

# add to Claude Code
claude mcp add --transport http app-dreamfare-mcp 'https://api.dreamfare.app/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "app-dreamfare-mcp": {
      "url": "https://api.dreamfare.app/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "app-dreamfare-mcp": {
      "type": "http",
      "url": "https://api.dreamfare.app/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.app-dreamfare-mcp]
url = "https://api.dreamfare.app/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-dreamfare-mcp": {
      "type": "remote",
      "url": "https://api.dreamfare.app/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add app-dreamfare-mcp --url 'https://api.dreamfare.app/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  app-dreamfare-mcp:
    url: "https://api.dreamfare.app/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "app-dreamfare-mcp": {
      "Transport": "http",
      "Url": "https://api.dreamfare.app/mcp"
    }
  }
}
# add to Vellum
assistant mcp add app-dreamfare-mcp -t streamable-http -u 'https://api.dreamfare.app/mcp'
// mcp.json
{
  "mcpServers": {
    "app-dreamfare-mcp": {
      "type": "http",
      "url": "https://api.dreamfare.app/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Sept 26 −4
    • Stability: 0.40 → fail security
    • A breaking change shipped without a version bump: still 1.0.0 security
    • Tool “add_flight_to_trip” was removed security
    • Tool “add_option_to_trip” was removed security
    • Tool “add_receipt” was removed security
    • Tool “add_saved_places_to_trip” was removed security
    • Tool “add_stops” was removed security
    • Tool “add_train_to_trip” was removed security
    • Tool “compare_options” was removed security
    • Tool “copy_trip” was removed security
    • Tool “display_results” was removed security
    • Tool “display_trip” was removed security
    • Tool “get_details” was removed security
    • Tool “get_flights” was removed security
    • Tool “get_import” was removed security
    • Tool “get_train_details” was removed security
    • Tool “import_file” was removed security
    • Tool “import_text” was removed security
    • Tool “import_video” was removed security
    • Tool “invite_to_trip” was removed security
    • Tool “list_crew” was removed security
    • Tool “list_receipts” was removed security
    • Tool “list_saved_finds” was removed security
    • Tool “list_saved_places” was removed security
    • Tool “list_travel_tips” was removed security
    • Tool “list_trips” was removed security
    • Tool “manage_packing” was removed security
    • Tool “manage_saved_places” was removed security
    • Tool “manage_travel_tips” was removed security
    • Tool “mark_stop_booked” was removed security
    • Tool “post_trip_chat” was removed security
    • Tool “read_trip_chat” was removed security
    • Tool “refine_train_results” was removed security
    • Tool “refresh_stay_prices” was removed security
    • Tool “save_place” was removed security
    • Tool “search_airports” was removed security
    • Tool “share_trip” was removed security
    • Tool “travel_extras” was removed security
    • Tool “vote_stop” was removed security
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “edit_library”, which the server declares destructive security
    • New tool “import_places”, which the server declares destructive security
    • Tool “create_trip” rewrote its description, which is the text the model reads security
    • Tool “delete_trip” rewrote its description, which is the text the model reads security
    • Tool “edit_trip” rewrote its description, which is the text the model reads security
    • Tool “explore_trips” rewrote its description, which is the text the model reads security
    • Tool “get_profile” rewrote its description, which is the text the model reads security
    • Tool “get_trip” rewrote its description, which is the text the model reads security
    • Tool “manage_crew” rewrote its description, which is the text the model reads security
    • Tool “plan_trip” rewrote its description, which is the text the model reads security
    • Tool “search_activities” rewrote its description, which is the text the model reads security
    • Tool “search_car_rentals” rewrote its description, which is the text the model reads security
    • Tool “search_flights” rewrote its description, which is the text the model reads security
    • Tool “search_places” rewrote its description, which is the text the model reads security
    • Tool “search_stays” rewrote its description, which is the text the model reads security
    • Tool “update_profile” rewrote its description, which is the text the model reads security
    • Tool “search_trains” rewrote its description, which is the text the model reads security
    • Schema quality: 288 → 448 functional
    • Tool coverage: 49% → 84% functional
    • New tool “add_to_trip” functional
    • New tool “display_card” functional
    • New tool “list_library” functional
    • New tool “research_options” functional
    • “create_trip” added an optional parameter “copyFromPublicationId” cosmetic
    • “create_trip” added an optional parameter “copyFromTripId” cosmetic
    • “get_trip” added an optional parameter “chatBefore” cosmetic
    • “get_trip” added an optional parameter “chatLimit” cosmetic
    • “get_trip” added an optional parameter “include” cosmetic
    • “manage_crew” added an optional parameter “invite” cosmetic
    • “manage_crew” added an optional parameter “post” cosmetic
    • “search_flights” added an optional parameter “searchId” cosmetic
    • “search_trains” added an optional parameter “journeyId” cosmetic
    • “search_trains” added an optional parameter “searchId” cosmetic
    • “explore_trips” reworded the description of “sort” cosmetic
    • “create_trip” reworded the description of “title” cosmetic
    • “explore_trips” reworded the description of “destination” cosmetic
    • “explore_trips” reworded the description of “limit” cosmetic
    • “explore_trips” reworded the description of “offset” cosmetic
    • “explore_trips” reworded the description of “q” cosmetic
    • “get_trip” reworded the description of “tripId” cosmetic
    • “manage_crew” reworded the description of “leave” cosmetic
    • “manage_crew” reworded the description of “remove” cosmetic
    • “manage_crew” reworded the description of “revokeInvites” cosmetic
    • “manage_crew” reworded the description of “setRole” cosmetic
    • “manage_crew” reworded the description of “tripId” cosmetic
    • “plan_trip” reworded the description of “currency” cosmetic
    • “plan_trip” reworded the description of “destinationCountryCode” cosmetic
    • “plan_trip” reworded the description of “logistics” cosmetic
    • “plan_trip” reworded the description of “partySize” cosmetic
    • “plan_trip” reworded the description of “savedPlaceIds” cosmetic
    • “plan_trip” reworded the description of “title” cosmetic
    • “search_activities” reworded the description of “fallback” cosmetic
    • “search_activities” reworded the description of “flags” cosmetic
    • “search_activities” reworded the description of “sort” cosmetic
    • “search_activities” reworded the description of “timeOfDay” cosmetic
    • “search_car_rentals” reworded the description of “driverAge” cosmetic
    • “search_car_rentals” reworded the description of “dropoffAirport” cosmetic
    • “search_car_rentals” reworded the description of “dropoffTime” cosmetic
    • “search_car_rentals” reworded the description of “licenseCountry” cosmetic
    • “search_car_rentals” reworded the description of “maxTotalAmount” cosmetic
    • “search_car_rentals” reworded the description of “minSeats” cosmetic
    • “search_car_rentals” reworded the description of “pickupAirport” cosmetic
    • “search_car_rentals” reworded the description of “pickupTime” cosmetic
    • “search_car_rentals” reworded the description of “transmission” cosmetic
    • “search_flights” reworded the description of “cabin” cosmetic
    • “search_flights” reworded the description of “departDate” cosmetic
    • “search_flights” reworded the description of “destination” cosmetic
    • “search_flights” reworded the description of “origin” cosmetic
    • “search_flights” reworded the description of “priceBasis” cosmetic
    • “search_flights” reworded the description of “sort” cosmetic
    • “search_places” reworded the description of “kind” cosmetic
    • “search_places” reworded the description of “sort” cosmetic
    • “search_stays” reworded the description of “constraintMode” cosmetic
    • “search_stays” reworded the description of “fallback” cosmetic
    • “search_stays” reworded the description of “sort” cosmetic
    • “search_stays” reworded the description of “unknownPolicy” cosmetic
    • “search_trains” reworded the description of “departAfter” cosmetic
    • “search_trains” reworded the description of “departBefore” cosmetic
    • “search_trains” reworded the description of “departDate” cosmetic
    • “search_trains” reworded the description of “destination” cosmetic
    • “search_trains” reworded the description of “maxChanges” cosmetic
    • “search_trains” reworded the description of “maxDurationMinutes” cosmetic
    • “search_trains” reworded the description of “maxTotalAmount” cosmetic
    • “search_trains” reworded the description of “origin” cosmetic
    • “search_trains” reworded the description of “passengers” cosmetic
    • “search_trains” reworded the description of “returnDate” cosmetic
    • “search_trains” reworded the description of “returnDepartAfter” cosmetic
    • “search_trains” reworded the description of “returnDepartBefore” cosmetic
    • “search_trains” reworded the description of “sort” cosmetic
    • “update_profile” reworded the description of “bio” cosmetic
    • “update_profile” reworded the description of “displayName” cosmetic
    • “update_profile” reworded the description of “homeCurrency” cosmetic
    • “update_profile” reworded the description of “nationality” cosmetic
    • “update_profile” reworded the description of “visitedCountries” cosmetic
    • “delete_trip” dropped the optional parameter “presentation” cosmetic
    • “create_trip” made “title” optional cosmetic
    • “get_trip” made “tripId” optional cosmetic
    • “search_flights” made “departDate” optional cosmetic
    • “search_flights” made “destination” optional cosmetic
    • “search_flights” made “origin” optional cosmetic
    • “search_trains” made “departDate” optional cosmetic
    • “search_trains” made “destination” optional cosmetic
    • “search_trains” made “origin” optional cosmetic
    • Tool “get_trip” changed its title: Read a trip → Read a trip, or list trips cosmetic
    • Tool “manage_crew” changed its title: Change, remove or revoke on a trip's crew → Change a trip's crew or talk to it cosmetic
  • 14 Sept 26 0

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

    • Tool “add_flight_to_trip” rewrote its description, which is the text the model reads security
    • Tool “add_option_to_trip” rewrote its description, which is the text the model reads security
    • Tool “add_receipt” rewrote its description, which is the text the model reads security
    • Tool “add_saved_places_to_trip” rewrote its description, which is the text the model reads security
    • Tool “add_stops” rewrote its description, which is the text the model reads security
    • Tool “compare_options” rewrote its description, which is the text the model reads security
    • Tool “copy_trip” rewrote its description, which is the text the model reads security
    • Tool “create_trip” rewrote its description, which is the text the model reads security
    • Tool “delete_trip” rewrote its description, which is the text the model reads security
    • Tool “edit_trip” rewrote its description, which is the text the model reads security
    • Tool “explore_trips” rewrote its description, which is the text the model reads security
    • Tool “get_details” rewrote its description, which is the text the model reads security
    • Tool “get_flights” rewrote its description, which is the text the model reads security
    • Tool “get_import” rewrote its description, which is the text the model reads security
    • Tool “get_profile” rewrote its description, which is the text the model reads security
    • Tool “get_trip” rewrote its description, which is the text the model reads security
    • Tool “import_file” rewrote its description, which is the text the model reads security
    • Tool “import_text” rewrote its description, which is the text the model reads security
    • Tool “import_video” rewrote its description, which is the text the model reads security
    • Tool “invite_to_trip” rewrote its description, which is the text the model reads security
    • Tool “list_crew” rewrote its description, which is the text the model reads security
    • Tool “list_receipts” rewrote its description, which is the text the model reads security
    • Tool “list_saved_places” rewrote its description, which is the text the model reads security
    • Tool “list_travel_tips” rewrote its description, which is the text the model reads security
    • Tool “list_trips” rewrote its description, which is the text the model reads security
    • Tool “manage_crew” rewrote its description, which is the text the model reads security
    • Tool “manage_packing” rewrote its description, which is the text the model reads security
    • Tool “manage_saved_places” rewrote its description, which is the text the model reads security
    • Tool “manage_travel_tips” rewrote its description, which is the text the model reads security
    • Tool “mark_stop_booked” rewrote its description, which is the text the model reads security
    • Tool “plan_trip” rewrote its description, which is the text the model reads security
    • Tool coverage: 54% → 49% functional
    • Schema quality: 222 → 288 functional
    • Schema quality: good → excellent functional
    • “add_option_to_trip” added an optional parameter “optionId” cosmetic
    • “add_option_to_trip” added an optional parameter “resultId” cosmetic
    • “compare_options” added an optional parameter “optionIds” cosmetic
    • “compare_options” added an optional parameter “resultId” cosmetic
    • “get_details” added an optional parameter “optionId” cosmetic
    • “get_details” added an optional parameter “resultId” cosmetic
    • “get_flights” added an optional parameter “arriveBy” cosmetic
    • “get_flights” added an optional parameter “returnArriveBy” cosmetic
    • “plan_trip” added an optional parameter “durationDays” cosmetic
    • “plan_trip” added an optional parameter “logistics” cosmetic
    • “create_trip” reworded the description of “currency” cosmetic
    • “import_video” reworded the description of “url” cosmetic
    • “plan_trip” reworded the description of “endDate” cosmetic
    • “get_trip” dropped the optional parameter “presentation” cosmetic
    • “add_option_to_trip” made “kind” optional cosmetic
    • “add_option_to_trip” made “option” optional cosmetic
    • “compare_options” made “kind” optional cosmetic
    • “compare_options” made “options” optional cosmetic
    • “get_details” made “kind” optional cosmetic
    • Tool “import_video” changed its title: Import places from a video or post → Import travel places and tips from a link cosmetic
  • 13 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 11 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 8 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 7 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 6 Sept 26 −1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

  • 5 Sept 26 +1

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Sept 2026 · Probed https://api.dreamfare.app/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.dreamfare.app CN=YE2,O=Let's Encrypt,C=US 4 Sept 2026 3 Dec 2026 ECDSA 256 ECDSA-SHA384 50af4a75f484b67575cf21f32fbb8e8ba99
SANs: api.dreamfare.app
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.dreamfare.app. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
dreamfare.app. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://api.dreamfare.app/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://api.dreamfare.app/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=31536000; includeSubDomains
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy no-referrer

Protected resource metadata

Document https://api.dreamfare.app/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://api.dreamfare.app/mcp
Authorisation server https://api.dreamfare.app

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.dreamfare.app/mcp Verified 200
http (plaintext) http://api.dreamfare.app/mcp HTTPS enforced 301 https://api.dreamfare.app/mcp
MCP tools · 21 exposed · ~10,002 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_to_trip ~889

Put something on a trip as stops. source says what: stops (plain stops you describe in stops), saved_places (library places with their pins, photos and links; by savedPlaceIds, folderName, or importId for everything an import found), search_result (one option from search_stays, search_activities or search_places by resultId + optionId), flight (a fare from search_flights by searchId + offerId), train (a fare from search_trains by searchId + journeyId), receipt (a booking confirmation as text or base64 image/PDF; parsed, filed on the trip, and the matching stop marked booked). Say which day with dayIndex or date; a stay defaults to its check-in date, a flight or train to its departure day. These are plans, not bookings: the traveler books through each stop's bookingUrl. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
checkIn(source=search_result) Stays: required
checkOut(source=search_result) Stays: required
contentTypestring(source=receipt) Type of the base64 bytes in data
datastring(source=receipt) Raw base64 bytes of the image or PDF, no data URL prefix
dateThe day's calendar date (YYYY-MM-DD) instead of dayIndex
dayIndex0-based day for the stop (stops carry their own); or give date instead
folderNamestring(source=saved_places) Every place in this library folder
guests(source=search_result) Stays: travelers sharing the room
importIdstring(source=saved_places) Everything an import found; the import's own day hints place each stop
journeyIdstring(source=train) The journey's id from that search
kindstring(source=search_result) What the option is, for legacy object callers. stay = a search_stays property. activity = a search_activities product. place = a search_places result's itemDraft. Restored from…
offerIdstring(source=flight) The fare's id from that search
optionobject(source=search_result) The option/offer object (or, for kind 'place', the itemDraft), unchanged
optionIdstringExact propertyId (stay), productId (activity), or id (place) from that search reply
presentationobject
resultIdstringThe search reply's display.resultId; account-bound and retained for 30 minutes
savedPlaceIdsarray(source=saved_places) Place ids from list_library
searchIdstring(source=flight, train) The searchId returned by search_flights or search_trains
sourcestringyesstops = plain stops described in `stops`; saved_places = library places by savedPlaceIds, folderName or importId, with pins, photos and links intact; search_result = one search option by resultId + o…
spreadAcrossDaysboolean(source=saved_places) Deal the places out across the trip's days in order instead of one day
stopIdstring(source=receipt) Link the confirmation to this stop and mark it booked
stopsarray(source=stops) Each stop names its day with dayIndex or date
textstring(source=receipt) The confirmation text; omit when sending image/PDF bytes
timeStart time at the destination, HH:MM (a stay's check-in time; saved_places: the first place of each day)
tripIdstringyes

No output schema declared.

No examples provided.

create_trip ~420

Save a travel plan as a Dreamfare trip the traveler can open, edit with their crew, and book. Pass the full day-by-day plan in one call via days; stops are enriched shortly after creation (photos, map pins, booking links). Use plan_trip instead when the traveler wants Dreamfare's planner to build the days. To copy a trip, pass copyFromPublicationId (a trip from explore_trips; keeps the creator's credit) or copyFromTripId (one of the traveler's own) and no days. Before planning a destination, check list_library for the traveler's saves there and ask whether to include them (add_to_trip source=saved_places keeps their pins and links). Returns the trip and its URL; always give the traveler that URL. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
adultsintegerAdults travelling; wins over partySize
cabinClass
childrenAgesarrayOne age per child travelling
copyFromPublicationIdstringCopy a published trip (publicationId from explore_trips) into the traveler's account
copyFromTripIdstringDuplicate one of the traveler's own trips
currencystringTrip budgeting currency; defaults to the traveler's home currency, then USD
daysarrayDay-by-day plan; day 1 falls on startDate when dates are set
descriptionstring
destinationCountryCodestringISO 3166-1 alpha-2
destinationNamestringCity or region, e.g. 'Tokyo'
endDate
partySizeinteger
presentationobject
roomsinteger
startDatestring
titlestringRequired unless copying

No output schema declared.

No examples provided.

delete_trip ~85

Delete a trip the traveler owns (also unpublishes it from Explore). Requires echoing the exact trip title as confirmTitle; only call this after the traveler explicitly asks to delete the trip. Returns data plus display.resultId; call display_card to show it.

NameTypeReqDescription
confirmTitlestringyesThe trip's exact title, as confirmation
tripIdstringyes

No output schema declared.

No examples provided.

display_card ~201

Show a Dreamfare card to the traveler: a trip's itinerary (tripId) or the details of an earlier result (resultId, from that tool's display.resultId). Call it once, after the requested work is done or when the traveler asks to see something; never after every intermediate call. It reads a saved snapshot retained for 30 minutes and never repeats a search, edit, import, message or charge. If a snapshot has expired, refresh it with a read-only lookup rather than repeating a write. This is the only tool that opens a visual; every other tool returns data. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
presentationobject
resultIdstringShow an earlier result by its display.resultId; never invent this id
tripIdstringShow this trip's itinerary

No output schema declared.

No examples provided.

edit_library ~357

Change what the traveler has saved, in one call: save a place, delete places, move places into a folder or out to unsorted, rename a place, create, rename or delete folders, and add or remove travel tips. Save a place when the traveler wants it remembered without putting it on a trip yet; put library places on a trip with add_to_trip source=saved_places. Ids and folder names come from list_library. Deleting a folder keeps its places as unsorted. Returns the places shelf, plus savedPlace and tips for the parts that ran. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
addTipsarrayTips to write into the notebook. Leave areaName out for advice that travels everywhere.
createFoldersarrayFolder names to create; an existing name is left alone.
deleteFoldersarrayDelete folders by name; their places survive as unsorted.
deletePlacesarraySaved place ids to delete from the library.
movearrayMove places: folderName null means unsorted, and a new name creates the folder.
presentationobject
removeTipsarrayTip ids to delete (list_library with kind tips).
renamearrayGive saved places new titles.
renameFoldersarrayRename folders by name.
savePlaceobjectRemember one place. Saving a title already in the library is a no-op.
showFolderstringWhich folder the returned shelf shows.

No output schema declared.

No examples provided.

edit_trip ~245

Every change to an existing trip in one batched call. Structural actions: update_trip (details and notes), update_stop / remove_stop / move_stop (by stopId from get_trip), add_day / update_day / remove_day (by 0-based dayIndex). Side actions: packing (the packing list), mark_booked (record a booking the traveler made), vote_stop (crew votes), refresh_stay_prices (re-quote partner-priced stays). Stage actions, at most one per call and run last: finalize locks the trip for sharing and booking, reopen unlocks it, publish puts a finalized trip on a public link and Explore, unpublish takes it off. Omitted fields keep their value; null clears. A finalized trip rejects structural edits, so reopen it in its own call first. remove_stop and remove_day delete data. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
actionsarrayyes
presentationobject
tripIdstringyes

No output schema declared.

No examples provided.

explore_trips ~211

Trips other travelers published on Dreamfare, by destination and free text: real itineraries with stops, photos and creator credit. Give the traveler their own editable copy with create_trip copyFromPublicationId. Use it for inspiration and for how locals actually route a city, not for live prices. Continue the same search with nextOffset. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
destinationstringCity, region or country the trip goes to.
limitintegerHow many trips to return.
offsetintegerSkip this many trips. Pass the nextOffset from the previous call.
presentationobject
qstringWords in the title or summary.
sortstringpopular: most liked, saved and copied first. newest: most recently published first.

No output schema declared.

No examples provided.

get_profile ~87

The traveler's Dreamfare account snapshot: profile, membership tier, Stardust credits, and wallet balance (commission earned through tracked bookings). Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
presentationobject

No output schema declared.

No examples provided.

get_trip ~270

Read a trip, or list the traveler's trips (own and shared, newest first) when tripId is omitted. A trip comes back with its days and stops (stopIds for edit_trip), the packing list, tips for the destination, the sharing state, and per-stop booking links; bookings made through a stop's bookingUrl earn the traveler commission back. include adds essentials (tracked partner links for an eSIM, rental cars and transfers), crew (members, roles, open invites), receipts (filed booking confirmations) and chat (the crew chat, newest last; chatBefore pages back). Read silently while planning; show the plan with display_card. Returns data plus display.resultId; call display_card to show it.

NameTypeReqDescription
chatBeforestringWith include chat: only messages before this ISO timestamp, to page further back
chatLimitintegerWith include chat: how many messages
includearrayExtra sections to fold in: essentials = tracked eSIM, rental-car and transfer links for the destination; crew = owner, collaborators with roles, and open invites; receipts = booking confirmations fil…
tripIdstringOmit to list the traveler's trips instead

No output schema declared.

No examples provided.

import_places ~380

Pull the real places and travel tips out of something the traveler shares and save them to their library. source url reads a TikTok, Instagram, YouTube, Facebook, Reddit, blog or other travel page on the Dreamfare server, subject to the source being reachable. source text reads words they pasted. source file reads a screenshot or travel PDF. Runs in the background: poll list_library with the returned importId until status is done or failed, about 20 to 90 seconds. Every place and tip is saved with its source, so list_library finds them later. Once done, add them to a trip with add_to_trip source=saved_places (importId keeps the pins, photos and tips) or plan days around them with plan_trip. General travel tips are advice, not stops. Costs Stardust credits exactly like importing in the app, and a failed import refunds them. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
contentTypestring(source=file) The bytes' media type. image/jpeg, image/png, image/webp and image/heic are screenshots or photos; application/pdf is a travel document.
datastring(source=file) Raw base64 bytes, no data URL prefix.
presentationobject
sourcestringyesWhere the places come from. url: a link the traveler shared. text: words they pasted. file: a screenshot or PDF they supplied.
textstring(source=text) The pasted text, verbatim. At least 40 characters.
urlstring(source=url) The video, post or blog address, exactly as shared.

No output schema declared.

No examples provided.

list_library ~443

Read what the traveler has saved: their places with folders, their travel-tips notebook, and the results of an import. Pass importId to follow an import started by import_places: while status is neither done nor failed, call again after about 15 seconds. Pass query or area to search places and tips together, with the source each one came from. Pass folderName, type or sort to browse the places shelf itself, and offset with the returned nextOffset to continue. Tips are advice, never itinerary stops. Put library places on a trip with add_to_trip source=saved_places (by savedPlaceIds, folderName or importId), or plan days around them with plan_trip. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
areastringDestination to scope the answer to, such as 'Lisbon'. General tips come with it.
folderNamestringPlaces only: one folder's places; 'unsorted' means places in no folder. Keeps the answer on the places shelf even with a query.
importIdstringFollow this import: its status and every place and tip it extracted.
kindstringWhat to read. all: saved places and tips together. places: saved places only. tips: the tips notebook only.
limitintegerHow many entries to return. Searches return at most 8; the shelf defaults to 40.
offsetintegerSkip this many entries. Pass the nextOffset from the previous call.
presentationobject
querystringWords to look for in saved places and tips, such as 'airport train'.
sortstringPlaces only. newest: most recently saved first. oldest: earliest saved first. name: alphabetical by title.
typestringPlaces only. all: everything saved. places: individual places. areas: whole-city or region entries, which are destinations rather than stops.

No output schema declared.

No examples provided.

manage_crew ~323

Everything that changes who is on a trip, plus the crew chat, in one call: invite someone, change a member's role, remove a member, leave the trip, revoke an open invite, and post a message. Read the crew and the chat first with get_trip include crew and include chat: collaboratorId, invite ids and member userIds all come from there. Anyone who can edit the trip may invite and post, only the owner may set roles, remove members or revoke invites, and any member other than the owner may leave. An emailed invite leaves Dreamfare. Returns the crew, plus invite and posted for the parts that ran. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
inviteobjectCreate an invite link. With no email, the returned link is what to share.
leavebooleanRemove yourself from the trip. The owner cannot leave; delete the trip instead.
postobjectSay something to the crew in the trip's chat.
presentationobject
removearrayOwner only: collaboratorIds to take off the trip.
revokeInvitesarrayOwner only: invite ids to kill, so the links stop working.
setRolearrayOwner only: change what these members may do.
tripIdstringyesThe trip whose crew is changing.

No output schema declared.

No examples provided.

plan_trip ~527

Build a complete day-by-day trip in one call with Dreamfare's own planner: real venues with their opening hours, a stay, activities from partner inventory, the traveler's saved places woven in, pins, photos and booking links, all stitched server-side in about 10 seconds. Prefer it for 'plan me N days in X'. Use create_trip when the traveler dictated the stops themselves. The traveler's saved places at the destination count even when they do not mention them: pass savedPlaceIds or folderName for the ones they want in, or includeSavedPlaces (true = all of them, false = none). Leave all three out and, when they have saves there, the call returns them unbuilt and uncharged so you can ask first. Costs Stardust credits like planning in the app, and get_profile shows the balance. Give the traveler the trip URL. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
briefstringyesWhat the traveler wants, in their words: pace, interests, budget, must-sees, dietary needs
currencystringISO currency code for the trip's prices; defaults to the traveler's home currency.
destinationCountryCodestringISO alpha-2 country code of the destination.
destinationNamestringyesCity or region, e.g. 'Lisbon'
durationDaysintegerNumber of itinerary days, even without calendar dates. With one date, derives the other; with both dates, must equal their inclusive span. Default 4 when dates do not determine duration.
endDate
folderNamestringWeave in every place from this saved-places folder (max 20)
includeSavedPlacesbooleanThe traveler's answer about their saved places at the destination: true weaves in all of them (max 20), false leaves them out. Omit it before you've asked.
logisticsobjectAlready-booked stays and flights; the planner keeps these fixed and plans around them.
partySizeintegerHow many people travel; sizes the stay and the costs.
presentationobject
savedPlaceIdsarraySaved places to weave into the days; ids come from list_library.
startDatestring
titlestringTrip title; defaults to the destination.

No output schema declared.

No examples provided.

research_options ~837

Research options from an earlier search: one in depth, or two to five side by side. Pass resultId (that search reply's display.resultId) with optionIds. One id returns everything known about that option: photos, an editorial summary and what reviewers say, key facts (stars, guest score, capacity, cancellation and instant-book policies, duration, languages, meeting point, inclusions, itinerary, opening hours, price level, phone, website), features, the exact location, and prices per booking site for stays plus tours and tickets at landmarks. Two to five ids return one table: price, rating and reviews, distance, duration, cancellation and features, with the best cell in each row marked and verdict naming the winners. Use it when the traveler asks about one option ('tell me more', 'is it near', 'what's included', 'can I cancel', 'is it open Sunday'), when they are weighing a few ('which of these', 'A or B', 'the cheapest that is still well rated'), and before recommending one. Every option is researched fresh, so the answer is exact rather than a summary of the search screen. Stays: pass checkIn, checkOut and guests so prices cover the traveler's dates. Legacy callers without a resultId can echo search objects in option or options, pass a search_places placeId as id, or a name with destination. Attach what the traveler picks with add_to_trip source 'search_result', reusing the same resultId and optionId. Read-only, and it costs nothing. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
checkInstringStays: the traveler's check-in date, so prices cover their nights
checkOutStays: the traveler's check-out date
criteriaarrayComparison only: compare these rows, in this order, with no duplicates. Stays take nightly (per-night price), total (whole-stay price), stars, rating, reviews, distance, sleeps, cancellation, feature…
currencystringISO pricing currency; defaults to the traveler's home currency
dateActivities: the day the traveler has in mind
destinationstringCity the options are in; anchors name lookups and distances
guestsintegerStays: travelers sharing the room
idstringA search_places result's placeId (kind 'place')
kindstringWhat the options are, for legacy object callers. stay = a property from search_stays | activity = a product from search_activities | place = a restaurant, shop, landmark or Google-listed hotel from s…
namestringLook up by name when there is no object: 'Time Out Market'
nearstringThe landmark or neighborhood the search was anchored on, so distances read 'from Alfama'
optionobjectLegacy single-option research: the search result echoed unchanged
optionIdsarrayExact IDs from that search reply (propertyId for a stay, productId for an activity, id for a place), in the order to research. One id returns the full detail; two to five return a comparison in this…
optionsarrayLegacy comparison: two to five search results of one kind, echoed unchanged
presentationobject
resultIdstringThe search reply's display.resultId; account-bound and retained for 30 minutes

No output schema declared.

No examples provided.

search_activities ~800

Search bookable activities, tours and experiences for a destination. Say what kind with q ('food tour', 'sunset cruise', 'day trip to Sintra') and narrow with category, flags, tags, duration or minRating. Default order is partner relevance: for a budget or a 'cheaper' ask set maxPrice or minPrice and sort cheapest instead of repeating the search, and read priceRange for what was found. Each result carries tags, flags and a short description. Plain activity stops added with add_to_trip source 'stops' are matched to partners automatically, so search here only when the traveler wants options. Research one, or weigh two to five, with research_options using this reply's display.resultId and each productId; attach the pick with add_to_trip source 'search_result'. Read-only, and it costs nothing. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
categorystringKeep only products whose partner tags match ('Food & Drink', 'Day Trips', 'Museums', 'Walking Tours')
currencystring
datestring
destinationstringyes
fallbackstringWhat to do when nothing matches. cheapest = return the cheapest available, labeled as alternatives (default) | none = keep the filters strict and return nothing
flagsarrayEvery kept product must carry all of these. free_cancellation = cancellable for a refund | skip_the_line = priority entry | private_tour = your party only | likely_to_sell_out = limited availability
limitinteger
maxDistanceKmnumberDrop products whose meeting point is farther than this from `near`
maxDurationMinutesinteger'Under 3 hours' = 180
maxPricenumberPer-person price ceiling, MAJOR units of the pricing currency (50 = $50)
minDurationMinutesinteger
minPricenumberPer-person price floor, major units
minRatingnumberTraveler-rating floor, 0–5
minReviewsinteger'Well reviewed' / 'popular': ignore products with fewer reviews than this (300 is a solid bar)
namestringONE specific product the traveler named ('Devour Lisbon food tour'): found on its own terms and leads the list. A kind of experience is q
nearstringA landmark, neighborhood or hotel inside the destination to search around: products with a known meeting point stay within 5 km (or maxDistanceKm) and report distanceMeters, nearest first
offsetinteger'Show me more': skip this many products (12 per page) instead of repeating the same search
presentationobject
qstringWhat kind of experience, in the traveler's words: 'food tour', 'sunset cruise', 'kayaking'
sortstringbest = partner relevance (default) | cheapest = lowest per-person price | rating = best reviewed first | duration = shortest first
tagsarrayPartner tag words EVERY kept product must carry: 'kid' / 'family', 'wheelchair', 'small group', 'private', 'romantic', 'sunset', 'night', 'luxury', 'self-guided', 'audio guide', 'hop-on hop-off'. For…
timeOfDaystringKeeps products whose listed start times fall in that window; products with no listed time stay. morning = before noon | afternoon = noon to 17:00 | evening = after 17:00

No output schema declared.

No examples provided.

search_car_rentals ~384

Search Trip.com rental cars for an airport pickup and drop-off, with exact local dates and times, the driver's age and the licence's issuing country. Ask for a missing age or licence country; never guess either. Trip.com quotes a 30 to 60 driver-age band for that range, while supplier eligibility uses the real age. Returned prices are rental totals, not daily rates, and deposits sit outside them. Links open a search the traveler completes: they confirm the vehicle, the policies and the final price there. There is no in-app booking, and a failed source never means no cars exist. Read-only, and it costs nothing. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
currencystring
driverAgeintegeryesThe driver's actual age; ask, never guess
dropoffAirportstringDrop-off airport IATA code; defaults to the pickup airport
dropoffDateyes
dropoffTimestringyesLocal drop-off time, HH:MM
licenseCountrystringyesThe driving licence's issuing country, ISO2; ask, never guess
maxTotalAmountintegerRental-total ceiling in integer minor units of currency
minSeatsintegerKeep only cars with at least this many seats
pickupAirportstringyesPickup airport, exact IATA code. Resolve a city name with search_flights first.
pickupDatestringyes
pickupTimestringyesLocal pickup time, HH:MM
presentationobject
transmissionstringautomatic = self-shifting gearbox | manual = stick shift

No output schema declared.

No examples provided.

search_flights ~1,135

Search and compare real flights for a route and dates, or re-read an earlier board. origin and destination take an IATA airport or metro code, or a plain city or airport name that is resolved here; when several cities match or none does, the reply is an error carrying candidates, so ask the traveler and search again with a code. Pass searchId to filter, sort or re-read a board without another scrape; a partial board can gain fares when read again. Every fare carries the quote of each site that answered. Never imply a site that did not answer was searched. Returned amounts, minTotalAmount and maxTotalAmount are whole-party integer minor units; maxTotal and minTotal take normal currency units and priceBasis says whether they mean the party or a seat. Lead with the per-seat price and its seats multiplier when the party buys more than one seat, then name the whole-party total once. Clock filters are local to each departure or arrival airport. For a deadline such as home by Sunday evening resolve the exact date and use returnArriveBy; arriveBy is the outbound equivalent. bookingUrl opens the exact itinerary on bookOn, itineraryUrl is that provider's own page, sourceUrl is research evidence only. Attach a fare with add_to_trip source 'flight', this searchId and the fare's offerId. Prices are indicative until the traveler books. Returns data plus display.resultId; call display_card to show it.

NameTypeReqDescription
airlinesOnly these IATA carrier codes on every segment
arriveAfterHH:MM local at the outbound destination
arriveBeforeHH:MM local at the outbound destination
arriveBystringAbsolute outbound arrival deadline YYYY-MM-DDTHH:MM in the arrival airport local calendar
cabinstringeconomy = the standard cabin | premium_economy = the extra-legroom cabin | business = lie-flat or wide seat | first = the top cabin
cabinBagOnly fares including a cabin bag
checkedBagOnly fares including a checked bag
childrenChildren aged 2 to 11
currencystringISO pricing currency; defaults to the traveler's home currency
departAfterHH:MM local at the outbound origin
departBeforeHH:MM local at the outbound origin
departDatestringOutbound date, YYYY-MM-DD, within 330 days. Omit only when refining with searchId.
destinationstringWhere it lands: an IATA airport or metro code, or a city or airport name. Omit only when refining with searchId.
excludedAirlinesarrayExclude these IATA carrier codes from every segment
infantsInfants under 2; at most one per adult
limitMaximum fares to return, in requested sort order. Use 1 for one flight or 3 for three; default 3. Return fewer only when fewer are available. Maximum 60.
maxDurationMinutesintegerMaximum elapsed journey duration in EACH direction, including connections
maxLayoverMinutesintegerMaximum ground time at EVERY connection; nonstop fares remain eligible
maxStopsMaximum connections in EACH direction; 0 means nonstop
maxTotalFare ceiling in normal currency units; priceBasis defaults to total
maxTotalAmountintegerWhole-party fare ceiling in integer MINOR units, regardless of priceBasis
minLayoverMinutesintegerMinimum ground time at EVERY connection; nonstop fares remain eligible
minTotalFare floor in normal currency units; priceBasis defaults to total
minTotalAmountintegerWhole-party fare floor in integer MINOR units, regardless of priceBasis
noSelfTransferHide separate-ticket itineraries
originstringWhere the flight starts: an IATA airport or metro code (LHR, LON), or a city or airport name resolved here ('Lisbon' becomes LIS). Omit only when refining with searchId.
passengersintegerAdults; default 1
presentationobject
priceBasisstringReads minTotal and maxTotal only. total = the whole party's fare (default) | per_person = the budget is per adult or child seat, infant costs still included
returnArriveAfterHH:MM local at the return destination; requires returnDate
returnArriveBeforeHH:MM local at the return destination; requires returnDate
returnArriveByAbsolute home arrival deadline YYYY-MM-DDTHH:MM in the home airport local calendar; requires returnDate. Use for home by Sunday evening instead of a clock-only filter.
returnDateYYYY-MM-DD for the return; omit for one way
returnDepartAfterHH:MM local at the return origin; requires returnDate
returnDepartBeforeHH:MM local at the return origin; requires returnDate
searchIdstringRefine an earlier board instead of scraping again: the searchId that search returned, retained for about 90 minutes. Route, dates, party, cabin and currency stay as they were; filters and sort narrow…
sortbest = balanced price, time and connections (default) | cheapest = lowest whole-party fare | fastest = shortest elapsed journey | fewest_stops = fewest connections

No output schema declared.

No examples provided.

search_places ~708

Find real venues for a destination: restaurants, activities, hotels, landmarks and shopping, with ratings, pins and photos, from partner inventory plus cached Google Places. Use it to ground a plan in real places. For hotels pass checkIn and checkOut, or use search_stays: without them prices cover a sample window a month out and the reply says so in pricedWindow, and a hotel added to a day is re-dated and re-quoted. Narrow with openNow or openAt, priceLevels, minRating, and near with radiusKm. minRating reads each source's own scale: hotels run 0 to 10, Google places and tours 0 to 5. Research a result, or weigh two to five, with research_options using this reply's display.resultId and the result's id; attach the pick with add_to_trip source 'search_result', which keeps its pin, photo and any partner bookability. Read-only, and it costs nothing. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
categorystringActivities: partner tag to keep ('Food & Drink')
checkInstringHotels: price a concrete window
checkOut
currencystring
freeCancellationbooleanHotels and activities: free cancellation only
guestsinteger
includeUnpricedbooleanKeep results with no known price (most restaurants and landmarks). Set false for a shortlist that must have a verifiable price.
kindstringyesactivity = tours and experiences | hotel = places to stay | restaurant = places to eat | shopping = shops and markets | landmark = sights and attractions
limitintegerMaximum results to return, including one or three. A provider page can contain fewer.
maxBudgetnumberPrice ceiling in MAJOR units of currency: per night for hotels, per person for activities. Unknown prices follow includeUnpriced.
maxDurationMinutesintegerActivities: length ceiling
minBudgetnumberPrice floor in the same currency and basis as maxBudget.
minRatingnumberRating floor: Google/tours 0–5, hotels 0–10
nearstringA landmark or neighborhood inside the region to search around
offsetintegerContinue with the previous reply's nextOffset; keep the same query and filters.
openAtstringOnly places open at this local time, 'YYYY-MM-DDTHH:MM' (needs listed hours)
openNowbooleanRestaurants/shops/landmarks: only places open right now
presentationobject
priceLevelsarrayGoogle price levels to keep: 0 free, 1 $, 2 $$, 3 $$$, 4 $$$$
qstringRefinement, e.g. 'ramen', 'sunset cruise'
radiusKmnumberHow far around `near` to look (default 3 km)
regionstringyesCity or region, e.g. 'Lisbon'
sortstringbest = relevance (default) | cheapest = lowest price first | rating = best rated first

No output schema declared.

No examples provided.

search_stays ~942

Search stays for a city and exact dates. Prices include taxes and fees for the quoted accommodation, and guests is the party sharing it, not a room count. Use budget {amount, currency, basis:'per_night'} or maxNightlyAmount in integer minor units (USD 15000 is $150), and sort cheapest when the traveler wants cheaper. Set constraintMode strict for real requirements; prefer allows labeled alternatives. near searches around a landmark, name finds one named property, and keywords matches style words in listing names. For hotels near food, galleries or other interests pass interests: each one is resolved to real places at the destination and matched by verified straight-line distance. Never call that distance a walking time, and claim no match without verified places. Property type is inferred from listing evidence, not certified by the supplier. No matches and a provider failure are different answers; never invent a matching quote. Research a property with research_options using this reply's display.resultId and the property's propertyId, attach it with add_to_trip source 'search_result', and present the returned bookingUrl for booking. Read-only, and it costs nothing. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
budgetNightly ceiling for the quoted accommodation, including taxes/fees. Integer MINOR units: USD 15000 = $150. Do not combine with maxNightlyAmount.
checkInstringyesCheck-in calendar date, YYYY-MM-DD
checkOutyesCheck-out calendar date, YYYY-MM-DD; must be after checkIn
constraintModestrict = every filter is a requirement, nothing is relaxed | prefer = labeled alternatives are allowed when nothing matches exactly (the default)
currencyISO pricing currency. A bound in-app trip supplies its currency; MCP and the account assistant default to home currency, then USD.
destinationstringyesCity or town, e.g. Kyoto; use a town within a large region
fallbackLegacy alias for constraintMode. none = strict | cheapest = prefer. Do not set both.
freeCancellationboolean|nullRequire supplier-confirmed free cancellation; this requirement is never relaxed
guestsTravelers sharing the quoted accommodation, 1–10; default 2
interestsTraveler interests such as food, art galleries, or quiet parks. Resolves real places and keeps hotels within maxDistanceKm (default 5 km) of a verified place for EACH interest. Do not put interests i…
keywordsUp to five style words matched against listing names; any one matches
limitMaximum results after filtering and sorting, default 8
maxDistanceKmMaximum distance from near or the city center, in kilometers
maxNightlyDeprecated: nightly ceiling in MAJOR currency units (150 = $150). Prefer budget or maxNightlyAmount; never combine them.
maxNightlyAmountNightly ceiling in integer MINOR units of currency; alternatively use budget
minBedroomsMinimum bedrooms; never relaxed
minGuestsMinimum verified sleeping capacity; never relaxed
minNightlyDeprecated: nightly floor in MAJOR currency units. Prefer minNightlyAmount; never combine them.
minNightlyAmountNightly floor in integer MINOR units of currency
minRatingGuest-score floor on the 0–10 scale
minReviewsMinimum number of guest reviews
minStarsHotel-star floor, 1–5
nameOne specific named hotel; a style such as boutique belongs in keywords
nearLandmark or neighborhood inside destination; strict mode uses a 5 km radius unless maxDistanceKm is supplied
presentationobject
propertyTypehotel (including family suites), rental, or hostel; inferred from listing evidence
sortbest = provider relevance (default) | cheapest = lowest nightly price | rating = best guest score first | distance = closest to near or the city center first
tripIdPrice against this trip: its currency is used when `currency` is omitted.
unknownPolicyProperty type only. exclude = drop listings whose type is unproven | include_labeled = keep them, labeled (the default). Price, capacity, cancellation and distance always need evidence.

No output schema declared.

No examples provided.

search_trains ~570

Search real dated train fares for a route, or re-read an earlier search. Results carry departures, arrivals, operators, durations and changes. Prices cover the requested adults, and returnOptions are separate one-way quotes. Pass searchId alone to filter or sort a search without asking the sellers again; pass searchId with journeyId for one fare's stored details. Start a fresh search when the route, date, currency or passenger count changes. A source failure does not mean no trains run. Never substitute a promotional from-price, a seller search page or a generic listing for an individual fare. Attach a fare with add_to_trip source 'train', this searchId and the unchanged journeyId. Read-only, and it costs nothing. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
currencystring
departAfterstringEarliest outbound departure, HH:MM local, including the time it takes to reach the station
departBeforestringLatest outbound departure, HH:MM local
departDatestringOutbound travel date, YYYY-MM-DD. Omit only when refining with searchId.
destinationstringWhere it ends, as a city or station name. Omit only when refining with searchId.
journeyIdstringWith searchId: return the stored details of that one fare, exactly as it was quoted.
limitinteger
maxChangesintegerMost changes of train allowed on a journey; 0 means direct
maxDurationMinutesintegerLongest acceptable journey, in minutes
maxTotalAmountintegerWhole-party one-way fare ceiling in integer minor units
originstringWhere the journey starts, as a city or station name. Rail has no universal station codes. Omit only when refining with searchId.
passengersintegerAdult travelers; adult quotes never cover children
presentationobject
returnDateExplicit return travel date. Omit for one way; never repeat the outbound date.
returnDepartAfterstringEarliest return departure, HH:MM local; needs returnDate
returnDepartBeforeLatest return departure, HH:MM local; needs returnDate
searchIdstringRefine an earlier search instead of asking the sellers again: the searchId it returned. Route, date, currency and passengers stay fixed.
sortstringcheapest = lowest whole-party fare (default) | fastest = shortest journey | earliest = first departure

No output schema declared.

No examples provided.

update_profile ~188

Update profile fields: display name, bio, home currency, nationality, and the visited-countries list. Omitted fields keep their value. visitedCountries replaces the whole list, so read get_profile first when adding to it. Returns data plus display.resultId; call display_card to show it. presentation (optional) shapes what is shown without changing the action: compact or full layout, and only the limit, ids or sections this tool advertises.

NameTypeReqDescription
bioShort profile blurb; null clears it.
displayNamestringThe name other travelers see.
homeCurrencystringISO currency code new trips and prices default to.
nationalityISO alpha-2 country code of the passport; null clears it.
presentationobject
visitedCountriesarrayISO alpha-2 codes of every country visited; replaces the whole list.

No output schema declared.

No examples provided.

Common questions

What is the Dreamfare MCP server?

Dreamfare is an MCP server listed in the public MCP registry as app.dreamfare/mcp. Travel tools for AI agents: plan and edit real trips, search stays and tours, import travel videos. This page covers its hosted endpoint (https://api.dreamfare.app/mcp).

Is the Dreamfare MCP server safe to use?

Dreamfare scores 79 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Dreamfare MCP server expose?

Dreamfare exposes 21 tools: get_trip, create_trip, add_to_trip, edit_trip, delete_trip, and 16 more. Their descriptions and schemas cost roughly 10,002 tokens of context every time the server is loaded.

Does the Dreamfare MCP server require authentication?

Yes. Dreamfare asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Dreamfare MCP server still maintained?

Dreamfare is still listed as active in the MCP registry. We last reached this channel on 24 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.