Loading…
Door-to-door travel MCP + CLI: flights, hotels, trains, cars, ferries. No API keys, Go binary.
trvl is an MCP server entry in ChatHome Skills, sourced from Official MCP Registry and scored 78/100. As a Model Context Protocol server, it exposes tools that MCP-compatible LLM clients such as Claude, Cursor, and Copilot can call directly, extending an agent's reach beyond its built-in capabilities. ChatHome Skills discovered this entry through its daily ingest of official registries and GitHub discovery queries, and re-verifies repository facts, freshness signals, and install metadata on every run. The quality score weighs official-registry presence, a working install command, license clarity, GitHub star trajectory, and repository freshness — the full formula is on the Sources page. The install command above is ready to copy. Review the last-pushed date and repository status before adding trvl to a production agent workflow; the snapshot facts below are point-in-time values from the most recent ingest.
docker run -i --rm ghcr.io/mikkoparkkola/trvl:1.27.0Review the upstream source before running this command.
{
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"isLatest": true,
"updatedAt": "2026-10-10T13:49:15.105111Z",
"publishedAt": "2026-10-10T13:49:15.105111Z",
"statusChangedAt": "2026-10-10T13:49:15.105111Z"
}
},
"server": {
"name": "io.github.MikkoParkkola/trvl",
"title": "trvl",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"version": "1.27.0",
"packages": [
{
"transport": {
"type": "stdio"
},
"identifier": "ghcr.io/mikkoparkkola/trvl:1.27.0",
"registryType": "oci",
"environmentVariables": [
{
"name": "TRVL_MCP_TOKEN",
"isSecret": true,
"description": "Bearer token for HTTP-mode auth (unused in stdio). Optional."
},
{
"name": "TRVL_MCP_READ_TOKEN",
"isSecret": true,
"description": "Read-scoped bearer token for HTTP-mode auth (unused in stdio). Optional."
},
{
"name": "TRVL_MCP_WRITE_TOKEN",
"isSecret": true,
"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",
"isSecret": true,
"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",
"isSecret": true,
"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",
"isSecret": true,
"description": "Session cookies for Air France-KLM award search. Optional, unlocks award-fare lookups only."
},
{
"name": "SERPAPI_KEY",
"isSecret": true,
"description": "SerpApi API key; unlocks search-engine-backed lookups used by some providers. Optional, trvl works without it."
},
{
"name": "TRAVELPAYOUTS_TOKEN",
"isSecret": true,
"description": "Travelpayouts API token; unlocks that flight-price data source. Optional, trvl works without it."
},
{
"name": "TRANSAVIA_API_KEY",
"isSecret": true,
"description": "Transavia API key; unlocks that airline's live fares. Optional, trvl works without it."
},
{
"name": "TICKETMASTER_API_KEY",
"isSecret": true,
"description": "Ticketmaster API key; unlocks event listings for destinations. Optional, trvl works without it."
},
{
"name": "FOURSQUARE_API_KEY",
"isSecret": true,
"description": "Foursquare API key; unlocks that place-search data source. Optional, trvl works without it."
},
{
"name": "OPENTRIPMAP_API_KEY",
"isSecret": true,
"description": "OpenTripMap API key; unlocks that attractions data source. Optional, trvl works without it."
},
{
"name": "GEOAPIFY_API_KEY",
"isSecret": true,
"description": "Geoapify API key; unlocks that places/geocoding data source. Optional, trvl works without it."
},
{
"name": "DISTRIBUSION_API_KEY",
"isSecret": true,
"description": "Distribusion API key; unlocks that ground-transport data source. Optional, trvl works without it."
},
{
"name": "SKYSCANNER_API_KEY",
"isSecret": true,
"description": "Skyscanner API key; unlocks that car-hire data source. Optional, trvl works without it."
}
]
},
{
"version": "1.27.0",
"transport": {
"type": "stdio"
},
"identifier": "trvl-mcp",
"runtimeHint": "npx",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "TRVL_MCP_TOKEN",
"isSecret": true,
"description": "Bearer token for HTTP-mode auth (unused in stdio). Optional."
},
{
"name": "TRVL_MCP_READ_TOKEN",
"isSecret": true,
"description": "Read-scoped bearer token for HTTP-mode auth (unused in stdio). Optional."
},
{
"name": "TRVL_MCP_WRITE_TOKEN",
"isSecret": true,
"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",
"isSecret": true,
"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",
"isSecret": true,
"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",
"isSecret": true,
"description": "Session cookies for Air France-KLM award search. Optional, unlocks award-fare lookups only."
},
{
"name": "SERPAPI_KEY",
"isSecret": true,
"description": "SerpApi API key; unlocks search-engine-backed lookups used by some providers. Optional, trvl works without it."
},
{
"name": "TRAVELPAYOUTS_TOKEN",
"isSecret": true,
"description": "Travelpayouts API token; unlocks that flight-price data source. Optional, trvl works without it."
},
{
"name": "TRANSAVIA_API_KEY",
"isSecret": true,
"description": "Transavia API key; unlocks that airline's live fares. Optional, trvl works without it."
},
{
"name": "TICKETMASTER_API_KEY",
"isSecret": true,
"description": "Ticketmaster API key; unlocks event listings for destinations. Optional, trvl works without it."
},
{
"name": "FOURSQUARE_API_KEY",
"isSecret": true,
"description": "Foursquare API key; unlocks that place-search data source. Optional, trvl works without it."
},
{
"name": "OPENTRIPMAP_API_KEY",
"isSecret": true,
"description": "OpenTripMap API key; unlocks that attractions data source. Optional, trvl works without it."
},
{
"name": "GEOAPIFY_API_KEY",
"isSecret": true,
"description": "Geoapify API key; unlocks that places/geocoding data source. Optional, trvl works without it."
},
{
"name": "DISTRIBUSION_API_KEY",
"isSecret": true,
"description": "Distribusion API key; unlocks that ground-transport data source. Optional, trvl works without it."
},
{
"name": "SKYSCANNER_API_KEY",
"isSecret": true,
"description": "Skyscanner API key; unlocks that car-hire data source. Optional, trvl works without it."
}
]
}
],
"repository": {
"url": "https://github.com/MikkoParkkola/trvl",
"source": "github"
},
"websiteUrl": "https://github.com/MikkoParkkola/trvl",
"description": "Door-to-door travel MCP + CLI: flights, hotels, trains, cars, ferries. No API keys, Go binary."
}
}