NestDaddy

trvl

io.github.MikkoParkkola/trvl · v1.27.0

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

Connect Runs on your machine

Terminal
claude mcp add trvl -e TRVL_MCP_TOKEN=<TRVL_MCP_TOKEN> -e TRVL_MCP_READ_TOKEN=<TRVL_MCP_READ_TOKEN> -e TRVL_MCP_WRITE_TOKEN=<TRVL_MCP_WRITE_TOKEN> -e TRVL_MCP_OAUTH_INTROSPECTION_URL=<TRVL_MCP_OAUTH_INTROSPECTION_URL> -e TRVL_MCP_OAUTH_CLIENT_ID=<TRVL_MCP_OAUTH_CLIENT_ID> -e TRVL_MCP_OAUTH_CLIENT_SECRET=<TRVL_MCP_OAUTH_CLIENT_SECRET> -e TRVL_MCP_OAUTH_AUDIENCE=<TRVL_MCP_OAUTH_AUDIENCE> -e TRVL_MCP_TOOL_MODE=<TRVL_MCP_TOOL_MODE> -e TRVL_MCP_TOOL_TIMEOUT=<TRVL_MCP_TOOL_TIMEOUT> -e AFKLM_KEY=<AFKLM_KEY> -e AFKLM_OP_REF=<AFKLM_OP_REF> -e AFKLM_KEYCHAIN_SERVICE=<AFKLM_KEYCHAIN_SERVICE> -e AFKL_KLM_COOKIES=<AFKL_KLM_COOKIES> -e SERPAPI_KEY=<SERPAPI_KEY> -e TRAVELPAYOUTS_TOKEN=<TRAVELPAYOUTS_TOKEN> -e TRANSAVIA_API_KEY=<TRANSAVIA_API_KEY> -e TICKETMASTER_API_KEY=<TICKETMASTER_API_KEY> -e FOURSQUARE_API_KEY=<FOURSQUARE_API_KEY> -e OPENTRIPMAP_API_KEY=<OPENTRIPMAP_API_KEY> -e GEOAPIFY_API_KEY=<GEOAPIFY_API_KEY> -e DISTRIBUSION_API_KEY=<DISTRIBUSION_API_KEY> -e SKYSCANNER_API_KEY=<SKYSCANNER_API_KEY> -- docker run -i --rm ghcr.io/mikkoparkkola/trvl:1.27.0
claude_desktop_config.json
{
  "mcpServers": {
    "trvl": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mikkoparkkola/trvl:1.27.0"
      ],
      "env": {
        "TRVL_MCP_TOKEN": "<TRVL_MCP_TOKEN>",
        "TRVL_MCP_READ_TOKEN": "<TRVL_MCP_READ_TOKEN>",
        "TRVL_MCP_WRITE_TOKEN": "<TRVL_MCP_WRITE_TOKEN>",
        "TRVL_MCP_OAUTH_INTROSPECTION_URL": "<TRVL_MCP_OAUTH_INTROSPECTION_URL>",
        "TRVL_MCP_OAUTH_CLIENT_ID": "<TRVL_MCP_OAUTH_CLIENT_ID>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "TRVL_MCP_OAUTH_AUDIENCE": "<TRVL_MCP_OAUTH_AUDIENCE>",
        "TRVL_MCP_TOOL_MODE": "<TRVL_MCP_TOOL_MODE>",
        "TRVL_MCP_TOOL_TIMEOUT": "<TRVL_MCP_TOOL_TIMEOUT>",
        "AFKLM_KEY": "<AFKLM_KEY>",
        "AFKLM_OP_REF": "<AFKLM_OP_REF>",
        "AFKLM_KEYCHAIN_SERVICE": "<AFKLM_KEYCHAIN_SERVICE>",
        "AFKL_KLM_COOKIES": "<AFKL_KLM_COOKIES>",
        "SERPAPI_KEY": "<SERPAPI_KEY>",
        "TRAVELPAYOUTS_TOKEN": "<TRAVELPAYOUTS_TOKEN>",
        "TRANSAVIA_API_KEY": "<TRANSAVIA_API_KEY>",
        "TICKETMASTER_API_KEY": "<TICKETMASTER_API_KEY>",
        "FOURSQUARE_API_KEY": "<FOURSQUARE_API_KEY>",
        "OPENTRIPMAP_API_KEY": "<OPENTRIPMAP_API_KEY>",
        "GEOAPIFY_API_KEY": "<GEOAPIFY_API_KEY>",
        "DISTRIBUSION_API_KEY": "<DISTRIBUSION_API_KEY>",
        "SKYSCANNER_API_KEY": "<SKYSCANNER_API_KEY>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "trvl": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mikkoparkkola/trvl:1.27.0"
      ],
      "env": {
        "TRVL_MCP_TOKEN": "<TRVL_MCP_TOKEN>",
        "TRVL_MCP_READ_TOKEN": "<TRVL_MCP_READ_TOKEN>",
        "TRVL_MCP_WRITE_TOKEN": "<TRVL_MCP_WRITE_TOKEN>",
        "TRVL_MCP_OAUTH_INTROSPECTION_URL": "<TRVL_MCP_OAUTH_INTROSPECTION_URL>",
        "TRVL_MCP_OAUTH_CLIENT_ID": "<TRVL_MCP_OAUTH_CLIENT_ID>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "TRVL_MCP_OAUTH_AUDIENCE": "<TRVL_MCP_OAUTH_AUDIENCE>",
        "TRVL_MCP_TOOL_MODE": "<TRVL_MCP_TOOL_MODE>",
        "TRVL_MCP_TOOL_TIMEOUT": "<TRVL_MCP_TOOL_TIMEOUT>",
        "AFKLM_KEY": "<AFKLM_KEY>",
        "AFKLM_OP_REF": "<AFKLM_OP_REF>",
        "AFKLM_KEYCHAIN_SERVICE": "<AFKLM_KEYCHAIN_SERVICE>",
        "AFKL_KLM_COOKIES": "<AFKL_KLM_COOKIES>",
        "SERPAPI_KEY": "<SERPAPI_KEY>",
        "TRAVELPAYOUTS_TOKEN": "<TRAVELPAYOUTS_TOKEN>",
        "TRANSAVIA_API_KEY": "<TRANSAVIA_API_KEY>",
        "TICKETMASTER_API_KEY": "<TICKETMASTER_API_KEY>",
        "FOURSQUARE_API_KEY": "<FOURSQUARE_API_KEY>",
        "OPENTRIPMAP_API_KEY": "<OPENTRIPMAP_API_KEY>",
        "GEOAPIFY_API_KEY": "<GEOAPIFY_API_KEY>",
        "DISTRIBUSION_API_KEY": "<DISTRIBUSION_API_KEY>",
        "SKYSCANNER_API_KEY": "<SKYSCANNER_API_KEY>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "trvl": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mikkoparkkola/trvl:1.27.0"
      ],
      "env": {
        "TRVL_MCP_TOKEN": "<TRVL_MCP_TOKEN>",
        "TRVL_MCP_READ_TOKEN": "<TRVL_MCP_READ_TOKEN>",
        "TRVL_MCP_WRITE_TOKEN": "<TRVL_MCP_WRITE_TOKEN>",
        "TRVL_MCP_OAUTH_INTROSPECTION_URL": "<TRVL_MCP_OAUTH_INTROSPECTION_URL>",
        "TRVL_MCP_OAUTH_CLIENT_ID": "<TRVL_MCP_OAUTH_CLIENT_ID>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "TRVL_MCP_OAUTH_AUDIENCE": "<TRVL_MCP_OAUTH_AUDIENCE>",
        "TRVL_MCP_TOOL_MODE": "<TRVL_MCP_TOOL_MODE>",
        "TRVL_MCP_TOOL_TIMEOUT": "<TRVL_MCP_TOOL_TIMEOUT>",
        "AFKLM_KEY": "<AFKLM_KEY>",
        "AFKLM_OP_REF": "<AFKLM_OP_REF>",
        "AFKLM_KEYCHAIN_SERVICE": "<AFKLM_KEYCHAIN_SERVICE>",
        "AFKL_KLM_COOKIES": "<AFKL_KLM_COOKIES>",
        "SERPAPI_KEY": "<SERPAPI_KEY>",
        "TRAVELPAYOUTS_TOKEN": "<TRAVELPAYOUTS_TOKEN>",
        "TRANSAVIA_API_KEY": "<TRANSAVIA_API_KEY>",
        "TICKETMASTER_API_KEY": "<TICKETMASTER_API_KEY>",
        "FOURSQUARE_API_KEY": "<FOURSQUARE_API_KEY>",
        "OPENTRIPMAP_API_KEY": "<OPENTRIPMAP_API_KEY>",
        "GEOAPIFY_API_KEY": "<GEOAPIFY_API_KEY>",
        "DISTRIBUSION_API_KEY": "<DISTRIBUSION_API_KEY>",
        "SKYSCANNER_API_KEY": "<SKYSCANNER_API_KEY>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
TRVL_MCP_TOKEN
Optional, secret
Bearer token for HTTP-mode auth (unused in stdio). Optional.
TRVL_MCP_READ_TOKEN
Optional, secret
Read-scoped bearer token for HTTP-mode auth (unused in stdio). Optional.
TRVL_MCP_WRITE_TOKEN
Optional, secret
Write-scoped bearer token for HTTP-mode auth (unused in stdio). Optional.
TRVL_MCP_OAUTH_INTROSPECTION_URL
Optional
OAuth token introspection endpoint for HTTP-mode auth (unused in stdio). Optional.
TRVL_MCP_OAUTH_CLIENT_ID
Optional
OAuth client ID for HTTP-mode token introspection (unused in stdio). Optional.
TRVL_MCP_OAUTH_CLIENT_SECRET
Optional, secret
OAuth client secret for HTTP-mode token introspection (unused in stdio). Optional.
TRVL_MCP_OAUTH_AUDIENCE
Optional
Expected OAuth audience for HTTP-mode token introspection (unused in stdio). Optional.
TRVL_MCP_TOOL_MODE
Optional
Selects which MCP tool set is registered (e.g. smart/full). Optional, defaults to full set.
TRVL_MCP_TOOL_TIMEOUT
Optional
Per-tool-call timeout override. Optional, defaults to the built-in timeout.
AFKLM_KEY
Optional, secret
Air France-KLM API key; unlocks that airline's live fares/award search. Optional, trvl works without it.
AFKLM_OP_REF
Optional
1Password reference for the Air France-KLM API key. Optional, alternative to AFKLM_KEY.
AFKLM_KEYCHAIN_SERVICE
Optional
macOS Keychain service name to read the Air France-KLM API key from. Optional, alternative to AFKLM_KEY.
AFKL_KLM_COOKIES
Optional, secret
Session cookies for Air France-KLM award search. Optional, unlocks award-fare lookups only.
SERPAPI_KEY
Optional, secret
SerpApi API key; unlocks search-engine-backed lookups used by some providers. Optional, trvl works without it.
TRAVELPAYOUTS_TOKEN
Optional, secret
Travelpayouts API token; unlocks that flight-price data source. Optional, trvl works without it.
TRANSAVIA_API_KEY
Optional, secret
Transavia API key; unlocks that airline's live fares. Optional, trvl works without it.
TICKETMASTER_API_KEY
Optional, secret
Ticketmaster API key; unlocks event listings for destinations. Optional, trvl works without it.
FOURSQUARE_API_KEY
Optional, secret
Foursquare API key; unlocks that place-search data source. Optional, trvl works without it.
OPENTRIPMAP_API_KEY
Optional, secret
OpenTripMap API key; unlocks that attractions data source. Optional, trvl works without it.
GEOAPIFY_API_KEY
Optional, secret
Geoapify API key; unlocks that places/geocoding data source. Optional, trvl works without it.
DISTRIBUSION_API_KEY
Optional, secret
Distribusion API key; unlocks that ground-transport data source. Optional, trvl works without it.
SKYSCANNER_API_KEY
Optional, secret
Skyscanner API key; unlocks that car-hire data source. Optional, trvl works without it.

Details

Packageghcr.io/mikkoparkkola/trvl:1.27.0 (OCI, stdio)
Package[email protected] (NPM, stdio)
First published10 Oct 2026
Last updated10 Oct 2026
Registry nameio.github.MikkoParkkola/trvl

More other servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.