Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WANDERLOG_COOKIEYesYour Wanderlog browser session cookie (`connect.sid`) used to authenticate with Wanderlog.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

You are connected to Wanderdog, an MCP server for building Wanderlog trip itineraries.

When a user asks you to create an itinerary or plan a trip, build it in full — not just a list of places. A complete itinerary uses these building blocks:

  1. wanderlog_add_place — 3-5 places per day (attractions, restaurants, activities). ALWAYS use the "note" parameter to attach practical context directly to the place: how to get there, what to order, booking tips, opening hours. ALWAYS use "start_time" and "end_time" to schedule each place (e.g. start_time: "09:00", end_time: "10:30"). This is one tool call instead of two — faster and the note lives on the place itself.

  2. wanderlog_add_note — use ONLY for freestanding commentary between places: neighborhood context, multi-stop transit directions, or day-level tips not about a specific place. Do NOT use add_note for per-place context — use the "note" param on add_place instead.

  3. wanderlog_add_hotel — one hotel block covering the full stay. When the user wants to compare hotels by price or filter by amenities/rating, call wanderlog_search_hotels FIRST — it returns ranked offers across airbnb/expedia/google/kayak with per-vendor deal comparison and a faceted available_filters block — then pass the chosen hotel name to wanderlog_add_hotel.

  4. wanderlog_add_checklist — at least one pre-trip checklist (visa, currency, offline maps, return ticket, travel insurance) and per-day checklists for days that need advance prep

  5. wanderlog_add_expense — add estimated costs for meals, entrance fees, transport passes. Link each expense to its place for budget tracking.

  6. wanderlog_annotate_place — update an existing place with a note, start/end time, or both.

  7. wanderlog_search_guides + wanderlog_get_guide — when the user wants inspiration ("give me an itinerary I can copy", "what guides exist for Vietnam"), call search_guides FIRST to list curated user-written guides for the destination, then get_guide with the chosen guide_key to read the full content. Use this for OTHER people's published guides; for your own trips use wanderlog_get_trip.

  8. wanderlog_add_transit — ferry / bus / train legs between places (carrier, from/to, dates, times). wanderlog_add_car_rental — a rental car with pick-up and drop-off locations/times.

Example add_place call with all features: wanderlog_add_place(trip_key, place: "Sensō-ji", day: "day 1", note: "Arrive before 9am to avoid crowds. Free entry. The Nakamise shopping street leading to the temple is great for souvenirs and snacks.", start_time: "08:30", end_time: "10:00")

Places without notes and times are just pins on a map. Rich places make an itinerary useful.

JOURNALING (a trip's travelogue of places the user actually visited): wanderlog_list_journal / add_journal / edit_journal / remove_journal manage the journal. A journal stop is a place + date/time + a text entry (the user's notes about visiting it).

  • wanderlog_add_journal first REUSES a place already in the trip (an itinerary place or an existing journal stop) and dates the new stop to the day that place is scheduled on.

  • If the place is NOT in the trip yet, add_journal does NOT add it silently — it returns a prompt. ASK the user whether to add it to their itinerary first (wanderlog_add_place, on the right day) or to journal it as a new place with allow_new_place: true. Don't pass allow_new_place on the user's behalf without asking.

  • Select a stop to edit/remove by a substring of its title (matching ignores case and accents). wanderlog_edit_journal can also set the trip-level journal summary via new_summary.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
wanderlog_list_tripsA

Lists all Wanderlog trips in the authenticated user's account (owned and shared-with-you).

Returns a compact list with title, dates, place count, and trip_key. Use this tool first when the user mentions a trip by name but you don't have its trip_key yet — the key is required by wanderlog_get_trip and wanderlog_search_places.

Each line includes a [key: ...] suffix — extract that key for downstream tool calls. For the numeric trip id and the import/forwarding email address, request response_format='detailed'. The forwarding email can be used to import reservation confirmations into the trip; see also wanderlog_get_trip_forwarding_email.

wanderlog_get_tripA

Returns the itinerary for one Wanderlog trip: the hotels list, the "places to visit" list, and each day's scheduled places.

