Koskamo

trvl MCP

A community-built travel search MCP server and CLI that provides AI assistants with live access to flights, hotels, rental cars, trains, buses, ferries, price alerts, award sweet spots, weather, and destination intel. It operates as a single Go binary without requiring personal API keys or signups, merging and optimizing results from free public endpoints.

Package and access

Local package with source-attributed installation metadata. Koskamo does not execute packages during review.

trvl MCP logo, by MikkoParkkolaCommunity listingLocal stdioSource reviewed; not executedPublished by MikkoParkkola
Vendor documentation

Checks and signals

Each line is separate evidence, not a trust score.

  • Popularity 93 GitHub stars

What you can do with it

  • Search for flights, hotels, and transport options
  • Set up price alerts for travel deals
  • Plan trips with budget constraints
  • Check weather and destination intel

Source and maintenance

Community listingRegistry 1.27.0
Last repository push
Latest release
v1.27.0
Maintenance checked

Packages and installation

Source-provided package data. Koskamo has not executed or live-probed this package.

trvl-mcp 1.27.0

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

Tools

Reported by the attributed source; not independently observed by Koskamo.

No tool definitions available.

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · repository · passed · metadata changed · updated
  • · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "mcpServers": {
    "trvl-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "trvl-mcp@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_INTROSPECTION_URL": "<YOUR_TRVL_MCP_OAUTH_INTROSPECTION_URL>",
        "TRVL_MCP_OAUTH_CLIENT_ID": "<YOUR_TRVL_MCP_OAUTH_CLIENT_ID>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "TRVL_MCP_OAUTH_AUDIENCE": "<YOUR_TRVL_MCP_OAUTH_AUDIENCE>",
        "TRVL_MCP_TOOL_MODE": "<YOUR_TRVL_MCP_TOOL_MODE>",
        "TRVL_MCP_TOOL_TIMEOUT": "<YOUR_TRVL_MCP_TOOL_TIMEOUT>",
        "AFKLM_KEY": "<YOUR_AFKLM_KEY>",
        "AFKLM_OP_REF": "<YOUR_AFKLM_OP_REF>",
        "AFKLM_KEYCHAIN_SERVICE": "<YOUR_AFKLM_KEYCHAIN_SERVICE>",
        "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>"
      }
    }
  }
}

Cline

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "mcpServers": {
    "trvl-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "trvl-mcp@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_INTROSPECTION_URL": "<YOUR_TRVL_MCP_OAUTH_INTROSPECTION_URL>",
        "TRVL_MCP_OAUTH_CLIENT_ID": "<YOUR_TRVL_MCP_OAUTH_CLIENT_ID>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "TRVL_MCP_OAUTH_AUDIENCE": "<YOUR_TRVL_MCP_OAUTH_AUDIENCE>",
        "TRVL_MCP_TOOL_MODE": "<YOUR_TRVL_MCP_TOOL_MODE>",
        "TRVL_MCP_TOOL_TIMEOUT": "<YOUR_TRVL_MCP_TOOL_TIMEOUT>",
        "AFKLM_KEY": "<YOUR_AFKLM_KEY>",
        "AFKLM_OP_REF": "<YOUR_AFKLM_OP_REF>",
        "AFKLM_KEYCHAIN_SERVICE": "<YOUR_AFKLM_KEYCHAIN_SERVICE>",
        "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>"
      }
    }
  }
}

VS Code

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "servers": {
    "trvl-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "trvl-mcp@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_INTROSPECTION_URL": "<YOUR_TRVL_MCP_OAUTH_INTROSPECTION_URL>",
        "TRVL_MCP_OAUTH_CLIENT_ID": "<YOUR_TRVL_MCP_OAUTH_CLIENT_ID>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "TRVL_MCP_OAUTH_AUDIENCE": "<YOUR_TRVL_MCP_OAUTH_AUDIENCE>",
        "TRVL_MCP_TOOL_MODE": "<YOUR_TRVL_MCP_TOOL_MODE>",
        "TRVL_MCP_TOOL_TIMEOUT": "<YOUR_TRVL_MCP_TOOL_TIMEOUT>",
        "AFKLM_KEY": "<YOUR_AFKLM_KEY>",
        "AFKLM_OP_REF": "<YOUR_AFKLM_OP_REF>",
        "AFKLM_KEYCHAIN_SERVICE": "<YOUR_AFKLM_KEYCHAIN_SERVICE>",
        "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>"
      }
    }
  }
}

Claude Desktop

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "mcpServers": {
    "trvl-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "trvl-mcp@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_INTROSPECTION_URL": "<YOUR_TRVL_MCP_OAUTH_INTROSPECTION_URL>",
        "TRVL_MCP_OAUTH_CLIENT_ID": "<YOUR_TRVL_MCP_OAUTH_CLIENT_ID>",
        "TRVL_MCP_OAUTH_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>",
        "TRVL_MCP_OAUTH_AUDIENCE": "<YOUR_TRVL_MCP_OAUTH_AUDIENCE>",
        "TRVL_MCP_TOOL_MODE": "<YOUR_TRVL_MCP_TOOL_MODE>",
        "TRVL_MCP_TOOL_TIMEOUT": "<YOUR_TRVL_MCP_TOOL_TIMEOUT>",
        "AFKLM_KEY": "<YOUR_AFKLM_KEY>",
        "AFKLM_OP_REF": "<YOUR_AFKLM_OP_REF>",
        "AFKLM_KEYCHAIN_SERVICE": "<YOUR_AFKLM_KEYCHAIN_SERVICE>",
        "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>"
      }
    }
  }
}

Let your agent find its tools

Find servers like trvl MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.