Skip to main content
Glama

🌍 Wander Agent

Your AI's personal travel agent β€” flights, hotels, visas, points & miles.

75 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

PyPI Downloads Stars

CI Python 3.10+ MCP License: MIT wander-agent MCP server

See the launch demo · ⭐ Star this repo if it saves you a layover ✈️

Wander Agent finding hidden-city and split-ticket fares the airlines hide

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 --version

Don't have it? Download from python.org.


Step 2 β€” Install Wander Agent

From PyPI (recommended):

pip install wander-agent

Or with uv β€” no install at all, run directly:

uvx wander-agent

Or from source:

git clone https://github.com/VirajMishra1/wander-agent.git
cd wander-agent
pip install -e .

Verify it worked:

wander-agent --help

Step 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.json

  • Windows: %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-agent

Then use that path in the config:

{
  "mcpServers": {
    "wander-agent": {
      "command": "/usr/local/bin/wander-agent"
    }
  }
}
claude mcp add wander-agent wander-agent

Confirm it registered:

claude mcp list

Create 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

FOURSQUARE_API_KEY

Real ratings and price levels for restaurants/bars

foursquare.com/developers

TICKETMASTER_API_KEY

Live event listings (concerts, sports, shows)

developer.ticketmaster.com

Set them before starting your AI:

export FOURSQUARE_API_KEY=your_key_here
export TICKETMASTER_API_KEY=your_key_here

Or add them to your shell profile (~/.zshrc, ~/.bashrc) to make them permanent.


All 75 Tools

✈️ Flights

Tool

What it does

search_flights

Live flight search across Google Flights and Kiwi.com in parallel. Returns prices, duration, stops, and booking links.

find_skiplagged_fares

Hidden-city fares β€” buy a connecting flight and exit at the layover city. Often 40–60% cheaper. Carry-on only.

find_split_ticket

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.

find_cheapest_month

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.

fare_calendar

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.

find_mistake_fares

Scans Secret Flying and The Flight Deal RSS for error fares and flash deals.

cheap_anywhere_from

Cheapest destinations from an origin across 114 airports worldwide.

find_destinations_by_budget

Finds destinations reachable within a total budget (flights + hotels).

multi_origin_meetup

Cheapest city for multiple friends to meet, flying from different cities.

verify_flight_route

Confirms a direct or connecting route exists between two airports.

find_aurora_destinations

Aurora-viewing destinations with live NOAA KP-index forecast and flight prices.

🏨 Hotels

Tool

What it does

search_hotels

Hotels with booking links to Booking.com, Airbnb, Expedia, Tripadvisor, and 6 more.

optimize_budget

Finds the cheapest flight + hotel combo across a flexible date window (Β±7 days).

πŸ“‹ Visas & Entry

Tool

What it does

check_visa_requirement

Visa category for a passport + destination pair. Returns visa-free, ETA, e-visa, visa on arrival, or visa required β€” with the official apply link.

visa_free_destinations

Every country a given passport can enter without a full embassy visa.

get_passport_power

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.

check_transit_visa

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

get_weather

16-day live weather forecast for any coordinates. Falls back to 5-year historical data for dates beyond the forecast window.

best_month_to_visit

Ranks all 12 months for a location by weather quality, based on historical climate data.

⚠️ Safety & News

Tool

What it does

get_travel_advisory

US State Dept advisory level (1–4) and summary. Pulled from the live RSS feed.

list_advisories_by_level

All countries currently at or above a given advisory level.

get_travel_news

Scans Google News for recent disruptions: strikes, airport closures, entry bans, protests.

πŸ’° Costs & Currency

Tool

What it does

get_cost_of_living

Daily budget estimates for 220 cities across budget, mid-range, and luxury tiers.

convert_currency

Live currency conversion via European Central Bank rates.

get_exchange_rates

Exchange rates for multiple currencies from a base currency.

πŸ—ΊοΈ Planning & Scoring

Tool

What it does

plan_trip_package

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.

plan_itinerary

Day-by-day itinerary with weather forecast and suggested activities for each day.

find_open_jaw

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.

score_destinations

Ranks destinations by a weighted combination of cost, weather, safety, and events.

compare_destinations

Side-by-side comparison of 2–5 destinations for the same dates.

🍜 Food & Nightlife

Tool

What it does

search_restaurants_bars

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

score_nomad_cities

Ranks cities for remote work across 6 dimensions: cost, safety, internet speed, weather, visa ease, and lifestyle. Configurable weights.

