wander-agent
Wander Agent is a comprehensive AI travel planning server with 66 tools covering all aspects of travel β flights, hotels, visas, weather, safety, costs, and more β with no API keys required.
βοΈ Flight Search & Pricing
Search live flights, find hidden-city (skiplagged) fares, and split-ticket fares through hubs
Scan cheapest months/days to fly, find mistake/error fares, and discover cheapest destinations from any origin
Find meeting-point pricing for friends flying from different cities, plan open-jaw trips, find aurora-viewing destinations with live KP-index + prices, and verify flight routes
π¨ Hotels
Search hotels with booking links to Booking.com, Airbnb, Expedia, Tripadvisor, and more
Optimize cheapest flight + hotel combos across flexible dates (Β±7 days)
π Visas & Entry
Check visa requirements, list visa-free destinations, get passport power rankings (Henley Index), compare dual passports, and check transit visa needs for 200+ airport combinations
π€οΈ Weather & Jet Lag
16-day live forecasts, best month to visit based on 5 years of climate data, and a science-based jet lag recovery calculator
β οΈ Safety & News
Live US State Dept advisories (levels 1β4), list countries by risk level, and scan for recent travel disruptions (strikes, protests, closures)
π° Costs & Currency
Daily budget estimates for 220+ cities (budget/mid/luxury), live currency conversion, and multi-currency exchange rates
πΊοΈ Trip Planning & Scoring
Generate complete trip packages (flights, hotels, visa, weather, safety, activities, transport, cost) in one call
Build day-by-day itineraries, rank/compare 2β5 destinations side-by-side, and score cities for digital nomad suitability across 6 dimensions
π Food & Nightlife
Find restaurants, bars, pubs, and cafes via OpenStreetMap with links to Google Maps, TripAdvisor, Yelp, OpenTable, Resy, and more
π On-the-Ground Tools
Tailored packing lists, language phrasebooks (17 languages), layover guides for major hubs, travel health info (vaccines, water safety, altitude), ground transport search (bus/train/ferry), local SIM/eSIM guides, and finding viewpoints/beaches/hiking trails
ποΈ Attractions & Info
Search attractions by category (Wikidata), find live local events (Eventbrite), get country basics, geocode places, and verify place existence to prevent hallucinations
π§ Traveler Profile & Memory
Save home airports, passports, currency, and interests across sessions; log trip history; save/manage planned trips with booking checklists
π Fare Watching
Set price alerts on routes, re-price on demand with buy-signal alerts (target hit, price drop/rise, no change), pause, or delete watches
βοΈ Value Ranking
Score flight options 0β100 on price, stops, duration, refundability, baggage, and hassle β flagging hidden-city, split-ticket, and self-transfer risks
π³ Credit Card Points & Miles
Estimate points value (cents-per-point with verdict), find transfer partners for Chase UR, Amex MR, Citi TYP, Capital One, and Bilt; decide cash vs. points; estimate points earning by card/category; discover sweet-spot awards; and compare programs for a specific booking
π± Carbon Calculator
Estimate CO2e emissions for any flight with offset costs and alternative transport comparisons
Provides direct booking links to Airbnb for hotel search results.
Enables evaluation of award bookings on ANA, including cents-per-point calculations and sweet spot recommendations.
Enables analysis of Chase Ultimate Rewards points, including transfer partners, valuation, and earning calculations.
Includes direct booking links to Expedia for hotel search results.
Enables real ratings and price levels for restaurants and bars via the Foursquare API.
Enables live flight searches using Google Flights data.
Provides booking links to Google Maps for restaurants and bars.
Supplies location data for restaurants, bars, and other points of interest from OpenStreetMap.
Includes direct booking links to Tripadvisor for hotels and restaurants.
Provides booking links to Untappd for bars and pubs.
Provides booking links to Yelp for restaurants.
Provides booking links to Zomato for restaurants.
π Wander Agent
Your AI's personal travel agent β flights, hotels, visas, points & miles.
66 tools. Zero API keys. One line to install.
Ask your AI anything about travel and get real data back, not hallucinations β live flight prices, the cheap fares airlines hide, real visa rules, 16-day forecasts, and credit-card points sweet spots.
pip install wander-agent
See the launch demo Β· β Star this repo if it saves you a layover βοΈ