Use concise format for summarizing or answering questions about a trip in natural language. Use detailed format when the user asks for specific info like addresses, phone numbers, hotel check-in/out dates, the numeric trip id, or the trip's forwarding email address.

If you don't know the trip_key, call wanderlog_list_trips first to find it.

wanderlog_get_trip_urlA

Returns the wanderlog.com URL for a trip so the user can open it in a browser.

Three link variants are available via the mode parameter:

  • edit (default) — full-permission link for the owner

  • view — read-only link that's safe to share with anyone

  • suggest — suggest-mode link where collaborators can propose changes

If you don't know which mode the user wants, default to edit.

wanderlog_get_trip_forwarding_emailA

Returns the email address you can forward reservation emails to for automatic import into this trip.

Wanderlog parses forwarded flight, hotel, and rental car confirmations (from Booking.com, Airbnb, airlines, etc.) and attaches them to the trip, deduplicating against existing reservations. See: https://help.wanderlog.com/hc/en-us/articles/4625693334811

Use this when a user wants to set up automated import for a trip, for example, configuring a mail filter, an integration or copy pasting the address into a booking confirmation forward.

wanderlog_search_placesA

Search for real-world places (restaurants, attractions, hotels, parks, landmarks) near the destination of a Wanderlog trip. Returns candidate results with names and short descriptions.

Use this to resolve user requests like "find a good coffee shop in Queenstown" into specific place candidates. Results are geographically biased toward the trip's location, not global.

If the user wants to add a place to a trip, call this first with concise format to present options, then call again with detailed format to get place_ids for downstream actions.

wanderlog_search_guidesA

Lists user-written Wanderlog travel guides for a destination — long-form recommendations and itineraries other travellers have published. Use this when the user asks for inspiration, an itinerary they can copy, or "what guides exist for X".

Specify exactly one of destination or geo_id. For free-text destinations the highest-popularity match is picked; up to 2 candidates appear in 'alternative_geos' as a soft hint. When the destination has no curated guides yet, the response carries 'alternative_geos_with_guides' with the top 5 nearby destinations that do.

Pass the returned guide_key to wanderlog_get_guide to read the full content of one guide.

wanderlog_get_guideA

Fetches the full content of a public Wanderlog guide — sections, places, and notes — and renders it as readable text. Pass the guide_key from a wanderlog_search_guides response.

For your own trips, use wanderlog_get_trip instead.

wanderlog_search_hotelsA

Search Wanderlog's hotel aggregator (airbnb, expedia, google, kayak) for a destination and date range. Returns ranked offers with per-vendor deal comparison and an available_filters facet block the LLM can use to narrow.

Specify exactly one of destination or geo_id. For free-text destinations the highest-popularity match is picked; up to 2 candidates appear in alternative_geos as a soft hint — re-call with one of those geo_ids if the wrong city was chosen.

Use response_format='detailed' to include amenities, hotel class, and property type on each offer. The default 'concise' format omits those fields to keep token usage low.

wanderlog_create_tripA

Creates a new Wanderlog trip for the given destination and date range. The trip is created empty (no places yet) with one pre-generated day section per day in the range.

After creating a trip, populate each day using ALL of these tools together — places alone make a flat list, but notes and checklists are what make an itinerary actually useful:

  1. wanderlog_add_place — add attractions, restaurants, and activities

  2. wanderlog_add_note — add between places for transit directions, practical tips, time warnings, or local recommendations (e.g. "Walk 10 min south along the river to the next stop" or "Closed Mondays — check hours before visiting")

  3. wanderlog_add_hotel — add accommodation with check-in/check-out dates

  4. wanderlog_add_checklist — add a packing list to the trip, or per-day task lists (e.g. "Day 1 prep: print tickets, charge camera, pack umbrella")

A good itinerary has notes after most places — think of them as the connective tissue that turns a list of pins on a map into a real travel plan.

Returns the new trip key so you can reference it in subsequent tool calls.

wanderlog_add_placeA

Adds a place to a Wanderlog trip. Searches for the place near the trip's destination, picks the best match, and inserts it into either a specific day or the general "Places to visit" list.

If the top autocomplete match for "place" picks the wrong branch of a chain or the wrong city — a common problem for generic names — call wanderlog_search_places first with response_format: "detailed" to see numbered candidates with their place_id, then pass the right one as "place_id" instead. This skips the free-text search and adds that exact place. "place" is required unless "place_id" is given.