calculate_flight_carbon

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

generate_packing_list

Packing list tailored to destination weather, activities, trip length, and budget level.

find_places

Viewpoints, beaches, hiking trails, coworking spaces, waterfalls, markets, and more from OpenStreetMap.

calculate_jet_lag

Jet lag severity with a science-based recovery schedule: pre-departure shift, melatonin timing, light exposure strategy.

get_language_phrasebook

Phrasebook for 17 languages with local script, romanized pronunciation, and audio tips.

get_stopover_guide

What to do during a layover at 10 major hubs. Includes transit visa check, in-airport activities, and city excursion options.

check_travel_health

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.

search_ground_transport

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.

get_local_sim_guide

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.

get_country_facts

Capital, languages, population, currency, timezones, calling code, borders. Live from RestCountries.

convert_timezone

DST-aware conversion between IANA timezones.

get_sunrise_sunset

Sunrise, sunset, twilight and day length for any coordinates and date (UTC).

get_tipping_guide

Tipping customs and amounts by country.

get_cultural_etiquette

Dos, don'ts, dress code, greetings, photography rules.

get_outlet_info

Plug types, voltage, and whether you need an adapter.

get_emergency_contacts

Police, ambulance, fire and tourist-police numbers.

find_nearby_hospitals

Hospitals and clinics near coordinates via OpenStreetMap.

get_solo_travel_safety

Solo travel risk level, top risks, safe areas, transport tips.

πŸ›οΈ Attractions & Info

Tool

What it does

search_activities

Attractions near a location from Wikidata. Filter by category: museums, parks, architecture, nightlife, food, historic, nature, and more.

get_local_events

Live events from Eventbrite: concerts, sports, festivals.

get_destination_info

Country basics: currency, official language, timezone, dialling code, driving side.

geocode

Converts a place name to coordinates.

verify_place

Confirms a place actually exists (catches AI hallucinations before they reach you).

🧠 Traveler Profile

Tool

What it does

get_traveler_profile

Loads your saved profile: home airports, passports, currency, interests, and trip history.

onboard_traveler

One-time setup. Saves your preferences so the AI uses them automatically in every future session.

update_traveler_profile

Update any field, manage credit cards in your portfolio, or log a completed trip.

get_trip_history

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_trip

Save a trip you're planning. Returns a trip_id and a fresh booking checklist.

list_my_trips

List saved trips with checklist progress. Filter by status (planning/booked/completed/cancelled).

get_trip_status

Full state + checklist progress for one trip, by id or destination.

update_trip

Change status/dates, tick checklist items, or shortlist a flight/hotel option onto the trip.

delete_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

watch_fare

Start watching a route with an optional target price. Captures a baseline on creation.

list_fare_watches

List watches with baseline / last / lowest price seen and status.

check_fare_watches

Re-price watched routes now. Returns buy-signal alerts: target_hit, price_drop, price_rise, no_change.

stop_fare_watch

Pause or delete a watch.

βš–οΈ Value Ranking

Tool

What it does

rank_trip_options

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

estimate_points_value

Is this award booking worth it? Calculates cents-per-point and compares against baseline valuations for the program. Returns excellent / good / fair / poor verdict.

find_transfer_partners

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.

calculate_points_or_cash

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.

estimate_points_earning

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.).

find_sweet_spot_awards

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.

compare_points_programs

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

find_split_ticket

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

find_skiplagged_fares

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

plan_trip_package

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

find_cheapest_month

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

check_transit_visa

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

multi_origin_meetup

Three friends, three different cities. What's the cheapest city for all of them to meet? No OTA has a tool for this.

7

find_open_jaw

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

get_passport_power

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

score_nomad_cities

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

find_mistake_fares

Error fares and airline pricing mistakes from dedicated deal aggregators. Passive discovery β€” "are there any crazy cheap fares out of JFK right now?"

11

fare_calendar

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

cheap_anywhere_from

"Where can I fly cheapest from London right now?" Scans 114 airports. Discovery tool for spontaneous travelers.

13

find_destinations_by_budget

"I have $1,500 total for 7 nights, leaving from NYC β€” where can I actually go?" Returns ranked reachable destinations.

14

optimize_budget

Shifts departure Β±7 days to find the cheapest flight + hotel combo. Same trip, different dates, lower price.

15

calculate_flight_carbon

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

search_flights

