Skip to main content
Glama

wanderlog-mcp

npm npm downloads License: MIT Node.js Coverage Status

An MCP server that lets Claude (or any MCP-compatible agent) view and build Wanderlog trip itineraries through conversation.

Instead of clicking through the Wanderlog UI to plan a trip, you just ask:

"Create a 14-day Japan Golden Route trip — Tokyo, Hakone, Kyoto, Nara, and Osaka."

The agent calls the tools, interleaves places and notes for each day, adds hotel blocks, ferries, buses, trains, rental cars, and checklists, and you end up with a fully populated Wanderlog trip in a few minutes.

See a real example: 14-day Japan Golden Route — built entirely by an AI agent using this MCP server.

What's New (Unreleased)

  • wanderlog_search_hotels — search Wanderlog's hotel aggregator across airbnb, expedia, google, and kayak. Returns ranked offers with per-vendor price comparison and faceted filter discovery so the LLM never has to memorise Wanderlog's internal enum values.

  • A failed startup authentication probe now gets one shared retry on the first tool call, allowing valid sessions to recover from a transient network or proxy error without restarting the server.

Related MCP server: kyoto-assistant-mcp

What's New in v0.3.1

  • Wanderlog rate-limits rapid edits — burst mutations (an LLM building a full itinerary) now retry automatically with backoff instead of failing with an opaque "Submit op timeout".

  • Rate-limit rejections that can't be retried surface as a clear error instead of a 10-second hang.

  • New day sections created by wanderlog_update_trip_dates now match Wanderlog's native section shape exactly.

What's New in v0.3.0

  • wanderlog_search_guides + wanderlog_get_guide — discover and read user-written Wanderlog travel guides. The LLM can ask "what guides exist for Vietnam?" and pull full itineraries to use as inspiration.

  • wanderlog_remove_note — remove standalone note blocks by natural-language reference.

  • wanderlog_edit_note — find-and-replace across note blocks, place annotations, and checklist titles/items.

  • Detailed mode no longer truncates place notes or note blocks — guides and itineraries render their full commentary.

  • Fixes: notes containing embeds no longer render as [object Object]; place references now match across hyphen/dash differences (e.g. "Roppongi Hills - Tokyo City View").

What's New in v0.2.0

  • wanderlog_rename_day — replace auto-generated day headings (e.g. "Barcelona") with descriptive ones ("Arrival — Feria de Abril"). Pass "" to reset back to the default.

  • Tools table now documents wanderlog_annotate_place and wanderlog_add_expense (shipped previously, missing from v0.1.0 docs).

What's New in v0.1.0

  • Full itinerary building: places, notes, hotels, and checklists in a single conversation

  • wanderlog_search_places — find real-world places near any destination using Wanderlog's place database

  • wanderlog_add_note — interleave transit tips, booking info, and local advice between places

  • wanderlog_add_checklist — pre-trip and per-day checklists (visa, currency, timed-entry tickets)

  • MCP server instructions injected at startup so Claude builds complete itineraries automatically

  • Startup auth probe — catches expired cookies immediately instead of failing mid-conversation

Example Prompts

"What trips do I have in Wanderlog?"
"Create a 7-day itinerary for Lisbon starting June 1 — include restaurants, day trips,
and a hotel near the waterfront."
"Add a day trip to Sintra on day 3 of my Lisbon trip."
"I'm spending 5 days in Tokyo — build me a full itinerary with museum visits, ramen spots,
and a ryokan in Shinjuku."
"Look at my Barcelona trip and add practical notes for getting between each place."
"Add a pre-trip checklist to my Paris trip — visa, currency, offline maps, travel insurance."
"Move my Rome trip back by two weeks."
"Give me the shareable link to my Kyoto itinerary."
"Remove the Colosseum from day 2 of my Rome trip."

Tools

Tool

What it does

wanderlog_list_trips

List trips in your account

wanderlog_get_trip

View a full itinerary, or filter to a single day

wanderlog_get_trip_url

Get a shareable wanderlog.com link

wanderlog_get_trip_forwarding_email

Get a trip's trip+<id>@wanderlog.com import address

wanderlog_search_places

Find real-world places near a trip's destination

wanderlog_search_guides

List user-written travel guides for a destination, with fallback suggestions when none exist

wanderlog_get_guide

Read the full content of a public Wanderlog guide (sections, places, notes)

wanderlog_search_hotels

Search Wanderlog's hotel aggregator (airbnb/expedia/google/kayak) with per-vendor deal comparison

wanderlog_create_trip

Create a new trip with destination + date range

wanderlog_add_place

Add a place to a specific day or general list

wanderlog_add_note

Add a note (transit tips, booking info, local advice)

wanderlog_edit_note

Find-and-replace text in notes, place annotations, and checklists

wanderlog_remove_note

Remove a standalone note block by natural-language reference

wanderlog_add_hotel

Add a hotel booking with check-in/check-out dates

wanderlog_add_transit

Add a ferry, bus, or train leg (carrier, from/to, dates/times) to the shared Transit section

wanderlog_add_car_rental

Add a rental car with pick-up/drop-off locations and times

wanderlog_add_checklist

Add a pre-trip or per-day checklist

wanderlog_add_expense

Log a budget expense (amount, category, currency), optionally linked to a place

wanderlog_list_expenses

List budget expenses, optionally filtered by description / date / amount / currency

