travel-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@travel-mcp-serverplan a trip to Tokyo for 5 days under $1500"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Travel MCP Server
An AI-powered travel planner built as a Model Context Protocol (MCP) server. Connect it to Claude and get a full travel assistant — search flights, hotels, weather, and points of interest, generate day-by-day itineraries, and track your trip budget.
A Next.js web UI is included for exploring the tools directly in a browser without a Claude client.
Tools
Tool | Description |
| Search flights between two cities by name or IATA code |
| Search hotels with optional price filter |
| Day-by-day weather forecast for a destination |
| Points of interest by category (restaurants, attractions, activities, nightlife, shopping, transport) |
| Generate a complete itinerary with weather, POI, flight & hotel options, and optional budget allocation |
| Create a budget tracker for a trip |
| Record an expense against a budget category |
| Total spent, remaining balance, and per-category breakdown |
Supported destinations (mock data)
Flights: New York ↔ Tokyo / Paris / London / Barcelona / Sydney / Bali · London ↔ Paris / Barcelona / Bali · Sydney ↔ Bali · Paris ↔ Rome
Hotels, weather & POI: Tokyo, Paris, London, Barcelona, Bali, Sydney, Rome, Amsterdam, Dubai
Quickstart
Prerequisites
Python 3.10+, uv —
brew install uvNode.js 18+ and pnpm (for the web UI) —
brew install pnpm
Run locally (stdio — for Claude Desktop / Claude Code)
git clone <repo-url> travel-mcp-server
cd travel-mcp-server
uv sync
uv run python -m travel_mcpRun with the web UI
# Terminal 1 — MCP server in SSE mode
MCP_TRANSPORT=sse uv run python -m travel_mcp
# Terminal 2 — Next.js UI
cd ui && pnpm install && pnpm devOpen http://localhost:3000 to use the browser playground.
Inspect tools interactively
npx @modelcontextprotocol/inspector uv run python -m travel_mcpConnect to Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"travel-planner": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/travel-mcp-server", "python", "-m", "travel_mcp"]
}
}
}Restart Claude Desktop. The 8 travel tools will appear automatically.
Docker
# Build
docker build -t travel-mcp-server .
# Run (SSE transport on port 8000)
docker compose upThe server listens on http://localhost:8000 in SSE mode when running via Docker.
The web UI can be pointed at a remote server by setting MCP_SERVER_URL before starting it:
MCP_SERVER_URL=http://your-server:8000 pnpm --prefix ui devWeb UI
Kubernetes
# Deploy
kubectl apply -f k8s/
# Verify
kubectl rollout status deployment/travel-mcp-server -n travel-mcp
# Test locally via port-forward
kubectl port-forward svc/travel-mcp-server 8000:80 -n travel-mcp
# Tear down
kubectl delete -f k8s/Note: The Deployment runs a single replica because budget state is held in memory. Scale to multiple replicas only after adding external storage (Redis, Postgres, etc.).
Web UI
A Next.js 16 app in ui/ that provides a browser-based playground for all 8 tools. It requires the MCP server to be running in SSE mode (MCP_TRANSPORT=sse).
ui/
├── app/
│ ├── page.tsx # Tabbed playground (Flights, Hotels, Weather, Places, Itinerary, Budget)
│ └── api/tools/[tool]/ # Next.js API route — proxies to MCP server REST endpoints
├── components/ # One component per tool tab + shared UI primitives
└── lib/mcp.ts # Thin fetch wrapper for /api/tools/*The MCP server exposes REST endpoints at /api/tools/<tool_name> (POST, JSON body) alongside the standard SSE transport, so the UI does not need to implement the MCP protocol.
Environment variables
Variable | Default | Description |
|
| Transport mode: |
|
| Bind address (SSE mode only) |
|
| Port (SSE mode only) |
|
| URL the Next.js UI uses to reach the MCP server |
Project structure
travel-mcp-server/
├── src/travel_mcp/
│ ├── server.py # FastMCP instance, tool registrations, REST API routes
│ ├── tools/ # Business logic (one file per domain)
│ │ ├── flights.py
│ │ ├── hotels.py
│ │ ├── weather.py
│ │ ├── poi.py
│ │ ├── itinerary.py # Composes other tools into a full itinerary
│ │ └── budget.py # In-memory budget tracker
│ └── mock_data/ # Static fixtures — replace query_* functions to wire real APIs
│ ├── flights.py
│ ├── hotels.py
│ ├── weather.py
│ └── poi.py
├── ui/ # Next.js web UI
│ ├── app/ # App Router pages and API routes
│ ├── components/ # Tool tab components
│ └── lib/mcp.ts # MCP server fetch client
├── k8s/ # Kubernetes manifests
├── Dockerfile
└── docker-compose.ymlSwapping in real APIs
Each mock_data/ file exposes a single query_* function. Replace just that function with an HTTP call to a real provider and everything else stays the same.
Mock file | Suggested real API |
| |
| |
| |
|
Example prompts
"Plan a 7-day trip to Tokyo from New York in October with a $4,000 budget."
"Find me flights from London to Barcelona for next Friday, 2 passengers."
"What's the weather like in Bali in July?"
"Show me the top attractions in Rome."
"I spent $850 on flights for my Tokyo trip — log it and show my remaining budget."
License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ismailrz/travel-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server