Core engine. Parallel Google Flights + Kiwi.com. Checks nearby airports automatically.

17

check_visa_requirement

Most-asked travel question. Instant answer with official government apply link.

18

plan_itinerary

Day-by-day schedule with weather per day and activity suggestions.

19

score_destinations

Weighted rank: cost + weather + safety + upcoming events. "Best place to go in September with good weather, under $150/day, safety level 1."

20

visa_free_destinations

Full list of countries a passport can enter without a full embassy visa.

21

get_local_sim_guide

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

compare_destinations

Side-by-side: cost, weather, safety, visa requirements, flights β€” for 2–5 destinations, same dates.

23

search_ground_transport

Bus + train + ferry with real booking links. Region-aware. Often cheaper and more convenient than flying for routes under 500km.

24

check_travel_health

Required vaccines, recommended vaccines, water safety, food safety, mosquito risk, altitude risk, pre-trip timeline. CDC + WHO 2025 data.

25

get_travel_advisory

Live US State Dept level 1–4 with summary. Pulled from RSS β€” not cached stale data.

26

get_weather

16-day live forecast. Falls back to 5-year historical climate data for further-ahead dates.

27

find_aurora_destinations

Best spots for northern lights with live NOAA KP-index forecast + flight prices from your origin. Viral for the "bucket list" audience.

28

search_hotels

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

get_cost_of_living

Daily budget for 220 cities: budget / mid-range / luxury tiers.

30

best_month_to_visit

Climate-based ranking of all 12 months for a location. Based on 5 years of historical data.

31

get_stopover_guide

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

search_activities

Wikidata attractions by category: museums, parks, architecture, food, nightlife, historic, nature.

33

find_places

OpenStreetMap viewpoints, beaches, hiking trails, coworking spaces, waterfalls, hot springs, markets.

34

search_restaurants_bars

Real venues from OSM with 7 booking site links per result. Cuisine filter, price level, distance.

35

get_language_phrasebook

17 languages. Local script + romanized pronunciation + audio tips.

36

generate_packing_list

Tailored to destination weather, planned activities, trip length, and budget level.

37

get_local_events

Live Eventbrite events at destination: concerts, festivals, sports. Best for 0–60 day horizon.

38

get_travel_news

Google News scan for disruptions: strikes, closures, protests, entry bans.

39

calculate_jet_lag

Severity rating + science-based recovery: pre-trip sleep shifting, melatonin timing, light exposure schedule.

40

get_destination_info

Country basics: currency, language, timezone, dialling code, driving side.

41

list_advisories_by_level

All countries currently at Level 2, 3, or 4. Useful for insurance and risk-screening.

42

verify_flight_route

Confirms a route actually exists. Catches hallucinated itineraries before you book.

43

onboard_traveler

One-time setup: home airports, passports, currency, interests. Feeds every tool automatically.

44

get_traveler_profile

Load saved profile. Used automatically at session start.

45

update_traveler_profile

Update preferences or log a completed trip.

46

get_trip_history

Your logged trip history.

47

convert_currency

ECB live rate conversion.

48

get_exchange_rates

Multi-currency rates from a base currency.

49

geocode

Place name β†’ latitude/longitude. Used internally by most tools.

50

verify_place

Confirms a place exists before building a trip around it. Anti-hallucination guardrail.

51

find_sweet_spot_awards

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

estimate_points_value

Cents-per-point calculator with verdict against 20+ program baselines. Catches bad redemptions before you burn points.

53

calculate_points_or_cash

Points or cash? Factors cpp, opportunity cost, and earning-back. The question every points traveler asks on every booking.

54

compare_points_programs

Which program gives best value for this booking? Cross-program comparison with sweet-spot matching.

55

find_transfer_partners

Maps bank currency β†’ airline/hotel partners. Transfer ratios, times, and partner valuations.

56

estimate_points_earning

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

deeplink

95

Opens the live provider page β€” always current

live_api

90

Official API (ECB rates, NOAA)

live_rss

85

Live government feed (State Dept advisories)

live_forecast

85

Open-Meteo live weather

scraped_live

80

Real-time scrape β€” real but volatile

curated_snapshot

55

Hand-curated dataset β€” verify before booking

wikidata_fallback

50

Wikidata-derived

estimated

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 keys

The 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.py

Adding a tool:

  1. Create src/wander_agent/tools/your_tool.py with an async function

  2. Import it in src/wander_agent/server.py

  3. Wrap with @mcp.tool() and an async wrapper function

  4. Restart 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

