Skip to content
Cursor

trvl for Cursor

io.github.mikkoparkkola/trvl

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

client:Cursor transport:stdio runtime:oci

Install trvl in Cursor

~/.cursor/mcp.json · windows: %USERPROFILE%\.cursor\mcp.json

Held in this page only — never stored, logged, or sent anywhere but back to your screen.

{
  "mcpServers": {
    "trvl": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/mikkoparkkola/trvl:1.21.6"
      ],
      "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>"
      }
    }
  }
}

Use .cursor/mcp.json in a project root instead to scope it to that project. Cursor merges both. Cursor docs

trvl in other clients