trvl

MikkoParkkola/trvl
43 starsNOASSERTIONCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

AI travel agent for flights, hotels, rental cars, ground transport, price alerts, and award travel.

README.md

![Go Report Card](https://goreportcard.com/report/github.com/MikkoParkkola/trvl) ![CI](https://github.com/MikkoParkkola/trvl/actions/workflows/ci.yaml) ![Release](https://github.com/MikkoParkkola/trvl/releases) ![Downloads](https://github.com/MikkoParkkola/trvl/releases) ![License](LICENSE) ![Go Reference](https://pkg.go.dev/github.com/MikkoParkkola/trvl) ![MCP](https://modelcontextprotocol.io) ![Providers](https://github.com/MikkoParkkola/trvl#what-it-can-do) ![Go Version](https://go.dev/) ![Install in VS Code](https://insiders.vscode.dev/redirect/mcp/install?name=trvl&config=%7B%22command%22%3A%22trvl%22%2C%22args%22%3A%5B%22mcp%22%5D%7D) ![Install in Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=trvl&config=%7B%22command%22%3A%22trvl%22%2C%22args%22%3A%5B%22mcp%22%5D%7D) ![Live Demo](https://socialistic.ai/en/skill/trvl-travel-mcp-4f7aa7)

trvl β€” Real travel search for your AI assistant

!trvl demo

Ask your AI assistant to plan a real trip, and it actually can. trvl gives Claude, Cursor, Windsurf, Codex, or any MCP-compatible client one smart tool β€” the travel router β€” with live access to flights, hotels, rental cars, trains, buses, ferries, price alerts, award sweet spots, weather, and destination intel. Free, no API keys, no signup. One binary.

You: I have €300 and a free weekend. Surprise me. Claude (with trvl): Dubrovnik, Croatia πŸ‡­πŸ‡· β€” ✈️ Ryanair HELβ†’DBV €167 RT Β· 🏨 Old Town Studios 4.6β˜… €84 Β· 🌑️ 26Β°C, sunny. πŸ“Š Naive €350 β†’ optimized €251 β†’ saved €99 (28%) by flying Friday and splitting airlines.

β–Ά Try it live, no install: socialistic.ai/trvl-travel-mcp (community-hosted).

---

Install

Let your AI do it β€” paste into Claude Code, Cursor, Windsurf, or Codex:

Read https://raw.githubusercontent.com/MikkoParkkola/trvl/main/AGENTS.md and set up trvl

It installs the binary, wires the MCP server, installs the skill, and verifies everything. Under a minute.

Or by hand:

brew install MikkoParkkola/tap/trvl   # install
trvl mcp install                       # auto-detects your AI client

Restart your client. trvl mcp install --client <name> targets a specific one (10 supported: Claude Desktop/Code, Cursor, Windsurf, Codex, VS Code, Zed, Gemini, Amazon Q, LM Studio).

<details> <summary>More ways to install (Go, Docker, raw binary, manual config)</summary>

# Direct binary (no Homebrew)
curl -fsSL https://github.com/MikkoParkkola/trvl/releases/latest/download/trvl_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz | tar xz -C /usr/local/bin trvl

# Go
go install github.com/MikkoParkkola/trvl/cmd/trvl@latest

# Docker
docker run --rm ghcr.io/mikkoparkkola/trvl flights HEL NRT 2026-06-15

# Build from source
git clone https://github.com/MikkoParkkola/trvl.git && cd trvl && make build

# Claude Code CLI
claude mcp add trvl --transport stdio -- trvl mcp

# Manual JSON (Claude Desktop, Cursor, Windsurf, etc.)
# { "mcpServers": { "trvl": { "command": "trvl", "args": ["mcp"] } } }

</details>

Try it

Paste any of these to your assistant once trvl is wired:

Find the cheapest realistic trip from Helsinki for the long weekend of July 1–5, nonstop, hotel near the center.
Compare award sweet spots HEL→LHR business on Aug 15 with 80k Amex MR + 20k Virgin points.
Create a mistake-fare watch for HELβ†’BCN, July 1–8, and alert me below €90.

More starter prompts and what good answers look like: docs/DEMO.md.

Why trvl, not the alternatives

  • Whole journey, door to door. It plans the entire trip across modes β€” home to airport, flight, arrival transfer, hotel, onward train β€” and prices each leg in its real mode. Most tools stop at one flight, one hotel.
  • No API keys, no signup, no bill. Works the moment you install it. No Amadeus key to apply for, no subscription, no per-call cost.
  • Your assistant, your machine. One local binary, any MCP client. Not locked to a vendor; your trips and preferences never leave your computer.
  • It optimizes, not just lists. Shift-day pricing, split-airline routing, hidden-city checks, award sweet spots, round-trip fares. It hands back the cheaper option and shows what it saved.
  • It is honest when a source fails. Typed statuses and labelled estimates, never an empty result dressed up as "nothing found."

Full head-to-head against Google Flights, KAYAK, Skyscanner, Kiwi, and other travel MCPs: docs/COMPARISON.md.

Why trust it

An AI agent acts on trvl's output without a human checking every result, so the bar is correctness, not just coverage.

  • It tells you when it can't. A blocked or rate-limited provider returns a typed status (AKAMAI_BLOCK, RATE_LIMITED, BOOKING_COOKIES_MISSING) with a fix hint, instead of a fake "nothing found." Estimated values are labelled; currency-mismatched totals are skipped, not faked.
  • Tested more than it is written. More test code than source, race-checked on macOS, Linux, and Windows. A smoke gate runs the packaged binary before any release β€” a build that doesn't run can't ship.
  • It degrades gracefully. Providers run concurrently with per-provider timeouts; one source failing returns partial results instead of aborting the search.
  • It's observable. trvl status (or the local /dashboard in HTTP mode) shows per-provider success rate, latency, freshness, and circuit-breaker state.

A note on hotel prices

Hotel metasearch exposes list-level rates first; some are real, some only firm up after the property detail page reveals the room/tax/cancellation matrix. So trvl separates discovery (search_hotels β€” fast, lead-in prices) from decisions (search_accommodations β€” verifies room-level offers before ranking) and drill-down (search_hotels_with_details, hotel_rooms). It provides booking links for manual handoff but never books, holds, or guarantees a rate. Detail: docs/PROVIDERS.md.

Stealth: opt-in, authorized first-party access only

trvl flights and trvl hotels accept an optional --stealth flag that routes the fetch through trvl's existing Chrome HTTP/2 fingerprint transport. It is built as a fail-safe scope fence:

  • Default off. Stealth is inactive unless you explicitly pass --stealth.
  • Authorized hosts only. Even with --stealth, it activates only for hosts on an operator-authorized allowlist read from the TRVL_STEALTH_ALLOWLIST environment variable (comma-separated hostnames; case-insensitive; exact match plus leading-dot suffix such as .google.com). An empty allowlist means stealth never activates β€” refuse by default.
  • No silent evasion. With --stealth set for a host that is not on the allowlist, trvl runs the normal fetch path and logs one line (stealth not authorized for host <host>); it does not error, it does not abort.
  • Scope-fenced. Only flight and hotel search honour --stealth. Other paths never receive it.

Using stealth against sites whose terms prohibit automated access is the operator's responsibility.

Example:

export TRVL_STEALTH_ALLOWLIST=".google.com"
trvl flights HEL NRT 2026-09-01 --stealth
trvl hotels "Helsinki" --checkin 2026-09-01 --checkout 2026-09-04 --stealth

What it can do

| Area | Highlights | Reference | |------|-----------|-----------| | MCP tools | 1 smart travel router + 66 compatibility aliases; 98.9% smaller tools/list footprint (~378 vs ~33,500 tokens) | MCP-TOOLS-REFERENCE.md | | Flights | Google Flights + Kiwi + Skiplagged merged; LCC fares, AFKLM award scan, round-trip (both legs) | PROVIDERS.md | | Ground | 20 train/bus/ferry providers across Europe, API-first | PROVIDERS.md | | Hotels | 6 sources, discovery β†’ verification trust model | PROVIDERS.md | | Travel hacks | 37 parallel detectors (hidden-city, positioning, stopover, multimodal, error-fare…) | PROVIDERS.md | | CLI | Standalone tool, 56 commands, table/JSON output | CLI.md | | Profile | Learns home airports, FF status, luggage, preferences from your booking history | traveller-workspace.md |

Is this for you?

Yes if you already plan trips with an AI assistant and want it to search real flights, hotels, trains, buses, ferries, and transfers instead of guessing β€” or if you're building an app that needs travel intent without a paid travel API.

Probably not if you just want to book on a website (use Google Flights), or you want a hosted product with an account and dashboard. trvl is a tool you run, not a service you log into.

Full positioning: docs/POSITIONING.md.

Run it as an HTTP / remote server

Local stdio is the default and safest transport. trvl mcp --http binds to 127.0.0.1, requires a bearer token, and generates one at startup if unset. Remote exposure, scoped read/write tokens, and OAuth 2.1 introspection: docs/REMOTE-MCP-OAUTH.md.

Available on

Glama Β· LobeHub Β· Smithery Β· MCPHub Β· Cursor Directory Β· PulseMCP Β· MCP Market Β· pkg.go.dev

Independent coverage: Roberto Reale's Budget Travel Pipeline β€” an independent build-and-test that surfaced real fixes and shaped the v1.10 trust roadmap.

Troubleshooting

  • No tools showing? Restart your AI client after trvl mcp install; confirm which trvl is on $PATH.
  • Empty flight results? Some routes have no Google Flights data β€” try a major pair like trvl flights HEL LHR 2026-07-01.
  • Ground transport times out? Rail/ferry providers throttle; retry after 30s or pass --timeout 3m.

Full troubleshooting: docs/CLI.md.

Ecosystem

Part of a suite of MCP tools: mcp-gateway (universal gateway) Β· nab (web extraction with anti-bot) Β· axterminator (macOS GUI automation).

Legal & license

trvl is a personal-use tool that reads public-facing web APIs (Google Flights, Google Hotels, and others). It does not bypass authentication or circumvent rate limits; request patterns are throttled to look like manual browsing. Automated access may violate some providers' Terms of Service β€” you are responsible for compliance in your jurisdiction.

Licensed under PolyForm Noncommercial 1.0 β€” free for personal and noncommercial use. Commercial use (company-internal, hosted service, embedding in paid platforms) requires a separate license: EUR 500/month per named project via GitHub Sponsors, see COMMERCIAL.md.

Built on fli, utls, and SerpAPI's parameter reference.

Star it

If trvl saved you a browser tab or an API subscription, a star helps other travellers (and their assistants) find it. That's the whole ask.

Related MCP servers

Browse all β†’