wanderlog_remove_expense

Remove a budget expense by description (with optional date / amount / currency filters)

wanderlog_edit_expense

Change a budget expense's description, amount, currency, category, or date

wanderlog_annotate_place

Update an existing place with a note, start/end time, or both

wanderlog_remove_place

Remove a place by natural-language reference

wanderlog_update_trip_dates

Change a trip's date range

wanderlog_rename_day

Rename a day's heading (e.g. "Barcelona""Arrival — Feria de Abril")

wanderlog_list_journal

List journal (travelogue) stops, optionally filtered by title or date

wanderlog_add_journal

Add a journal stop: a place + date/time + text entry

wanderlog_edit_journal

Edit a journal stop's title, text, or date/time (or the journal summary)

wanderlog_remove_journal

Remove a journal stop by title (with an optional date filter)

Prerequisites

  • Node.js 22 or newer

  • A Wanderlog account

  • An MCP-compatible client: Claude Code, Claude Desktop, OpenAI Codex, Cursor, VS Code, or any stdio MCP host

Setup

Wanderlog doesn't have a public API, so wanderlog-mcp authenticates using your browser session cookie (connect.sid). It's valid for roughly a year and never leaves your machine.

Treat it like a password — it grants the same access you have in the Wanderlog UI.

Chrome / Edge

  1. Go to wanderlog.com and log in

  2. Press F12 to open DevTools

  3. Click the Application tab

  4. In the left sidebar expand Storage → Cookies → https://wanderlog.com

  5. Find the row where Name is connect.sid

  6. Click the row, then double-click the Value cell and copy the full string — it starts with s%3A and is ~100 characters long

Firefox

  1. Go to wanderlog.com and log in

  2. Press F12 to open DevTools

  3. Click the Storage tab

  4. In the left sidebar expand Cookies → https://wanderlog.com

  5. Find connect.sid in the table, click it, and copy the Value

Why can't I use document.cookie in the console? Wanderlog sets connect.sid with the HttpOnly flag, which deliberately blocks JavaScript from reading it (XSS protection). DevTools bypasses this restriction — that's why it works and the console doesn't.

Step 2 — Configure your MCP client

Claude Code

claude mcp add wanderlog-mcp npx wanderlog-mcp \
  --env WANDERLOG_COOKIE="s%3A...your value here..."

Claude Desktop

Edit claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "wanderlog": {
      "command": "npx",
      "args": ["wanderlog-mcp"],
      "env": {
        "WANDERLOG_COOKIE": "s%3A...your value here..."
      }
    }
  }
}

Restart Claude Desktop after saving.

Cursor

Settings → MCP → Add server, or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "wanderlog": {
      "command": "npx",
      "args": ["wanderlog-mcp"],
      "env": {
        "WANDERLOG_COOKIE": "s%3A...your value here..."
      }
    }
  }
}

VS Code (GitHub Copilot)

Add to your workspace .vscode/mcp.json:

{
  "servers": {
    "wanderlog": {
      "type": "stdio",
      "command": "npx",
      "args": ["wanderlog-mcp"],
      "env": {
        "WANDERLOG_COOKIE": "s%3A...your value here..."
      }
    }
  }
}

OpenAI Codex

Edit ~/.codex/config.toml:

[mcp_servers.wanderlog]
command = "npx"
args = ["wanderlog-mcp"]

[mcp_servers.wanderlog.env]
WANDERLOG_COOKIE = "s%3A...your value here..."

Run /mcp inside Codex to confirm the server loaded.

Smithery (one-click install)

npx @smithery/cli install wanderlog-mcp --client claude

Step 3 — Verify

Ask your agent: "What trips do I have in Wanderlog?"

It should call wanderlog_list_trips and return your account's trips. If it fails, see Troubleshooting below.

The cookie lasts about a year but can die sooner if you log out of wanderlog.com, change your password, or Wanderlog revokes the session. When that happens every tool call returns:

Wanderlog session invalid or expired — Capture a fresh connect.sid cookie from wanderlog.com DevTools and update WANDERLOG_COOKIE in your MCP config.

Repeat Step 1 above, update your config, and restart your MCP client.

Troubleshooting

Server starts but list_trips returns an auth error Your cookie is expired or wrong. Re-capture it from DevTools and update your config.

npx wanderlog-mcp hangs or does nothing The server speaks stdio MCP — it's designed to be launched by an MCP host, not run directly in a terminal. Run it through Claude Code or Claude Desktop as described above.

Tools work but the agent ignores notes/checklists The server injects instructions into the MCP initialize response that tell the agent to interleave places and notes and add checklists. This works reliably with Claude. Other clients may vary.

Security

  • The cookie is stored only in your MCP client config, never committed or logged

  • wanderlog-mcp runs entirely on your machine — there's no relay server

  • The startup auth probe validates your cookie without printing its value

  • To revoke access: log out of wanderlog.com (invalidates all sessions), then re-capture

Contributing

Pull requests are welcome. Before submitting:

npm run build && npm run test

For changes to transport or tool code, also run:

npm run test:integration

Disclaimer

wanderlog-mcp is an unofficial third-party tool, not affiliated with or endorsed by Wanderlog. It works by calling Wanderlog's private web-client API, which may change without notice. Use at your own risk.

License

MIT — see LICENSE


Made by shaikhspeare