PREFERRED: Use the "note" parameter to attach practical context directly to each place — transit directions, what to order, booking tips, time guidance. This is better than a separate wanderlog_add_note call because the note lives on the place itself in the itinerary. Use the "start_time" and "end_time" parameters to give the place a scheduled time window.

Use standalone wanderlog_add_note only for freestanding commentary between places (neighborhood context, multi-stop transit, day-level tips that aren't about a specific place).

Returns a confirmation including the resolved place name and where it was added.

wanderlog_add_hotelA

Adds a hotel booking to a Wanderlog trip with check-in and check-out dates. If the trip does not yet have a "Hotels and lodging" section, one is created automatically.

Returns confirmation with the resolved hotel name and the booking window.

wanderlog_add_noteA

Adds a text note to a Wanderlog trip. Notes appear inline between places in a day, acting as the connective tissue of the itinerary. Every well-built day should have notes between stops. Supply "day" for a dated itinerary day or "section" for an undated section such as "Notes" or "Food & Drink". When both are provided, "section" takes precedence. Omit both to add to the default "Places to visit" list.

When to add a note (do this after adding each place or group of places):

  • How to get there: "Walk 15 min along the South Bank, or take the Jubilee line one stop"

  • Practical tips: "Book tickets online at least 2 days ahead — sells out in summer"

  • Food/drink recs: "Try the salt beef bagel at Beigel Bake — cash only, open 24hrs"

  • Time guidance: "Budget 2-3 hours here. Open 10am-6pm, closed Tuesdays"

  • Neighborhood context: "This area is great for wandering — no rush, just explore the lanes"

Returns a confirmation of where the note was added.

wanderlog_add_checklistA

Adds a checklist to a Wanderlog trip. Each item starts unchecked and can be ticked off in the Wanderlog app.

Add at least one checklist per trip. Common patterns:

  • In a custom section: a packing list or "before departure" checklist

  • On day 1: an arrival-day checklist ("pick up Oyster card", "check into hotel", "buy SIM")

  • On specific days: day-of tasks ("bring swimsuit", "charge camera", "carry cash for market")

Supply "day" for a dated itinerary day or "section" for an undated section such as "Notes" or "Trip Preparations". When both are provided, "section" takes precedence. Omit both to add to the default "Places to visit" list.

Returns a confirmation including the checklist title and item count.

wanderlog_annotate_placeA

Updates an existing place in a Wanderlog trip with an inline note, start/end time, or both. Use this to enrich places that were already added — set practical context, scheduled times, or both in one call.

At least one of note, start_time, or end_time must be provided.

The place is resolved by natural-language reference (same syntax as wanderlog_remove_place). If ambiguous, returns a disambiguation list without making changes.

wanderlog_add_expenseA

Adds a budget expense to a Wanderlog trip. Optionally links the expense to a place so it shows up on that place in the budget tracker; omit "place" to log a standalone (unlinked) expense.

Use this to give the trip a cost dimension — estimated meal costs, entrance fees, transport passes, etc. If you link a place, it must already exist in the trip.

Returns confirmation with the expense amount and description.

wanderlog_list_expensesA

Lists budget expenses on a Wanderlog trip, newest entries last.

Each line shows the amount, currency, description, category, and date. Use the optional description / date / amount / currency filters to narrow the list — handy for finding the exact expense to pass to wanderlog_remove_expense or wanderlog_edit_expense when several are similar.

Returns a friendly message when the trip has no matching expenses.

wanderlog_remove_expenseA

Removes a budget expense from a Wanderlog trip by matching a substring of its description.

The match is case-insensitive. If exactly one expense matches, it is deleted. If none match, an error is returned. If several match, a numbered list is returned and nothing is deleted — re-call with a more specific description or add a date / amount / currency filter to pick one.

wanderlog_edit_expenseA

Edits an existing budget expense on a Wanderlog trip. Find the expense by a case-insensitive substring of its description, then change any of: description, amount, currency, category, date.

If none match, an error is returned. If several match, a numbered list is returned and nothing is changed — narrow with a more specific description or a date / amount / currency filter. Only the fields you supply via new_* are modified; all other fields on the expense are preserved.

wanderlog_remove_placeA

Removes a place (or flight, train, hotel — any block) from a Wanderlog trip based on a natural-language reference.

Supported reference forms:

  • Exact or partial name: "Queenstown Gardens", "Gardens"

  • Role keywords: "the hotel", "the flight", "the train"

  • Day filter: "Queenstown Gardens on May 4" or "... on day 3"

  • Ordinal prefix (for duplicates): "1st Queenstown Gardens", "second X", "last X"

  • Combined: "2nd Queenstown Gardens on May 4"

If the reference is ambiguous (multiple places match), the tool returns a numbered list of candidates and does NOT make any change. Re-call with an ordinal prefix ("1st X", "2nd X") or a more specific filter to pick the one you want.

wanderlog_move_blockA

Moves an existing place or reservation block to another position within its current Wanderlog section without deleting or recreating it. The original block ID, notes, images, times, booking details, and other metadata are preserved.

Select the block using the same natural-language references as wanderlog_remove_place, including day filters and ordinal prefixes. Choose exactly one destination:

  • position: a 1-based position in the section's complete displayed block order

  • before: another place or reservation block in the same section

  • after: another place or reservation block in the same section

Positions count all displayed blocks, including notes and checklists — but notes and checklists cannot be used as before/after targets, which resolve only to place or reservation blocks. Cross-section moves are not supported; do not emulate them by removing and re-adding the block, which discards its ID, notes, times, and booking details. If a reference is ambiguous, nothing is changed and the tool returns candidates for a more specific retry.

wanderlog_edit_noteA

Edits note content in a Wanderlog trip by finding and replacing a substring.

Searches across freestanding notes, place annotations, and checklist titles and items. The match is case-insensitive. If exactly one match is found, the replacement is made in place. If no matches are found, an error is returned. If multiple matches are found, a numbered list of previews is returned — call again with a more specific substring.

Use the optional 'day' filter to limit the search to a specific day.

wanderlog_remove_noteA

Removes a note block from a Wanderlog trip by matching a substring of its text content.

The match is case-insensitive. If exactly one note matches, it is deleted. If no notes match, an error is returned. If multiple notes match, a list of previews is returned — supply a more specific substring to narrow to one.

Use the optional 'day' filter to limit the search to a specific day.

wanderlog_update_trip_datesA

Changes the date range of an existing Wanderlog trip. Preserves content on days that remain in the new range (they're kept in place with their blocks intact), adds empty day sections for newly-included days, and removes day sections for days no longer in range.

SAFETY: If the new range would delete days that currently contain places or notes, the tool refuses by default and returns a list of the content that would be lost. Pass force: true to override, or move the content to other days first.

Does not affect the Hotels, Flights, Transit, or Places-to-visit sections — only the per-day sections are added/removed.

wanderlog_rename_dayA

Renames the heading/subheading of a specific day in a Wanderlog trip.

Day headings appear in the itinerary as the title for each day section (e.g. "Barcelona", "Ronda + Malaga"). Use this tool to replace them with more descriptive titles.

Pass an empty string for "heading" to reset the day back to Wanderlog's auto-generated heading.

wanderlog_list_journalA

Lists the stops in a Wanderlog trip's journal (travelogue), in order.

Each line shows the stop's title, date/time, and a preview of its text entry. Use the optional title / date filters to narrow the list — handy for finding the exact stop to pass to wanderlog_edit_journal or wanderlog_remove_journal. Also reports the journal summary when set.

Returns a friendly message when the trip has no journal stops.

wanderlog_add_journalA

Adds a stop to a Wanderlog trip's journal (travelogue). A stop pins a place with a date/time and an optional text entry, and appears in the trip's journal timeline.

Place handling: the tool first reuses a place already in the trip (an itinerary place or an existing journal stop) that matches the name. If the place isn't in the trip yet, it does NOT add it silently — it returns a prompt suggesting you add it to the itinerary first (wanderlog_add_place), or re-call with allow_new_place: true to journal it as a new place.

wanderlog_edit_journalA

Edits a Wanderlog trip's journal. Usually you edit a single stop: find it by a case-insensitive substring of its title, then change its title, text, date, and/or time. You can also set the trip-level journal summary via new_summary (which doesn't require a stop title).

If none match, an error is returned. If several stops match, a numbered list is returned and nothing is changed. Only the fields you supply are modified; the stop's place, media, and unknown fields are preserved.

wanderlog_remove_journalA

Removes a stop from a Wanderlog trip's journal by matching a substring of its title.

The match is case-insensitive. If exactly one stop matches, it is deleted. If none match, an error is returned. If several match, a numbered list is returned and nothing is deleted — re-call with a more specific title or add a date filter to pick one.

wanderlog_add_sectionA

Adds a new custom section to a Wanderlog trip itinerary. Sections are containers for places, notes, and other blocks — use them to group content thematically (e.g. "Food & Drink", "Day Trips", "Must-See Spots") or to create additional place lists beyond the default "Places to visit".

The new section is empty; add places to it with wanderlog_add_place by passing the section heading as the "section" parameter, or use wanderlog_add_note / wanderlog_add_checklist.

Returns the heading and position of the inserted section. The heading must be unique among undated sections; duplicate or ambiguous insertion targets are rejected without making a change.

wanderlog_update_sectionA

Renames the heading of a custom section in a Wanderlog trip.

Identify the section by its current heading. Use wanderlog_get_trip to see all sections and their current headings if you are unsure. Pass an empty string for "heading" to clear the section title.

Returns a confirmation showing the old and new heading. The current heading must identify exactly one section and the new heading must not duplicate another undated section.

wanderlog_delete_sectionA

Deletes a custom section from a Wanderlog trip itinerary. The section and all blocks inside it are permanently removed.

Only custom sections (created via wanderlog_add_section or the Wanderlog UI) can be deleted. Day sections, the default "Places to visit" list, and system sections (hotels, flights, transit) are protected and cannot be removed with this tool.

Returns a confirmation with the deleted section's heading. If the heading matches more than one section, the tool fails without deleting either one.

wanderlog_add_transitA

Adds a ferry, bus, or train leg to a Wanderlog trip. Departure and arrival places are matched against Google Places near the trip's destination. Ferries, buses and trains share the trip's "Transit" section, which is created automatically if absent.

Returns confirmation with the resolved route and departure time.

wanderlog_add_car_rentalA

Adds a rental car to a Wanderlog trip, covering a pick-up and drop-off window. Locations are matched against Google Places near the trip. The rental firm is whatever you pick as the location — there is no separate company field. A "Rental cars" section is created if absent.

Returns confirmation with the resolved pick-up and drop-off.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 33 tools

Disambiguation4/5

Most tools map cleanly to one resource+action pair, and the descriptions actively disambiguate the tricky cases (add_note vs annotate_place vs the 'note' parameter on add_place; search_hotels vs add_hotel; search_guides vs get_guide). Residual overlap remains around note handling and block manipulation (annotate_place/remove_place/move_block all take the same natural-language reference syntax), but boundaries are stated well enough for reliable selection.

Naming Consistency4/5

Consistent snake_case with a uniform wanderlog_ prefix and verb-first names (list_trips, get_trip, add_place, remove_expense, edit_journal). Minor inconsistency in removal/update verbs: delete_section vs remove_place/remove_note/remove_expense, and update_section/update_trip_dates vs edit_note/edit_expense, plus the outlier annotate_place.

Tool Count3/5

33 tools is heavy and above the comfortable range, though the domain (trips, places, notes, checklists, expenses, journal, sections, transit, lodging, hotels search) genuinely justifies breadth. Some consolidation is plausible — e.g. the many note/place mutation tools and the add_* block-family — making this borderline rather than well-scoped.

Completeness4/5

Strong coverage: full CRUD for expenses and journal stops, add/edit/remove for places and notes, add/update/delete for sections, plus calendar management and read-side search for places, guides, and hotels. Gaps are minor and workaroundable — no hotel edit tool, no way to create flights (only forwarding-email import), no trip title rename or trip delete, and no explicit checklist removal (edit_note can rewrite items).

Maintenance

ActivityActive
ResponsivenessNo recent community issues