Real run: asked for "every way to save money on DXBβDPS for 4" β it surfaced hidden-city, split-ticket, and nearby-airport fares for ~$8,000 group savings.
Try these the second you install β paste any of them to your AI:
π« "Find me a flight from NYC to Tokyo the airlines don't want me to see." β hidden-city + split-ticket fares OTAs are banned from showing you
π΄ "Plan a 10-day Bali trip for 2 from Dubai in September, budget $3,000." β flights, hotels, visa, weather, restaurants, packing list, day-by-day β one response
π "Which of my two passports gets me into more countries visa-free?" β dual-passport diff with Henley rankings
π³ "Turn my Amex points into the best business-class flight to Europe." β points sweet-spot finder across transfer partners
What is this?
Wander Agent is a tool plugin for AI assistants (Claude, Cursor, Windsurf, etc.) that gives the AI real travel data to work with.
Without this plugin, asking an AI "cheapest flights from New York to Tokyo in August?" gets you a made-up answer. With this plugin, the AI calls real data sources β Google Flights, Open-Meteo, US State Dept advisories, OpenStreetMap β and gives you actual prices, real forecasts, and live visa requirements.
You talk to the AI the same way you always do. The AI does the rest.
"Plan me a 10-day trip to Bali for 2 people leaving from Dubai in September, budget $3,000" β Real flights, real hotels, visa requirements, weather forecast, local restaurants, packing list, day-by-day itinerary β all in one response.
Related MCP server: travel-mcp-server
What can it do?
Search live flights (Google Flights + Kiwi.com in parallel)
Find hidden-city fares β e.g. buy NYCβMexico via Houston, exit in Houston at 40% discount
Split-ticket search β book two separate tickets via a hub; OTAs are contractually forbidden from showing you this
Month-level price scan β check every month for the next year, returns cheapest month to fly
Fare calendar β cheapest day within a given month, day-of-week analysis
Scan for mistake fares and error pricing from deal alert sites
Find the cheapest destination you can fly to from anywhere
Find cheapest meeting point for friends flying from different cities
Automatically checks nearby airports (JFK also checks EWR, LGA; DXB also checks SHJ, AUH)
Search hotels with direct booking links to Booking.com, Airbnb, Expedia, Tripadvisor, and 6 more
Optimize for cheapest flight + hotel combo across flexible dates
Check if you need a visa, e-visa, ETA, or nothing at all
See every country you can enter without a full visa
Passport power ranking β Henley Index 2024 rank, visa-free %, regional breakdown
Dual-passport comparison β see exactly which destinations each passport unlocks that the other doesn't
Transit visa check β do you need a visa just to change planes? 200+ passport Γ layover rules
Official government apply links included
16-day live forecast for any location
Best month to visit anywhere based on 5 years of climate data
Jet lag calculator with science-based recovery schedule
Live US State Dept advisory level for any country (1 = safe, 4 = do not travel)
List every country at or above a given risk level
Recent travel news: strikes, airport closures, entry bans, protests
Daily budget estimates for 220 cities (budget / mid-range / luxury)
Live currency conversion
Total trip cost estimate combining flights, hotels, and daily spend
Day-by-day itinerary with weather and activities for each day
Rank and score destinations by cost + weather + safety + events
Compare multiple destinations side-by-side
Aurora viewing destinations with NOAA KP-index forecast
Open-jaw trips β fly into Rome, train to Paris, fly home from Paris. Composed automatically.
Restaurants, bars, pubs, and cafes near any location (OpenStreetMap)
Cuisine filters, price level, opening hours, distance
Booking links: Google Maps, Zomato, TripAdvisor, Yelp, OpenTable, Resy, Untappd
Packing list tailored to weather, activities, and trip length
Language phrasebook for 17 languages with pronunciation guides
Layover guide for 10 major hub airports (DXB, SIN, IST, DOH, NRT, CDG, HKG, ICN, AMS, HND)
Health requirements: vaccines, water safety, food safety, pre-trip timeline
Bus, train, and ferry options with direct booking links
Viewpoints, beaches, hiking trails, coworking spaces near any location
Local SIM guide β 25+ countries: best prepaid SIM vs eSIM, cost, where to buy, tethering policy
Saves your home airports, passports, currency, and interests β never ask again
Logs your trip history
Saved trips β a persistent trip with an 8-item booking checklist that survives across sessions
Fare watching β set a target price on a route, re-price on demand, get a buy signal when it drops
Value ranking β scores options 0β100 on price plus stops, duration, refundability, baggage and hassle (flags hidden-city / split-ticket risk), so cheapest isn't blindly "best"
Points valuation β is this award booking a good deal? Cents-per-point calculator with verdict (excellent / good / fair / poor) against 20+ program baselines
Transfer partners β which airlines and hotels can you transfer Chase UR / Amex MR / Citi TYP / Capital One / Bilt points to? With ratios and transfer times
Points vs cash β should you use points or pay cash? Factors in cpp value, opportunity cost, and what you'd earn back paying cash
Earning calculator β how many points does a $500 dinner earn on your Amex Gold? 9 cards modeled with bonus categories
Sweet spot awards β curated list of outsized-value redemptions: ANA first class for 120k VA miles (16.7cpp), Hyatt all-inclusive for 25k (2.4cpp), Turkish business for 45k (8.9cpp)
Program comparison β which of your points programs gives the best value for a specific booking?
Card portfolio β save your cards to your profile, points tools use them automatically
Setup (5 minutes)
Step 1 β Install Python
You need Python 3.10 or newer. Check if you have it:
python3 --versionDon't have it? Download from python.org.
Step 2 β Install Wander Agent
From PyPI (recommended):
pip install wander-agentOr with uv β no install at all, run directly:
uvx wander-agentOr from source:
git clone https://github.com/VirajMishra1/wander-agent.git
cd wander-agent
pip install -e .Verify it worked:
wander-agent --helpStep 3 β Connect to your AI
Pick the app you use:
Open this file in a text editor:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add this:
{
"mcpServers": {
"wander-agent": {
"command": "wander-agent"
}
}
}Save the file, then quit and reopen Claude Desktop.
If you get an error about wander-agent not being found, find the full path first:
which wander-agentThen use that path in the config:
{
"mcpServers": {
"wander-agent": {
"command": "/usr/local/bin/wander-agent"
}
}
}claude mcp add wander-agent wander-agentConfirm it registered:
claude mcp listCreate or edit .cursor/mcp.json in your home directory:
{
"mcpServers": {
"wander-agent": {
"command": "wander-agent"
}
}
}Restart Cursor.
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"wander-agent": {
"command": "wander-agent"
}
}
}Restart Windsurf.
Open VS Code settings, search for "Cline MCP", edit cline_mcp_settings.json:
{
"mcpServers": {
"wander-agent": {
"command": "wander-agent"
}
}
}Edit .continuerc.json in your project or home directory:
{
"mcpServers": [
{
"name": "wander-agent",
"command": "wander-agent"
}
]
}Edit ~/.config/zed/settings.json:
{
"context_servers": {
"wander-agent": {
"command": {
"path": "wander-agent",
"args": []
}
}
}
}Optional: API keys for better data
Everything works without any API keys. These add richer data if you want:
Variable | What it unlocks | Get it free at |
| Real ratings and price levels for restaurants/bars | |
| Live event listings (concerts, sports, shows) |
Set them before starting your AI:
export FOURSQUARE_API_KEY=your_key_here
export TICKETMASTER_API_KEY=your_key_hereOr add them to your shell profile (~/.zshrc, ~/.bashrc) to make them permanent.
All 66 Tools
βοΈ Flights
Tool | What it does |
| Live flight search across Google Flights and Kiwi.com in parallel. Returns prices, duration, stops, and booking links. |
| Hidden-city fares β buy a connecting flight and exit at the layover city. Often 40β60% cheaper. Carry-on only. |
| Book two separate tickets through a hub instead of one through-ticket. OTAs are contractually forbidden from showing this. Savings of 20β60% on many routes. Includes full risk disclosure. |
| Scans the next 12 months by sampling the first Tuesday of each month (statistically cheapest booking day). Returns all months ranked by price with season analysis and booking links. |
| Full month price grid β up to 15 sampled days, day-of-week analysis, price tiers, best/worst weeks. Find the cheapest day to fly within a given month. |
| Scans Secret Flying and The Flight Deal RSS for error fares and flash deals. |
| Cheapest destinations from an origin across 114 airports worldwide. |
| Finds destinations reachable within a total budget (flights + hotels). |
| Cheapest city for multiple friends to meet, flying from different cities. |
| Confirms a direct or connecting route exists between two airports. |
| Aurora-viewing destinations with live NOAA KP-index forecast and flight prices. |
π¨ Hotels
Tool | What it does |
| Hotels with booking links to Booking.com, Airbnb, Expedia, Tripadvisor, and 6 more. |
| Finds the cheapest flight + hotel combo across a flexible date window (Β±7 days). |
π Visas & Entry
Tool | What it does |
| Visa category for a passport + destination pair. Returns visa-free, ETA, e-visa, visa on arrival, or visa required β with the official apply link. |
| Every country a given passport can enter without a full embassy visa. |
| Henley Index 2024 rank, visa-free access count, frictionless travel %, and regional breakdown for any passport. Pass two passports to get a head-to-head diff: exactly which destinations each one unlocks that the other doesn't. |
| Do you need a transit visa at your layover airport? Covers 200+ passport Γ layover-country combinations. Checks LHR, JFK, DXB, SIN, FRA, IST, DOH, NRT, ICN, YYZ, SYD, and 30+ others. |
π€οΈ Weather
Tool | What it does |
| 16-day live weather forecast for any coordinates. Falls back to 5-year historical data for dates beyond the forecast window. |
| Ranks all 12 months for a location by weather quality, based on historical climate data. |
β οΈ Safety & News
Tool | What it does |
| US State Dept advisory level (1β4) and summary. Pulled from the live RSS feed. |
| All countries currently at or above a given advisory level. |
| Scans Google News for recent disruptions: strikes, airport closures, entry bans, protests. |
π° Costs & Currency
Tool | What it does |
| Daily budget estimates for 220 cities across budget, mid-range, and luxury tiers. |
| Live currency conversion via European Central Bank rates. |
| Exchange rates for multiple currencies from a base currency. |
πΊοΈ Planning & Scoring
Tool | What it does |
| The main orchestrator. Calls 8+ tools in parallel and returns a complete trip: flights, hotels, visa, weather, safety, activities, ground transport, cost estimate, and booking checklist. |
| Day-by-day itinerary with weather forecast and suggested activities for each day. |
| Plan a fly-in/overland/fly-out trip: land in city A, travel by train or bus, fly home from city B. Composes flight + ground transport search. Shows total cost vs a round-trip to city A only. Accepts city names or IATA codes. |
| Ranks destinations by a weighted combination of cost, weather, safety, and events. |
| Side-by-side comparison of 2β5 destinations for the same dates. |
π Food & Nightlife
Tool | What it does |
| Real venues near a location from OpenStreetMap. Returns cuisine, price level, opening hours, distance, and links to Google Maps, Zomato, TripAdvisor, Yelp, OpenTable, Resy, and Untappd. |
π Smart Trip Tools
Tool | What it does |
| Ranks cities for remote work across 6 dimensions: cost, safety, internet speed, weather, visa ease, and lifestyle. Configurable weights. |
| CO2e footprint for any flight using ICAO/DEFRA 2024 factors with radiative forcing (RFI Γ1.9). Per-passenger and total emissions, Gold Standard offset cost, and train/car comparison for short routes. |
π On the Ground
Tool | What it does |
| Packing list tailored to destination weather, activities, trip length, and budget level. |
| Viewpoints, beaches, hiking trails, coworking spaces, waterfalls, markets, and more from OpenStreetMap. |
| Jet lag severity with a science-based recovery schedule: pre-departure shift, melatonin timing, light exposure strategy. |
| Phrasebook for 17 languages with local script, romanized pronunciation, and audio tips. |
| What to do during a layover at 10 major hubs. Includes transit visa check, in-airport activities, and city excursion options. |
| Required and recommended vaccines, water safety, food safety, mosquito risk, altitude risk, and a pre-trip preparation timeline. Based on CDC and WHO 2024β2025 data. |
| Bus, train, and ferry options with booking links. Region-aware: Amtrak and Greyhound for the US, Trainline and BlaBlaCar for Europe, IRCTC for India, 12Go for Southeast Asia. |
| Best prepaid SIM card and eSIM for 25+ countries. Returns operator, cost, data allowance, where to buy, tethering policy, and duration-based advice (β€3 days β eSIM; longer β local SIM). Falls back to Airalo/Holafly for unlisted countries. |
ποΈ Attractions & Info
Tool | What it does |
| Attractions near a location from Wikidata. Filter by category: museums, parks, architecture, nightlife, food, historic, nature, and more. |
| Live events from Eventbrite: concerts, sports, festivals. |
| Country basics: currency, official language, timezone, dialling code, driving side. |
| Converts a place name to coordinates. |
| Confirms a place actually exists (catches AI hallucinations before they reach you). |
π§ Traveler Profile
Tool | What it does |
| Loads your saved profile: home airports, passports, currency, interests, and trip history. |
| One-time setup. Saves your preferences so the AI uses them automatically in every future session. |
| Update any field, manage credit cards in your portfolio, or log a completed trip. |
| Your logged trip history. |
π§³ Saved Trips (cross-session memory)
Persisted to ~/.wander_agent/trips.json. A trip carries an 8-item booking checklist (flights, hotel, visa, insurance, ground transport, advisory, packing, notify bank).
Tool | What it does |
| Save a trip you're planning. Returns a |
| List saved trips with checklist progress. Filter by status (planning/booked/completed/cancelled). |
| Full state + checklist progress for one trip, by id or destination. |
| Change status/dates, tick checklist items, or shortlist a flight/hotel option onto the trip. |
| Remove a saved trip. |
π Fare Watching
Persisted to ~/.wander_agent/fare_watches.json. Records a baseline price and a price history per watched route.
Tool | What it does |
| Start watching a route with an optional target price. Captures a baseline on creation. |
| List watches with baseline / last / lowest price seen and status. |
| Re-price watched routes now. Returns buy-signal alerts: |
| Pause or delete a watch. |
βοΈ Value Ranking
Tool | What it does |
| Scores a list of flight/trip options 0β100 on price plus stops, duration, refundability, baggage and hassle. Presets: cheapest / fastest / easiest / flexible / balanced. Flags hidden-city, split-ticket and self-transfer risk so the cheapest fare isn't blindly the winner. |
π³ Credit Card Points & Miles
Static dataset covering 20 loyalty programs (Chase UR, Amex MR, Citi TYP, Capital One, Bilt, 11 airlines, 4 hotel chains), 9 popular credit cards with bonus categories, and 10 curated sweet-spot awards. Card portfolio saved to ~/.wander_agent/profile.json.
Tool | What it does |
| Is this award booking worth it? Calculates cents-per-point and compares against baseline valuations for the program. Returns excellent / good / fair / poor verdict. |
| Shows all airline and hotel transfer partners for a bank program (Chase UR β United, Hyatt, BA, etc.) with transfer ratios and times. Sorted by partner value. |
| Should you use points or pay cash for this booking? Factors in cpp value, opportunity cost of points, and how many points you'd earn back paying cash on a specific card. |
| How many points a purchase earns on a given card. Covers 9 cards with bonus category multipliers (3x dining, 5x travel portal, 4x supermarkets, etc.). |
| Curated high-value redemptions: ANA first class via VA miles (16.7cpp), Singapore Suites (16.3cpp), Turkish business (8.9cpp), Hyatt all-inclusive (2.4cpp), and more. Filters by your programs, cabin, budget, or route. |
| Which of your points programs gives the best value for a specific booking? Compares estimated points cost, portal vs transfer value, best partner, and matching sweet spots. Uses your profile cards automatically. |
Tool Rankings: Usefulness Γ X-Factor
Ranked by a combination of practical impact and uniqueness β things no OTA, no chatbot, and no other travel tool does.
Rank | Tool | Why it's here |
π₯ 1 |
| OTAs are contractually prevented from showing this. Book two tickets via a hub instead of a through-ticket. 20β60% savings on many long-haul routes. The travel industry's open secret. |
2 |
| Hidden-city ticketing. Buy a flight to city B with a layover in city A β exit in city A and never board the last leg. 40β60% off. Illegal per airline T&Cs but not against any law. Carry-on only. |
3 |
| One message β complete trip. Fires 8+ tools in parallel: flights, hotels, visa, weather, safety, activities, ground transport, cost estimate. The single best demo of what this agent can do. |
4 |
| Scans 12 months, samples first Tuesday of each (statistically cheapest booking day). Returns months ranked by price with season labels. Shifting by 1β2 months = hundreds of dollars saved. |
5 |
| The one nobody thinks to check until it's too late. Do you need a visa just to change planes at Heathrow? At Frankfurt? 200+ passport Γ layover combinations. Catches the trip-killer before you book. |
6 |
| Three friends, three different cities. What's the cheapest city for all of them to meet? No OTA has a tool for this. |
7 |
| Fly into Rome, take a train to Paris, fly home from Paris. No OTA lets you compose this. Automatically prices both flights + the overland segment and compares vs a simple round-trip to Rome. |
8 |
| Henley 2024 rank, visa-free %, regional breakdown. Dual-passport mode: exact set-diff of which destinations each passport unlocks. "Use your Indian passport for Thailand, your US passport for Brazil." |
9 |
| 6-dimension scoring for digital nomad decisions: cost, safety, internet speed, weather, visa ease, lifestyle. Configurable weights. "Score Bali vs Lisbon vs Tbilisi for 3 months, weight internet 3Γ above cost." |
10 |
| Error fares and airline pricing mistakes from dedicated deal aggregators. Passive discovery β "are there any crazy cheap fares out of JFK right now?" |
11 |
| Full price grid for a month. Up to 15 sampled days, cheapest day highlighted, day-of-week analysis (Tuesdays 18% cheaper on average), best/worst weeks. |
12 |
| "Where can I fly cheapest from London right now?" Scans 114 airports. Discovery tool for spontaneous travelers. |
13 |
| "I have $1,500 total for 7 nights, leaving from NYC β where can I actually go?" Returns ranked reachable destinations. |
14 |
| Shifts departure Β±7 days to find the cheapest flight + hotel combo. Same trip, different dates, lower price. |
15 |
| ICAO/DEFRA 2024 emission factors with radiative forcing (RFI Γ1.9). Per-person and total CO2e, Gold Standard offset cost at $18/tonne, train/car comparison for routes under 1,500km. |
16 |
| Core engine. Parallel Google Flights + Kiwi.com. Checks nearby airports automatically. |
17 |
| Most-asked travel question. Instant answer with official government apply link. |
18 |
| Day-by-day schedule with weather per day and activity suggestions. |
19 |
| Weighted rank: cost + weather + safety + upcoming events. "Best place to go in September with good weather, under $150/day, safety level 1." |
20 |
| Full list of countries a passport can enter without a full embassy visa. |
21 |
| 25+ countries. Best prepaid SIM vs eSIM, exact cost, where to buy, tethering, activation steps. Short trip = eSIM. Long trip = local SIM. Saves the first-hour scramble at every airport. |
22 |
| Side-by-side: cost, weather, safety, visa requirements, flights β for 2β5 destinations, same dates. |
23 |
| Bus + train + ferry with real booking links. Region-aware. Often cheaper and more convenient than flying for routes under 500km. |
24 |
| Required vaccines, recommended vaccines, water safety, food safety, mosquito risk, altitude risk, pre-trip timeline. CDC + WHO 2025 data. |
25 |
| Live US State Dept level 1β4 with summary. Pulled from RSS β not cached stale data. |
26 |
| 16-day live forecast. Falls back to 5-year historical climate data for further-ahead dates. |
27 |
| Best spots for northern lights with live NOAA KP-index forecast + flight prices from your origin. Viral for the "bucket list" audience. |
28 |
| Hotel search with deep links to 9 booking sites. No prices shown directly (all hotel price APIs are paid), but all the links you need. |
29 |
| Daily budget for 220 cities: budget / mid-range / luxury tiers. |
30 |
| Climate-based ranking of all 12 months for a location. Based on 5 years of historical data. |
31 |
| What to actually do during a long layover at DXB, SIN, IST, DOH, NRT, CDG, HKG, ICN, AMS, or HND. In-airport options + city excursion feasibility. |
32 |
| Wikidata attractions by category: museums, parks, architecture, food, nightlife, historic, nature. |
33 |
| OpenStreetMap viewpoints, beaches, hiking trails, coworking spaces, waterfalls, hot springs, markets. |
34 |
| Real venues from OSM with 7 booking site links per result. Cuisine filter, price level, distance. |
35 |
| 17 languages. Local script + romanized pronunciation + audio tips. |
36 |
| Tailored to destination weather, planned activities, trip length, and budget level. |
37 |
| Live Eventbrite events at destination: concerts, festivals, sports. Best for 0β60 day horizon. |
38 |
| Google News scan for disruptions: strikes, closures, protests, entry bans. |
39 |
| Severity rating + science-based recovery: pre-trip sleep shifting, melatonin timing, light exposure schedule. |
40 |
| Country basics: currency, language, timezone, dialling code, driving side. |
41 |
| All countries currently at Level 2, 3, or 4. Useful for insurance and risk-screening. |
42 |
| Confirms a route actually exists. Catches hallucinated itineraries before you book. |
43 |
| One-time setup: home airports, passports, currency, interests. Feeds every tool automatically. |
44 |
| Load saved profile. Used automatically at session start. |
45 |
| Update preferences or log a completed trip. |
46 |
| Your logged trip history. |
47 |
| ECB live rate conversion. |
48 |
| Multi-currency rates from a base currency. |
49 |
| Place name β latitude/longitude. Used internally by most tools. |
50 |
| Confirms a place exists before building a trip around it. Anti-hallucination guardrail. |
51 |
| Curated outsized-value redemptions the points community swears by. ANA first (16.7cpp), Singapore Suites (16.3cpp), Turkish J (8.9cpp). Filtered by your card portfolio. |
52 |
| Cents-per-point calculator with verdict against 20+ program baselines. Catches bad redemptions before you burn points. |
53 |
| Points or cash? Factors cpp, opportunity cost, and earning-back. The question every points traveler asks on every booking. |
54 |
| Which program gives best value for this booking? Cross-program comparison with sweet-spot matching. |
55 |
| Maps bank currency β airline/hotel partners. Transfer ratios, times, and partner valuations. |
56 |
| Points earned per dollar by card and category. 9 cards modeled. |
Data sources
Source | What it provides | Key needed? |
Google Flights (scraper) | Flight prices and airline names | No |
Kiwi.com | Live bookable flight prices | No |
Open-Meteo | Weather forecast and 5-year historical climate | No |
Frankfurter (ECB) | Currency exchange rates | No |
Wikidata SPARQL | Attractions and points of interest | No |
OpenStreetMap Overpass | Restaurants, bars, beaches, viewpoints, hiking | No |
US State Dept RSS | Travel advisories | No |
Open-Meteo Geocoding | Coordinates for place names | No |
RESTCountries | Country metadata | No |
Secret Flying / The Flight Deal | Mistake fares and deals | No |
NOAA Space Weather | Aurora KP-index forecast | No |
Google News RSS | Travel disruption news | No |
Skiplagged | Hidden-city fares | No (fragile scraper) |
Rome2Rio / Omio | Ground transport options | No (fallback to deeplinks) |
Eventbrite | Live local events | No |
Foursquare Places v3 | Restaurant/bar ratings and price levels | Optional (free tier) |
Ticketmaster Discovery | Live event listings | Optional (free tier) |
Static datasets | Visa requirements, cost of living, airport data, transit visa rules, SIM card data, Henley rankings, points/miles valuations | N/A |
How much can you trust each number?
Most results carry a data_meta block so the AI can tell you how reliable a figure is before you book:
"data_meta": {
"confidence": "scraped_live",
"trust_score": 80,
"trust_label": "Live scrape",
"meaning": "Scraped from Google Flights just now. Real but can shift minute to minute.",
"fetched_at": "2026-06-02T18:30:00+00:00",
"source": "google_flights + kiwi.com"
}Label | Trust | What it means |
| 95 | Opens the live provider page β always current |
| 90 | Official API (ECB rates, NOAA) |
| 85 | Live government feed (State Dept advisories) |
| 85 | Open-Meteo live weather |
| 80 | Real-time scrape β real but volatile |
| 55 | Hand-curated dataset β verify before booking |
| 50 | Wikidata-derived |
| 35 | Modeled figure β rough guide only |
Honest limitations
Flight prices: Google Flights scraper can break if Google changes their page structure. Kiwi prices are real and bookable. Both run in parallel β if one fails the other still returns results.
Split-ticket risk: find_split_ticket surfaces real savings but carries missed-connection risk. If your first flight is delayed the second airline won't wait and won't rebook you. The tool always returns a full risk disclosure list. Buy travel insurance that covers missed connections on separate tickets.
Hotel prices: Every hotel price API is paid. This tool returns hotel names and links to 9 booking sites where you can see real prices. No prices are shown directly.
Visa data: Static snapshot (updated 2024). Policies change β always verify with the official link in the response before you book anything. Do not rely on this for immigration decisions.
Transit visa data: Rules encoded as a static dataset covering 200+ combinations. Edge cases (nationalities with bilateral exemptions, recent policy changes) may be missing. Always verify with the airline or destination embassy.
Passport power data: Henley Index 2024 snapshot. Rankings shift year to year. Confirm with official sources before making nationality-based decisions.
SIM card data: Curated snapshot as of 2024-Q4. Prices and plans change frequently. Treat as guidance; verify before purchase.
Events: Scraped from Eventbrite. Best coverage for events 0β60 days ahead. Further-future events may not be listed yet.
Travel advisories: US State Dept only. Updated within 24β48 hours of official changes via RSS.
Health data: Curated snapshot from CDC Yellow Book and WHO 2024β2025 recommendations. Not a substitute for advice from a travel medicine clinic.
Ground transport: Rome2Rio data for route discovery. Actual prices and schedules must be confirmed on the booking sites β times and fares change.
Points/miles valuations: Baseline cpp values are editorial averages (TPG, NerdWallet, OMAAT). Actual redemption value depends on specific award availability, transfer bonuses, and dynamic pricing. Sweet spot awards assume saver-level availability. Card bonus categories reflect terms as of 2025-Q1 β issuers change these periodically.
Carbon calculations: ICAO/DEFRA 2024 emission factors with standard RFI multiplier (Γ1.9). Actual emissions vary by aircraft type, load factor, and routing. Use as an estimate, not an accounting figure.
Cloud deployment (Docker)
The included Dockerfile and railway.toml let you host this server in the cloud so you can connect to it from any device β not just the computer where you installed it.
You do not need this for normal local use. Install and run locally as described in Setup above.
If you want to self-host on Railway:
# Push to GitHub, then connect repo to Railway
# Set env vars in Railway dashboard if using optional API keysThe server switches from stdio (local) to HTTP automatically based on the WANDER_TRANSPORT environment variable.
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
python -m pytest tests/ -v
# Count registered tools
grep -c "@mcp.tool()" src/wander_agent/server.pyAdding a tool:
Create
src/wander_agent/tools/your_tool.pywith an async functionImport it in
src/wander_agent/server.pyWrap with
@mcp.tool()and an async wrapper functionRestart your AI client to pick up the new tool
CI: every push and PR to main runs the test suite on Python 3.10/3.11/3.12 and asserts the registered tool count.
Releases: publishing a GitHub release triggers the PyPI publish workflow (trusted publishing β no tokens). Bump version in pyproject.toml and server.json first.
License
MIT
mcp-name: io.github.VirajMishra1/wander-agent
Available Tools
66 toolstool_best_month_to_visitA
WEATHER timing: best month to visit by climate, not price.
"When is Bali at its best?" Uses 5yr Open-Meteo historical archive. No auth. For cheapest month by airfare use find_cheapest_month; for day-level price grid within a month use fare_calendar.
Args: latitude: Location latitude longitude: Location longitude preferences: warm_dry, cool_dry, warm_any, snow, shoulder_season
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | ||
| longitude | Yes | ||
| preferences | No | warm_dry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses data source (5yr Open-Meteo historical archive) and authentication status (no auth). However, it does not specify the format or content of the return value, which would enhance transparency. With no annotations, the description carries the full burden.
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 and well-structured. It starts with a clear header, includes an example, then data source/auth info, sibling differentiation, and args list. Every sentence adds value 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?
While the description covers purpose, usage, parameters, and behavior, it lacks explicit details about the output (e.g., what exactly is returned). Since no output schema exists, the description should clarify the return format, which is a gap. This 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?
The input schema has 0% description coverage, so the description must add meaning. It lists the three parameters with brief explanations, including the possible values for preferences (warm_dry, cool_dry, etc.). This adds value, though more detail on coordinate format or preference details could improve it.
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: determining the best month to visit based on climate, not price. The example 'When is Bali at its best?' reinforces this, and it differentiates from sibling tools like find_cheapest_month and fare_calendar.
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 provides when-to-use (climate-based month) and when-not-to-use (for cheapest month use find_cheapest_month, for day-level price grid use fare_calendar). Clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_calculate_flight_carbonA
Calculate CO2e carbon footprint for a flight.
Uses ICAO/DEFRA 2024 emission factors including radiative forcing (RFI Γ1.9). Shows per-passenger and total emissions, carbon offset cost at Gold Standard prices ($18/tonne), and train/car comparison for short-to-medium routes. No API key required.
Args: origin: Origin airport IATA code (e.g., "JFK") destination: Destination airport IATA code (e.g., "LHR") passengers: Number of passengers cabin_class: economy | premium_economy | business | first trip_type: one_way | round_trip
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| trip_type | No | round_trip | |
| passengers | No | ||
| cabin_class | No | economy | |
| destination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden by disclosing important behavioral traits: use of specific emission factors, radiative forcing, per-passenger and total emissions, carbon offset cost at $18/tonne, and train/car comparison. It also states that no API key is required, which is useful for the agent.
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 with a brief introductory sentence followed by a list of arguments in a docstring format. It is informative without unnecessary repetition, though slightly longer than minimal. Every sentence adds value.
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 (5 parameters, no output schema, no annotations), the description adequately covers purpose, parameters, and key behaviors (emission factors, offset cost, comparisons). It does not specify return format or error cases, but these are not required without an output schema.
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 description coverage is 0%, but the description provides detailed docstring-style explanations for all parameters, including example values (e.g., 'JFK', 'LHR'), defaults (passengers=1, cabin_class='economy', trip_type='round_trip'), and valid options (cabin_class: economy | premium_economy | business | first). This adds significant meaning beyond the schema alone.
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 uses the specific verb 'calculate' and clearly identifies the resource 'flight carbon'. It distinguishes itself from siblings by focusing on carbon footprint calculation, a unique function among the listed tools.
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 what the tool does and includes context like using ICAO/DEFRA 2024 factors, no API key required, and comparisons to train/car. However, it does not explicitly state when to use it versus alternatives or when not to use it, which keeps it from a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_calculate_jet_lagA
Calculate jet lag severity and give a science-based recovery schedule.
Covers pre-departure schedule shift, on-plane tips, melatonin timing, and post-arrival light exposure strategy.
Args: origin: City or IATA code (e.g., "New York", "JFK") destination: City or IATA code (e.g., "Tokyo", "NRT") departure_date: YYYY-MM-DD flight_duration_hours: Flight time in hours (0 = auto-estimated)
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| destination | Yes | ||
| departure_date | Yes | ||
| flight_duration_hours | No |
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 discloses that the tool gives a science-based schedule and tips, but does not state whether it is read-only or if it modifies any state. The behavior is implied as informational, but not explicitly described.
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: two sentences for purpose followed by a bulleted list of arguments. No unnecessary words. Front-loaded with the main purpose and output scope.
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 moderate complexity and no output schema, the description adequately explains that the output includes jet lag severity and a recovery schedule covering pre-departure, on-plane, melatonin, and light exposure strategies. However, it does not mention what fields the output object contains, leaving some ambiguity for agent consumption.
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 descriptions are absent (0% coverage), so the description adds meaning by explaining each parameter: origin/destination as 'City or IATA code', departure_date as 'YYYY-MM-DD', and flight_duration_hours as 'Flight time in hours (0 = auto-estimated)'. This clarifies input formats beyond just field names.
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 calculates jet lag severity and provides a recovery schedule, using specific verbs and resources. It is distinct from sibling tools like tool_plan_itinerary or tool_search_flights, as it focuses solely on jet lag.
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 implies usage when traveling across time zones by mentioning pre-departure and post-arrival strategies, but it does not explicitly state when to use it over alternatives or provide exclusion criteria. No guidance on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_calculate_points_or_cashA
Should I pay cash or use points? Factors in cpp value, opportunity cost, and points-back earning on the cash payment. Returns a clear recommendation.
Args: cash_price: Cash price for the booking points_price: Points/miles price for the same booking program: Points program (e.g., "chase_ur", "united_mp") category: Spending category if paying cash (e.g., "travel", "dining") β affects earning calc card_key: Specific card to calculate earning (e.g., "chase_sapphire_reserve") currency: Cash price currency taxes_fees_on_award: Cash taxes/fees on the award redemption
| Name | Required | Description | Default |
|---|---|---|---|
| program | Yes | ||
| card_key | No | ||
| category | No | ||
| currency | No | USD | |
| cash_price | Yes | ||
| points_price | Yes | ||
| taxes_fees_on_award | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool factors in specific elements and returns a recommendation, but it does not mention whether it accesses external data, modifies any state, or has limitations (e.g., accuracy assumptions). The description gives some behavioral context but lacks completeness for a fully transparent disclosure.
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 with a concise introductory sentence and a clearly formatted Args block. It is front-loaded with the decision question. The Args block is somewhat lengthy but necessary given the lack of schema descriptions. No superfluous sentences.
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 7 parameters, 0% schema coverage, no output schema, and no annotations, the description covers the essential purpose and parameter semantics well. It lacks details about the output format (the 'recommendation') and potential error cases, but for a calculation tool, this is acceptable. The description is largely complete for effective use.
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 0%, but the description compensates fully by providing detailed parameter explanations in the Args block. Each parameter is explained with its role, examples (e.g., programs, categories), and context (e.g., 'taxes_fees_on_award' default 0). This adds significant meaning beyond the bare type information in 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 decides between cash and points for a booking, and returns a recommendation. The verb 'calculate' and the specific resource 'points_or_cash' make the purpose unambiguous. It is distinct from sibling tools like estimate_points_value or compare_points_programs, which do not directly compare cash vs points for a given booking.
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 implies usage for making a cash-vs-points decision by listing factors considered (cpp, opportunity cost, points-back earning). It does not explicitly state when not to use it or suggest alternatives, but the context is clear given the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_cheap_anywhere_fromA
INSPIRATION: Find cheapest destinations from origin airport.
"Show me cheap flights from NYC anywhere in March" - returns ranked destinations by price. Set round_trip_days for realistic round-trip budgeting.
Args: origin: IATA airport code (e.g., "JFK") month: YYYY-MM constraint (optional) max_price: Filter out above this price (per-person) max_results: Max destinations currency: USD, EUR, etc. regions: Comma-separated (europe, asia, americas, oceania, africa, middle_east) round_trip_days: Days at destination for round-trip price (omit for one-way)
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | ||
| origin | Yes | ||
| regions | No | ||
| currency | No | USD | |
| max_price | No | ||
| max_results | No | ||
| round_trip_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description implies read-only query but does not explicitly state side effects or safety. Return behavior is hinted ('returns ranked destinations by price') but not detailed.
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?
Concise, well-structured description with bold heading, example, and bullet-point-like parameter list. 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?
Adequately covers parameter semantics and usage context for a simple search tool. Lacks output format details but complexity is low; no output schema to rely on.
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 0% schema coverage, description compensates by explaining each parameter (e.g., origin as IATA code, month format, regions examples). Adds meaning but could clarify allowed values for currency and month format.
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?
Description clearly states 'Find cheapest destinations from origin airport' with example query. Distinguishes itself from siblings like 'find_cheapest_month' by focusing on any destination ranked by price.
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 example and mentions round_trip_days for realistic budgeting. Gives context on when to use (finding cheap flights) but does not contrast with alternatives like 'find_destinations_by_budget'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_check_fare_watchesA
Re-price watched routes now and return buy-signal alerts.
Alerts: target_hit, price_drop, price_rise, no_change.
Args: watch_id: Check one watch, or omit to check all active watches
| Name | Required | Description | Default |
|---|---|---|---|
| watch_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool re-prices routes and returns alerts, including the conditions (target_hit, etc.). It also explains the parameter's effect (check one vs all). This is sufficient for a read-like check operation.
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 extremely concise, with a clear front-loaded purpose sentence, a bullet list of alerts, and a brief parameter explanation. Every sentence serves a purpose with no waste.
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 tool is simple with one optional parameter and no output schema. The description covers the action, output (alert types), and parameter behavior completely, leaving no obvious gaps.
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?
Despite 0% schema description coverage, the description provides clear semantics for the only parameter: 'Check one watch, or omit to check all active watches.' This adds meaning beyond the bare 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 the tool's action ('Re-price watched routes now') and output ('return buy-signal alerts'), listing specific alert types. It distinguishes itself from siblings like list_fare_watches and watch_fare by focusing on triggering re-pricing and getting alerts.
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 implies when to use (to get price alerts), but does not explicitly contrast with sibling tools or state when not to use. Usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_check_transit_visaA
Check if you need a transit visa for a layover airport.
Covers the most common passport + layover combinations for 40+ major hubs: LHR, JFK, LAX, FRA, AMS, CDG, DXB, SIN, IST, DOH, NRT, ICN, HKG, YYZ, SYD, and more. This is a common trip-ruiner β carriers deny boarding if you lack the required transit document. Check BEFORE booking.
Args: passport_country: Your passport ISO2 code (e.g., "IN", "US", "NG") layover_airport: IATA code of layover airport (e.g., "LHR", "DXB", "JFK") connecting_to: Optional final destination airport IATA (for context)
| Name | Required | Description | Default |
|---|---|---|---|
| connecting_to | No | ||
| layover_airport | Yes | ||
| passport_country | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It notes coverage of common passport+layover combos for 40 hubs, implying limitations, which provides adequate transparency.
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 purpose, then provides details and parameter explanations. Every sentence adds value with 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 no output schema and 3 parameters, the description is sufficient: it covers purpose, usage guidance, and parameter semantics. It could mention what the return value looks like (e.g., boolean, text), but this is not critical.
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 has 0% description coverage, but the description explains each parameter clearly: passport_country is ISO2 code, layover_airport is IATA code, connecting_to is optional final destination for context. This adds essential meaning beyond the bare 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 the tool checks if a transit visa is needed for a layover airport, listing 40+ major hubs. This distinguishes it from sibling tool_check_visa_requirement, which likely covers full visa requirements.
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 warns that carriers deny boarding if the required document is missing, and recommends checking before booking. It does not explicitly state when not to use or mention alternatives, 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.
tool_check_travel_healthA
Health requirements, vaccine recommendations, and safety tips for a destination.
Covers required vaccines, CDC/WHO recommendations, water safety, mosquito risk, altitude sickness, food safety, and a pre-departure preparation timeline.
Args: destination_iso2: ISO 2-letter country code OR IATA airport code (e.g., "TH", "JP", "BKK", "DPS") trip_duration_days: Trip length (affects malaria prophylaxis advice etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| destination_iso2 | Yes | ||
| trip_duration_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly describes the tool's output: required vaccines, recommendations, safety tips. It mentions specific areas (water safety, mosquito risk, altitude sickness, food safety, preparation timeline). It does not explicitly state it is read-only or require authentication, but the content implies a read-only query. The description adds significant behavioral context beyond the schema.
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: two paragraphs with front-loaded purpose, a bullet-style list of covered topics, and a clear parameter description section. Every sentence provides necessary information with no redundancy or fluff. The structure is logical and efficient.
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 simple schema (2 params, no nested objects), no output schema, and no annotations, the description is reasonably complete. It covers the tool's scope, parameter details, and behavioral output. It could mention the return format (e.g., text or structured data) or explicitly note it's a read-only operation, but overall it provides sufficient context for an AI agent to use the tool correctly.
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 0%, so the description must compensate. The description thoroughly explains both parameters: destination_iso2 can be ISO country code or IATA airport code with examples; trip_duration_days is trip length affecting advice (e.g., malaria prophylaxis). This adds meaning far beyond the schema's bare titles and types.
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 provides 'Health requirements, vaccine recommendations, and safety tips for a destination.' It lists specific topics (required vaccines, safety tips, etc.) and uses a specific verb 'check' with resource 'travel health'. It distinguishes from siblings like tool_check_visa_requirement and tool_get_travel_advisory by focusing on health-specific information.
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 implies using this tool for health-related pre-departure information. It lists covered topics and parameter effects (e.g., trip duration affects malaria advice). It does not explicitly state when not to use, but the sibling list provides context for alternative tools. A clear usage context is given without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_check_visa_requirementA
Check the visa requirement for one passport entering one destination country.
Read-only. No auth required. Data source: built-in curated dataset (static snapshot β regulations change; always verify with the official embassy before travel). Returns: category (visa_free / eta_required / visa_on_arrival / evisa / visa_required), apply_link, estimated cost, processing time, and guidance notes. Invalid ISO codes return an error field, not an exception.
Use this for a single passport-destination pair. Use tool_visa_free_destinations to list all countries a passport can enter. Use tool_check_transit_visa specifically for layover/transit visa requirements, not entry visas.
Args: passport_country: ISO 2-letter passport country code (e.g., "US", "GB", "IN") destination_country: ISO 2-letter destination country code (e.g., "JP", "TH", "BR")
| Name | Required | Description | Default |
|---|---|---|---|
| passport_country | Yes | ||
| destination_country | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses key behaviors: read-only, no auth required, data source (static snapshot), return fields, error handling for invalid codes, and a caveat to verify with embassy. This fully compensates for missing annotations.
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 about 100 words, well-structured with clear sections, bullet points for return fields, and uses bold for tool names. It is front-loaded and every sentence adds value.
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 output schema, the description lists all return fields (category, apply_link, cost, processing time, guidance notes) and error handling. It is complete for a simple visa check tool and appropriately references relevant siblings.
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 0% but the description provides a detailed Args section for both parameters, including ISO codes and examples (e.g., 'US', 'GB', 'JP'). This adds significant meaning beyond the minimal schema titles and types.
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 'Check the visa requirement for one passport entering one destination country.' It uses a specific verb ('Check') and resource ('visa requirement'), and distinguishes itself from siblings like 'tool_visa_free_destinations' and 'tool_check_transit_visa'.
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 ('single passport-destination pair') and when to use alternatives ('tool_visa_free_destinations' for listing all countries, 'tool_check_transit_visa' for transit visas). Also includes read-only and no-auth prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_compare_destinationsA
INSPIRATION: Compare multiple destinations side-by-side for same dates.
"Paris vs Rome vs Barcelona for next month" - returns flight + hotel costs for each, ranked by total cost.
Args: origin: Departure airport IATA code destinations: Comma-separated (e.g., "CDG,FCO,BCN" or "Paris,Rome,Barcelona") departure_date: YYYY-MM-DD return_date: YYYY-MM-DD travelers: Number of travelers currency: USD, EUR, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| currency | No | USD | |
| travelers | No | ||
| return_date | Yes | ||
| destinations | Yes | ||
| departure_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the output (flight + hotel costs ranked by total cost) but does not mention data freshness, rate limits, or whether it uses real-time data. The lack of behavioral details leaves gaps for mutation or 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 concise: one line for purpose, one example, then a clear list of arguments. Every sentence adds value, no redundant information. Front-loaded with the main action.
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 6 parameters and no output schema, the description explains all parameters and the output structure (ranked costs). It lacks details on breakdown (e.g., individual flight vs hotel costs) but is sufficient for basic comparison. Behavioral transparency is a minor gap.
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 0%, so the description fully compensates by explaining parameter formats: origin as IATA code, destinations as comma-separated codes or city names (with example), date format YYYY-MM-DD, defaults for travelers and currency. This adds significant meaning beyond the bare 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 explicitly states it compares multiple destinations side-by-side for the same dates, returning flight and hotel costs ranked by total cost. The example 'Paris vs Rome vs Barcelona for next month' clarifies the use case, distinguishing it from siblings like single-city flight or hotel searches.
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 an example use case but no explicit guidance on when to use this tool over alternatives. It implies usage for comparing multiple destinations for a specific trip, but does not mention exclusions or when to choose sibling tools like tool_score_destinations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_compare_points_programsA
Which of my points programs gives the best value for this booking?
Compares estimated points cost across programs, portal vs transfer value, best transfer partner, and matching sweet spots. Uses profile cards if no programs specified.
Args: cash_price: What the booking costs in cash programs: Comma-separated (e.g., "chase_ur,amex_mr") β omit to use profile cards cabin: Target cabin class (economy, business, first) route: Route keyword to match sweet spots (e.g., "Japan", "Europe") currency: Cash price currency
| Name | Required | Description | Default |
|---|---|---|---|
| cabin | No | economy | |
| route | No | ||
| currency | No | USD | |
| programs | No | ||
| cash_price | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides clear behavioral context: it compares costs, uses defaults, and matches sweet spots. No side effects or destructive actions are mentioned, but the read-only nature is implied.
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 a clear opening question, a summary sentence, and an Args section. Each sentence adds value, though the Args section could be more bullet-like.
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 the tool's function and parameters well, but without an output schema, it does not specify the return format or examples of the comparison result. This leaves some ambiguity about what the agent can expect.
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 0%, but the description explains all parameters with useful details: cash_price is required, programs is comma-separated with default fallback, cabin and route are optional with examples. Adds significant meaning 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 starts with a clear question and states it compares points programs for a booking, including specific aspects like portal vs transfer value and sweet spots. It is distinct from sibling tools.
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 omit programs (uses profile cards) but does not explicitly guide when to use this tool versus other comparison or estimation tools. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_convert_currencyA
Convert between currencies with live rates. No auth required.
Args: amount: Amount to convert from_currency: Source currency (e.g., "USD") to_currency: Target currency (e.g., "EUR")
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| to_currency | Yes | ||
| from_currency | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states 'live rates' and 'no auth required', suggesting a read-only, real-time operation. However, it does not disclose specific constraints such as supported currencies, rate freshness, or potential 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 extremely concise: two clear sentences followed by an Args list. Every sentence adds value, with no wasted words. The key information is front-loaded.
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 (3 params, no output schema), the description is minimally adequate. It explains the purpose, auth requirement, and parameter examples, but omits return value details and potential error scenarios.
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 0%, so description must compensate. The Args section lists parameters with example values (e.g., 'USD', 'EUR'), adding meaning beyond schema titles. However, it lacks detail on amount type or currency format, and does not explain all parameter semantics thoroughly.
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 'convert' and resource 'currencies', and highlights live rates. It distinguishes from sibling tool_get_exchange_rates, which probably only provides rates, while this tool actually converts amounts.
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 notes that no auth is required, but does not explicitly guide when to use this tool over alternatives like tool_get_exchange_rates. The usage context is implied but not reinforced with exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_delete_tripA
Delete a saved trip.
Args: trip_id: 8-char trip id
| Name | Required | Description | Default |
|---|---|---|---|
| trip_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'Delete a saved trip' without disclosing whether the action is irreversible, any required permissions, or error conditions. For a destructive operation, this is insufficient.
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 extremely concise, consisting of a single sentence and an argument line. It is front-loaded and contains no 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 simplicity of the tool (one parameter, no output schema), the description covers the basics but lacks details on return values, error handling, and idempotency. It is adequate but not comprehensive.
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 0% description coverage, so the description adds value by specifying that trip_id is an '8-char trip id', which provides format guidance not present in the schema. However, it could be more explicit about the exact format.
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 'Delete a saved trip' which is a specific verb and resource. It distinguishes itself from sibling tools like tool_save_trip and tool_update_trip.
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 indicates the tool's purpose but does not provide explicit guidance on when to use it versus alternatives, nor does it mention prerequisites like the trip needing to exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_estimate_points_earningA
Calculate points earned on a purchase for a specific credit card and spending category.
Read-only. No auth required. Uses static bonus multiplier data (standard published rates; does not reflect temporary promotions). Returns: points_earned, base_earn_rate, applied_multiplier, program name, and estimated_value_usd at mid-range cpp. Supports 9 cards: chase_sapphire_reserve, chase_sapphire_preferred, amex_platinum, amex_gold, capital_one_venture_x, citi_premier, bilt_mastercard, ink_preferred, amex_green.
Use this when the user wants to know which card to swipe for a specific purchase. Use tool_calculate_points_or_cash to decide whether to pay cash or redeem points. Use tool_estimate_points_value to evaluate a specific award booking's cpp.
Args: amount: Purchase amount (in the specified currency) card_key: Card identifier β chase_sapphire_reserve, amex_gold, bilt_mastercard, etc. category: Spending category β dining, travel, flights, restaurants, supermarkets, rent, general (default: general) currency: ISO currency code of the purchase (e.g., "USD", "EUR")
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | ||
| card_key | Yes | ||
| category | No | general | |
| currency | No | USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature, no auth required, uses static bonus multiplier data excluding temporary promotions, and lists return fields. No annotations provided, so description carries 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?
Concise yet comprehensive. Front-loads core purpose, then adds behavioral notes, usage guidelines, and parameter details. No redundant sentences.
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 complexity (4 parameters, no output schema, no annotations), description covers purpose, usage, parameters, return values, limitations, and relationships to siblings. Fully adequate for agent decision-making.
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 0% schema coverage, description adds significant meaning: explains amount purpose, enumerates supported card keys, gives category examples, and specifies currency format. Missing precise format for currency but still highly informative.
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?
Description clearly states the tool calculates points earned for a purchase with a specific credit card and spending category. It distinguishes from sibling tools by name and purpose.
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 advises when to use this tool ('when the user wants to know which card to swipe for a specific purchase') and provides alternatives for related decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_estimate_points_valueA
Is this award booking a good deal? Calculate cents-per-point and compare against baseline valuations for 20+ programs (Chase UR, Amex MR, airline miles, hotel points). Returns verdict: excellent/good/fair/poor.
Args: points_cost: Points/miles required for the award booking cash_price: What the same booking costs in cash program: Points program (e.g., "chase_ur", "amex_mr", "united_mp", "hyatt_woh") currency: Cash price currency taxes_fees: Taxes/fees still paid in cash on the award (e.g., fuel surcharges)
| Name | Required | Description | Default |
|---|---|---|---|
| program | Yes | ||
| currency | No | USD | |
| cash_price | Yes | ||
| taxes_fees | No | ||
| points_cost | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states function and output, not side effects or authorization requirements. Adequate but not explicit.
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?
Concise, well-structured with clear question and args list. 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?
Covers parameters and return value sufficiently. Could mention error handling but acceptable for this 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?
Despite 0% schema description coverage, the description fully explains each parameter's meaning in the Args section, adding value 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?
Clearly states it calculates cents-per-point for award bookings and returns a verdict, distinguishing it from similar tools like tool_calculate_points_or_cash and tool_compare_points_programs.
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?
Implied usage for evaluating award deals but no explicit guidance on when to use versus siblings or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_fare_calendarA
PRICE timing (day-level): cheapest DAY to fly within ONE month.
Samples up to 15 departure dates in one month β day-of-week analysis, price tiers, best/worst weeks. For cheapest MONTH across a year use find_cheapest_month; for best weather use best_month_to_visit.
Args: origin: Origin airport IATA code (e.g., "JFK") destination: Destination airport IATA code (e.g., "LHR") year: Year (default: next occurrence of month) month: Month 1-12 (default: next month) adults: Number of passengers cabin_class: economy | premium_economy | business | first currency: Currency code (e.g., "USD", "EUR", "GBP") trip_length_days: If set, price as round-trip (return = departure + N days)
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| month | No | ||
| adults | No | ||
| origin | Yes | ||
| currency | No | USD | |
| cabin_class | No | economy | |
| destination | Yes | ||
| trip_length_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses sampling up to 15 departure dates, day-of-week analysis, price tiers, and round-trip option via trip_length_days. No annotation contradictions, but does not mention rate limits or authentication; still strong for a read 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?
Well-structured with a clear title, summary sentence, bullet-like explanation, and parameter list. Efficient but could be slightly more compact; however, every sentence adds value.
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?
With 8 parameters, 2 required, no output schema, the description covers purpose, parameters, and high-level behavior. Lacks explicit return format details, but the mention of 'price tiers' and 'best/worst weeks' hints at output. Minor gap but still informative.
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?
Despite 0% schema description coverage, the description's Args block explains each parameter (origin, destination, year, month, adults, etc.) with defaults and examples (e.g., 'JFK' for origin). Fully compensates for missing schema 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?
Clearly states this tool finds the cheapest day to fly within one month, using 'PRICE timing (day-level): cheapest DAY to fly within ONE month.' Explicitly distinguishes from siblings like find_cheapest_month and best_month_to_visit.
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 guidance on when to use (cheapest day within one month) and when not to (use find_cheapest_month for month-level, best_month_to_visit for weather), naming specific alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_aurora_destinationsA
KILLER: Reverse search - "where to see northern lights cheapest, next 60 days?"
Combines NOAA KP-index forecast + aurora-zone airports + flight prices. Returns ranked destinations with aurora visibility scores.
Args: origin: Departure IATA code max_budget: Max flight budget days_ahead_min: Earliest departure (days from now) days_ahead_max: Latest departure currency: USD, EUR, etc. max_results: max destinations
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| currency | No | USD | |
| max_budget | No | ||
| max_results | No | ||
| days_ahead_max | No | ||
| days_ahead_min | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it combines three data sources and returns ranked destinations with visibility scores. With no annotations, the description carries the burden but does not mention data freshness, limitations, or side effects. It is adequate but not comprehensive.
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 very concise, with a front-loaded 'KILLER' use case and a clear list of arguments. Every sentence serves a purpose without unnecessary details.
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 output schema, the description explains that the tool returns ranked destinations with aurora visibility scores, which is sufficient for an agent to understand the return value. The tool is relatively simple, and the description covers its purpose, inputs, and output.
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 0%, so the description compensates by explaining all parameters (origin, max_budget, days_ahead_min, etc.) in context. Although the parameter names are self-explanatory, the descriptions add value by specifying units and constraints (e.g., 'days from now').
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 finds destinations for viewing northern lights by combining NOAA KP-index forecast, aurora-zone airports, and flight prices. This specific verb+resource distinguishes it from sibling tools like tool_find_destinations_by_budget or tool_score_destinations.
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 an example query ('where to see northern lights cheapest, next 60 days?') that implies when to use. It is clear this tool is for aurora-hunting, but it does not explicitly state when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_cheapest_monthA
PRICE timing (month-level): cheapest MONTH to fly across the next N months.
Samples the first Tuesday of each month, ranks months by price with season analysis. For cheapest DAY within one month use fare_calendar; for best weather use best_month_to_visit.
Args: origin: Origin airport IATA code (e.g., "JFK") destination: Destination airport IATA code (e.g., "BCN") months_ahead: Future months to scan (1-12, default 12) adults: Number of passengers cabin_class: economy | premium_economy | business | first currency: Currency code trip_length_days: Days for round-trip return leg (departure + N) trip_type: round_trip | one_way
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| origin | Yes | ||
| currency | No | USD | |
| trip_type | No | round_trip | |
| cabin_class | No | economy | |
| destination | Yes | ||
| months_ahead | No | ||
| trip_length_days | No |
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 discloses that it samples the first Tuesday of each month and ranks months by price with season analysis, giving insight into methodology. It does not mention output format or side effects, but for a read-only query 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 two paragraphs: first states purpose and methodology, second lists parameters in a structured format. Every sentence adds value, no wasted 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 8 parameters, no output schema, and no annotations, the description covers purpose, methodology, parameter details, and sibling guidance. It lacks explicit description of the output format, but the tool's purpose implies the return structure. Almost 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 0%, so the description must compensate. It lists all 8 parameters with brief explanations (e.g., 'months_ahead: Future months to scan (1-12, default 12)', 'cabin_class: economy | premium_economy | business | first'). This adds meaning beyond the schema which only provides names and types.
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 finds the cheapest month to fly and specifies it operates at month-level. It distinguishes from sibling tools by mentioning 'fare_calendar' for cheapest day and 'best_month_to_visit' for weather.
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 alternatives: 'For cheapest DAY within one month use fare_calendar; for best weather use best_month_to_visit.' This clarifies when to use this tool vs others, though it does not state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_destinations_by_budgetA
INSPIRATION: "I have $1500, where can I go?" Ranks destinations under a total budget with flight + hotel costs calculated.
Args: origin: Departure airport IATA code (e.g., "JFK") total_budget: Total budget for trip trip_length_days: Number of nights departure_month: YYYY-MM (e.g., "2026-08") or omit for any travelers: Number of travelers interests: Comma-separated (e.g., "beach,food,history") visa_free_only: Only visa-free destinations (requires passport_country) passport_country: ISO 2-letter code (e.g., "US") currency: USD, EUR, etc. max_results: Max destinations to return
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| currency | No | USD | |
| interests | No | ||
| travelers | No | ||
| max_results | No | ||
| total_budget | Yes | ||
| visa_free_only | No | ||
| departure_month | No | ||
| passport_country | No | ||
| trip_length_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it calculates flight+hotel costs and ranks destinations, but does not mention any behavioral traits like data freshness, caching, failure modes, or required permissions.
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 a one-line purpose, an inspiration example, and a parameter list. No wasted sentences, though the parameter list is somewhat lengthy and could be formatted more cleanly.
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 10 parameters, no output schema, and no annotations, the description covers inputs well but omits the output format (e.g., what the ranking looks like) and any prerequisites or edge cases.
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 0%, but the tool description adds brief explanations for all 10 parameters (e.g., 'origin: Departure airport IATA code (e.g., "JFK")'), including examples. This compensates well for the lack of schema 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 states 'Ranks destinations under a total budget with flight + hotel costs calculated', specifying the verb (ranks), resource (destinations), and constraint (budget). This clearly differentiates it from siblings like tool_cheap_anywhere_from or tool_score_destinations.
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 gives an inspiration example ('I have $1500, where can I go?') implying when to use it, but does not explicitly state when not to use it or mention alternatives among the many sibling destination tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_mistake_faresA
Fetch recent mistake fares and deal alerts from Secret Flying and Flight Deal RSS feeds.
Read-only. No auth required. Data freshness: RSS feeds polled at call time, posts typically 1-48 hours old. Returns a list of deals each with origin, destination, price, sale price, percentage discount, source, and post date. Does not book or hold fares β prices expire fast, often within hours.
Use this when the user wants passive deal discovery without a fixed destination. Use tool_search_flights when the user has a specific route and date in mind. Use tool_fare_calendar for flexible-date price grids on a known route.
Args: origin: City name to filter deals by departure city (e.g., "New York", "London") β omit to return deals from all origins days_lookback: Include only posts published in the last N days (1-30) max_results: Max deals to return (1-50)
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | ||
| max_results | No | ||
| days_lookback | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description fully carries the burden. It states 'Read-only. No auth required.' and explains data freshness ('RSS feeds polled at call time, posts typically 1-48 hours old') and limitations ('Does not book or hold fares β prices expire fast, often within hours.').
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?
Well-structured: a concise introductory paragraph stating purpose and behavior, followed by clear usage guidelines and a bulletized parameter list. Front-loaded with key information, no wasted 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?
Despite no output schema, the description specifies the return format ('list of deals each with origin, destination, price, sale price, percentage discount, source, and post date'). Covers data freshness, limitations, and usage context. Fully adequate for a simple tool with three optional parameters.
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 0% schema description coverage, the description adds meaning for all three parameters: 'origin: City name to filter deals by departure city... omit to return deals from all origins', 'days_lookback: Include only posts published in the last N days (1-30)', 'max_results: Max deals to return (1-50)'. This provides essential context beyond the bare 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 the tool's purpose: 'Fetch recent mistake fares and deal alerts from Secret Flying and Flight Deal RSS feeds.' It uses a specific verb and resource, and distinguishes itself from sibling tools like tool_search_flights and tool_fare_calendar.
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 guidance: 'Use this when the user wants passive deal discovery without a fixed destination. Use tool_search_flights when the user has a specific route and date in mind. Use tool_fare_calendar for flexible-date price grids on a known route.' This clearly demarcates when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_open_jawA
Plan an open-jaw trip: fly into one city, overland, fly out from another (e.g. JFKβRome, train to Paris, ParisβJFK). Shows total vs simple round-trip. Accepts IATA codes or city names.
Args: origin: Home airport IATA or city (e.g., "JFK" or "New York") fly_into: First destination IATA or city (e.g., "FCO" or "Rome") fly_out_from: Final departure IATA or city (e.g., "CDG" or "Paris") outbound_date: YYYY-MM-DD β fly origin β fly_into return_date: YYYY-MM-DD β fly fly_out_from β origin adults: Number of passengers cabin_class: economy | premium_economy | business | first currency: Currency code
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| origin | Yes | ||
| currency | No | USD | |
| fly_into | Yes | ||
| cabin_class | No | economy | |
| return_date | Yes | ||
| fly_out_from | Yes | ||
| outbound_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral transparency. It explains the conceptual output ('Shows total vs simple round-trip') but omits critical details: whether the tool is read-only, what data sources it uses, any limitations (e.g., single vs. multiple options), or potential side effects. This lack of transparency could lead to incorrect expectations.
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 highly concise: a one-line purpose, a clarifying example, a contrast note, an input format note, and a cleanly formatted parameter list. Every sentence serves a distinct purpose without repetition, making it efficient for an agent 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?
The description lacks crucial output details: it only mentions 'Shows total vs simple round-trip' but does not describe the response structure, whether results are multiple options or a single comparison, or how to interpret the output. With no output schema, this omission leaves significant ambiguity for the agent.
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 has 0% description coverage for its 8 parameters, but the description includes an extensive 'Args' section clarifying each parameter with examples, formats (IATA codes or city names, YYYY-MM-DD dates, cabin_class enum), and defaults. This fully compensates for the schema gaps, adding high-value semantic context.
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: 'Plan an open-jaw trip: fly into one city, overland, fly out from another'. It gives a concrete example (JFKβRome, train to Paris, ParisβJFK) and distinguishes from simple round-trips by mentioning comparison. This makes the unique functionality immediately clear.
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 implies usage for multi-city itineraries with an overland segment but does not explicitly state when to use this tool versus alternatives like search_flights or find_split_ticket. There is no guidance on prerequisites or exclusions, leaving the agent to infer the use case from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_placesA
Find viewpoints, beaches, hiking trails, coworking spaces, and more.
Uses OpenStreetMap β no API key required.
Args: latitude: Location latitude longitude: Location longitude category: viewpoint | beach | hiking | coworking | waterfall | camping | market | hot_spring | museum | park radius_km: Search radius in km (1-100) max_results: Max places to return city: City name for richer search links (e.g., "Bali", "Cape Town")
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| category | Yes | ||
| latitude | Yes | ||
| longitude | Yes | ||
| radius_km | No | ||
| max_results | No |
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 mentions using OpenStreetMap and no API key, but does not disclose rate limits, data accuracy, side effects, or return format. The description is insufficient for understanding 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?
The description is concise with two well-structured paragraphs. The first paragraph states the purpose and key features, and the second lists parameters. Every sentence adds value.
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 explains all parameters and tool source, but lacks details about the return format (e.g., what fields are returned for each place). Given the tool has 6 parameters and 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 description coverage is 0%, but the description provides an 'Args:' section that explains each parameter, including allowed values for category, ranges for radius_km, defaults, and the role of city. This fully compensates for the schema's lack of 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 finds places like viewpoints, beaches, hiking trails, and coworking spaces using OpenStreetMap. It distinguishes itself from sibling tools like tool_verify_place and tool_search_activities by focusing on category-based location search.
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 implies usage by listing categories and mentioning no API key required, but it lacks explicit guidance on when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_skiplagged_faresA
KILLER: Find hidden-city ticketing fares (cheaper than direct).
Buy NYC->Mexico via Houston, get off in Houston, save 60%. Skyscanner and Kayak are CONTRACTUALLY FORBIDDEN from showing these. We pull them direct from Skiplagged.
CAVEATS: Carry-on only. One-way only. No frequent flyer credit. Tool returns warnings.
Args: origin: IATA code (e.g., "JFK") destination: IATA code (e.g., "LAX") departure_date: YYYY-MM-DD return_date: YYYY-MM-DD (compare round-trip; book separately) max_results: max fares to return
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| destination | Yes | ||
| max_results | No | ||
| return_date | No | ||
| departure_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors (hidden-city only, one-way, carry-on) and mentions warnings, but lacks detail on response format or error handling.
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?
Well-structured with headings, example, caveats, and args. Front-loaded key value proposition. No unnecessary text.
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; description only mentions 'returns warnings' without detailing result structure (list of fares, prices, etc.). Lacks completeness for a 5-parameter 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?
Despite 0% schema coverage, the description explains all 5 parameters with format hints (IATA codes, date format) and purpose, adding significant value beyond the raw 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 the tool finds hidden-city ticketing fares, provides an example, and distinguishes it from competitors that cannot show these fares.
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 caveats (carry-on only, one-way, no FF credit, returns warnings) and context (competitors forbidden) provide strong when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_split_ticketA
Find savings by booking two separate tickets through a hub (prices originβhub and hubβdestination independently). 20-60% off on competitive long-haul routes. β οΈ Missed-connection risk is on the traveler β surface result risks before booking.
Args: origin: Origin airport IATA code (e.g., "SFO") destination: Destination airport IATA code (e.g., "DEL") departure_date: YYYY-MM-DD departure date adults: Number of passengers cabin_class: economy | premium_economy | business | first currency: Currency code min_connection_hours: Minimum buffer hours between tickets at hub
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| origin | Yes | ||
| currency | No | USD | |
| cabin_class | No | economy | |
| destination | Yes | ||
| departure_date | Yes | ||
| min_connection_hours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses the core operation and risk but fails to mention behavioral traits like read-only nature, whether results are cached or real-time, or if any action is taken beyond searching.
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?
Compact description with a clear purpose sentence, a short warning, and a list of parameters. No redundant information. Could be slightly more structured with parameter formatting, but effective.
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 7 parameters, no output schema, and no annotations, the description covers the tool's purpose and key behavior (savings, risk). Lacks details on return format, preconditions, or side effects. Adequate but not comprehensive.
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?
Args section adds examples and explanations for most parameters (e.g., IATA code format, date format, cabin class options). However, 'adults' and 'currency' are only minimally described, and schema has no descriptions. Modest compensation for missing schema coverage.
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 it finds savings by booking two separate tickets through a hub. Differentiates from siblings like tool_find_skiplagged_fares by specifying split-ticket strategy and mentioning expected savings percentage.
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?
Warns about missed-connection risk, guiding agents to surface risks before booking. Does not explicitly state when not to use or compare to alternatives, but the warning provides clear context for prudent usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_sweet_spot_awardsA
Curated list of the best-value award redemptions in the points game.
ANA first class for 120k VA miles (16.7cpp), Hyatt all-inclusive for 25k (2.4cpp), Turkish J to Europe for 45k (8.9cpp), Singapore Suites for 92k (16.3cpp), and more. Filters by your programs, cabin class, budget, or route.
Args: programs: Comma-separated program keys (e.g., "chase_ur,amex_mr") β omit to use profile cards cabin: Filter by cabin (economy, business, first, suites, hotel) max_points: Only show awards under this points threshold route_keyword: Filter by route (e.g., "Japan", "Europe", "Caribbean")
| Name | Required | Description | Default |
|---|---|---|---|
| cabin | No | ||
| programs | No | ||
| max_points | No | ||
| route_keyword | No |
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 mentions that omitting programs uses profile cards (a behavioral trait), but does not disclose data freshness, side effects, or requirements. The description adds some context but is not comprehensive for a tool with no annotations.
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 moderately sized with a lead sentence, illustrative examples, and a structured Args list. The examples add value but slightly increase length; overall it is efficient and front-loaded with purpose.
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 0 required parameters and no output schema, the description provides enough context: it explains what the tool does, the filters available, and hints at output through examples. It is sufficient for an agent to select and invoke the tool correctly, though full return format is not detailed.
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 0%, but the description provides detailed explanations for all four parameters in a clear Args section, including allowed values (e.g., cabin: economy, business, first, suites, hotel) and usage notes (e.g., programs as comma-separated keys). This fully compensates for the missing schema 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 returns a curated list of best-value award redemptions, with concrete examples (ANA first class, Hyatt all-inclusive, etc.) that illustrate the output. This distinguishes it from sibling tools like tool_cheap_anywhere_from or tool_find_mistake_fares.
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 implies the tool is for finding award sweet spots and lists filter options, but it does not explicitly guide when to use this tool versus siblings (e.g., tool_estimate_points_value or tool_compare_points_programs). The context is clear but lacks direct exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_find_transfer_partnersA
Show all airline and hotel transfer partners for a bank points program.
Maps Chase UR β United, Hyatt, BA, etc. Amex MR β Delta, ANA, Hilton, etc. Includes transfer ratios and transfer times. Sorted by partner value.
Args: program: Bank program key (e.g., "chase_ur", "amex_mr", "citi_typ", "capital_one", "bilt")
| Name | Required | Description | Default |
|---|---|---|---|
| program | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that results are sorted by partner value and include transfer ratios/times. No contradictory or missing behavioral details are evident for a simple read-only lookup 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 concise: two sentences plus an Args section. The first sentence states the purpose, followed by examples and details. No fluff, 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?
Given the simplicity (one parameter, no output schema, no annotations), the description covers purpose, parameter, and output details (ratios, times, sorting). It is fully adequate for an AI agent to select and invoke the tool correctly.
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 only provides type and title for the single parameter 'program'. The description adds concrete examples and the expected format (e.g., 'chase_ur'), significantly enhancing understanding. Schema coverage is 0%, so the description compensates well.
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: 'Show all airline and hotel transfer partners for a bank points program.' It provides concrete examples (Chase UR, Amex MR) and additional details (ratios, times, sorting). This distinguishes it from siblings like tool_compare_points_programs.
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 gives clear context on when to use (to find transfer partners) and provides parameter guidance with examples. However, it does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_generate_packing_listA
Generate a smart packing list tailored to destination, weather, and activities.
Fetches live weather to adapt clothing and gear suggestions.
Args: destination: City or country name start_date: YYYY-MM-DD end_date: YYYY-MM-DD activities: Comma-separated (e.g., "beach,hiking,business,nightlife") budget_level: budget, moderate, luxury travelers: Number of travelers latitude: Optional β auto-fetched if omitted longitude: Optional β auto-fetched if omitted
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | ||
| latitude | No | ||
| longitude | No | ||
| travelers | No | ||
| activities | No | ||
| start_date | Yes | ||
| destination | Yes | ||
| budget_level | No | moderate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that live weather is fetched, and coordinates are auto-fetched if omitted. This adds behavioral context beyond the name, though it does not mention if the tool is read-only or has side effects. Overall, good transparency.
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 a front-loaded purpose and a structured Args list. Every sentence adds value, but the Args list could be more compact. Still, it is well-organized and easy to scan.
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 tool has 8 parameters and no output schema. The description explains inputs well but does not describe the output format or structure of the packing list. It also lacks information on error handling or limitations, making it somewhat incomplete for an agent to fully anticipate results.
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?
Despite 0% schema description coverage, the description includes an Args section explaining each parameter, such as activities format (comma-separated) and budget_level options (budget/moderate/luxury). This compensates for the schema gap, though it could be more precise for destination and dates.
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 'generates a smart packing list' tailored to destination, weather, and activities. This distinguishes it from siblings like tool_get_weather or tool_search_activities, making the purpose specific and 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?
The description implies usage for planning trips by providing a packing list based on trip details. It mentions fetching live weather, which hints at when it's useful, but does not explicitly state when not to use it or list alternatives. Still, the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_geocodeA
City or place -> coordinates. No auth required.
Args: place_name: City or place (e.g., "Paris, France")
| Name | Required | Description | Default |
|---|---|---|---|
| place_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It only mentions 'No auth required.' It omits details about rate limits, error handling, output format, or any side effects, which is insufficient for a tool with no other documentation.
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 extremely concise with no redundant information. Every sentence serves a purpose: stating the function, noting auth, and explaining the parameter. It is front-loaded and efficient.
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 tool is simple with one parameter, but the description lacks information about the return value (e.g., coordinates format). Since there is no output schema, this omission affects completeness. Otherwise, it covers the core functionality adequately.
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 0%, so the description's parameter explanation adds essential meaning. It provides an example format (e.g., 'Paris, France') and clarifies the purpose of place_name. Although minimal, it compensates well for the lack of schema 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 converts a city or place to coordinates, which is a specific and distinct purpose. It uniquely identifies the tool's function among siblings (e.g., no other geocoding tool exists).
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 notes 'No auth required,' but provides no guidance on when to use this tool versus alternatives like tool_verify_place. It lacks context for appropriate use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_cost_of_livingA
DIFFERENTIATOR: Cost-of-living index + quality of life scores for a city.
"Your $100/day = lavish in Lisbon, broke in London." Free, no auth. Covers ~270 cities globally with detailed quality scores.
Args: city: City name (e.g., "Lisbon", "Tokyo", "San Francisco") home_currency: Your home currency (USD, EUR, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | ||
| home_currency | No | USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully describe behavior. It mentions coverage (~270 cities) and that it's free and no auth, but lacks details on output format, error handling for unknown cities, rate limits, or whether it returns raw scores or interpreted results.
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 a clear structure: a one-line differentiator, a catchy phrase, a brief usage note, and parameter explanations. The catchy phrase adds value for understanding the tool's purpose without excessive fluff.
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 tool has no output schema and low schema coverage, so the description should provide more context about the return structure. Mentioning 'quality of life scores' without explaining the scale or format leaves the agent guessing about the response shape.
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 description provides examples for the 'city' parameter (e.g., 'Lisbon', 'Tokyo', 'San Francisco') and explains 'home_currency' as 'Your home currency (USD, EUR, etc.)', adding significant meaning beyond the schema's property titles and defaults.
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 provides cost-of-living index and quality of life scores for a city, with a catchy phrase and coverage of ~270 cities. It is distinct from sibling tools like tool_convert_currency or tool_score_destinations, which have different focuses.
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 implies usage via the example 'Your $100/day = lavish in Lisbon, broke in London' and states 'Free, no auth,' but does not explicitly state when to use this tool over alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_destination_infoA
Essential country info (currency, language, timezone). No auth required.
Args: country_name: Country name (e.g., "Japan")
| Name | Required | Description | Default |
|---|---|---|---|
| country_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses that no authentication is required and lists output fields (currency, language, timezone). Since no annotations are provided, this is helpful. However, it lacks details on data source, freshness, or any other behavioral traits like rate limits or caching.
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?
Extremely concise: two sentences for the purpose and a brief Args section. No redundant words, and the key information is front-loaded. Every sentence adds value.
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 (one parameter, no output schema, no annotations), the description covers the essential aspects: what the tool does and its input. However, it does not describe the output structure, which would be helpful for an agent to parse the result. Still, for a straightforward info tool, it is 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?
The description fully explains the only parameter 'country_name' with a clear example ('Japan'). This adds significant meaning beyond the schema, which only specifies type and required status. Schema coverage is 0%, so this explanation is essential and fully compensates.
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 returns essential country info (currency, language, timezone). The verb 'get' and resource 'destination info' are specific. However, it does not explicitly differentiate from sibling tools like get_cost_of_living, get_exchange_rates, or get_language_phrasebook, which may also return subsets of this info.
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?
Only mentions 'No auth required' as a guideline. Does not specify when to use this tool over alternatives, such as when a summary is needed versus detailed information from other tools. No guidance on context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_exchange_ratesA
Get exchange rates. No auth required.
Args: base_currency: Base (e.g., "USD") target_currencies: Comma-separated targets or omit for all
| Name | Required | Description | Default |
|---|---|---|---|
| base_currency | Yes | ||
| target_currencies | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only mentions 'No auth required', but omits details like what happens on invalid input, rate limits, or whether rates are live/historical.
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?
Extremely concise: two short sentences plus parameter docs. The purpose is front-loaded, and every sentence serves a purpose without extraneous 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 read-only tool with only two parameters, the description is mostly adequate but lacks explanation of the return format (e.g., rates vs conversion) and any caveats about data freshness or error handling.
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 0%, but the description explains both parameters concisely: base_currency with example and target_currencies with comma-separated format and default behavior. This adds value 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 the verb 'Get' and resource 'exchange rates', distinguishing it from siblings like tool_convert_currency which performs conversions. The mention of 'No auth required' adds clarity.
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 notes that no authentication is needed, which is a useful guideline, but it fails to specify when to use this tool versus alternatives (e.g., tool_convert_currency) or provide any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_language_phrasebookA
Get a phrasebook for the local language at a destination.
Covers 17 languages with pronunciation guides and essential phrases.
Args: destination: City or country name (e.g., "Tokyo", "France", "Bangkok") language_code: Override language (ja, fr, es, it, de, pt, th, zh, ar, ko, hi, vi, id, tr, ms, sw) category: greeting | essential | food | transport | shopping | emergency | accommodation | numbers
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| destination | Yes | ||
| language_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions coverage of 17 languages and provides parameter details, but does not clarify data sources, real-time requirements, or output format. The basic read operation is implied, but limited depth prevents a higher score.
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 highly concise: three short sentences plus an Args list. The first sentence states the purpose, the second adds coverage details, and the Args list organizes parameters efficiently. No redundant or vague sentences.
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 tool with no output schema, the description is nearly complete. It explains the purpose, covered languages, and all parameters. Missing elements: return format (e.g., JSON, list of phrases) and confirmation of offline or real-time behavior. Still, it covers essential user-facing needs.
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 0%, so the description must add meaning. It successfully explains each parameter: destination as 'City or country name', language_code with a list of 17 codes, and category with enumerated values. This provides excellent guidance beyond the schema's bare type declarations.
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 function: 'Get a phrasebook for the local language at a destination.' It specifies the resource (phrasebook) and verb (get), and distinguishes it from sibling tools which focus on flights, visas, etc., none of which offer language phrasebooks.
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 implies usage for travelers needing essential phrases, but does not explicitly state when to use it versus alternatives. However, given that no sibling tool provides phrasebooks, the context is clear. A minor improvement would be adding explicit conditions like 'For quick language assistance during travel.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_local_eventsA
DIFFERENTIATOR: Find concerts, shows, sports during your trip dates.
"Coldplay is in Paris while you're there." Uses Ticketmaster Discovery.
Args: city: City name start_date: YYYY-MM-DD end_date: YYYY-MM-DD classification: music, sports, arts, family, film, miscellaneous keyword: Artist, team, or show name max_results: Max events
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | ||
| keyword | No | ||
| end_date | Yes | ||
| start_date | Yes | ||
| max_results | No | ||
| classification | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description fails to disclose behavioral traits such as rate limits, authentication needs, pagination, or data freshness. It only mentions the data source (Ticketmaster Discovery).
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 extremely concise with a front-loaded differentiator, an example sentence, data source, and a clean parameter list. 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?
The description covers parameters and purpose but lacks information about the output format or behavior (e.g., number of results, pagination). Given no output schema, this is a notable gap.
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 0% schema description coverage, the description compensates by explaining each parameter, including the classification enum values and the max_results default. This adds significant meaning beyond the bare 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 the tool finds concerts, shows, and sports during trip dates, using Ticketmaster Discovery. It differentiates from sibling tools with the 'DIFFERENTIATOR' label and specific event types.
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 implies usage for local events during trips but does not explicitly state when not to use or mention alternatives among sibling tools like tool_search_activities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_local_sim_guideA
Local SIM/eSIM guide for a country: operators, cost, data, where to buy, activation, tethering policy, duration advice. 25+ countries; falls back to Airalo/Holafly otherwise.
Args: country: Country name (e.g., "Thailand"), ISO2 code (e.g., "TH"), or city (e.g., "Bangkok") trip_duration_days: Trip length in days β affects local SIM vs eSIM recommendation data_heavy: True if you stream video, work remotely, or need constant hotspot
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ||
| data_heavy | No | ||
| trip_duration_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It describes the output (operators, cost, etc.) and fallback behavior, but does not explicitly state whether the tool is read-only, has side effects, or is safe. It also lacks details on rate limits or data sources.
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 a clear summary paragraph, followed by a structured 'Args' section. It is concise but could be slightly more efficient by integrating parameter explanations without separate formatting. Overall, it earns its length.
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?
With no output schema, the description should explain the return format. It describes the content (operators, cost, etc.) but does not specify whether the guide returns structured data (e.g., JSON) or plain text. Coverage and fallback are addressed, but the exact output structure is missing.
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 0%, yet the description includes an 'Args' section that explains each parameter with examples and reasoning. For instance, 'country' accepts multiple formats, 'trip_duration_days' affects recommendations, and 'data_heavy' conditions are clearly described, adding significant value 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 it provides a local SIM/eSIM guide for a country, listing specific details like operators, cost, and activation. It specifies coverage (25+ countries) and fallback behavior, distinguishing it from sibling tools that focus on flights, visas, or other travel aspects.
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: when the user needs local SIM/eSIM guidance. It provides context on fallback (Airalo/Holafly) but does not explicitly state when not to use it or mention alternative sibling tools, though no direct alternative exists among the listed siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_passport_powerA
Rank passport strength, optionally compare two head-to-head: visa-free count, frictionless %, regional breakdown, Henley 2024 rank. With compare_with, shows which destinations each passport unlocks that the other doesn't.
Args: passport_country: Your passport ISO2 code (e.g., "US", "IN", "NG", "CN") compare_with: Optional second passport ISO2 for comparison (e.g., "GB")
| Name | Required | Description | Default |
|---|---|---|---|
| compare_with | No | ||
| passport_country | Yes |
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 describes the tool's outputs but does not explicitly state that it is a read-only operation, nor does it disclose any side effects, data sources, or limitations. It is adequate but not highly transparent.
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: a single summary sentence followed by clear arg descriptions. No redundancy, well front-loaded.
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 lack of output schema and annotations, the description adequately explains inputs and outputs but does not specify the return format or structure of the metrics. For an agent, this could lead to ambiguity when processing results.
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 has 0% description coverage, but the description adds meaningful context: passport_country is 'Your passport ISO2 code' and compare_with is 'Optional second passport ISO2 for comparison'. This clarifies the format and purpose beyond the schema titles.
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 ranks passport strength and optionally compares two passports head-to-head, listing specific metrics (visa-free count, frictionless %, regional breakdown, Henley 2024 rank). This distinguishes it from sibling tools like tool_check_visa_requirement or tool_visa_free_destinations.
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 implies usage for ranking or comparing passports but does not provide explicit guidance on when to use this tool over alternatives (e.g., tool_visa_free_destinations) or when not to use it. No exclusions or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_stopover_guideA
Get a layover activity guide for a major hub airport.
Read-only. No auth required. Data source: built-in curated dataset for 10 hubs: IST, DXB, SIN, DOH, NRT, HND, CDG, HKG, ICN, AMS. Returns in-terminal activities, city excursion options (only suggested when layover_hours is sufficient for safe exit/re-entry), and transit visa status for the given passport. Unsupported airports return an error field with a list of supported IATA codes.
Use this when the user has a confirmed layover and wants to make use of the time. Use tool_check_transit_visa for a standalone transit visa check without activity content. Do not use for airports not in the supported list above.
Args: airport: IATA code of the layover airport (e.g., "DXB", "SIN", "IST") layover_hours: Total available layover time in decimal hours (e.g., 4.5) passport_country: ISO-2 passport code for transit visa check (e.g., "IN", "US") β omit to skip visa check
| Name | Required | Description | Default |
|---|---|---|---|
| airport | Yes | ||
| layover_hours | Yes | ||
| passport_country | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given, so the description fully discloses behavior: 'Read-only. No auth required.' It explains the data source (built-in curated dataset for 10 hubs), behavior for city excursions (only suggested when layover_hours is sufficient), transit visa check logic, and error handling (returns error field with supported IATA codes for unsupported airports).
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 and well-structured: a clear header, then body paragraphs explaining scope, usage, and behavior, followed by a bullet-like list of argument descriptions. Every sentence adds value with no repetition.
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 exists, but the description explains return values: 'Returns in-terminal activities, city excursion options ... and transit visa status for the given passport.' It also covers error cases and lists supported hubs. For a tool with 3 parameters and moderate complexity, the description is fully 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?
Input schema has 0% description coverage, but the description provides thorough parameter explanations in the 'Args' section: airport as IATA code, layover_hours as decimal hours, and passport_country as ISO-2 code with option to omit. This adds significant meaning beyond the schema's type-only 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?
The description clearly states the tool's purpose: 'Get a layover activity guide for a major hub airport.' It specifies the verb (Get), resource (layover activity guide), and scope (major hub airports). It distinguishes itself from the sibling tool 'tool_check_transit_visa' by noting that this tool includes activities and transit visa info together.
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 usage guidelines are provided: 'Use this when the user has a confirmed layover and wants to make use of the time.' It also provides a clear alternative: 'Use tool_check_transit_visa for a standalone transit visa check without activity content.' Additionally, it warns not to use for unsupported airports and lists the supported hubs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_travel_advisoryA
Official US State Department travel advisory for a country.
Returns advisory level (1=safe, 4=do not travel), summary, and link. No API key. Cached 60 min.
Args: country: Country name in English (e.g., "Japan", "Egypt") or ISO code
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that results include advisory level (1-4), summary, and link, and that data is cached for 60 minutes without needing an API key. This covers key behavioral traits, though it does not mention error handling 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 briefβfour linesβwith no extraneous information. It front-loads the tool's purpose and immediately details output and constraints. Every sentence serves a purpose.
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 task is simple (get advisory for a country). The description explains the output components (level, summary, link) and caching behavior. It lacks details on error responses or handling of invalid country names, which would enhance completeness, but overall it covers essential aspects.
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 one parameter 'country' with type string and no description. The tool description adds: 'country: Country name in English (e.g., "Japan", "Egypt") or ISO code.' This clarifies acceptable formats (name or ISO code) and provides examples, fully compensating for the schema's lack of detail.
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 retrieves 'Official US State Department travel advisory for a country.' It specifies the output includes advisory level, summary, and link. This distinguishes it from sibling tools like tool_check_travel_health or tool_visa_free_destinations.
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 mentions 'No API key. Cached 60 min,' providing useful operational constraints. However, it does not explicitly state when to use this tool versus alternatives (e.g., tool_check_travel_health for health advisories), leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_traveler_profileA
Load the stored traveler profile (home airports, passports, history).
ALWAYS call this at the start of a session. If onboarded=False, walk the user through onboard_traveler before doing anything else.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly implies a read-only operation by saying 'Load the stored traveler profile.' However, it does not explicitly state that it is non-destructive or what happens if the profile doesn't exist. Since it's a simple load, this is adequate but could be more explicit.
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, no fluff. First sentence states purpose, second gives crucial usage rule. Highly efficient.
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 no parameters and no output schema, the description provides sufficient context by listing profile contents and usage instruction. It could mention that it returns a profile object, but the list of contents implies what the agent can expect.
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 tool has no parameters, and schema coverage is 100% (vacuously). According to guidelines, baseline is 3. The description adds no parameter-specific information because none are needed.
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 loads the stored traveler profile and lists what it contains (home airports, passports, history). It distinguishes from siblings like onboard_traveler and update_traveler_profile by specifying it is for loading an existing profile.
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 instructs to always call at the start of a session and provides conditional logic: if onboarded=False, use onboard_traveler instead. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_travel_newsA
Get recent travel news and disruption alerts for a destination.
Scans Google News RSS for strikes, airport closures, entry bans, protests. No API key required.
Args: destination: City or country name (e.g., "Paris", "Thailand") days_lookback: Only news from last N days (1-30) max_results: Max articles to return
| Name | Required | Description | Default |
|---|---|---|---|
| destination | Yes | ||
| max_results | No | ||
| days_lookback | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the source (Google News RSS) and types of alerts, but it does not mention rate limits, return format, or potential side effects. For a read operation, this is adequate but incomplete.
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 a clear header, a single informative sentence, and bullet-pointed parameter details. No redundant information; every part earns its place.
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 three parameters and no output schema, the description covers input well but does not describe the output format (e.g., titles, links, snippets). It also lacks error handling or data freshness details beyond days_lookback. Still, it is mostly complete for a simple news retrieval 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 0%, but the description provides excellent parameter details: destination with examples, days_lookback with range (1-30) and default 7, max_results with default 10. This adds significant meaning 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 the tool retrieves recent travel news and disruption alerts for a destination. It specifies the data source (Google News RSS) and types of disruptions (strikes, airport closures, etc.), distinguishing it from sibling tools like tool_get_travel_advisory and tool_get_destination_info.
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 mentions 'No API key required' as a usage note, but it does not explicitly state when to use this tool versus alternatives, nor does it provide conditions for when not to use it. The usage is implied but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_trip_historyA
View logged trip history for this traveler.
Args: limit: Max trips to return (most recent first)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not explicitly confirm read-only behavior or disclose any other traits like authorization needs. The word 'view' implies non-destructive action, but it is not explicit.
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?
Extremely concise: two sentences plus one line for the parameter. No 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?
For a simple tool with one optional parameter and no output schema, the description covers the essential purpose and parameter meaning. It does not explain edge cases like when limit is greater than available trips, but this is minor.
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 0% schema description coverage, the description adds value by explaining the 'limit' parameter meaning 'Max trips to return (most recent first)' and its default of 20.
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 'View logged trip history for this traveler,' using a specific verb and resource. It distinguishes from siblings like tool_get_trip_status and tool_list_my_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?
No explicit guidance on when to use this tool versus alternatives. The description implies it is for viewing history, but does not mention conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_trip_statusA
Get a saved trip's full state + checklist progress. Look up by id or destination.
Args: trip_id: 8-char trip id destination: City/country if id unknown
| Name | Required | Description | Default |
|---|---|---|---|
| trip_id | No | ||
| destination | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description accurately portrays a read operation with no side effects. Could mention that it does not modify data or require special permissions, but overall adequate.
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 concise sentences plus arg list; front-loaded with purpose. Every sentence earns its place with no 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?
No output schema, and description only vaguely mentions 'full state + checklist progress'. For a tool with no annotations and no output schema, more detail on return format or fields would improve 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?
Adds meaning beyond schema by specifying trip_id format ('8-char') and destination when id unknown, which is helpful for correct usage. Schema coverage is 0%, so description compensates well.
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?
Description clearly states the tool retrieves a saved trip's full state and checklist progress, using specific verb 'Get' and resource. It distinguishes from siblings by specifying scope (full state + checklist) and lookup methods (id or destination).
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 clear lookup methods and implies use when full state is needed, but lacks explicit 'when not to use' or comparisons to alternatives like tool_get_trip_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_get_weatherA
Get weather forecast for travel dates. No auth required.
Args: latitude: Latitude longitude: Longitude start_date: YYYY-MM-DD end_date: YYYY-MM-DD
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | ||
| latitude | Yes | ||
| longitude | Yes | ||
| start_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses 'No auth required', which is useful. However, with no annotations, the description fails to mention rate limits, data source, accuracy, or what the forecast covers (e.g., daily/hourly). It is moderately transparent but lacks depth.
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 short and front-loaded with the core purpose and authentication note. The Args list is concise but could be integrated more efficiently. No wasted sentences.
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 exists, and the description does not specify what the tool returns (e.g., temperature, conditions, units). This omission is significant for a forecasting tool, leaving the agent uncertain about the response format.
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 Args section in the description specifies the date format 'YYYY-MM-DD' for start_date and end_date, which is not present in the schema (only titles). This adds meaning beyond the schema titles, though the other parameters (latitude, longitude) are not elaborated.
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 'Get weather forecast for travel dates', which is a specific verb+resource combination. It distinguishes itself from sibling tools like tool_find_aurora_destinations or tool_get_destination_info by focusing narrowly on weather forecasting for date ranges.
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?
No guidance on when to use this tool vs alternatives. Does not mention prerequisites, when not to use it, or how it differs from other weather-related tools among the many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_list_advisories_by_levelA
List countries currently at advisory level X or above.
"What countries should I avoid right now?"
Args: min_level: 1-4. Default 3 = Reconsider Travel. 4 = Do Not Travel.
| Name | Required | Description | Default |
|---|---|---|---|
| min_level | No |
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 explains parameter meanings but does not disclose whether it is read-only, any side effects, sorting, pagination, or output format. The behavioral traits are mostly implied.
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 extremely concise: two sentences, an example query, and parameter details. Every sentence adds value, with the purpose front-loaded. No wasted 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 low complexity (single parameter, no output schema, no nested objects), the description is nearly complete. It could optionally mention the output format (e.g., list of country names), but what is provided is sufficient for an agent to understand the core functionality.
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 0%, but the description adds significant meaning: it explains the range 1-4, default 3, and defines what each level represents (3=Reconsider Travel, 4=Do Not Travel). This goes beyond the schema's minimal 'Min Level' label.
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 lists countries at advisory level X or above, with a concrete example query 'What countries should I avoid right now?'. This verb+resource combination is specific and differentiates from sibling tool_get_travel_advisory which targets a single country.
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 an example query but does not explicitly state when to use this tool versus alternatives like tool_get_travel_advisory or tool_visa_free_destinations. No guidance on when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_list_fare_watchesA
List saved fare watches with baseline/last/low prices.
Args: status: Filter active/paused/triggered (omit for all)
| Name | Required | Description | Default |
|---|---|---|---|
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action (list) with no disclosure of side effects, permissions, rate limits, or data freshness. As a read operation, it is safe, but this is not explicitly stated.
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 extremely concise with a single sentence and parameter doc. Every word adds value, with no filler or repetition.
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, the description is adequate but minimal. No output schema is provided, so the agent must infer the response structure. Sibling tools (e.g., check_fare_watches) exist but are not contrasted.
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 0%, but the description adds meaning by explaining the status parameter's possible values (active/paused/triggered). This clarifies what the schema only defines as a nullable string.
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 'List' and resource 'saved fare watches', and specifies the output includes baseline/last/low prices. This distinguishes it from sibling tools like tool_check_fare_watches which likely check for changes.
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 indicates a filter parameter (status) but does not provide explicit guidance on when to use this tool versus siblings like tool_check_fare_watches or tool_watch_fare. The context for usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_list_my_tripsA
List the traveler's saved trips with checklist progress.
Args: status: Filter by planning/booked/completed/cancelled (omit for all)
| Name | Required | Description | Default |
|---|---|---|---|
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states basic functionality. It does not disclose authentication needs, read-only nature, side effects, or rate limits. Important behavioral traits are missing.
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 brief and well-structured, with a one-line purpose followed by parameter documentation. Every sentence is necessary and no 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 simple list tool with one optional parameter and no output schema, the description provides core functionality and parameter details. It could mention output format or pagination, but overall is reasonably 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?
The input schema has zero description coverage, but the description adds explicit filter values (planning, booked, completed, cancelled) and default behavior (omit for all), significantly enhancing parameter 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 tool lists the traveler's saved trips with checklist progress, using a specific verb and resource. It distinguishes from sibling tools that save, update, delete, or get trip status.
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?
No guidance is provided on when to use this tool versus alternatives like tool_get_trip_history or tool_get_trip_status. The description does not include context, exclusions, or when to avoid using this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_multi_origin_meetupA
Find the cheapest city for a group of travelers flying from different origins to meet.
Read-only. No auth required. Scrapes Google Flights live for each origin-destination pair; results are indicative. Returns a ranked list of meeting cities each with total group cost, per-traveler cost breakdown, and individual flight details. Combinatorial search β response time scales with number of origins Γ candidates.
Use this when multiple travelers in different cities need to meet and want to minimize total group flight spend. Use tool_search_flights for single-origin itineraries. Use tool_optimize_budget when origin and destination are fixed.
Args: origins: Comma-separated IATA codes for each traveler's departure city (e.g., "JFK,LHR,NRT" for New York, London, Tokyo) departure_date: YYYY-MM-DD shared departure date return_date: YYYY-MM-DD shared return date max_results: Max candidate meeting cities to return (1-20) currency: ISO currency code for price display β USD, EUR, etc. regions: Comma-separated region filter to narrow candidates β europe, asia, americas, middleeast, africa (omit for global)
| Name | Required | Description | Default |
|---|---|---|---|
| origins | Yes | ||
| regions | No | ||
| currency | No | USD | |
| max_results | No | ||
| return_date | Yes | ||
| departure_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: 'Read-only. No auth required. Scrapes Google Flights live... results are indicative. Combinatorial search β response time scales with number of origins Γ candidates.' Since no annotations are provided, the description carries the full burden and does well, though could mention more about error handling or 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 well-structured: purpose first, then behavioral traits, usage guidelines, and parameter list. Every sentence adds value, and it's concise without missing key information. Front-loaded with the most important details.
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 complex tool with no output schema, the description covers input parameters, behavioral constraints, usage context, and output structure (ranked list with cost breakdown). This provides sufficient completeness for an agent to select and invoke the tool correctly.
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?
Despite 0% schema description coverage, the description explains all 6 parameters in the 'Args' section, adding meaning for each (e.g., origins as IATA codes, date format, max_results range, currency, region filter). This fully compensates for the lack of schema 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: 'Find the cheapest city for a group of travelers flying from different origins to meet.' It distinguishes itself from siblings like tool_search_flights and tool_optimize_budget by specifying the multi-origin meeting scenario.
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 provides when-to-use and when-not-to-use: 'Use this when multiple travelers in different cities need to meet... Use tool_search_flights for single-origin itineraries. Use tool_optimize_budget when origin and destination are fixed.' This gives clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_onboard_travelerA
First-time setup. Saves the traveler profile for reuse every future session.
Args: name: First name home_airports: Comma-separated IATA (e.g., "JFK,EWR") passports: Comma-separated ISO-2 (e.g., "US" or "US,IN") home_currency: USD, EUR, GBP, INR, etc. travel_style: budget, moderate, luxury interests: Comma-separated (e.g., "food,history,beach") dietary: Comma-separated restrictions preferred_cabin: economy, premium_economy, business, first visas_held: ISO-2 dest codes with active visas (e.g., "IN,CN") eta_held: Active ETAs (e.g., "ESTA (US),UK ETA")
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| dietary | No | ||
| eta_held | No | ||
| interests | No | ||
| passports | No | ||
| visas_held | No | ||
| travel_style | No | ||
| home_airports | No | ||
| home_currency | No | USD | |
| preferred_cabin | No | economy |
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 discloses that the tool saves a profile for reuse, indicating persistence, but does not specify permissions, idempotency, or behavior if the profile already exists. Parameter format details are helpful but do not fully compensate for missing behavioral 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 well-structured: a concise purpose line followed by a clear bullet list of parameters with format guidance. Every sentence adds value, and the information is front-loaded.
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 10 parameters, no output schema, and no annotations, the description covers parameter formats and tool purpose adequately. It lacks detail on return values, error handling, or what happens on repeated calls, but the existence of sibling tools (update, get) mitigates gaps.
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 0%, so the description must compensate, which it does by providing explicit formats (e.g., 'Comma-separated IATA (e.g., "JFK,EWR")', 'Comma-separated ISO-2 (e.g., "US" or "US,IN")') for each parameter. It gives examples and clarifies expected values. However, it does not mention defaults or which parameters are optional, missing some 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?
Description clearly states 'First-time setup. Saves the traveler profile for reuse every future session.' It specifies the verb (saves) and resource (traveler profile), distinguishing it from sibling tools like tool_update_traveler_profile.
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 marks this as 'First-time setup,' implying it should be used initially before other tools. It lacks explicit exclusion statements or references to alternatives like tool_update_traveler_profile, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_optimize_budgetA
Find the cheapest flight + hotel combination across flexible date windows.
Read-only. No auth required. Scrapes Google Flights and Hotels live; prices are indicative and may shift. Returns ranked date combinations each with total cost (flights + estimated hotel), per-person breakdown, and booking deeplinks.
Use this when the user wants the lowest total trip cost and can shift dates by a few days. Use tool_search_flights for fixed-date flight-only search. Use tool_fare_calendar for a full month price grid without hotel bundling.
Args: origin: Departure airport IATA code (e.g., "JFK") destination: Arrival airport IATA code (e.g., "CDG") departure_date: Preferred departure YYYY-MM-DD return_date: Preferred return YYYY-MM-DD adults: Number of travelers (affects per-person vs total cost) currency: ISO currency code β USD, EUR, etc. flexible_dates: True to search Β±flexibility_days around given dates flexibility_days: Date window to search each side, 1-7
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| origin | Yes | ||
| currency | No | USD | |
| destination | Yes | ||
| return_date | Yes | ||
| departure_date | Yes | ||
| flexible_dates | No | ||
| flexibility_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral disclosure burden. It states 'Read-only. No auth required.', explains the external data source ('Scrapes Google Flights and Hotels live'), warns that 'prices are indicative and may shift', and describes the output structure including ranked date combinations, total cost, per-person breakdown, and booking deeplinks.
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 with purpose, behavioral notes, usage guidelines, and parameter list in logical order. It is front-loaded with the main action. However, it could be slightly more concise by combining some sentences (e.g., 'Read-only. No auth required.' could be one sentence). Overall, it earns its length.
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 (8 parameters, no output schema), the description is highly complete. It explains the return value format (ranked date combinations, total cost, per-person breakdown, booking deeplinks), the live nature of data, price limitations, and the effect of flexibility parameters. It also provides usage guidance and sibling alternatives.
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 0% description coverage, but the tool's description includes a complete 'Args' section explaining each of the 8 parameters in plain language, adding semantic meaning beyond the schema field names. For example, it clarifies that 'flexible_dates' enables searching around the given dates and 'flexibility_days' defines the window (1-7).
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 begins with a clear, specific verb+resource: 'Find the cheapest flight + hotel combination across flexible date windows.' It explicitly distinguishes from sibling tools by mentioning tool_search_flights and tool_fare_calendar with their respective use cases.
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 includes an explicit 'Use this when...' statement and directly names alternatives: 'Use tool_search_flights for fixed-date flight-only search. Use tool_fare_calendar for a full month price grid without hotel bundling.' This provides clear guidance on when and when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_plan_itineraryA
PLANNING: Generate data-backed day-by-day itinerary with real activities and weather.
Args: destination: City and country (e.g., "Paris, France") start_date: YYYY-MM-DD end_date: YYYY-MM-DD interests: Comma-separated (e.g., "food,history,nature,art") budget_level: budget, moderate, luxury travelers: Number of travelers include_weather: Include forecast include_activities: Include nearby attractions
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | Yes | ||
| interests | No | ||
| travelers | No | ||
| start_date | Yes | ||
| destination | Yes | ||
| budget_level | No | moderate | |
| include_weather | No | ||
| include_activities | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits like read-only vs destructive, permission requirements, or rate limits. It only states the core functionality without any behavioral 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 concise, front-loaded with a one-sentence summary, followed by a clear, structured list of arguments. Every line adds value 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?
While parameter descriptions are good, the description lacks information about the output format (no output schema) and does not provide usage context or behavioral details. For a tool with 8 parameters and no nested objects, it is moderately complete but has gaps.
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 0%, but the description compensates by listing all 8 parameters with clear examples and meanings (e.g., 'destination: City and country (e.g., "Paris, France")'). It explains optional parameters and their defaults, adding value 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 it generates a data-backed day-by-day itinerary with real activities and weather. The name 'tool_plan_itinerary' aligns perfectly. It is distinct from sibling tools like 'tool_plan_trip_package' which likely plans a full trip package.
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?
No guidance on when to use this tool vs alternatives such as 'tool_plan_trip_package' or 'tool_optimize_budget'. No when-not-to-use advice or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_plan_trip_packageA
Complete bookable trip package in one call: flights, hotels, visa, weather, advisory, attractions, ground transport, cost estimate + booking URLs/checklist.
Use when the destination is decided; use score_destinations if still deciding.
Args: origin: Departure airport IATA or city (e.g., "DXB", "JFK", "New York") destination: Destination city (e.g., "Bali", "Tokyo", "Paris") departure_date: YYYY-MM-DD return_date: YYYY-MM-DD (auto-calculated from trip_length_days if omitted) trip_length_days: Nights (used when return_date omitted) travelers: Number of travelers passport_country: ISO-2 for visa check (e.g., "US", "IN", "GB") currency: Home currency for all prices budget_level: budget, moderate, luxury interests: Comma-separated (e.g., "beach,food,history") include_ground_transport: Also search buses/trains
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| currency | No | USD | |
| interests | No | ||
| travelers | No | ||
| destination | Yes | ||
| return_date | No | ||
| budget_level | No | moderate | |
| departure_date | Yes | ||
| passport_country | No | ||
| trip_length_days | No | ||
| include_ground_transport | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must fully disclose behavior. It describes the output components and implies a read-only planning operation via 'booking URLs/checklist,' but does not explicitly state that the tool does not modify data. This is sufficient but not fully explicit, earning a 4.
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: one sentence for purpose, one for usage guideline, then a parameter list. No extraneous text; every sentence serves a purpose.
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 11 parameters and no output schema, the description covers what the tool returns and when to use it. It also distinguishes from sibling tools. This is 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?
With 0% schema coverage, the description must explain all parameters. It provides clear definitions, examples, and relationships (e.g., return_date vs trip_length_days), adding substantial meaning beyond the 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?
The description clearly states the tool's purpose: 'Complete bookable trip package in one call: flights, hotels, visa, weather, advisory, attractions, ground transport, cost estimate + booking URLs/checklist.' It uses a specific verb-resource combination and distinguishes from sibling tools by specifying when to use it.
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 given: 'Use when the destination is decided; use score_destinations if still deciding.' This directly tells the agent when to use this tool versus an alternative, which is excellent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_rank_trip_optionsA
Rank flight/trip options on a 0-100 value score β price plus stops, duration, refundability, baggage and hassle β not price alone.
Pass a JSON array of option objects with any of: price, duration_minutes, stops, refundable, checked_bag_included, self_transfer, hidden_city, split_ticket, visa_required, transit_visa_required, label.
Args: options_json: JSON array of option objects priority: cheapest/fastest/easiest/flexible/balanced currency: Display currency
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | USD | |
| priority | No | balanced | |
| options_json | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source of behavioral info. It discloses that the tool ranks based on price, stops, duration, refundability, baggage, and hassle, but does not describe the output format, whether it returns sorted results, or if there are any side effects (e.g., mutation). It gives moderate transparency but lacks output 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 and well-structured. The first sentence captures the purpose, followed by a clear breakdown of parameters using the 'Args:' format. No unnecessary words or repetition.
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 lack of annotations and output schema, the description is moderately complete. It explains the input and scoring factors, but omits details on the output format (e.g., does it return ranked options with scores?), error handling, and whether the tool is read-only. More details would improve 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?
The schema has 0% description coverage, so the description must compensate. It thoroughly explains the options_json parameter by listing permitted keys (price, duration_minutes, stops, etc.), specifies priority values (cheapest/fastest/easiest/flexible/balanced), and clarifies currency as display currency. This adds significant meaning beyond the bare 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 the tool ranks flight/trip options on a 0-100 value score based on multiple criteria beyond price. It specifies the resource (flight/trip options) and the action (rank), distinguishing it from sibling tools like tool_search_flights or tool_compare_destinations.
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 does not provide guidance on when to use this tool versus alternatives. It assumes the agent has already obtained a list of options (e.g., from a search tool) but does not explicitly state this context or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_save_tripA
Save a trip the traveler is planning. Returns a trip_id + 8-item booking checklist.
Use when a traveler commits to a destination so progress persists across sessions.
Args: destination: City or country depart_date: YYYY-MM-DD return_date: YYYY-MM-DD origin: Home airport IATA travelers: Headcount passport_country: ISO2 for visa context purpose: leisure/business/etc notes: Free text
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| origin | No | ||
| purpose | No | ||
| travelers | No | ||
| depart_date | No | ||
| destination | Yes | ||
| return_date | No | ||
| passport_country | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return value (trip_id + checklist) and implies persistence by saying 'persists across sessions.' However, it does not explicitly state that the tool creates a new trip (vs. updating an existing one) or any authentication/permission requirements.
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 written: a short high-level statement, a one-sentence usage hint, then a structured list of parameters. No redundant or irrelevant information; every sentence adds value.
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 an 8-parameter tool with no output schema or annotations, the description covers the key aspects: purpose, when to use, what it returns, and parameter formats. Missing details like the exact contents of the booking checklist or constraints on date ordering are minor gaps.
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 0%, but the description's Args section adds meaning for all 8 parameters (e.g., 'destination: City or country', 'depart_date: YYYY-MM-DD', 'origin: Home airport IATA'). This compensates well for the lack of schema descriptions, though some parameter explanations could be more precise (e.g., purpose enum).
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 ('Save'), the resource ('a trip'), and the outcome ('Returns a trip_id + 8-item booking checklist'). It distinguishes from siblings like tool_delete_trip and tool_update_trip by focusing on initial saving of a planned trip.
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 usage context: 'Use when a traveler commits to a destination so progress persists across sessions.' This tells the agent when to invoke the tool, though it does not explicitly mention when not to use it or list alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_score_destinationsA
DIFFERENTIATOR: Multi-objective destination ranking.
Scores destinations on cost + weather + safety + events + quality of life simultaneously. The killer "where should I actually go?" tool.
Args: destinations: Comma-separated (e.g., "Paris,Rome,Barcelona,Tokyo") travel_start: YYYY-MM-DD travel_end: YYYY-MM-DD weights: key:weight pairs (e.g., "cost:3,weather:2") weather_pref: warm_dry, cool_dry, warm_any, snow, shoulder_season origin: Optional origin airport
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | ||
| weights | No | cost:3,weather:3,safety:2,events:1,quality_of_life:1 | |
| travel_end | Yes | ||
| destinations | Yes | ||
| travel_start | Yes | ||
| weather_pref | No | warm_dry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the parameters and overall function but does not disclose behavioral details such as scoring methodology, error handling, performance, or whether it requires external data. The description is adequate for basic understanding but incomplete for a black-box 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 concise, with a clear DIFFERENTIATOR headline and a structured list of arguments. The marketing phrase 'killer tool' is minor fluff but does not detract. Overall, it is efficient and easy to scan.
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 complexity (6 parameters, no output schema, no annotations), the description is partially complete. It covers all parameters but fails to describe the output format (e.g., returns a ranking list, scores, or something else). It also lacks guidance on edge cases (invalid destinations, missing data). This is a notable gap for a tool that produces a ranked result.
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 0%, so the description must compensate. It does so excellently by providing detailed explanations for each parameter under Args: including format (e.g., comma-separated destinations, YYYY-MM-DD dates, key:weight pairs for weights, enumerated options for weather_pref, optional origin). This adds significant value beyond the raw 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 it is a multi-objective destination ranking tool that scores destinations on cost, weather, safety, events, and quality of life. The phrase 'The killer where should I actually go? tool' and the DIFFERENTIATOR label effectively distinguish it from sibling tools like compare_destinations or score_nomad_cities.
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 implies use for holistic destination comparison with the DIFFERENTIATOR and purpose statement. However, it does not explicitly state when not to use this tool or mention alternative tools for specific needs (e.g., if only cost matters). The context is clear but lacks explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_score_nomad_citiesA
Score and rank cities for digital nomad / remote-work suitability.
Combines cost of living, safety advisory, internet speed index, weather comfort, visa ease, and lifestyle/coworking data into a single ranked score. No API key required.
Args: cities: Comma-separated city names (e.g., "Bali,Lisbon,Chiang Mai,Medellin") month: Month 1-12 to evaluate weather (default: current month) weights: Scoring weights as "dimension:percent" pairs summing to 100. Dimensions: cost, safety, internet, weather, visa, lifestyle
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | ||
| cities | Yes | ||
| weights | No | cost:25,safety:20,internet:15,weather:20,visa:10,lifestyle:10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. While the tool appears read-only, the description does not explicitly state safety or side effects. It adds context about combining data but lacks explicit behavioral guarantees.
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 and front-loaded with the purpose. Every sentence adds value, explaining inputs, defaults, and a key note (no API key). No wasted 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?
While input parameters are well-described, the output format is not explained. No output schema exists, so the description should clarify what the tool returns (e.g., score range, rank order). This lack of output context 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 description coverage is 0%, so the tool description must compensate. It does so effectively by explaining the cities parameter format, month parameter defaults, and weights parameter structure with dimensions. This adds significant meaning 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 the tool's purpose: score and rank cities for digital nomad suitability. It lists specific factors (cost, safety, internet, etc.) and distinguishes from sibling tools like tool_score_destinations by focusing on remote-work criteria.
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 context for use (no API key required) but does not explicitly contrast with alternatives like tool_compare_destinations. It implies usage for nomad suitability, offering clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_search_activitiesA
Search activities and attractions near a GPS coordinate using Wikidata/OpenTripMap.
Read-only. No auth required. No rate limits. Data source: Wikidata with OpenTripMap fallback β community-curated, not real-time. Returns a list of places each with name, category, coordinates, description, and Wikipedia link where available.
Use this when you have coordinates (from tool_geocode) and need nearby things to do. Use tool_search_restaurants_bars specifically for dining. Use tool_get_local_events for time-sensitive events like concerts or festivals. Not suitable for business hours or current pricing β those change frequently.
Args: latitude: Decimal latitude (e.g., 48.8566 for Paris) longitude: Decimal longitude (e.g., 2.3522 for Paris) radius_km: Search radius in km, 1-50 category: Filter by type β culture, nature, food, shopping, nightlife, architecture, historic, museums, religion, sport β or omit for all max_results: Max places to return, 1-50
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | ||
| latitude | Yes | ||
| longitude | Yes | ||
| radius_km | No | ||
| max_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature, no auth, no rate limits, data source (Wikidata/OpenTripMap), non-real-time, and unsuitability for business hours/pricing. No annotations provided; description carries full burden excellently.
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?
Well-structured with clear sections: purpose, properties, usage, args. Every sentence adds value 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?
Despite no output schema, description covers return format (list with name, category, coordinates, description, Wikipedia link), usage context, limitations, and parameter details.
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 0% schema coverage, the description adds detailed explanations for all 5 parameters with examples and constraints, fully compensating
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 specifies 'Search activities and attractions near a GPS coordinate' with verb and resource. Distinguishes from sibling tools like tool_search_restaurants_bars and tool_get_local_events.
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 (when coordinates from tool_geocode and need nearby things to do) and when to use alternatives (dining -> tool_search_restaurants_bars, events -> tool_get_local_events).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_search_flightsA
Search live flight prices between two airports using Google Flights data.
Read-only. No auth required. No rate limits enforced. Data freshness: scraped live at call time; prices may shift minute-to-minute. Returns a list of flight options each with price, stops, duration, airline, and booking deeplink.
Use this when the user wants to compare specific flight options for a known origin-destination pair. Use tool_fare_calendar instead when dates are flexible. Use tool_find_cheapest_month for month-level planning. Use tool_cheap_anywhere_from when the destination is open. Use tool_optimize_budget to bundle flights + hotels.
Args: origin: IATA airport code (e.g., "JFK", "LAX", "LHR") destination: IATA airport code (e.g., "CDG", "NRT", "SYD") departure_date: YYYY-MM-DD return_date: YYYY-MM-DD (omit for one-way) adults: Number of passengers, 1-9 max_results: Max flight options to return (1-20) currency: ISO currency code β USD, EUR, GBP, INR, etc. nonstop_only: True to exclude connecting flights
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| origin | Yes | ||
| currency | No | USD | |
| destination | Yes | ||
| max_results | No | ||
| return_date | No | ||
| nonstop_only | No | ||
| departure_date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully covers behavioral traits: 'Read-only. No auth required. No rate limits enforced. Data freshness: scraped live at call time; prices may shift minute-to-minute. Returns a list of flight options each with price, stops, duration, airline, and booking deeplink.'
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?
Well-structured: purpose sentence, behavioral summary, usage guidelines, then parameter list. Every sentence is informative and earns its place.
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 8 parameters, no output schema, no annotations, and many sibling tools, the description is fully complete. It explains parameters, return structure, usage context, and behavioral traits without gaps.
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 0%, but the description lists all 8 parameters with meaningful details: IATA code formats, date format, omission for one-way, adult range, max_results range, currency examples, and nonstop_only as boolean. Adds significant value 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 'Search live flight prices between two airports using Google Flights data.' It specifies the verb (search), resource (flight prices), and distinguishes from sibling tools.
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 says 'Use this when the user wants to compare specific flight options for a known origin-destination pair.' It also lists four sibling tools with specific use cases (tool_fare_calendar, tool_find_cheapest_month, etc.).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_search_ground_transportA
Search bus, train, and ferry options between two cities.
Returns multi-modal route overview + direct booking links for Amtrak, FlixBus, Greyhound, Megabus, OurBus, BlaBlaCar, Busbud, Trainline, IRCTC, 12Go, and Rome2Rio. No API key required.
Args: origin_city: Departure city (e.g., "State College", "Paris", "Mumbai") destination_city: Destination city (e.g., "New York", "London", "Delhi") date: Departure date YYYY-MM-DD travelers: Number of travelers region: us, europe, india, sea β auto-detected if omitted
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| region | No | ||
| travelers | No | ||
| origin_city | Yes | ||
| destination_city | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses 'No API key required' and return type (route overview + booking links) but no mention of side effects, rate limits, or safety despite no annotations.
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?
Well-structured with purpose first, then providers, then Args. Slightly long provider list but informative.
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?
Covers purpose and parameters adequately but lacks details on output format, error handling, and edge cases, especially without output schema.
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 0%, but description adds detailed Arg explanations with examples and notes on auto-detection, fully compensating.
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?
Clear verb 'Search' with resource 'bus, train, and ferry options' between two cities. Distinct from sibling tools like tool_search_flights.
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?
Purpose is implied by name and description but no explicit guidance on when to use vs alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_search_hotelsA
PLANNING: Search hotels in a city.
Uses Google Hotels names through fast_hotels plus booking deeplinks. Args: city: City name (e.g., "Paris", "Tokyo") - NOT IATA code check_in: YYYY-MM-DD check_out: YYYY-MM-DD adults: Number of guests rooms: Number of rooms max_results: Max results currency: USD, EUR, etc. price_range: "100-300" ratings: "3,4,5"
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | ||
| rooms | No | ||
| adults | No | ||
| ratings | No | ||
| check_in | Yes | ||
| currency | No | USD | |
| check_out | Yes | ||
| max_results | No | ||
| price_range | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses data source (Google Hotels, fast_hotels) and that output includes booking deeplinks. However, it does not discuss rate limits, caching, error handling, or what happens with no results. Minimal but not misleading.
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 a clear 'PLANNING' header and bullet-style parameter list. It front-loads the purpose. However, the parameter list could be more structured, but overall efficient.
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 9 parameters with no output schema and no annotations, the description adequately documents parameters but lacks behavioral context (e.g., data freshness, failure behavior, output format). The mention of 'booking deeplinks' hints at output but is insufficient for complete understanding.
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 0% schema description coverage, the description adds critical meaning: examples for city (not IATA), date format YYYY-MM-DD, defaults, and format hints for price_range and ratings. It fully compensates for the missing schema 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 'Search hotels in a city' with a specific verb and resource. There are no sibling tools for hotel search, so it is well-distinguished.
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 mentions it uses Google Hotels names and fast_hotels plus booking deeplinks, but does not explicitly specify when to use or when not to use this tool over alternatives. Since there are no direct sibling hotel search tools, the need is lower, but still no guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_search_restaurants_barsA
Find restaurants/bars/pubs/cafes near a location: cuisine, price, hours, distance + links to Google Maps, Zomato, TripAdvisor, Yelp, OpenTable, Resy, Untappd, Foursquare. Ratings need FOURSQUARE_API_KEY (free tier).
Args: latitude: Location latitude longitude: Location longitude category: restaurant | bar | pub | cafe | nightlife | all radius_m: Walk radius in metres (default 1000 = ~12min walk) max_results: Max venues (1-30) cuisine: Filter by cuisine e.g. "italian", "japanese", "thai", "indian" city: City name for better search links e.g. "Tokyo", "Paris"
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| cuisine | No | ||
| category | No | all | |
| latitude | Yes | ||
| radius_m | No | ||
| longitude | Yes | ||
| max_results | No |
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 mentions a dependency on FOURSQUARE_API_KEY for ratings and lists external sites linked. However, it does not disclose other behaviors like rate limits, error handling, or whether pagination occurs.
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 and well-structured: a one-sentence purpose, then a bulleted list of parameters with brief explanations. Every sentence adds value, with 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 7 parameters and no output schema, the description covers purpose, parameters thoroughly, and a key dependency. It mentions return content (links to sites) but lacks detail on result format, sorting, or pagination. Adequate but not exhaustive.
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 0% schema description coverage, the description compensates fully by explaining each parameter: radius_m with walk time, max_results range, cuisine examples, city purpose. This adds significant meaning beyond the bare 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?
Description starts with 'Find restaurants/bars/pubs/cafes near a location', which is a specific verb and resource. It clearly distinguishes itself from siblings, as no other sibling tool serves the same purpose.
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 clearly states when to use the tool (to find nearby dining venues). It does not explicitly state when not to use or list alternatives, but given sibling tools, no other is for restaurant search, so usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_stop_fare_watchA
Pause or permanently delete a fare watch by its ID.
Writes to local profile store (~/.wander_agent/). No external auth required. Returns the updated watch record. Pausing (delete=False) keeps history but stops the watch from being checked by tool_check_fare_watches. Deleting (delete=True) removes it permanently with no recovery.
Use this when the user has booked the flight or no longer needs the alert. Use tool_list_fare_watches to find the watch_id if unknown. Use tool_check_fare_watches to re-price before deciding to stop.
Args: watch_id: ID of the watch to stop (from tool_list_fare_watches or tool_watch_fare) delete: False to pause (reversible); True to delete permanently
| Name | Required | Description | Default |
|---|---|---|---|
| delete | No | ||
| watch_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses writes to local profile store, no external auth, returns updated watch record, and explains consequences of pausing vs deleting (keeps history, stops checking; permanent removal, no recovery).
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?
Well-structured and front-loaded: first sentence states purpose, then details. Every sentence adds value with no fluff.
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 low schema coverage, no annotations, and no output schema, the description is complete. It explains behavior, parameters, and usage. Return value is mentioned ('Returns the updated watch record').
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 0%, but description adds meaning: watch_id comes from tool_list_fare_watches or tool_watch_fare; delete false=pause (reversible), true=delete permanently. This compensates for low schema coverage.
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 'Pause or permanently delete a fare watch by its ID.' It uses specific verbs (pause/delete) and a specific resource (fare watch), and distinguishes from sibling tools like tool_check_fare_watches and tool_list_fare_watches.
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 says when to use: 'Use this when the user has booked the flight or no longer needs the alert.' Also provides alternatives: 'Use tool_list_fare_watches to find the watch_id if unknown. Use tool_check_fare_watches to re-price before deciding to stop.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_update_traveler_profileA
Update profile fields, manage cards, or log a trip. Pass only what changed.
Args: name: Update name home_airports: Replace home airports (comma-separated IATA) passports: Replace passports (comma-separated ISO-2) home_currency: Update home currency travel_style: budget, moderate, luxury interests: Replace interests (comma-separated) dietary: Replace dietary restrictions preferred_cabin: economy, premium_economy, business, first visas_held: Replace full visa list (comma-separated ISO-2 dest codes) eta_held: Replace ETA list add_visa: Append one ISO-2 dest code to visas_held add_card: Card key to add (e.g., "chase_sapphire_reserve", "amex_gold", "bilt_mastercard") add_card_nickname: Optional nickname for the card add_card_balance: Current points balance on this card's program remove_card: Card key to remove from portfolio add_trip_destination: Log a trip β destination name add_trip_from: Trip start YYYY-MM-DD add_trip_to: Trip end YYYY-MM-DD add_trip_purpose: tourism, business, family, other
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| dietary | No | ||
| add_card | No | ||
| add_visa | No | ||
| eta_held | No | ||
| interests | No | ||
| passports | No | ||
| visas_held | No | ||
| add_trip_to | No | ||
| remove_card | No | ||
| travel_style | No | ||
| add_trip_from | No | ||
| home_airports | No | ||
| home_currency | No | ||
| preferred_cabin | No | ||
| add_card_balance | No | ||
| add_trip_purpose | No | tourism | |
| add_card_nickname | No | ||
| add_trip_destination | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explains each parameter's behavior (replace, append, remove) but does not disclose overall effects like whether updates are immediate, if authentication is required, or what happens on partial failure. The mutative nature is implied but not explicitly stated.
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 long due to 19 parameters, but the opening summary ('Update profile fields...') provides a high-level overview. The list format is clear and each line is necessary. Could be slightly more structured (e.g., grouping related params), but it is functional and not wasteful.
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 complexity (19 parameters, no output schema, no annotations), the description covers parameter semantics well. However, it lacks details on the return value or response format, and does not explain what happens if no parameters are passed. The instruction 'Pass only what changed' partially addresses this.
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 0% description coverage, but the description fully compensates by listing each parameter with a clear one-liner explaining purpose and format (e.g., 'comma-separated IATA', 'YYYY-MM-DD'). This adds significant value beyond the schema titles alone.
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: 'Update profile fields, manage cards, or log a trip.' It uses specific verbs (update, manage, log) and specifies the resource (traveler profile). This distinguishes it from sibling tools, which are mostly query or analysis tools.
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 says 'Pass only what changed,' indicating a partial update pattern. It provides a comprehensive list of parameters with explanations, but does not explicitly state when to use this tool versus alternatives or what prerequisites exist. However, the context of sibling tools makes it clear this is the only profile modification tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_update_tripA
Update a saved trip: change status/dates, tick checklist items, shortlist options.
Checklist keys: book_flights, book_hotel, check_visa, travel_insurance, book_ground_transport, check_advisory, pack, notify_bank.
Args: trip_id: 8-char trip id status: planning/booked/completed/cancelled depart_date: YYYY-MM-DD return_date: YYYY-MM-DD notes: Replace notes mark_done: Checklist key to mark done mark_undone: Checklist key to un-mark checklist_note: Note for the marked item shortlist_flight: Flight option dict to save shortlist_hotel: Hotel option dict to save
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| status | No | ||
| trip_id | Yes | ||
| mark_done | No | ||
| depart_date | No | ||
| mark_undone | No | ||
| return_date | No | ||
| checklist_note | No | ||
| shortlist_hotel | No | ||
| shortlist_flight | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions updating fields and provides acceptable values for status and date formats. However, it lacks disclosure of side effects (e.g., overwriting notes, how shortlisted items are stored) or persistence behavior. It describes actions but not behavioral implications.
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 a concise summary followed by a structured parameter list. Each sentence adds value, but the list of checklist keys could be more concise. Still, it is well-organized and efficient.
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 10 parameters, no output schema, and no annotations, the description covers the main functionality but misses details like how shortlist items are stored, whether checklist notes are appended or replaced, and whether the tool returns a response. It is adequate but not fully comprehensive.
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 0% schema description coverage, the description adds substantial meaning. It explains each parameter, including allowed status values, date format, checklist keys, and the purpose of shortlist options. However, 'shortlist_flight' and 'shortlist_hotel' are only described as 'Flight option dict to save', which is vague. Overall, significantly compensates for schema gaps.
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 'Update' and the resource 'a saved trip', listing specific actions: change status/dates, tick checklist items, shortlist options. This distinguishes it from sibling tools like tool_save_trip (create) and tool_delete_trip (delete).
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 lists what can be updated but does not explicitly state when to use this tool versus alternatives. For example, it does not contrast with tool_get_trip_status for reading or tool_save_trip for creating. Usage is implied but not clarified with specific scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_verify_flight_routeA
Verify a flight route exists between two airports.
Args: origin: IATA code destination: IATA code
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| destination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses the parameters and the action but fails to mention idempotency, read-only nature, side effects, or what happens if the route does not exist.
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 extremely concise, using a single sentence for the action and a line for parameters. Every word adds value, no 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?
Given no output schema, the description should explain the return value (e.g., boolean) or error handling. It does not, leaving the agent uncertain about what to expect after invocation.
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 0% schema description coverage, the description adds crucial meaning by specifying each parameter as an 'IATA code', compensating for the lack of schema descriptions. The two parameters are clearly explained.
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 'Verify a flight route exists between two airports,' using a specific verb and resource. It distinguishes itself from sibling tools like search_flights or fare_calendar by focusing on route existence verification.
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 implies usage when checking route existence but does not explicitly state when to use versus alternatives or any exclusions. No guidance on prerequisites or result interpretation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_verify_placeA
Verify a named place actually exists by cross-checking OSM, Foursquare, and OpenTripMap.
Read-only. No auth required (Foursquare key optional; degrades gracefully without it). Returns: verified (bool), confidence score, canonical name, coordinates, matched sources, and a warning message if the place appears to be hallucinated.
Use this before presenting any specific restaurant, hotel, or attraction to the user β especially when the name came from an LLM rather than a live API. Do not use for checking business hours or current availability; this only confirms existence. Use tool_geocode if you only need coordinates for a city or landmark.
Args: place_name: Place name to verify (e.g., "Eiffel Tower", "Nobu Tokyo") city: City context to narrow the search (e.g., "Paris", "Tokyo") expected_type: Optional type hint β restaurant, attraction, hotel, museum, park
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | ||
| place_name | Yes | ||
| expected_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It states read-only, no auth required, graceful degradation, and what returns. Could mention rate limits or errors, but 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?
Description is well-structured with summary, return details, usage notes, and argument list. No redundancy. Could be slightly more concise, but effective.
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 output schema, description explains return fields (verified, confidence, etc.). Covers purpose, usage, parameters, and returns completely 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?
Schema coverage 0%, but description provides meaningful examples and explanations for each parameter (place_name, city, expected_type), compensating for schema gaps.
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?
Description starts with a clear verb+resource: 'Verify a named place actually exists by cross-checking OSM, Foursquare, and OpenTripMap.' It is specific and distinguishes from sibling tools like tool_geocode.
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 usage guidance: 'Use this before presenting any specific restaurant, hotel, or attraction to the user β especially when the name came from an LLM rather than a live API. Do not use for checking business hours or current availability; this only confirms existence. Use tool_geocode if you only need coordinates for a city or landmark.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_visa_free_destinationsA
List all countries a passport can enter without a traditional pre-arranged visa.
Read-only. No auth required. Data source: built-in curated dataset (static snapshot β verify with official embassy before travel). Returns a list of countries each with entry category, apply link, and notes. Invalid passport codes return an empty list. Territories and disputed regions may not be included.
Use this for broad destination discovery ("where can I go without a visa?"). Use tool_check_visa_requirement for a precise single-pair lookup. Use tool_check_transit_visa for transit/layover visa checks, not entry.
Args: passport_country: ISO 2-letter passport country code (e.g., "IN", "BR", "ZA") include_categories: Comma-separated filter β valid values: visa_free, visa_on_arrival, evisa, eta_required (default includes all four)
| Name | Required | Description | Default |
|---|---|---|---|
| passport_country | Yes | ||
| include_categories | No | visa_free,visa_on_arrival,evisa,eta_required |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behaviors: read-only, no auth required, data source is a static snapshot, returns list with fields, invalid codes return empty list, territories may be excluded. This is comprehensive for the tool's simplicity.
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 with sections (purpose, behavioral notes, usage guidance, args). It is conciseβevery sentence adds value. Front-loaded with the core function, then additional context.
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 list tool with two simple parameters and no output schema, the description covers all necessary aspects: purpose, when to use, parameters, behavior, and limitations (verify with embassy). It is 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?
Schema coverage is 0% (no descriptions in schema), but the description thoroughly explains both parameters: passport_country ('ISO 2-letter passport country code' with examples) and include_categories (comma-separated filter with valid values and default). This adds significant meaning beyond the schema titles.
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: 'List all countries a passport can enter without a traditional pre-arranged visa.' It uses a specific verb ('list') and resource ('countries a passport can enter'), and distinguishes from sibling tools like tool_check_visa_requirement and tool_check_transit_visa.
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 ('broad destination discovery') and when to use alternatives: 'Use tool_check_visa_requirement for a precise single-pair lookup. Use tool_check_transit_visa for transit/layover visa checks, not entry.' This provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tool_watch_fareA
Create a fare watch that records a baseline price and alerts when a target is hit.
Writes to local profile store (~/.wander_agent/). No external auth required. Returns the created watch_id, baseline price fetched at creation time, and target_price (auto-set to 10% below baseline if not specified). The watch is passive β prices are only re-checked when tool_check_fare_watches is called.
Use this to begin monitoring a route. Use tool_check_fare_watches to poll for price changes. Use tool_list_fare_watches to see all active watches. Use tool_stop_fare_watch to pause or delete a watch when no longer needed.
Args: origin: Departure airport IATA code (e.g., "JFK") destination: Arrival airport IATA code (e.g., "LHR") depart_date: YYYY-MM-DD departure date return_date: YYYY-MM-DD return date for round trip; omit for one-way adults: Number of passengers (affects price baseline) currency: ISO currency code β USD, EUR, GBP, etc. target_price: Alert threshold; omit to auto-set at 10% below baseline
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | ||
| origin | Yes | ||
| currency | No | USD | |
| depart_date | Yes | ||
| destination | Yes | ||
| return_date | No | ||
| target_price | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses writes to local profile store (~/.wander_agent/), no external auth required, returns watch_id, baseline, and target_price (auto-set to 10% below baseline if not specified), and that the watch is passiveβprices re-checked only when tool_check_fare_watches is called. This is thorough, though it could mention error conditions 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 well-structured with a concise first sentence stating the purpose, followed by behavioral notes, usage guidelines, and a parameter list. It is front-loaded and every sentence adds value 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?
Given no annotations, no output schema, and 7 parameters, the description covers core functionality: return values (watch_id, baseline, target_price), the passive polling model, and auto-set default. It is mostly complete but could mention error handling or limits (e.g., max number of watches).
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 0%, so description must and does add meaning for all parameters: origin/destination (IATA codes), depart_date/return_date (YYYY-MM-DD, with clarification for round trip vs one-way), adults (affects baseline), currency (ISO code), target_price (omit to auto-set). This fully compensates for the lack of schema 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 creates a fare watch, records a baseline, and alerts on target price. It distinguishes itself from sibling tools like tool_check_fare_watches, tool_list_fare_watches, and tool_stop_fare_watch by specifying the action 'Create' and the resource 'fare watch'.
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 context on when to use this tool: 'Use this to begin monitoring a route.' It also names alternatives: 'Use tool_check_fare_watches to poll for price changes. Use tool_list_fare_watches to see all active watches. Use tool_stop_fare_watch to pause or delete a watch.' This clearly guides the agent on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Many tools have overlapping purposes (e.g., multiple price-finding tools at different granularities, multiple inspiration tools). While individual descriptions are detailed, the high number of tools (66) and similar intents (finding deals, comparing destinations) create ambiguity for an agent selecting the right one.
All tools follow a consistent verb_noun pattern with the 'tool_' prefix and snake_case (e.g., tool_best_month_to_visit, tool_calculate_flight_carbon). No mixing of conventions or irregular names.
66 tools is excessively high for a single server. The typical well-scoped range is 3-15 tools. This many tools overwhelm an agent and suggest many could be merged or split into separate servers.
The server covers a vast breadth of travel planning domains (flights, hotels, visas, weather, events, etc.). However, gaps exist: no booking capabilities, no car rental, and no detailed travel insurance tools. The surface is strong for research/planning but misses some execution steps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Aggregated travel MCP β flights, tours, activities, price checks, visas, and more.
Travel Feeds MCP.
MCP server for Travel & Transportation
AI marketplace β flights, tours, activities, transport & more via MCP. No auth required.
Related MCP Servers
AlicenseAqualityDmaintenanceAI travel agent over MCP β live flights, hotels, activities, and events worldwide, then completes the booking on autonomad.ai.8732MIT- FlicenseAqualityDmaintenanceAn AI-powered travel planner MCP server enabling flight and hotel search, weather forecasts, point-of-interest discovery, itinerary generation, and budget management.8
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server for intelligent travel planning that integrates 16 tools, live APIs, and a gamification system to help users plan trips, track expenses, and discover events.17MIT
- FlicenseNot gradedqualityBmaintenanceEnables managing travel itineraries with CRUD tools for journeys, stops, and plan items, plus weather lookup, integrated with public MCP servers for time and web search.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/VirajMishra1/wander-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server