Door-to-door travel MCP + CLI: flights, hotels, trains, cars, ferries. No API keys, Go binary.
registry version 1.27.0
Docker
docker run -i --rm ghcr.io/mikkoparkkola/trvl:1.27.0npm
npx -y trvl-mcpnpm
npx -y trvl-mcp@1.27.0
Pick your client — the config below is generated for this server (local stdio). Copy respects the “Pin version” switch above.
claude_desktop_config.json
{
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}{
"mcpServers": {
"trvl": {
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}Format verified against the official Claude Desktop docs ↗.
terminal
claude mcp add --env TRVL_MCP_TOKEN=<YOUR_TRVL_MCP_TOKEN> --env TRVL_MCP_READ_TOKEN=<YOUR_TRVL_MCP_READ_TOKEN> --env TRVL_MCP_WRITE_TOKEN=<YOUR_TRVL_MCP_WRITE_TOKEN> --env TRVL_MCP_OAUTH_CLIENT_SECRET=<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET> trvl -- npx -y trvl-mcp
claude mcp add --env TRVL_MCP_TOKEN=<YOUR_TRVL_MCP_TOKEN> --env TRVL_MCP_READ_TOKEN=<YOUR_TRVL_MCP_READ_TOKEN> --env TRVL_MCP_WRITE_TOKEN=<YOUR_TRVL_MCP_WRITE_TOKEN> --env TRVL_MCP_OAUTH_CLIENT_SECRET=<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET> trvl -- npx -y trvl-mcp@1.27.0
Format verified against the official Claude Code docs ↗.
.cursor/mcp.json
{
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}{
"mcpServers": {
"trvl": {
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}Format verified against the official Cursor docs ↗.
.vscode/mcp.json
{
"servers": {
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}{
"servers": {
"trvl": {
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}Format verified against the official VS Code docs ↗.
mcp_config.json
{
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}{
"mcpServers": {
"trvl": {
"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_CLIENT_SECRET": "<YOUR_TRVL_MCP_OAUTH_CLIENT_SECRET>"
}
}
}
}Format verified against the official Windsurf docs ↗.
Defined in the server's official registry manifest. Required secrets are shown as <YOUR_…> placeholders in the configs above.
TRVL_MCP_TOKEN secret — Bearer token for HTTP-mode auth (unused in stdio). Optional.TRVL_MCP_READ_TOKEN secret — Read-scoped bearer token for HTTP-mode auth (unused in stdio). Optional.TRVL_MCP_WRITE_TOKEN secret — Write-scoped bearer token for HTTP-mode auth (unused in stdio). Optional.TRVL_MCP_OAUTH_INTROSPECTION_URL — OAuth token introspection endpoint for HTTP-mode auth (unused in stdio). Optional.TRVL_MCP_OAUTH_CLIENT_ID — OAuth client ID for HTTP-mode token introspection (unused in stdio). Optional.TRVL_MCP_OAUTH_CLIENT_SECRET secret — OAuth client secret for HTTP-mode token introspection (unused in stdio). Optional.TRVL_MCP_OAUTH_AUDIENCE — Expected OAuth audience for HTTP-mode token introspection (unused in stdio). Optional.TRVL_MCP_TOOL_MODE — Selects which MCP tool set is registered (e.g. smart/full). Optional, defaults to full set.⭐ 88 stars · 最近更新于 17 天前
trvl — Real travel search for your AI assistant Ask your AI assistant to plan a real trip, and it actually can. trvl gives Claude, Cursor, Windsurf, Codex, or any MCP compatible client one smart tool — the travel router — with live access to flights, hotels, rental cars, trains, buses, ferries, pric…
Summary from the project README — github.com/MikkoParkkola/trvl
Distributed as Docker, npm, listed under Developer Tools. Review our MCP security guide before granting access to real data.
trvl — Real travel search for your AI assistant Ask your AI assistant to plan a real trip, and it actually can. trvl gives Claude, Cursor, Windsurf, Codex, or any MCP compatible client one smart tool — the travel router — with live access to flights, hotels, rental cars, trains, buses, ferries, pric
Run the install command shown above, then paste the config for your client (Claude Desktop, Claude Code, Cursor, VS Code or Windsurf) into its MCP settings and restart the client.
The MCP server itself is free to install. The source is public on https://github.com/MikkoParkkola/trvl. Any third-party service it calls may require its own API key and account.
Any MCP-compatible client can use it, including Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and custom agents.
Publish this server? Link back with a badge on your README or site — copy either snippet.
Markdown
[](https://mcpnav.net/server/trvl/)
HTML
<a href="https://mcpnav.net/server/trvl/"><img src="https://mcpnav.net/badge/trvl.svg" alt="Listed on MCPNav" height="20"></a>