Available Tools

18 tools
wanderlog_add_checklistAdd a checklist to a Wanderlog tripA

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:

  • On the trip (no day): 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")

Returns a confirmation including the checklist title and item count.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to add the checklist to. Use wanderlog_list_trips if you don't know the key.
itemsYesChecklist items. Each string becomes one checkbox item, initially unchecked.
titleNoOptional title for the checklist (e.g. 'Packing list'). Omit for an untitled checklist.
dayNoOptional day to add the checklist to. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to add to the 'Places to visit' list.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: items start unchecked, can be ticked off in the app, and the tool returns a confirmation with title and item count. However, it doesn't cover potential errors, permissions, or rate limits, leaving some gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with the core purpose, followed by usage guidelines and return information. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does a good job covering the tool's purpose, usage, and basic behavior. However, as a mutation tool, it could benefit from more details on error handling or side effects, though the return confirmation is adequately described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the purpose of items ('Each string becomes one checkbox item, initially unchecked') and providing context for day parameter usage in common patterns, but doesn't elaborate on trip_key or title beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Adds') and resource ('a checklist to a Wanderlog trip'), making the purpose specific and unambiguous. It distinguishes this tool from siblings like wanderlog_add_expense or wanderlog_add_note by focusing on checklists, not other trip components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool, including 'Add at least one checklist per trip' and common patterns for different contexts (e.g., 'On the trip (no day)', 'On day 1', 'On specific days'). It also distinguishes usage from siblings by specifying checklist-specific scenarios, though it doesn't explicitly name alternatives.

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

wanderlog_add_expenseAdd a budget expense to a Wanderlog tripA

Adds a budget expense to a Wanderlog trip linked to a specific place. Expenses appear in the trip's budget tracker on the linked place.

Use this after adding places to give the trip a cost dimension — estimated meal costs, entrance fees, transport passes, etc. The place must already exist in the trip.

Returns confirmation with the expense amount and description.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to add the expense to.
amountYesCost amount (e.g. 50, 12.50).
currencyNoISO 4217 currency code (e.g. 'USD', 'JPY', 'EUR'). Defaults to USD.USD
categoryNoExpense category.other
descriptionYesWhat the expense is for (e.g. 'Lunch at Ichiran Ramen', 'Subway day pass').
placeYesNatural-language reference to link this expense to a place in the trip (e.g. 'Sensō-ji', 'the hotel'). Required — every expense must be linked to a place.
dateNoDate of the expense, YYYY-MM-DD. Defaults to today if omitted.

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the effect (expense appears in budget tracker linked to place) and return value, but lacks details on side effects, idempotency, or constraints like duplicate prevention.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: action, usage guidance, return value. No redundant information, well-structured for quick parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple add operation with 7 parameters. Provides usage context and return description, but could mention validation or error handling. No output schema and no annotations, so more detail would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented. The tool description reinforces the overall purpose but adds no new semantic information beyond what's in the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action (adds), resource (budget expense), and context (to a Wanderlog trip linked to a place). This distinguishes it from sibling tools like adding places or checklists, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use context ('Use this after adding places to give the trip a cost dimension') and a prerequisite ('The place must already exist in the trip'). No explicit exclusions or alternatives are needed given the sibling list.

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

wanderlog_add_hotelAdd a hotel booking to a Wanderlog tripA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to add the hotel to.
hotelYesHotel name to search for. Examples: 'Park Hyatt Tokyo', 'the cheap hostel near the train station'. Matched against Google Places near the trip's destination.
check_inYesCheck-in date, YYYY-MM-DD.
check_outYesCheck-out date, YYYY-MM-DD. Must be after check_in.

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool creates a section automatically if needed and describes the return format ('confirmation with the resolved hotel name and the booking window'). However, it doesn't mention important behavioral aspects like whether this is a write operation (implied but not stated), what permissions are needed, or potential error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly sized at three sentences, each earning its place. It's front-loaded with the core purpose, followed by important behavioral context (automatic section creation), and concludes with return value information. Zero waste or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter write operation with no annotations and no output schema, the description does well by explaining the core functionality, automatic section creation, and return format. However, it could be more complete by explicitly stating this is a write operation and mentioning any prerequisites or constraints beyond what's in the parameter schemas.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any additional parameter semantics beyond what's in the schema descriptions. It mentions the parameters indirectly ('with check-in and check-out dates') but provides no new information about their usage or meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Adds a hotel booking'), target resource ('to a Wanderlog trip'), and scope ('with check-in and check-out dates'). It distinguishes from sibling tools like wanderlog_add_place or wanderlog_add_expense by focusing specifically on hotel bookings rather than generic items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool - specifically for adding hotel bookings to trips. It mentions automatic creation of a 'Hotels and lodging' section if needed, which is helpful guidance. However, it doesn't explicitly state when NOT to use it or mention alternatives among the sibling tools.

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

