wanderlog-mcp
wanderlog-mcp
Claude(또는 MCP 호환 에이전트)가 대화를 통해 Wanderlog 여행 일정을 조회하고 만들 수 있게 해주는 MCP 서버입니다.
Wanderlog UI를 클릭하며 여행을 계획하는 대신, 그냥 이렇게 물어보면 됩니다:
"14일 일본 골든 루트 여행을 만들어 줘 — 도쿄, 하코네, 교토, 나라, 오사카."
에이전트가 도구를 호출하여 각 날짜에 장소와 메모를 섞어 넣고, 호텔 블록, 페리, 버스, 기차, 렌터카, 체크리스트를 추가하면 몇 분 안에 완전히 채워진 Wanderlog 여행 일정이 완성됩니다.
실제 예시 보기: 14일 일본 골든 루트 — 이 MCP 서버를 사용하여 AI 에이전트가 전적으로 만든 여행 일정입니다.
새로운 기능 (미출시)
wanderlog_search_hotels— airbnb, expedia, google, kayak의 Wanderlog 호텔 통합 검색을 제공합니다. 공급업체별 가격 비교와 패싯 필터 탐색이 포함된 순위별 오퍼를 반환하므로 LLM이 Wanderlog 내부 enum 값을 외울 필요가 없습니다.시작 시 인증 프로브가 실패하면 첫 번째 도구 호출에서 공유 재시도가 한 번 이루어져, 유효한 세션이 서버를 재시작하지 않고도 일시적인 네트워크 또는 프록시 오류에서 복구될 수 있습니다.
Related MCP server: wanderlog-mcp
v0.3.1의 새로운 기능
Wanderlog는 빠른 편집을 속도 제한합니다. 전체 일정을 만드는 LLM과 같은 폭발적인 변경은 불투명한 "Submit op timeout" 오류로 실패하는 대신 백오프와 함께 자동으로 재시도됩니다.
재시도할 수 없는 속도 제한 거부는 10초 동안 멈추는 대신 명확한 오류로 표시됩니다.
wanderlog_update_trip_dates로 생성된 새 날짜 섹션이 이제 Wanderlog의 기본 섹션 형태와 정확히 일치합니다.
v0.3.0의 새로운 기능
wanderlog_search_guides+wanderlog_get_guide— 사용자가 작성한 Wanderlog 여행 가이드를 발견하고 읽습니다. LLM은 "베트남에 어떤 가이드가 있나요?"라고 물어보고 전체 일정을 가져와 영감으로 사용할 수 있습니다.wanderlog_remove_note— 자연어 참조로 독립형 메모 블록을 제거합니다.wanderlog_edit_note— 메모 블록, 장소 주석, 체크리스트 제목/항목에서 찾아 바꾸기를 수행합니다.상세 모드에서 더 이상 장소 메모나 메모 블록을 자르지 않습니다. 가이드와 일정의 전체 설명이 렌더링됩니다.
수정 사항: 임베드를 포함한 메모가 더 이상
[object Object]로 렌더링되지 않습니다. 장소 참조는 이제 하이픈/대시 차이를 무시하고 일치합니다(예:"Roppongi Hills - Tokyo City View").
v0.2.0의 새로운 기능
wanderlog_rename_day— 자동 생성된 날짜 제목(예:"Barcelona")을 설명적인 제목("Arrival — Feria de Abril")으로 바꿉니다.""를 전달하면 기본값으로 재설정됩니다.도구 표에 이제
wanderlog_annotate_place와wanderlog_add_expense가 문서화되었습니다(이전에 출시되었으나 v0.1.0 문서에는 누락).
v0.1.0의 새로운 기능
단일 대화에서 장소, 메모, 호텔, 체크리스트를 포함한 전체 일정 작성
wanderlog_search_places— Wanderlog의 장소 데이터베이스를 사용하여 모든 목적지 주변의 실제 장소를 검색합니다wanderlog_add_note— 장소 사이에 교통 팁, 예약 정보, 현지 조언을 섞어 넣습니다wanderlog_add_checklist— 여행 전 및 날짜별 체크리스트(비자, 통화, 시간 지정 입장권)시작 시 MCP 서버 지침이 주입되어 Claude가 완전한 일정을 자동으로 작성합니다
시작 인증 프로브 — 대화 중간에 실패하는 대신 만료된 쿠키를 즉시 감지합니다
예시 프롬프트
"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."도구
도구 | 기능 |
| 계정의 여행 목록을 표시합니다 |
| 전체 일정을 보거나 특정 날짜로 필터링합니다 |
| 공유 가능한 wanderlog.com 링크를 가져옵니다 |
| 여행의 |
| 여행 목적지 주변의 실제 장소를 검색합니다 |
| 목적지에 대한 사용자 작성 여행 가이드를 나열하며, 없을 때 대체 제안을 제공합니다 |
| 공개 Wanderlog 가이드의 전체 내용(섹션, 장소, 메모)을 읽습니다 |
| Wanderlog 호텔 통합 검색(airbnb/expedia/google/kayak)을 공급업체별 거래 비교와 함께 제공합니다 |
| 목적지와 날짜 범위로 새 여행을 만듭니다 |
| 특정 날짜 또는 일반 목록에 장소를 추가합니다 |
| 메모(교통 팁, 예약 정보, 현지 조언)를 추가합니다 |
| 메모, 장소 주석, 체크리스트에서 텍스트를 찾아 바꿉니다 |
| 자연어 참조로 독립형 메모 블록을 제거합니다 |
| 체크인/체크아웃 날짜가 포함된 호텔 예약을 추가합니다 |
| 공유 교통 섹션에 페리, 버스 또는 기차 구간(운송사, 출발/도착, 날짜/시간)을 추가합니다 |
| 픽업/반납 장소와 시간이 포함된 렌터카를 추가합니다 |
| 여행 전 또는 날짜별 체크리스트를 추가합니다 |
| 예산 지출(금액, 카테고리, 통화)을 기록하며, 선택적으로 장소에 연결할 수 있습니다 |
| 예산 지출 목록을 표시하며, 설명 / 날짜 / 금액 / 통화로 선택적으로 필터링할 수 있습니다 |
| 설명으로 예산 지출을 제거합니다(선택적으로 날짜 / 금액 / 통화 필터 사용) |
| 예산 지출의 설명, 금액, 통화, 카테고리 또는 날짜를 변경합니다 |
| 기존 장소에 메모, 시작/종료 시간 또는 둘 다를 추가하여 업데이트합니다 |
| 자연어 참조로 장소를 제거합니다 |
| 여행의 날짜 범위를 변경합니다 |
| 날짜의 제목을 변경합니다(예: |
| 저널(여행기) 정류장 목록을 표시하며, 제목 또는 날짜로 선택적으로 필터링할 수 있습니다 |
| 저널 정류장을 추가합니다: 장소 + 날짜/시간 + 텍스트 항목 |
| 저널 정류장의 제목, 텍스트 또는 날짜/시간(또는 저널 요약)을 편집합니다 |
| 제목으로 저널 정류장을 제거합니다(선택적으로 날짜 필터 사용) |
사전 요구 사항
Node.js 22 이상
Wanderlog 계정
MCP 호환 클라이언트: Claude Code, Claude Desktop, OpenAI Codex, Cursor, VS Code 또는 모든 stdio MCP 호스트
설정
1단계 — Wanderlog 세션 쿠키 가져오기
Wanderlog에는 공개 API가 없으므로 wanderlog-mcp는 브라우저 세션 쿠키(connect.sid)를 사용하여 인증합니다. 이 쿠키는 약 1년 동안 유효하며 사용자의 컴퓨터를 벗어나지 않습니다.
비밀번호처럼 취급하세요 — Wanderlog UI에서 가지고 있는 것과 동일한 액세스 권한을 부여합니다.
Chrome / Edge
wanderlog.com에 접속하여 로그인합니다
F12를 눌러 DevTools를 엽니다Application 탭을 클릭합니다
왼쪽 사이드바에서 **Storage → Cookies → https://wanderlog.com**을 펼칩니다
Name이
connect.sid인 행을 찾습니다행을 클릭한 다음 Value 셀을 더블클릭하고 전체 문자열을 복사합니다 —
s%3A로 시작하며 길이는 ~100자입니다
Firefox
wanderlog.com에 접속하여 로그인합니다
F12를 눌러 DevTools를 엽니다Storage 탭을 클릭합니다
왼쪽 사이드바에서 **Cookies → https://wanderlog.com**을 펼칩니다
테이블에서
connect.sid를 찾아 클릭하고 Value를 복사합니다
콘솔에서
document.cookie를 사용할 수 없는 이유는 무엇인가요? Wanderlog는connect.sid를HttpOnly플래그로 설정하여 JavaScript가 이를 읽는 것을 의도적으로 차단합니다(XSS 보호). DevTools는 이 제한을 우회하므로 콘솔에서는 안 되지만 DevTools에서는 작동하는 것입니다.
2단계 — MCP 클라이언트 구성
Claude Code
claude mcp add wanderlog-mcp npx wanderlog-mcp \
--env WANDERLOG_COOKIE="s%3A...your value here..."Claude Desktop
claude_desktop_config.json을 편집합니다:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"wanderlog": {
"command": "npx",
"args": ["wanderlog-mcp"],
"env": {
"WANDERLOG_COOKIE": "s%3A...your value here..."
}
}
}
}저장한 후 Claude Desktop을 다시 시작합니다.
Cursor
설정 → MCP → 서버 추가, 또는 ~/.cursor/mcp.json을 편집합니다:
{
"mcpServers": {
"wanderlog": {
"command": "npx",
"args": ["wanderlog-mcp"],
"env": {
"WANDERLOG_COOKIE": "s%3A...your value here..."
}
}
}
}VS Code (GitHub Copilot)
작업 공간의 .vscode/mcp.json에 추가합니다:
{
"servers": {
"wanderlog": {
"type": "stdio",
"command": "npx",
"args": ["wanderlog-mcp"],
"env": {
"WANDERLOG_COOKIE": "s%3A...your value here..."
}
}
}
}OpenAI Codex
~/.codex/config.toml을 편집합니다:
[mcp_servers.wanderlog]
command = "npx"
args = ["wanderlog-mcp"]
[mcp_servers.wanderlog.env]
WANDERLOG_COOKIE = "s%3A...your value here..."Codex에서 /mcp를 실행하여 서버가 로드되었는지 확인합니다.
Smithery (원클릭 설치)
npx @smithery/cli install wanderlog-mcp --client claude3단계 — 확인
에이전트에게 물어보세요: "Wanderlog에 어떤 여행이 있나요?"
wanderlog_list_trips를 호출하여 계정의 여행 목록을 반환해야 합니다. 실패하면 아래의 문제 해결을 참조하세요.
쿠키 새로고침
쿠키는 약 1년 동안 유지되지만 wanderlog.com에서 로그아웃하거나 비밀번호를 변경하거나 Wanderlog가 세션을 취소하면 더 일찍 만료될 수 있습니다. 이 경우 모든 도구 호출이 다음을 반환합니다:
Wanderlog 세션이 유효하지 않거나 만료됨 — wanderlog.com DevTools에서 새 connect.sid 쿠키를 캡처하고 MCP 구성의 WANDERLOG_COOKIE를 업데이트하세요.
위의 1단계를 반복하고 구성을 업데이트한 다음 MCP 클라이언트를 다시 시작합니다.
문제 해결
서버는 시작되지만 list_trips가 인증 오류를 반환합니다 쿠키가 만료되었거나 잘못되었습니다. DevTools에서 다시 캡처하고 구성을 업데이트하세요.
npx wanderlog-mcp가 멈추거나 아무것도 하지 않습니다
서버는 stdio MCP를 사용합니다. 터미널에서 직접 실행하는 것이 아니라 MCP 호스트에 의해 실행되도록 설계되었습니다. 위에서 설명한 대로 Claude Code 또는 Claude Desktop을 통해 실행하세요.
도구는 작동하지만 에이전트가 메모/체크리스트를 무시합니다
서버는 MCP initialize 응답에 지침을 주입하여 에이전트가 장소와 메모를 섞어 넣고 체크리스트를 추가하도록 안내합니다. 이는 Claude에서 안정적으로 작동합니다. 다른 클라이언트는 다를 수 있습니다.
보안
쿠키는 MCP 클라이언트 구성에만 저장되며, 커밋되거나 로그에 기록되지 않습니다
wanderlog-mcp는 전적으로 사용자 머신에서 실행됩니다 — 중계 서버가 없습니다
시작 시 인증 프로브는 쿠키 값을 출력하지 않고 쿠키를 검증합니다
액세스를 취소하려면: wanderlog.com에서 로그아웃(모든 세션 무효화)한 후 다시 캡처하세요
기여
풀 리퀘스트를 환영합니다. 제출 전에:
npm run build && npm run test전송 또는 도구 코드 변경 시에는 다음도 실행하세요:
npm run test:integration고지 사항
wanderlog-mcp는 비공식 서드파티 도구로, Wanderlog와 제휴하거나 보증하지 않습니다. Wanderlog의 비공개 웹 클라이언트 API를 호출하여 작동하며, 이 API는 예고 없이 변경될 수 있습니다. 사용에 따른 책임은 사용자에게 있습니다.
라이선스
MIT — LICENSE 참조
shaikhspeare 제작
Available Tools
18 toolswanderlog_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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to add the checklist to. Use wanderlog_list_trips if you don't know the key. | |
| items | Yes | Checklist items. Each string becomes one checkbox item, initially unchecked. | |
| title | No | Optional title for the checklist (e.g. 'Packing list'). Omit for an untitled checklist. | |
| day | No | Optional 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to add the expense to. | |
| amount | Yes | Cost amount (e.g. 50, 12.50). | |
| currency | No | ISO 4217 currency code (e.g. 'USD', 'JPY', 'EUR'). Defaults to USD. | USD |
| category | No | Expense category. | other |
| description | Yes | What the expense is for (e.g. 'Lunch at Ichiran Ramen', 'Subway day pass'). | |
| place | Yes | 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. | |
| date | No | Date of the expense, YYYY-MM-DD. Defaults to today if omitted. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to add the hotel to. | |
| hotel | Yes | Hotel 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_in | Yes | Check-in date, YYYY-MM-DD. | |
| check_out | Yes | Check-out date, YYYY-MM-DD. Must be after check_in. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to add the note to. Use wanderlog_list_trips if you don't know the key. | |
| text | Yes | The note text. Plain text — can be multi-line. | |
| day | No | Optional 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to add to. Use wanderlog_list_trips if you don't know the key. | |
| place | Yes | Name 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. | |
| day | No | Optional 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). | |
| note | No | Optional 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_time | No | Optional start time in HH:mm format (e.g. '09:00'). Adds a scheduled time to the place. | |
| end_time | No | Optional end time in HH:mm format (e.g. '11:30'). Only used with start_time. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip containing the place. | |
| place | Yes | Natural-language reference to the place. Examples: 'Sensō-ji', 'the hotel', 'Queenstown Gardens on day 2'. Supports ordinals for duplicates: '2nd Starbucks'. | |
| note | No | Set or replace the inline note on this place. Practical context: transit, tips, timing, what to see. | |
| start_time | No | Set or replace the start time (HH:mm format). | |
| end_time | No | Set or replace the end time (HH:mm format). |
TDQS
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.
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.
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.
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.
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.
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:
wanderlog_add_place — add attractions, restaurants, and activities
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")
wanderlog_add_hotel — add accommodation with check-in/check-out dates
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.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes | City 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_date | Yes | First day of the trip, YYYY-MM-DD. | |
| end_date | Yes | Last day of the trip, YYYY-MM-DD. | |
| title | No | Optional custom title. If omitted, Wanderlog auto-generates one like 'Trip to Lisbon'. | |
| privacy | No | Trip visibility. 'private' is the safe default. | private |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to edit. | |
| old_text | Yes | Substring to find and replace (case-insensitive). | |
| new_text | Yes | Replacement text. | |
| day | No | Optional day to search. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to search the entire trip. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| guide_key | Yes | Guide's viewKey (the 'guide_key' returned by wanderlog_search_guides, e.g. 'hejurejdks'). | |
| day | No | Optional day filter — pass a day heading or date to scope the output to one day. | |
| response_format | No | Output verbosity. 'concise' is a readable summary; 'detailed' adds addresses, phone numbers, ratings. | concise |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The unique trip key from wanderlog_list_trips (e.g. 'vzyrsyhgxvonvxcz'). Required. | |
| day | No | Optional filter to a single day. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to return the whole trip. | |
| response_format | No | Output verbosity. 'concise' (default) is a readable summary grouped by day; 'detailed' adds addresses, phone numbers, ratings, and check-in dates. | concise |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip key from wanderlog_list_trips. | |
| mode | No | Which 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | Output verbosity. 'concise' (default) gives a one-line summary per trip; 'detailed' includes key, owner, and last-edited time. | concise |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to remove from. | |
| text | Yes | Substring to match against note content (case-insensitive). | |
| day | No | Optional day to search. Accepts 'day 2', 'May 4', or ISO '2026-05-04'. Omit to search the entire trip. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to remove from. | |
| place_ref | Yes | Natural-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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip containing the day to rename. | |
| day | Yes | Which day to rename. Accepts "day 3", "May 4", or "2026-05-04". | |
| heading | Yes | New heading for the day. Use "" (empty string) to clear the heading back to the auto-generated default. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | No | Free-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_id | No | Explicit Wanderlog geo id (from a prior response's 'geo' or 'alternative_geos'). | |
| response_format | No | Output 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
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to scope this search to. Search results are geographically biased toward the trip's destination. | |
| query | Yes | What to search for. Examples: 'sushi restaurant', 'hiking trail', 'coffee near the hotel'. | |
| response_format | No | Output verbosity. 'concise' lists name + description only; 'detailed' adds the Google place_id needed for downstream tool calls. | concise |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trip_key | Yes | The trip to update. | |
| start_date | Yes | New first day of the trip, YYYY-MM-DD. | |
| end_date | Yes | New last day of the trip, YYYY-MM-DD. Must be >= start_date. | |
| force | No | If 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
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.
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.
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.
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.
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.
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.
6 tool updates
v0.3.1- Changed
wanderlog_add_expense4 fields changed- changed
Input schema / properties / category / enumPrevious value: -[ - "food", - "transport", - "accommodation", - "activities", - "shopping", - "other" -]New value: +[ + "food", + "drinks", + "groceries", + "publicTransit", + "carRental", + "gas", + "flights", + "lodging", + "sightseeing", + "activities", + "shopping", + "other" +] - changed
Input schema / properties / place / descriptionPrevious 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." - added
Input schema / properties / place / minLengthAdded value: +1 - changed
Input schema / requiredPrevious value: -[ - "trip_key", - "amount", - "description" -]New value: +[ + "trip_key", + "amount", + "description", + "place" +]
- Added
wanderlog_edit_note - Added
wanderlog_get_guide - Added
wanderlog_remove_note - Added
wanderlog_rename_day - Added
wanderlog_search_guides
13 tool updates
v0.1.0- First observed
wanderlog_add_checklist - First observed
wanderlog_add_expense - First observed
wanderlog_add_hotel - First observed
wanderlog_add_note - First observed
wanderlog_add_place - First observed
wanderlog_annotate_place - First observed
wanderlog_create_trip - First observed
wanderlog_get_trip - First observed
wanderlog_get_trip_url - First observed
wanderlog_list_trips - First observed
wanderlog_remove_place - First observed
wanderlog_search_places - First observed
wanderlog_update_trip_dates
TDQS
Scored across 18 tools
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.
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.
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.
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
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
The Ferryhopper MCP server is a connector for LLMs and AI Agents in maritime travel that exposes ferry routes, schedules, and booking options. It enables AI assistants to search ports and connections across 33 countries and 190+ ferry operators, provide real-time ferry itineraries with indicative prices, and assist users with planning island-hopping or multi-leg journeys by processing natural language queries about ferry times, passenger counts, and travel durations.
Skiplagged MCP Server for flight search, hotel booking, and travel planning
Travel tools for AI agents: plan and edit real trips, search stays and tours, import travel videos.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables MCP-compatible agents to build, view, and edit Wanderlog trip itineraries through conversation, covering places, notes, hotels, transit, checklists, expenses, and shareable links.205 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude and other MCP-compatible agents to view, build, and edit Wanderlog trip itineraries through conversation, including places, notes, hotels, transit, car rentals, checklists, and expenses. It also supports searching destinations, guides, and hotels and managing trip dates, sections, and journal content via natural-language tool calls.205 npmMIT
- AlicenseNot gradedqualityAmaintenanceLets an MCP-compatible agent view and build Wanderlog trip itineraries conversationally, adding places, notes, hotels, transit, car rentals, checklists, expenses, and searching places, hotels, and guides. It enables creating and editing full trips, day sections, and budget entries without clicking through the Wanderlog UI.205 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables Claude or any MCP-compatible agent to view and build complete Wanderlog trip itineraries through conversation. Supports adding places, notes, hotels, transit legs, car rentals, checklists, and expenses, plus searching places, guides, and hotel deals.205 npmMIT