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.
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
- 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
{
"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.
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.
Cursor
{
"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
{
"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
{
"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
{
"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.