wanderlog_add_noteAdd a note to a Wanderlog tripA

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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to add the note to. Use wanderlog_list_trips if you don't know the key.
textYesThe note text. Plain text — can be multi-line.
dayNoOptional day to add the note to. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to add to the 'Places to visit' list.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains that notes 'appear inline between places in a day' and serve as 'connective tissue,' clarifying their role in itinerary construction. It also mentions the return value ('confirmation of where the note was added'), though it doesn't detail permission requirements or mutation effects beyond the implied creation action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: the first sentence states the purpose, the second explains the functional role, and subsequent sections provide usage guidelines and examples without redundancy. Every sentence contributes directly to tool understanding, making it front-loaded and waste-free.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is largely complete. It covers purpose, usage context, and behavioral role, though it lacks details on error conditions, authentication needs, or the exact format of the return confirmation, which would be beneficial for full agent guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing baseline documentation for all parameters. The description adds minimal semantic value beyond the schema, only implying through examples that 'text' should be practical travel advice rather than arbitrary content, but doesn't elaborate on parameter interactions or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Adds a text note to a Wanderlog trip') and resource ('Wanderlog trip'), distinguishing it from sibling tools like wanderlog_add_place or wanderlog_add_expense by focusing on textual annotations rather than physical locations or financial items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool ('after adding each place or group of places') and includes five concrete examples of appropriate note content (e.g., transportation tips, booking advice), giving clear context for application without needing to specify exclusions.

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