75 tools
tool_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

Inputs: latitude (required), longitude (required), preferences.

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

Inputs: origin (required), destination (required), trip_type, passengers, +1 more.

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)

Inputs: origin (required), destination (required), departure_date (required), flight_duration_hours.

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

Inputs: program (required), cash_price (required), points_price (required), card_key, +3 more.

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)

Inputs: origin (required), month, regions, currency, +3 more.

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

Inputs: watch_id.

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)

Inputs: layover_airport (required), passport_country (required), connecting_to.

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.)

Inputs: destination_iso2 (required), trip_duration_days.

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")

Inputs: passport_country (required), destination_country (required).

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.

Inputs: origin (required), return_date (required), destinations (required), departure_date (required), +2 more.

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

Inputs: cash_price (required), cabin, route, currency, +1 more.

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")

Inputs: amount (required), to_currency (required), from_currency (required).

tool_convert_timezoneA

Convert a date/time between IANA timezones, DST-aware.

Args: datetime_str: e.g. "2026-08-15 14:30" or "2026-08-15T14:30:00" from_timezone: IANA name, e.g. "America/New_York" to_timezone: IANA name, e.g. "Asia/Tokyo" or "UTC"

Inputs: to_timezone (required), datetime_str (required), from_timezone (required).

tool_delete_tripA

Delete a saved trip.

Args: trip_id: 8-char trip id

Inputs: trip_id (required).

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")

Inputs: amount (required), card_key (required), category, currency.

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)

Inputs: program (required), cash_price (required), points_cost (required), currency, +1 more.

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)

Inputs: origin (required), destination (required), year, month, +4 more.

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

Inputs: origin (required), currency, max_budget, max_results, +2 more.

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

Inputs: origin (required), destination (required), adults, currency, +4 more.

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

Inputs: origin (required), total_budget (required), currency, interests, +6 more.

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)

Inputs: origin, max_results, days_lookback.

tool_find_nearby_hospitalsB

Find hospitals and clinics near a location via OpenStreetMap.

Args: latitude: Location latitude longitude: Location longitude radius_km: Search radius in km (1-30) max_results: Max results (1-20) city: Optional city name hint

Inputs: latitude (required), longitude (required), city, radius_km, +1 more.

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

Inputs: origin (required), fly_into (required), return_date (required), fly_out_from (required), +4 more.

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")

Inputs: category (required), latitude (required), longitude (required), city, +2 more.

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

Inputs: origin (required), destination (required), departure_date (required), max_results, +1 more.

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

Inputs: origin (required), destination (required), departure_date (required), adults, +3 more.

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")

Inputs: cabin, programs, max_points, route_keyword.

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")

Inputs: program (required).

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

Inputs: end_date (required), start_date (required), destination (required), latitude, +4 more.

tool_geocodeA

City or place -> coordinates. No auth required.

Args: place_name: City or place (e.g., "Paris, France")

Inputs: place_name (required).

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.)

Inputs: city (required), home_currency.

tool_get_country_factsA

Key facts about a country: capital, languages, population, currency, timezones, calling code, borders. Live data from RestCountries.

Args: country: Country name or ISO 2/3-letter code (e.g., "Japan", "JP", "JPN")

Inputs: country (required).

tool_get_cultural_etiquetteB

Cultural dos/don'ts, dress code, greetings, photography rules. Curated snapshot.

Args: country_iso2: ISO 2-letter code (e.g., "JP", "IN", "TH")

Inputs: country_iso2 (required).

tool_get_destination_infoA

Essential country info (currency, language, timezone). No auth required.

Args: country_name: Country name (e.g., "Japan")

Inputs: country_name (required).

tool_get_emergency_contactsB

Emergency numbers (police, ambulance, fire, tourist police) for a country. Curated snapshot.

Args: country_iso2: ISO 2-letter code (e.g., "TH", "JP", "FR")

Inputs: country_iso2 (required).

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

Inputs: base_currency (required), target_currencies.

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

Inputs: destination (required), category, language_code.

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

Inputs: city (required), end_date (required), start_date (required), keyword, +2 more.

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

Inputs: country (required), data_heavy, trip_duration_days.

tool_get_outlet_infoB

Electrical plug types, voltage, frequency and whether an adapter is needed. Curated snapshot.

Args: country_iso2: ISO 2-letter code (e.g., "US", "JP", "AU")

