Connection check
verified live · 20h ago
dreamfare-mcp
Plan real trips in chat: live stays and activities, video imports, crew planning, booking links.
Tools
41
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
20h ago
Tools & capabilities
41 toolsRead from the running server on 20h ago.
add_option_to_trip
datekind*timeguestsoption*tripId*
+3
Attach one search result to a trip as a stop: kind 'stay' / 'flight' / 'activity' takes the option/offer object from the matching search tool; kind 'place' takes a search_places re… Attach one search result to a trip as a stop: kind 'stay' / 'flight' / 'activity' takes the option/offer object from the matching search tool; kind 'place' takes a search_places result's itemDraft. Echo objects exactly as returned. Stays need checkIn/checkOut. Say which day with dayIndex or date (a stay defaults to its check-in date) and, when the traveler has one in mind, the start time. The stop's bookingUrl (in this result and get_trip) is the link to present for booking.
add_receipt
text*stopIdtripId*
Paste a booking confirmation (hotel, flight, tour, train — the email text or its key lines) and Dreamfare files it on the trip: provider, confirmation code, dates and amount are pa… Paste a booking confirmation (hotel, flight, tour, train — the email text or its key lines) and Dreamfare files it on the trip: provider, confirmation code, dates and amount are parsed, and when it clearly matches a stop that stop is marked booked. Pass stopId to link it to a specific stop instead of matching by name.
add_saved_places_to_trip
datetimetripId*dayIndeximportIdfolderName
+2
Turn the traveler's library into itinerary stops WITH their pins, photos, tips and partner links intact (re-adding by name via add_stops would lose those). Pick places by id (list_… Turn the traveler's library into itinerary stops WITH their pins, photos, tips and partner links intact (re-adding by name via add_stops would lose those). Pick places by id (list_saved_places), a whole folder, or everything a video import found (importId from import_video — the video's own day hints place each stop). Whole-city entries are skipped. Places land on dayIndex unless spreadAcrossDays is set.
add_stops
stops*tripId*
Add stops (places, activities, meals, stays, transport) to an existing Dreamfare trip. dayIndex is 0-based; read the trip first with get_trip if unsure of its days. Add stops (places, activities, meals, stays, transport) to an existing Dreamfare trip. dayIndex is 0-based; read the trip first with get_trip if unsure of its days.
compare_options
read-only
datekind*nearguestscheckInoptions*
+3
Two to five options of one kind (stays, activities, flights or places) in one table: price (per night / per person / total), rating and reviews, distance, duration, stops, cancella… Two to five options of one kind (stays, activities, flights or places) in one table: price (per night / per person / total), rating and reviews, distance, duration, stops, cancellation, features — the best cell in each row is marked and `verdict` names the winners (cheapest, best rated, closest, fastest). Each is researched like get_details, so the table is exact, not a summary of the search screen. Use it whenever the traveler is weighing a few ('which of these', 'A or B', 'the cheapest that's still well rated'). Echo the search result objects unchanged in `options`; every column's itemDraft/option goes to add_option_to_trip.
copy_trip
tripIdpublicationId
Make the traveler their own editable copy of a trip: a published one (publicationId from explore_trips — keeps the creator's attribution and re-bases flights on the traveler's home… Make the traveler their own editable copy of a trip: a published one (publicationId from explore_trips — keeps the creator's attribution and re-bases flights on the traveler's home airport) or one of their own trips (tripId — dates, stops and the shared packing list come along). Returns the new trip.
create_trip
daystitle*endDatecurrencypartySizestartDate
+3
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… 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), so re-read with get_trip if the traveler asks to book. Returns the trip and its URL — always give the traveler that URL.
delete_trip
can modify data
tripId*confirmTitle*
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 del… 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.
edit_trip
can modify data
tripId*actions*
Edit anything on a trip in one batched call: trip details and notes (update_trip), stops (update_stop / remove_stop / move_stop, by stopId from get_trip), days (add_day / update_da… Edit anything on a trip in one batched call: trip details and notes (update_trip), stops (update_stop / remove_stop / move_stop, by stopId from get_trip), days (add_day / update_day / remove_day, by 0-based dayIndex), and the planning stage (finalize locks the trip for sharing and booking; reopen unlocks it). Omitted fields keep their value; null clears. finalize/reopen run AFTER the other actions — a finalized trip rejects edits, so reopen it in its own call first.
explore_trips
read-only
qsortlimitdestination
Trips other travelers published on Dreamfare, by destination and/or free text — real itineraries with stops, photos and creator credit. Copy one into the traveler's account with co… Trips other travelers published on Dreamfare, by destination and/or free text — real itineraries with stops, photos and creator credit. Copy one into the traveler's account with copy_trip (publicationId). Sort 'popular' or 'newest'.
get_details
read-only
iddatekind*namenearguests
+5
Everything known about ONE hotel, tour, flight or place, researched: a photo gallery, what's good about it (editorial summary, what reviewers say), key facts (stars, guest score, c… Everything known about ONE hotel, tour, flight or place, researched: a photo gallery, what's good about it (editorial summary, what reviewers say), key facts (stars, guest score, capacity, cancellation and instant-book policies; duration, languages, meeting point, inclusions and exclusions, itinerary; airline, times, stops, per-traveler fare; opening hours, price level, phone, website), features/amenities, the exact location, and prices — per booking site for hotels, nearby dates for flights, tours & tickets with prices at landmarks. Use it when the traveler asks about a specific option ('tell me more about…', 'is it near…', 'what's included', 'can I cancel', 'is it open Sunday') or before recommending one. Pass the search result object as `option` (or a search_places result's placeId as `id`, or a name + destination when there is no object). Stays: pass checkIn/checkOut/guests so prices are for the traveler's dates. The reply's itemDraft/option go to add_option_to_trip unchanged.
get_import
read-only
importId*
Status and results of a video/post import: the extracted places with their areas, notes, per-place tips, and day assignments. While status isn't 'done' (or 'failed'), poll again af… Status and results of a video/post import: the extracted places with their areas, notes, per-place tips, and day assignments. While status isn't 'done' (or 'failed'), poll again after ~15s. When done, add_saved_places_to_trip (importId) puts every place into a trip with its pin, photo and tips; plan_trip (savedPlaceIds) plans days around them.
get_profile
read-only
The traveler's Dreamfare account snapshot: profile, membership tier, AI credits, and wallet balance (commission earned through tracked bookings). The traveler's Dreamfare account snapshot: profile, membership tier, AI credits, and wallet balance (commission earned through tracked bookings).
get_trip
read-only
tripId*
Read one Dreamfare trip: days, stops (with stopIds for edit_trip), the packing list, and per-stop booking links. When the traveler wants to book a stop, give them its bookingUrl —… Read one Dreamfare trip: days, stops (with stopIds for edit_trip), the packing list, and per-stop booking links. When the traveler wants to book a stop, give them its bookingUrl — bookings through it earn them commission back.
import_text
can modify data
text*
Extract the real places from text the traveler pastes — notes, a friend's list, a blog post, an itinerary email — and save them (with any tips) to their library, exactly like a vid… Extract the real places from text the traveler pastes — notes, a friend's list, a blog post, an itinerary email — and save them (with any tips) to their library, exactly like a video import. Runs asynchronously: poll get_import. Costs Stardust credits like importing in the app (failed imports refund). Needs at least 40 characters.
import_video
can modify data
url*
Extract the real places from a TikTok, Instagram, YouTube, Facebook, or Reddit travel link — watched, transcribed, and geocoded. When the traveler shares such a link, call this too… Extract the real places from a TikTok, Instagram, YouTube, Facebook, or Reddit travel link — watched, transcribed, and geocoded. When the traveler shares such a link, call this tool with the URL directly: the DREAMFARE SERVER fetches and watches the video, so never claim you cannot open links or ask for an upload. Runs asynchronously (~30–90s): poll get_import for the results. Found places (with their tips) land in the traveler's saved-places library; once done, drop them into a trip with add_saved_places_to_trip (importId — keeps pins, photos and tips) or plan around them with plan_trip. Costs Stardust credits, exactly like importing in the app (failed imports refund).
invite_to_trip
can modify data
roleemailtripId*maxUsesexpiresInDays
Create an invite link for a trip, optionally emailed to one person (they must sign in with that email to accept). Roles: editor plans with you, viewer only looks. Anyone who can ed… Create an invite link for a trip, optionally emailed to one person (they must sign in with that email to accept). Roles: editor plans with you, viewer only looks. Anyone who can edit the trip can invite; the link is what to share when no email is given.
list_crew
read-only
tripId*
The trip's crew: owner, collaborators with their roles, and (for the owner) the open invite links. Use it before inviting, removing, or @-mentioning someone in the chat. The trip's crew: owner, collaborators with their roles, and (for the owner) the open invite links. Use it before inviting, removing, or @-mentioning someone in the chat.
list_receipts
read-only
tripId*
Every receipt filed on a trip with its parsed facts and the stop it's linked to. Every receipt filed on a trip with its parsed facts and the stop it's linked to.
list_saved_places
read-only
folderName
The traveler's saved-places library: folders and the places in them (optionally one folder, or 'unsorted'). Put them on a trip with add_saved_places_to_trip (ids or a folder) or pl… The traveler's saved-places library: folders and the places in them (optionally one folder, or 'unsorted'). Put them on a trip with add_saved_places_to_trip (ids or a folder) or plan a trip around them with plan_trip.
list_travel_tips
read-only
area
The traveler's travel-tips notebook: their own notes plus per-place advice mined by video imports ('go before 8am', 'cash only'). Optionally filter by area name. Surface relevant t… The traveler's travel-tips notebook: their own notes plus per-place advice mined by video imports ('go before 8am', 'cash only'). Optionally filter by area name. Surface relevant tips when planning a destination they cover.
list_trips
read-only
List the traveler's Dreamfare trips (own and shared), newest first — a lookup for trip ids. To show a trip, follow with get_trip, which renders the trip card. List the traveler's Dreamfare trips (own and shared), newest first — a lookup for trip ids. To show a trip, follow with get_trip, which renders the trip card.
manage_crew
can modify data
leaveremovetripId*setRolerevokeInvites
Owner-only crew housekeeping in one call: change a member's role, remove a member, or revoke an open invite. A member may remove themselves (leave) without being the owner. Ids com… Owner-only crew housekeeping in one call: change a member's role, remove a member, or revoke an open invite. A member may remove themselves (leave) without being the owner. Ids come from list_crew (collaboratorId, invite id).
manage_packing
can modify data
addcheckremovetripId*uncheck
Add, check off, uncheck, or remove packing-list items on a trip. Item ids come from get_trip's packing array (or this tool's response). Personal items are visible only to this trav… Add, check off, uncheck, or remove packing-list items on a trip. Item ids come from get_trip's packing array (or this tool's response). Personal items are visible only to this traveler; shared items belong to the whole crew.
manage_saved_places
can modify data
moverenameshowFolderdeletePlacescreateFoldersdeleteFolders
+1
Housekeeping for the traveler's library in one call: delete places, move places into a folder (or out to unsorted), rename a place, create/rename/delete folders (deleting a folder… Housekeeping for the traveler's library in one call: delete places, move places into a folder (or out to unsorted), rename a place, create/rename/delete folders (deleting a folder keeps its places as unsorted). Ids and folder names come from list_saved_places.
manage_travel_tips
can modify data
addremove
Add or remove entries in the traveler's travel-tips notebook. Tips can be general or scoped to an area so they resurface when a trip goes there. Add or remove entries in the traveler's travel-tips notebook. Tips can be general or scoped to an area so they resurface when a trip goes there.
mark_stop_booked
stopId*travelers
Record that the traveler completed a booking for a stop (on the partner site or elsewhere). When they booked through the stop's tracked bookingUrl this also opens the commission cr… Record that the traveler completed a booking for a stop (on the partner site or elsewhere). When they booked through the stop's tracked bookingUrl this also opens the commission credit that pays their share back once the partner reports it.
plan_trip
can modify data
brief*titleendDatecurrencypartySizestartDate
+4
Build a complete day-by-day trip in one call using Dreamfare's own planner: real venues (with opening hours), a stay, activities and flights from partner inventory, the traveler's… Build a complete day-by-day trip in one call using Dreamfare's own planner: real venues (with opening hours), a stay, activities and flights from partner inventory, the traveler's saved places woven in, pins, photos and booking links — all server-side, in about 10 seconds. Costs Stardust credits like planning in the app (get_profile shows the balance). Prefer this for 'plan me N days in X' requests; use create_trip when the traveler has dictated the exact stops themselves. Give the traveler the trip URL.
post_trip_chat
can modify data
text*tripId*mentionIds
Say something to the crew in the trip's chat. Mention members by userId (list_crew). Starting the text with @dreamfare summons the in-app planner into the thread. Say something to the crew in the trip's chat. Mention members by userId (list_crew). Starting the text with @dreamfare summons the in-app planner into the thread.
read_trip_chat
read-only
limitbeforetripId*
The latest messages in a trip's crew chat (newest last), including polls. Pass `before` (an ISO timestamp) to page further back. The latest messages in a trip's crew chat (newest last), including polls. Pass `before` (an ISO timestamp) to page further back.
refresh_stay_prices
tripId*
Re-quote every upcoming partner-priced stay on the trip against live rates and report what moved (previous → current). At most once per stay per day. Returns the refreshed trip. Re-quote every upcoming partner-priced stay on the trip against live rates and report what moved (previous → current). At most once per stay per day. Returns the refreshed trip.
save_place
place*subtitlefolderName
Save a place to the traveler's library without putting it on a trip yet — 'remember this for my next Lisbon trip'. Optionally file it into a named folder (created if new). Saved pl… Save a place to the traveler's library without putting it on a trip yet — 'remember this for my next Lisbon trip'. Optionally file it into a named folder (created if new). Saved places go onto any trip later via add_saved_places_to_trip.
search_activities
read-only
qdatesortflagslimitcategory
+7
Bookable activities, tours and experiences for a destination. Attach one with add_option_to_trip (kind 'activity'). Plain activity stops added via add_stops also get matched to par… Bookable activities, tours and experiences for a destination. Attach one with add_option_to_trip (kind 'activity'). Plain activity stops added via add_stops also get matched to partners automatically, so search here only when the traveler wants options. Default order is partner relevance: for budget or 'cheaper' asks set maxPrice/minPrice and sort 'cheapest' instead of repeating the search; priceRange summarizes what was found. Say what kind of experience with q ('food tour', 'sunset cruise', 'day trip to Sintra') and narrow with category / flags / duration / minRating. Each result carries tags, flags and a short description; get_details on one returns the full content (inclusions, itinerary, cancellation policy, meeting point, languages, gallery), compare_options weighs 2–5.
search_airports
read-only
q*limit
Resolve a city or airport name to IATA codes for search_flights ('Lisbon' → LIS; 'London' → LON, the metro code covering LHR/LGW/STN/LTN, plus each airport). Call it whenever the t… Resolve a city or airport name to IATA codes for search_flights ('Lisbon' → LIS; 'London' → LON, the metro code covering LHR/LGW/STN/LTN, plus each airport). Call it whenever the traveler names a place rather than a code — never guess a code. A city (kind 'city') code searches every airport in that city and is the right pick unless a specific airport was named.
search_flights
read-only
sortcabinlimitorigin*airlinescurrency
+9
Flight offers between two airports or cities (IATA codes — resolve place names with search_airports first, never guess). Attach a chosen offer to a trip with add_option_to_trip (ki… Flight offers between two airports or cities (IATA codes — resolve place names with search_airports first, never guess). Attach a chosen offer to a trip with add_option_to_trip (kind 'flight', echoing the offer unchanged) to make it a bookable stop. Fares are exact-date cached airline data, so some routes (especially long-haul) return no offers — report that honestly and keep planning; flight stops added by name via add_stops still get partner booking links automatically. Offers come cheapest-first; for a fare ceiling set maxPrice, for 'quickest' use sort, for 'nonstop' set maxStops 0, for a time of day use departAfter/departBefore/arriveBefore, for a carrier use airlines; priceRange summarizes the fares found.
search_places
read-only
qkind*nearsortguestsopenAt
+13
Real venues for a destination — restaurants, activities, hotels, landmarks, shopping — with ratings, pins, and photos (partner inventory + cached Google Places, the app's own Explo… Real venues for a destination — restaurants, activities, hotels, landmarks, shopping — with ratings, pins, and photos (partner inventory + cached Google Places, the app's own Explore surface). Use it to ground a plan in real places. Each result carries an itemDraft: attach one to a trip with add_option_to_trip (kind 'place', echoing the itemDraft unchanged) to keep its pin, photo, and any partner bookability. For hotels pass checkIn/checkOut (or use search_stays): without them prices are for a sample window a month out, and the reply says so in pricedWindow. Hotels added to a day are re-dated to that day and re-quoted automatically. Finer asks: openNow / openAt for 'open now' / 'open Friday at 8pm', priceLevels for '$'–'$$$$' budgets, minRating, near + radiusKm for 'around the cathedral'. A result's placeId (Google places) or itemDraft goes to get_details for hours, summary, reviews, features, photos and — at landmarks — tours and tickets with prices; compare_options weighs 2–5 side by side.
search_stays
read-only
nearsortlimitguestscheckIn*checkOut*
+10
Live hotel/stay inventory with real prices for a destination and date window. Every amount includes taxes and fees; nightly is total ÷ nights, an average that reads higher than the… Live hotel/stay inventory with real prices for a destination and date window. Every amount includes taxes and fees; nightly is total ÷ nights, an average that reads higher than the room-only rate booking sites headline. The default order is partner relevance, NOT price: when the traveler wants something cheaper, names a budget, or asks to compare, re-run with maxNightly/minNightly and sort 'cheapest' (or 'rating') instead of repeating the same call — a plain repeat returns the same screen. priceRange summarizes the nightly rates found; each option's suppliers lists every booking site's total for the same room (the option's own price is the cheapest of them). To make an option bookable, attach it to a trip with add_option_to_trip (kind 'stay', echoing the option object unchanged) — the stop then carries the tracked booking link. Finer asks map to filters: 'near the castle' → near, 'well reviewed' → minRating 8, 'free cancellation' → freeCancellation, 'apartment for 4' → minBedrooms. To research ONE option (photos, what reviewers say, policies, price on every site) call get_details with it; to weigh a few side by side call compare_options.
share_trip
can modify data
tagstitleactiontripId*summary
Publish a finalized trip to a public link (dreamfare.app/p/…) and Explore, republish it after edits, or unpublish it. Owner only. With no action it just reports the current share s… Publish a finalized trip to a public link (dreamfare.app/p/…) and Explore, republish it after edits, or unpublish it. Owner only. With no action it just reports the current share state and link. Bookings made from the public copy earn the author.
travel_extras
read-only
tripId*
Tracked partner links for the trip's destination country: a travel eSIM (data the moment they land), rental cars, airport pickup and private transfers. Booking through these links… Tracked partner links for the trip's destination country: a travel eSIM (data the moment they land), rental cars, airport pickup and private transfers. Booking through these links earns the traveler's commission share, like stops.
update_profile
can modify data
biodisplayNamenationalityhomeCurrencyvisitedCountries
Update profile fields: display name, bio, home currency, nationality, and the visited-countries list (a FULL replacement — read get_profile first when adding to it). Omitted fields… Update profile fields: display name, bio, home currency, nationality, and the visited-countries list (a FULL replacement — read get_profile first when adding to it). Omitted fields keep their value.
vote_stop
value*stopId*