trvl

io.github.MikkoParkkola/trvl

Door-to-door travel MCP + CLI: flights, hotels, trains, cars, ferries. No API keys, Go binary.

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "trvl": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mikkoparkkola/trvl:1.27.0"
      ],
      "env": {
        "TRVL_MCP_TOKEN": "<your TRVL_MCP_TOKEN>",
        "TRVL_MCP_READ_TOKEN": "<your TRVL_MCP_READ_TOKEN>",
        "TRVL_MCP_WRITE_TOKEN": "<your TRVL_MCP_WRITE_TOKEN>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<your TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "AFKLM_KEY": "<your AFKLM_KEY>",
        "AFKL_KLM_COOKIES": "<your AFKL_KLM_COOKIES>",
        "SERPAPI_KEY": "<your SERPAPI_KEY>",
        "TRAVELPAYOUTS_TOKEN": "<your TRAVELPAYOUTS_TOKEN>",
        "TRANSAVIA_API_KEY": "<your TRANSAVIA_API_KEY>",
        "TICKETMASTER_API_KEY": "<your TICKETMASTER_API_KEY>",
        "FOURSQUARE_API_KEY": "<your FOURSQUARE_API_KEY>",
        "OPENTRIPMAP_API_KEY": "<your OPENTRIPMAP_API_KEY>",
        "GEOAPIFY_API_KEY": "<your GEOAPIFY_API_KEY>",
        "DISTRIBUSION_API_KEY": "<your DISTRIBUSION_API_KEY>",
        "SKYSCANNER_API_KEY": "<your SKYSCANNER_API_KEY>"
      }
    }
  }
}
Environment variables
  • TRVL_MCP_TOKENsecretBearer token for HTTP-mode auth (unused in stdio). Optional.
  • TRVL_MCP_READ_TOKENsecretRead-scoped bearer token for HTTP-mode auth (unused in stdio). Optional.
  • TRVL_MCP_WRITE_TOKENsecretWrite-scoped bearer token for HTTP-mode auth (unused in stdio). Optional.
  • TRVL_MCP_OAUTH_CLIENT_SECRETsecretOAuth client secret for HTTP-mode token introspection (unused in stdio). Optional.
  • AFKLM_KEYsecretAir France-KLM API key; unlocks that airline's live fares/award search. Optional, trvl works without it.
  • AFKL_KLM_COOKIESsecretSession cookies for Air France-KLM award search. Optional, unlocks award-fare lookups only.
  • SERPAPI_KEYsecretSerpApi API key; unlocks search-engine-backed lookups used by some providers. Optional, trvl works without it.
  • TRAVELPAYOUTS_TOKENsecretTravelpayouts API token; unlocks that flight-price data source. Optional, trvl works without it.
  • TRANSAVIA_API_KEYsecretTransavia API key; unlocks that airline's live fares. Optional, trvl works without it.
  • TICKETMASTER_API_KEYsecretTicketmaster API key; unlocks event listings for destinations. Optional, trvl works without it.
  • FOURSQUARE_API_KEYsecretFoursquare API key; unlocks that place-search data source. Optional, trvl works without it.
  • OPENTRIPMAP_API_KEYsecretOpenTripMap API key; unlocks that attractions data source. Optional, trvl works without it.
  • GEOAPIFY_API_KEYsecretGeoapify API key; unlocks that places/geocoding data source. Optional, trvl works without it.
  • DISTRIBUSION_API_KEYsecretDistribusion API key; unlocks that ground-transport data source. Optional, trvl works without it.
  • SKYSCANNER_API_KEYsecretSkyscanner API key; unlocks that car-hire data source. Optional, trvl works without it.

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
1.27.0
Registry
active
Published
10/10/2026
Browse all Developer Tools →

Add the badge to your site

Show visitors that trvl is listed here — it’s also the link we check for a free listing.

trvl — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-mikkoparkkola-trvl?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="trvl — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![trvl — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-mikkoparkkola-trvl?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.