wanderlog_add_placeAdd a place to a Wanderlog tripA

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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to add to. Use wanderlog_list_trips if you don't know the key.
placeYesName of the place to add. Examples: 'Sensō-ji', 'a ramen place in Shinjuku', 'Louvre'. Will be matched against Google Places near the trip's destination; if multiple match, the top result is used.
dayNoOptional day to add the place to. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to add the place to the trip's 'Places to visit' list (unscheduled).
noteNoOptional inline note attached directly to this place. Use for practical context: transit directions, what to order, booking tips, time guidance. Appears on the place itself in Wanderlog (not as a separate note block).
start_timeNoOptional start time in HH:mm format (e.g. '09:00'). Adds a scheduled time to the place.
end_timeNoOptional end time in HH:mm format (e.g. '11:30'). Only used with start_time.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well at disclosing key behaviors: it explains the place matching logic ('Searches for the place near the trip's destination, picks the best match'), clarifies where the place gets inserted ('either a specific day or the general "Places to visit" list'), describes the note attachment mechanism, and mentions the return format. It doesn't cover error cases or rate limits, but provides substantial operational context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with clear paragraphs: first stating the core operation, then providing usage guidance for parameters, then clarifying when to use alternatives, and finally describing the return. Every sentence adds value with zero redundant information, and it's appropriately sized for a 6-parameter tool with complex sibling relationships.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no annotations, and no output schema, the description does well: it covers the core operation, parameter usage, sibling differentiation, and return information. The main gap is lack of explicit error handling or permission requirements, but given the rich parameter guidance and behavioral context, it's mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema: it explains the practical use of the note parameter ('transit directions, what to order, booking tips, time guidance'), clarifies the relationship between start_time and end_time, and provides guidance on when to use versus omit parameters. This elevates the score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Adds' and resource 'a place to a Wanderlog trip', specifying the exact operation. It distinguishes from siblings like wanderlog_add_note by explaining this tool attaches notes directly to places rather than creating separate note blocks, and from wanderlog_search_places by emphasizing it picks the best match and inserts into the itinerary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: it states 'PREFERRED: Use the "note" parameter... This is better than a separate wanderlog_add_note call' and specifies 'Use standalone wanderlog_add_note only for freestanding commentary between places.' It also clarifies when to use start_time/end_time parameters and when to omit the day parameter.

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

wanderlog_annotate_placeUpdate a place with notes, times, or bothA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip containing the place.
placeYesNatural-language reference to the place. Examples: 'Sensō-ji', 'the hotel', 'Queenstown Gardens on day 2'. Supports ordinals for duplicates: '2nd Starbucks'.
noteNoSet or replace the inline note on this place. Practical context: transit, tips, timing, what to see.
start_timeNoSet or replace the start time (HH:mm format).
end_timeNoSet or replace the end time (HH:mm format).

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full burden and provides valuable behavioral context: it explains that updates can include notes or times, mentions the natural-language resolution with disambiguation behavior, and states that changes require at least one update field. However, it doesn't cover potential errors, permissions, or mutation side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by usage guidance and constraints in clear, efficient sentences. Every sentence adds value without redundancy, making it easy to scan and understand quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description does well by explaining what the tool does, when to use it, and key behaviors like disambiguation. However, it lacks details on return values or error handling, which would be helpful given the complexity of natural-language place resolution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, such as hinting at the purpose of 'note' ('Practical context: transit, tips, timing, what to see') and referencing sibling syntax, but doesn't significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Updates an existing place'), resource ('in a Wanderlog trip'), and scope ('with an inline note, start/end time, or both'). It distinguishes from siblings like wanderlog_add_place (adds new) and wanderlog_remove_place (removes), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Use this to enrich places that were already added' clarifies when to use versus alternatives like wanderlog_add_place for new places. It also specifies prerequisites ('At least one of note, start_time, or end_time must be provided') and references sibling wanderlog_remove_place for context.

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

wanderlog_create_tripCreate a Wanderlog 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
destinationYesCity or region name to plan the trip around (e.g. 'Lisbon', 'Tokyo', 'Banff'). Resolved via Wanderlog's geo autocomplete — the top-ranked result is used.
start_dateYesFirst day of the trip, YYYY-MM-DD.
end_dateYesLast day of the trip, YYYY-MM-DD.
titleNoOptional custom title. If omitted, Wanderlog auto-generates one like 'Trip to Lisbon'.
privacyNoTrip visibility. 'private' is the safe default.private

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the trip is created empty with pre-generated day sections, returns a trip key for reference, and provides practical guidance about what makes a good itinerary. It doesn't mention error conditions or rate limits, but covers the essential creation workflow thoroughly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The subsequent guidance about populating the trip is valuable but somewhat lengthy. Every sentence serves a purpose, though some could be more concise. The structure flows logically from creation to population guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with no annotations and no output schema, the description provides excellent contextual completeness. It explains the creation outcome (empty trip with day sections), the return value (trip key), and comprehensive guidance on how to use sibling tools to build a complete itinerary. This addresses the complexity of trip creation in Wanderlog's ecosystem effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description doesn't add any parameter-specific information beyond what's already documented in the schema descriptions. It mentions 'destination and date range' generically but provides no additional syntax, format, or usage details about the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Creates a new Wanderlog trip') with precise resource details ('for the given destination and date range') and distinguishes it from siblings by explaining it creates an empty trip with pre-generated day sections, unlike other tools that add content. The first sentence provides a complete purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (to create a new empty trip) and when to use alternatives, listing four specific sibling tools (wanderlog_add_place, wanderlog_add_note, wanderlog_add_hotel, wanderlog_add_checklist) that should be used together after creation to populate the trip. It also explains the relationship between tools for creating a complete itinerary.

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

wanderlog_edit_noteEdit note content in a Wanderlog tripA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to edit.
old_textYesSubstring to find and replace (case-insensitive).
new_textYesReplacement text.
dayNoOptional day to search. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to search the entire trip.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description fully discloses behavior: case-insensitive search, scope across note types, handling of no matches (error) and multiple matches (numbered previews), and in-place replacement when exactly one match is found. It also mentions the optional day filter. Could add return value details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 8 sentences, well-structured with the main action first, then behavioral details and optional filter. Every sentence provides useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers search scope, match handling, and optional filter but lacks specification of the return value on success (e.g., confirmation or updated content). Given no output schema, this omission reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining search behavior (case-insensitive, multiple match handling) and clarifying the day format flexibility. It extends beyond the schema's brief parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it edits note content by finding and replacing a substring, specifying the resources (freestanding notes, place annotations, checklist items). It distinguishes from sibling tools like wanderlog_add_note and wanderlog_remove_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to replace a substring), how it handles matches (single, none, multiple), and provides guidance on using a more specific substring or the day filter. It does not explicitly state when not to use it, but the context is clear.

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

wanderlog_get_guideRead a Wanderlog travel 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
guide_keyYesGuide's viewKey (the 'guide_key' returned by wanderlog_search_guides, e.g. 'hejurejdks').
dayNoOptional day filter — pass a day heading or date to scope the output to one day.
response_formatNoOutput verbosity. 'concise' is a readable summary; 'detailed' adds addresses, phone numbers, ratings.concise

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, so description must carry full burden. It implies a read operation ('fetches'), but does not explicitly state idempotence, side-effect-free nature, or authentication requirements. Adequate but lacks explicit behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no unnecessary words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description indicates return type ('readable text') and contents (sections, places, notes). With 3 parameters all documented, description is nearly complete; could specify response format more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by connecting guide_key to wanderlog_search_guides, providing context beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool fetches full content of a public Wanderlog guide (sections, places, notes) and renders as text. Distinguishes from sibling wanderlog_get_trip by specifying scope (public vs. own trips).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: after obtaining a guide_key from wanderlog_search_guides. Also instructs when not to use: for own trips, use wanderlog_get_trip instead. Provides clear alternatives.

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

wanderlog_get_tripGet a Wanderlog 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, or hotel check-in/out dates.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe unique trip key from wanderlog_list_trips (e.g. 'vzyrsyhgxvonvxcz'). Required.
dayNoOptional filter to a single day. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to return the whole trip.
response_formatNoOutput verbosity. 'concise' (default) is a readable summary grouped by day; 'detailed' adds addresses, phone numbers, ratings, and check-in dates.concise

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it returns itinerary data, supports optional day filtering, and offers two output formats with clear distinctions. However, it doesn't mention potential limitations like rate limits, authentication requirements, or error conditions, leaving some behavioral aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly structured and front-loaded: the first sentence states the core purpose, followed by specific usage guidelines for format selection, and ends with prerequisite guidance. Every sentence serves a distinct purpose with zero redundancy, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description provides excellent coverage of purpose, usage, and parameter context. It falls slightly short by not describing the return structure or potential error cases, which would be helpful since there's no output schema. However, it compensates well with clear behavioral guidance for a read-only operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, providing a strong baseline. The description adds meaningful context by explaining the practical use of parameters: it clarifies that trip_key comes from wanderlog_list_trips, gives examples of day filter formats, and most importantly, explains when to choose 'concise' vs 'detailed' response_format based on user intent, which goes beyond the schema's technical descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('returns the itinerary') and resources ('one Wanderlog trip'), listing exactly what it returns: hotels list, places to visit list, and each day's scheduled places. It distinguishes itself from sibling tools like wanderlog_list_trips (which finds trip keys) and wanderlog_get_trip_url (which presumably returns a URL rather than itinerary content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives: it instructs to call wanderlog_list_trips first if the trip_key is unknown, and it specifies when to use 'concise' versus 'detailed' formats based on user needs (summarizing vs. specific info requests). This covers both prerequisites and format selection criteria.

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

wanderlog_get_trip_urlGet the wanderlog.com URL for a tripA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip key from wanderlog_list_trips.
modeNoWhich link variant to return. 'edit' (default) is the primary link with full permissions. 'view' is a read-only share link. 'suggest' is a suggest-mode share link where collaborators can propose changes.edit

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It effectively discloses behavioral traits: it's a read-only operation (returns a URL), describes permission levels for each mode (full-permission, read-only, suggest-mode), and mentions sharing implications. However, it doesn't cover potential errors (e.g., invalid trip_key) or rate limits, leaving minor gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by structured details about mode variants and a clear default rule. Every sentence earns its place: the first states the goal, the next explains mode options, and the last provides usage guidance. No wasted words, and it's appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description does well by covering purpose, usage, and parameter context. However, it doesn't specify the return format (e.g., a string URL) or error handling, which could be useful for an agent. For a simple URL-fetching tool, it's nearly complete but has minor omissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the practical meaning of mode variants beyond the schema's enum list: it clarifies that 'edit' is for owners, 'view' is safe to share, and 'suggest' allows collaborators to propose changes. This enhances understanding but doesn't fully detail trip_key semantics beyond referencing wanderlog_list_trips.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Returns') and resource ('the wanderlog.com URL for a trip'), specifying it's for opening in a browser. It distinguishes from siblings like wanderlog_get_trip (which likely returns trip data) and wanderlog_list_trips (which lists trips), focusing specifically on URL generation rather than trip content manipulation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use different modes: 'edit' for owners, 'view' for safe sharing, and 'suggest' for collaborative proposals. It also offers a decision rule: 'If you don't know which mode the user wants, default to edit.' This gives clear alternatives and a fallback strategy.

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

wanderlog_list_tripsList Wanderlog 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNoOutput verbosity. 'concise' (default) gives a one-line summary per trip; 'detailed' includes key, owner, and last-edited time.concise

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well: it discloses authentication requirement ('authenticated user's account'), scope of data returned ('owned and shared-with-you'), return format details ('compact list with title, dates, place count, and trip_key'), and specific extraction instruction for downstream use. It doesn't mention rate limits or pagination, but covers essential behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three well-structured sentences with zero waste: first states purpose and scope, second provides usage guidance, third gives implementation detail. Every sentence adds value and is front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 1 parameter and no output schema, the description is quite complete: covers purpose, authentication, scope, return format, and usage guidance. It doesn't explain the exact structure of returned data or error conditions, but provides enough context for effective use given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents the single parameter. The description doesn't add any parameter-specific information beyond what's in the schema. Baseline 3 is appropriate when schema does all the parameter documentation work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Lists') and resource ('all Wanderlog trips'), specifies scope ('in the authenticated user's account'), and distinguishes from siblings by noting it returns trip_key needed by wanderlog_get_trip and wanderlog_search_places. It goes beyond a simple restatement of the name/title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('when the user mentions a trip by name but you don't have its trip_key yet') and names specific alternative tools (wanderlog_get_trip, wanderlog_search_places) that require the key obtained from this tool. Provides clear context for tool selection.

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

wanderlog_remove_noteRemove a note from a Wanderlog tripA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to remove from.
textYesSubstring to match against note content (case-insensitive).
dayNoOptional day to search. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to search the entire trip.

TDQS

A4.6/5.0
Behavior5/5

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

The description fully discloses behavioral traits: case-insensitive matching, exact match vs multiple matches vs no match outcomes, and the optional day filter. Since no annotations are provided, the description carries the full burden and meets it well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and well-structured: first sentence states purpose, then details matching, multiple match handling, and optional filter. No redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description explains the outcomes: deletion, no match error, multiple match previews. It does not specify the exact format of the preview or success response, but it is largely complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes each parameter, but the description adds context about case-insensitivity, the nature of the text substring, and the day format ('day 2', 'May 4', ISO). This enriches the parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool removes a note block from a Wanderlog trip by matching a substring of its text content. The verb 'removes' and resource 'note block' are specific, and it distinguishes itself from sibling tools like wanderlog_add_note (adds) and wanderlog_edit_note (edits).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the matching behavior (case-insensitive, substring), how to handle multiple matches (supply more specific substring), and the optional day filter. It does not explicitly compare to alternative tools or state when not to use it, but the context is clear for the intended use.

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

wanderlog_remove_placeRemove a place from a Wanderlog tripA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to remove from.
place_refYesNatural-language reference to the place you want to remove. Examples: 'Queenstown Gardens', 'the hotel', 'the sushi place on day 3'. Supports ordinal prefixes for duplicates: '1st Queenstown Gardens', 'second Queenstown Gardens', 'last Queenstown Gardens'. Supports day filters via ' on ': 'Queenstown Gardens on May 4'. Ordinals and day filters can be combined: '2nd Queenstown Gardens on May 4'.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly describes the tool's behavior: it removes items, handles ambiguous references by returning a numbered list without making changes, and requires re-calling with more specific inputs. This covers key operational traits like mutation effects and error handling, though it doesn't mention permissions or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded, starting with the core purpose and immediately following with detailed reference forms and behavioral notes. Every sentence adds value, with no wasted words, and the structure logically flows from general to specific usage scenarios.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with natural-language parsing) and no annotations or output schema, the description does well by explaining behavior, reference formats, and ambiguity handling. However, it lacks details on return values (e.g., what happens on successful removal) and potential error cases beyond ambiguity, leaving minor gaps in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds significant value beyond the schema by detailing supported reference forms (e.g., exact/partial names, role keywords, day filters, ordinal prefixes, combinations) and providing examples of how 'place_ref' works in practice. This enhances understanding of parameter usage, though it doesn't fully explain 'trip_key' beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('removes') and resource ('a place from a Wanderlog trip'), specifying it applies to any block type (place, flight, train, hotel). It distinguishes from siblings like 'wanderlog_add_place' by being the removal counterpart, making the purpose specific and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: to remove items based on natural-language references. It provides clear guidance on when not to use it (when references are ambiguous, as it returns a list without changes) and how to handle alternatives (re-call with more specific filters). This covers both usage context and exclusions effectively.

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

wanderlog_rename_dayRename a day heading in a Wanderlog tripA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip containing the day to rename.
dayYesWhich day to rename. Accepts "day 3", "May 4", or "2026-05-04".
headingYesNew heading for the day. Use "" (empty string) to clear the heading back to the auto-generated default.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It clearly states the effect (renames heading), explains what headings are (itinerary titles), and documents the reset behavior. It does not mention side effects beyond renaming, but for a simple rename tool this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three short sentences, each earning its place: first states the action, second provides context, third handles edge case. It is front-loaded and has no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (rename a day heading) and the absence of an output schema, the description fully covers behavior, parameter details, edge cases, and context (headings appear in itinerary). No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value beyond the schema: it clarifies that 'day' accepts multiple formats (e.g., 'day 3', 'May 4') and that 'heading' can be empty to reset. This enhances understanding of parameter usage beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool renames day headings in a Wanderlog trip, using a specific verb and resource. It distinguishes itself from sibling tools (e.g., wanderlog_edit_note, wanderlog_remove_place) by being the only one focused on renaming day headings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (replace headings with more descriptive titles) and includes a special case (empty string resets to auto-generated heading). While it does not explicitly mention when not to use it, the sibling tools cover different operations, making the intended usage clear.

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

wanderlog_search_guidesSearch Wanderlog travel 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
destinationNoFree-text destination (e.g. 'Vietnam', 'Kyoto'). Resolved via geoAutocomplete; multi-match auto-picks the highest-popularity geo and surfaces up to 2 candidates in 'alternative_geos'.
geo_idNoExplicit Wanderlog geo id (from a prior response's 'geo' or 'alternative_geos').
response_formatNoOutput verbosity. 'concise' (default) returns guide_key, title, author, place_count, view_count. 'detailed' adds blurb, like_count, edited_at, distinction, profile_picture_url, header_image_url.concise

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses auto-pick behavior for free-text destinations, limited alternatives, and fallback alternatives when no guides exist. Does not mention authentication or rate limits, but covers key behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose, followed by usage guidance and parameter details. Every sentence adds value, no fluff. Well-structured for quick scanning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description explains what the response contains based on response_format, including fields and alternative geos. Also provides next step: use wanderlog_get_guide. Complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds value by explaining the auto-pick logic for destination, the mutual exclusivity of destination/geo_id, and the meaning of alternative_geos and alternative_geos_with_guides fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Lists user-written Wanderlog travel guides for a destination' and distinguishes from siblings like wanderlog_search_places and wanderlog_get_guide by specifying the resource and the follow-up action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: 'Use this when the user asks for inspiration, an itinerary they can copy, or "what guides exist for X".' Also provides constraints and alternatives: 'Specify exactly one of destination or geo_id' and 'Pass the returned guide_key to wanderlog_get_guide'.

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

wanderlog_search_placesSearch places near a Wanderlog tripA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to scope this search to. Search results are geographically biased toward the trip's destination.
queryYesWhat to search for. Examples: 'sushi restaurant', 'hiking trail', 'coffee near the hotel'.
response_formatNoOutput verbosity. 'concise' lists name + description only; 'detailed' adds the Google place_id needed for downstream tool calls.concise

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: results are geographically biased toward the trip's location (not global), it returns candidate results with names and short descriptions, and it supports two response formats with different outputs. However, it doesn't mention potential limitations like rate limits, authentication needs, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with four focused sentences that each add value: first states purpose, second explains usage context, third clarifies geographic scope, and fourth provides workflow guidance. There's no redundant information, and key points are front-loaded appropriately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 3 parameters, 100% schema coverage, and no output schema, the description provides strong contextual completeness. It explains the tool's purpose, usage scenarios, geographic behavior, and format differences. The main gap is the lack of output details (what exactly is returned beyond 'names and short descriptions'), but given the schema coverage and clear behavioral context, this is a minor limitation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters well. The description adds meaningful context by explaining that results are 'geographically biased toward the trip's destination' (enhancing trip_key understanding), providing query examples like 'sushi restaurant', and clarifying the purpose difference between 'concise' and 'detailed' formats beyond the schema's technical descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for real-world places near a Wanderlog trip destination, specifying the resource (places) and action (search). It explicitly distinguishes this from sibling tools like wanderlog_add_place by focusing on search rather than addition, and mentions specific place types (restaurants, attractions, hotels, parks, landmarks).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: for resolving user requests like 'find a good coffee shop' into place candidates, and for preparing to add places to a trip. It distinguishes usage between 'concise' format for presenting options and 'detailed' format for obtaining place_ids for downstream actions, offering clear alternatives within the tool itself.

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

wanderlog_update_trip_datesUpdate a Wanderlog trip's date rangeA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
trip_keyYesThe trip to update.
start_dateYesNew first day of the trip, YYYY-MM-DD.
end_dateYesNew last day of the trip, YYYY-MM-DD. Must be >= start_date.
forceNoIf true, allows the update even when it would delete days that currently contain places. DEFAULT false — the tool refuses destructive removes with a helpful error listing what would be lost, so the user can move content first.

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden and delivers comprehensive behavioral disclosure. It explains content preservation logic ('Preserves content on days that remain...'), safety mechanisms ('refuses by default and returns a list of the content that would be lost'), override behavior with force parameter, and scope limitations regarding other trip sections.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured with clear sections: core functionality, safety behavior, and scope limitations. Every sentence adds essential information with zero waste. It's appropriately sized for a tool with significant behavioral complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description provides complete context: it explains what the tool does, when to use it, safety considerations, parameter implications, and limitations. The behavioral transparency section compensates for the lack of structured annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema: it explains the consequences of the force parameter ('allows the update even when it would delete days that currently contain places') and clarifies that days are added/removed based on date range changes, providing valuable semantic understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Changes the date range'), target resource ('existing Wanderlog trip'), and scope ('only the per-day sections are added/removed'). It distinguishes from sibling tools like wanderlog_add_hotel or wanderlog_remove_place by specifying it only affects day sections, not other trip components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool vs alternatives: it states 'Does not affect the Hotels, Flights, Transit, or Places-to-visit sections', implying those require different tools. It also gives clear prerequisites: 'move the content to other days first' before using force parameter.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.3.1
    • Changedwanderlog_add_expense4 fields changed
      • changedInput schema / properties / category / enum
        Previous value: -[
        -  "food",
        -  "transport",
        -  "accommodation",
        -  "activities",
        -  "shopping",
        -  "other"
        -]New value: +[
        +  "food",
        +  "drinks",
        +  "groceries",
        +  "publicTransit",
        +  "carRental",
        +  "gas",
        +  "flights",
        +  "lodging",
        +  "sightseeing",
        +  "activities",
        +  "shopping",
        +  "other"
        +]
      • changedInput schema / properties / place / description
        Previous value: -"Optional natural-language reference to link this expense to a place in the trip (e.g. 'Sensō-ji', 'the hotel'). If omitted, the expense is unlinked."New value: +"Natural-language reference to link this expense to a place in the trip (e.g. 'Sensō-ji', 'the hotel'). Required — every expense must be linked to a place."
      • addedInput schema / properties / place / minLength
        Added value: +1
      • changedInput schema / required
        Previous value: -[
        -  "trip_key",
        -  "amount",
        -  "description"
        -]New value: +[
        +  "trip_key",
        +  "amount",
        +  "description",
        +  "place"
        +]
    • Addedwanderlog_edit_note
    • Addedwanderlog_get_guide
    • Addedwanderlog_remove_note
    • Addedwanderlog_rename_day
    • Addedwanderlog_search_guides
  2. 13 tool updatesv0.1.0
    • First observedwanderlog_add_checklist
    • First observedwanderlog_add_expense
    • First observedwanderlog_add_hotel
    • First observedwanderlog_add_note
    • First observedwanderlog_add_place
    • First observedwanderlog_annotate_place
    • First observedwanderlog_create_trip
    • First observedwanderlog_get_trip
    • First observedwanderlog_get_trip_url
    • First observedwanderlog_list_trips
    • First observedwanderlog_remove_place
    • First observedwanderlog_search_places
    • First observedwanderlog_update_trip_dates

TDQS

A4.3/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target distinct resources and actions (trips, places, notes, checklists, expenses, guides), so an agent can generally select correctly. The main overlap is between add_place's 'note' parameter, standalone add_note, and annotate_place, all of which can attach notes to an itinerary.

Naming Consistency5/5

All tools share a consistent 'wanderlog_<verb>_<noun>' snake_case pattern with no style mixing. Verbs are predictable (list, get, search, create, add, edit, remove, update, rename), and resource names are consistent.

Tool Count4/5

18 tools is on the heavier side, but each tool maps to a distinct itinerary-building action and none feel redundant. The count is slightly high but still reasonable for a travel-planning domain.

Completeness4/5

The set covers the core trip lifecycle well: create/list/get/populate, add places/hotels/notes/checklists/expenses, and edit/remove sub-items. Obvious minor gaps exist—no delete_trip, no dedicated flight/train creation, and no checklist/expense removal—but agents can work around most of these.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Kyoto travel planning assistant that uses Wikivoyage API and LangChain/LangGraph to provide real-time attraction info, operating hours, and dynamic itinerary adjustments through MCP tools.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Multi-domain MCP server enabling AI agents to plan and execute vacation travel and birthday party logistics via local tool pipelines.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Coordinates flights, hotels, events, weather, currency, and traffic data through a single MCP server, enabling comprehensive trip planning via natural language prompts.
    MIT