trvl
Rank #590io.github.MikkoParkkola/trvl
Door-to-door travel MCP + CLI: flights, hotels, trains, cars, ferries. No API keys, Go binary.
What you can do with trvl
trvl is a Model Context Protocol (MCP) server published by mikkoparkkola. It ranks #590 of 144,396 active servers on MCP Toplist, and its repository has 88 GitHub stars. trvl is listed across 3 registries — Official MCP, PulseMCP and Glama, with 45 tracked versions. It was first listed on Apr 2, 2026 and most recently updated on Oct 10, 2026.
Not verifiedMCP Toplist has not yet written a checked profile for this server, so the paragraph above is assembled from registry data only. The repository README is the authority on what it does.
What trvl can and cannot do
Not verifiedMCP Toplist has not catalogued this server's tools or limitations. The repository README lists them.
What you need before using trvl
The registry listing declares no required environment variables or authentication. This is declared metadata, not a verified install — the repository README is the authority.
Declared by Glama, last synced Oct 16, 2026. Not independently verified by MCP Toplist.
- TRVL_MCP_TOKEN · optional
- TRVL_MCP_READ_TOKEN · optional
- TRVL_MCP_WRITE_TOKEN · optional
- TRVL_MCP_OAUTH_INTROSPECTION_URL · optional
- TRVL_MCP_OAUTH_CLIENT_ID · optional
- TRVL_MCP_OAUTH_CLIENT_SECRET · optional
- TRVL_MCP_OAUTH_AUDIENCE · optional
- TRVL_MCP_TOOL_MODE · optional
- TRVL_MCP_TOOL_TIMEOUT · optional
- AFKLM_KEY · optional
- AFKLM_OP_REF · optional
- AFKLM_KEYCHAIN_SERVICE · optional
- AFKL_KLM_COOKIES · optional
- SERPAPI_KEY · optional
- TRAVELPAYOUTS_TOKEN · optional
- TRANSAVIA_API_KEY · optional
- TICKETMASTER_API_KEY · optional
- FOURSQUARE_API_KEY · optional
- OPENTRIPMAP_API_KEY · optional
- GEOAPIFY_API_KEY · optional
- DISTRIBUSION_API_KEY · optional
- SKYSCANNER_API_KEY · optional
Connect trvl and confirm it works
claude mcp add trvl -e "TRVL_MCP_TOKEN=<your TRVL_MCP_TOKEN>" -e "TRVL_MCP_READ_TOKEN=<your TRVL_MCP_READ_TOKEN>" -e "TRVL_MCP_WRITE_TOKEN=<your TRVL_MCP_WRITE_TOKEN>" -e "TRVL_MCP_OAUTH_INTROSPECTION_URL=<your TRVL_MCP_OAUTH_INTROSPECTION_URL>" -e "TRVL_MCP_OAUTH_CLIENT_ID=<your TRVL_MCP_OAUTH_CLIENT_ID>" -e "TRVL_MCP_OAUTH_CLIENT_SECRET=<your TRVL_MCP_OAUTH_CLIENT_SECRET>" -e "TRVL_MCP_OAUTH_AUDIENCE=<your TRVL_MCP_OAUTH_AUDIENCE>" -e "TRVL_MCP_TOOL_MODE=<your TRVL_MCP_TOOL_MODE>" -e "TRVL_MCP_TOOL_TIMEOUT=<your TRVL_MCP_TOOL_TIMEOUT>" -e "AFKLM_KEY=<your AFKLM_KEY>" -e "AFKLM_OP_REF=<your AFKLM_OP_REF>" -e "AFKLM_KEYCHAIN_SERVICE=<your AFKLM_KEYCHAIN_SERVICE>" -e "AFKL_KLM_COOKIES=<your AFKL_KLM_COOKIES>" -e "SERPAPI_KEY=<your SERPAPI_KEY>" -e "TRAVELPAYOUTS_TOKEN=<your TRAVELPAYOUTS_TOKEN>" -e "TRANSAVIA_API_KEY=<your TRANSAVIA_API_KEY>" -e "TICKETMASTER_API_KEY=<your TICKETMASTER_API_KEY>" -e "FOURSQUARE_API_KEY=<your FOURSQUARE_API_KEY>" -e "OPENTRIPMAP_API_KEY=<your OPENTRIPMAP_API_KEY>" -e "GEOAPIFY_API_KEY=<your GEOAPIFY_API_KEY>" -e "DISTRIBUSION_API_KEY=<your DISTRIBUSION_API_KEY>" -e "SKYSCANNER_API_KEY=<your SKYSCANNER_API_KEY>" -- docker run -i --rm ghcr.io/mikkoparkkola/trvl:1.27.0Replace each placeholder with your own value before saving.
claude mcp add trvl -e "TRVL_MCP_TOKEN=<your TRVL_MCP_TOKEN>" -e "TRVL_MCP_READ_TOKEN=<your TRVL_MCP_READ_TOKEN>" -e "TRVL_MCP_WRITE_TOKEN=<your TRVL_MCP_WRITE_TOKEN>" -e "TRVL_MCP_OAUTH_INTROSPECTION_URL=<your TRVL_MCP_OAUTH_INTROSPECTION_URL>" -e "TRVL_MCP_OAUTH_CLIENT_ID=<your TRVL_MCP_OAUTH_CLIENT_ID>" -e "TRVL_MCP_OAUTH_CLIENT_SECRET=<your TRVL_MCP_OAUTH_CLIENT_SECRET>" -e "TRVL_MCP_OAUTH_AUDIENCE=<your TRVL_MCP_OAUTH_AUDIENCE>" -e "TRVL_MCP_TOOL_MODE=<your TRVL_MCP_TOOL_MODE>" -e "TRVL_MCP_TOOL_TIMEOUT=<your TRVL_MCP_TOOL_TIMEOUT>" -e "AFKLM_KEY=<your AFKLM_KEY>" -e "AFKLM_OP_REF=<your AFKLM_OP_REF>" -e "AFKLM_KEYCHAIN_SERVICE=<your AFKLM_KEYCHAIN_SERVICE>" -e "AFKL_KLM_COOKIES=<your AFKL_KLM_COOKIES>" -e "SERPAPI_KEY=<your SERPAPI_KEY>" -e "TRAVELPAYOUTS_TOKEN=<your TRAVELPAYOUTS_TOKEN>" -e "TRANSAVIA_API_KEY=<your TRANSAVIA_API_KEY>" -e "TICKETMASTER_API_KEY=<your TICKETMASTER_API_KEY>" -e "FOURSQUARE_API_KEY=<your FOURSQUARE_API_KEY>" -e "OPENTRIPMAP_API_KEY=<your OPENTRIPMAP_API_KEY>" -e "GEOAPIFY_API_KEY=<your GEOAPIFY_API_KEY>" -e "DISTRIBUSION_API_KEY=<your DISTRIBUSION_API_KEY>" -e "SKYSCANNER_API_KEY=<your SKYSCANNER_API_KEY>" -- npx -y trvl-mcpReplace each placeholder with your own value before saving.
[mcp_servers.trvl]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/mikkoparkkola/trvl:1.27.0"]
[mcp_servers.trvl.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>"Add to ~/.codex/config.toml. Replace each placeholder with your own value before saving.
[mcp_servers.trvl]
command = "npx"
args = ["-y", "trvl-mcp"]
[mcp_servers.trvl.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>"Add to ~/.codex/config.toml. Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mikkoparkkola/trvl: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>"
}
}
}
}Add to claude_desktop_config.json (Settings → Developer → Edit Config). Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "npx",
"args": [
"-y",
"trvl-mcp"
],
"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>"
}
}
}
}Add to claude_desktop_config.json (Settings → Developer → Edit Config). Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mikkoparkkola/trvl: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>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project). Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "npx",
"args": [
"-y",
"trvl-mcp"
],
"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>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project). Replace each placeholder with your own value before saving.
{
"servers": {
"trvl": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mikkoparkkola/trvl: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>"
}
}
}
}Save as .vscode/mcp.json in your workspace. Replace each placeholder with your own value before saving.
{
"servers": {
"trvl": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"trvl-mcp"
],
"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>"
}
}
}
}Save as .vscode/mcp.json in your workspace. Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mikkoparkkola/trvl: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>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json. Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "npx",
"args": [
"-y",
"trvl-mcp"
],
"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>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json. Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mikkoparkkola/trvl: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>"
}
}
}
}Replace each placeholder with your own value before saving.
{
"mcpServers": {
"trvl": {
"command": "npx",
"args": [
"-y",
"trvl-mcp"
],
"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>"
}
}
}
}Replace each placeholder with your own value before saving.
After adding the config, ask your client to list this server's tools. A tool list confirms the connection; an empty list or an error means the server did not start or needs credentials.
When to choose another server
No task-specific alternatives are catalogued for trvlyet; the list above is its publisher's other servers.
What changed, and when this was checked
- First listed
- Apr 2, 2026
- Latest version published
- Oct 10, 2026
- Version history
- 45 versions tracked (below)
- Requirements evidence
- Declared by Glama, last synced Oct 16, 2026. Not independently verified by MCP Toplist.
- Profile checked
- Not yet — purpose, capabilities and requirements above come from registry data only
- Ranking data as of
- Oct 16, 2026
- Official MCP ↗listed since May 12, 2026 · still listed
- PulseMCP ↗listed since Jun 4, 2026 · still listed
- Glama ↗listed since Jul 29, 2026 · still listed
Do you maintain trvl? to correct or enrich this profile.
Available versions (45)
| Version | Published |
|---|---|
| 1.27.0 | Oct 10, 2026 |
| 1.26.0 | Oct 6, 2026 |
| 1.25.0 | Oct 1, 2026 |
| 1.24.0 | Sep 27, 2026 |
| 1.23.0 | Sep 26, 2026 |
| 1.22.0 | Sep 25, 2026 |
| 1.21.6 | Sep 10, 2026 |
| 1.21.5 | Sep 4, 2026 |
| 1.21.4 | Aug 12, 2026 |
| 1.21.3 | Aug 11, 2026 |
| 1.21.2 | Aug 10, 2026 |
| 1.21.1 | Aug 10, 2026 |
| 1.21.0 | Aug 8, 2026 |
| 1.20.0 | Jul 13, 2026 |
| 1.19.1 | Jul 10, 2026 |
| 1.19.0 | Jul 1, 2026 |
| 1.18.0 | Jun 28, 2026 |
| 1.17.7 | Jun 28, 2026 |
| 1.17.5 | Jun 27, 2026 |
| 1.17.4 | Jun 27, 2026 |
| 1.17.3 | Jun 27, 2026 |
| 1.17.2 | Jun 27, 2026 |
| 1.17.1 | Jun 27, 2026 |
| 1.17.0 | Jun 27, 2026 |
| 1.16.0 | Jun 24, 2026 |
| 1.15.0 | Jun 22, 2026 |
| 1.13.1 | Jun 20, 2026 |
| 1.13.0 | Jun 20, 2026 |
| 1.12.2 | Jun 19, 2026 |
| 1.12.1 | Jun 19, 2026 |
| 1.12.0 | Jun 19, 2026 |
| 1.11.1 | Jun 19, 2026 |
| 1.11.0 | Jun 19, 2026 |
| 1.10.0 | Jun 14, 2026 |
| 1.9.2 | Jun 14, 2026 |
| 1.9.1 | Jun 13, 2026 |
| 1.9.0 | Jun 13, 2026 |
| 1.8.2 | Jun 12, 2026 |
| 1.8.0 | Jun 8, 2026 |
| 1.7.0 | Jun 6, 2026 |
| 1.6.0 | Jun 4, 2026 |
| 1.5.0 | May 26, 2026 |
| 1.4.1 | May 25, 2026 |
| 1.3.0 | May 25, 2026 |
| 1.2.3 | May 12, 2026 |
Ranks ahead of 143,806 of 144,396 servers on MCP Toplist.
Show your rank
Maintain this server? Add the live rank badge to your README — it updates automatically as the leaderboard changes.
[](https://mcptoplist.com/server/io.github.MikkoParkkola%2Ftrvl)<a href="https://mcptoplist.com/server/io.github.MikkoParkkola%2Ftrvl"><img src="https://mcptoplist.com/badge/io.github.MikkoParkkola%2Ftrvl.svg" alt="MCP Toplist: Top 1% of 144,396" /></a>Variants: append ?metric=score or ?metric=stars to the image URL.
Frequently asked questions
- Who maintains trvl?
- trvl is maintained by mikkoparkkola, which publishes 3 MCP servers (63 total versions) tracked on MCP Toplist.
- Is trvl listed on the Official MCP Registry?
- Yes — trvl is listed on the Official MCP Registry, alongside PulseMCP and Glama.
- How many versions does trvl have?
- MCP Toplist tracks 45 versions of trvl, most recently published on Oct 10, 2026.
- Where can I find the source code for trvl?
- The source code for trvl is hosted at github.com/mikkoparkkola/trvl.
Do you run this server?
Community projects list the MCP servers behind real agents and apps. Publish yours and this page will link to it.