Inputs: country_iso2 (required).

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")

Inputs: passport_country (required), compare_with.

tool_get_solo_travel_safetyB

Solo travel safety: risk level, female/male solo notes, top risks, safe areas, transport tips. Curated snapshot.

Args: country_iso2: ISO 2-letter code (e.g., "TH", "IN", "ZA")

Inputs: country_iso2 (required).

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

Inputs: airport (required), layover_hours (required), passport_country.

tool_get_sunrise_sunsetB

Sunrise, sunset, solar noon, twilight and day length for a location (UTC times).

Args: latitude: Location latitude longitude: Location longitude date: YYYY-MM-DD or "today"

Inputs: latitude (required), longitude (required), date.

tool_get_tipping_guideC

Tipping customs and expected amounts (restaurants, taxis, hotels, bars). Curated snapshot.

Args: country_iso2: ISO 2-letter code (e.g., "US", "JP", "TH")

Inputs: country_iso2 (required).

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

Inputs: country (required).

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.

Inputs: no named parameters.

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

Inputs: destination (required), max_results, days_lookback.

tool_get_trip_historyA

View logged trip history for this traveler.

Args: limit: Max trips to return (most recent first)

Inputs: limit.

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

Inputs: trip_id, destination.

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

Inputs: end_date (required), latitude (required), longitude (required), start_date (required).

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.

Inputs: min_level.

tool_list_fare_watchesA

List saved fare watches with baseline/last/low prices.

Args: status: Filter active/paused/triggered (omit for all)

Inputs: status.

tool_list_my_tripsA

List the traveler's saved trips with checklist progress.

Args: status: Filter by planning/booked/completed/cancelled (omit for all)

Inputs: status.

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)

Inputs: origins (required), return_date (required), departure_date (required), regions, +2 more.

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")

Inputs: name, dietary, eta_held, interests, +6 more.

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

Inputs: origin (required), destination (required), return_date (required), departure_date (required), +4 more.

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

Inputs: end_date (required), start_date (required), destination (required), interests, +4 more.

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

Inputs: origin (required), destination (required), departure_date (required), currency, +7 more.

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

Inputs: options_json (required), currency, priority.

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

Inputs: destination (required), notes, origin, purpose, +4 more.

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

Inputs: travel_end (required), destinations (required), travel_start (required), origin, +2 more.

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

Inputs: cities (required), month, weights.

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

Inputs: latitude (required), longitude (required), category, radius_km, +1 more.

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

Inputs: origin (required), destination (required), departure_date (required), adults, +4 more.

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

Inputs: date (required), origin_city (required), destination_city (required), region, +1 more.

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"

Inputs: city (required), check_in (required), check_out (required), rooms, +5 more.

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"

Inputs: latitude (required), longitude (required), city, cuisine, +3 more.

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

Inputs: watch_id (required), delete.

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

Inputs: name, dietary, add_card, add_visa, +15 more.

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

Inputs: trip_id (required), notes, status, mark_done, +6 more.

tool_verify_flight_routeA

Verify a flight route exists between two airports.

Args: origin: IATA code destination: IATA code

Inputs: origin (required), destination (required).

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

Inputs: city (required), place_name (required), expected_type.

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)

Inputs: passport_country (required), include_categories.

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

Inputs: origin (required), depart_date (required), destination (required), adults, +3 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 75 tools

    Disambiguation3/5

    Many tools have overlapping purposes, especially for flight price search (search_flights, fare_calendar, find_cheapest_month, cheap_anywhere_from) and destination scoring. However, descriptions explicitly cross-reference alternatives (e.g., 'use X instead when...'), which helps disambiguate but does not eliminate confusion given the sheer number of similar tools.

    Naming Consistency4/5

    Nearly all tools follow a consistent snake_case verb_noun pattern with a tool_ prefix (e.g., search_flights, get_travel_advisory, calculate_points_or_cash). A minor deviation is tool_fare_calendar, which is noun-based without a verb, but the overall naming is highly predictable.

    Tool Count1/5

    With 75 tools, this server far exceeds any reasonable scope for a single MCP server. The domain is broad, but the volume creates extreme cognitive load and likely substantial overlap, making tool selection error-prone.

    Completeness4/5

    The tool surface covers almost every aspect of travel planning: flights, hotels, visas, health, weather, points, logistics, trip management, and more. Gaps exist in execution (no direct booking, car rental, or insurance tools), but these are minor for a planning-focused agent.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers