TravelGenie

TravelGenie

MCP server for AI-powered travel planning that coordinates flights, hotels, events, weather, currency, and traffic data to generate complete trip itineraries.

Category
Visit Server

README

TravelGenie - AI Travel Planning Assistant

TravelGenie

TravelGenie is an AI-powered travel planner that helps you coordinate flights, hotels, events, weather, and basically everything else you need for a complete trip itinerary. It's built on Model Context Protocol (MCP) and uses Claude AI to orchestrate 7 specialized servers automatically - so you don't have to juggle a million tabs and apps.

MCP Python License


What It Does

Ever tried planning a trip and spent hours jumping between Google Flights, Booking.com, checking weather, looking up events, and trying to figure out if you can afford it all? Yeah, me too. That's why I built TravelGenie.

Just ask it something like: "Plan a trip to Banff, Alberta from Reston, Virginia, June 7-14, 2025. Budget $5000. We like hiking, museums, and dining."

And TravelGenie will:

  • Find flights and hotels that fit your budget
  • Check weather forecasts (because who wants to pack wrong?)
  • Discover local events that match what you're into
  • Convert currencies so you know what things actually cost
  • Analyze traffic patterns (because nobody likes being stuck)
  • Create a day-by-day itinerary with a budget breakdown

No manual searching. Just one request, and you get a complete plan.


Quick Start

Installation

First things first, clone the repo and install dependencies:

git clone <repository-url>
cd TravelGenie
pip install -r requirements.txt

API Keys

You'll need a few API keys to get this running:

  • SerpAPI - Used for flights, hotels, and events. You can get a free key at serpapi.com
  • Anthropic - For Claude AI. Sign up at console.anthropic.com
  • Slack (optional) - Only if you want to use the Slack bot. Create an app at api.slack.com/apps
  • Open-Meteo & OpenStreetMap - These are free, no keys needed!

Configuration

Copy the example env file and add your keys:

cp .env.example .env
# Then edit .env and add your keys

Running It

You've got a couple options:

Web UI (easiest way to start):

streamlit run streamlit_app.py

Or use the Slack bot:

python slack_bot.py

Then just visit http://localhost:8501 and start planning!


How It Works

So here's the deal - TravelGenie uses 7 specialized servers that Claude AI coordinates automatically. Each one handles a specific part of travel planning:

Server What It Does
Flight Finds and compares flights
Hotel Discovers accommodations
Event Finds local activities & events
Geocoder Converts addresses to coordinates
Weather Gets forecasts and conditions
Finance Converts currencies
Traffic & Crowd Analyzes real-time location data

Here's how it flows:

  1. You make a request for a trip
  2. Claude geocodes your locations
  3. Searches flights, hotels, events
  4. Checks weather forecasts
  5. Analyzes traffic patterns
  6. Converts currencies
  7. Synthesizes everything into a complete itinerary

All automatically, usually in seconds. Pretty neat, right?


Usage

Streamlit Web UI

This is probably the easiest way to use TravelGenie:

  1. Run streamlit run streamlit_app.py
  2. Fill in your trip details (origin, destination, dates, budget, interests)
  3. Click "Plan My Trip"
  4. Get your complete itinerary!

Slack Bot

If you're already using Slack, you can integrate TravelGenie as a bot:

python slack_bot.py

Then in Slack, just mention it:

@travelgenie Plan a weekend trip to Portland for next weekend. 
We want breweries and food trucks. Budget $1500 for 2 people.

Direct API

If you want to integrate it into your own code, you can use the orchestrator directly:

from claude_orchestrator import execute_tool

# Search flights
flights = execute_tool("search_flights",
    departure_id="IAD",
    arrival_id="YYC",
    outbound_date="2025-06-07",
    return_date="2025-06-14",
    adults=2
)

# Get weather
weather = execute_tool("get_weather_forecast",
    location="Banff, Alberta",
    forecast_days=7
)

Deployment

Docker

If you want to run it in Docker:

docker build -t travelgenie .
docker run -d -p 8501:8501 --env-file .env travelgenie

AWS

For production deployments, there's CloudFormation setup:

cd aws/cloudformation
aws cloudformation create-stack \
  --stack-name travelgenie \
  --template-body file://infrastructure.yaml \
  --parameters file://parameters.json \
  --capabilities CAPABILITY_NAMED_IAM

This sets up ECS Fargate, DynamoDB, Secrets Manager, and CloudWatch. Check out aws/Run.md for more details on the AWS setup.


Server Tools

Each server provides specific tools you can use:

Flight Server

  • search_flights - Find flights with filters
  • get_flight_details - Get detailed flight info
  • filter_flights_by_price - Filter by your budget

Hotel Server

  • search_hotels - Find accommodations
  • get_hotel_details - Property details
  • filter_hotels_by_price - Budget filtering

Event Server

  • search_events - Find local events
  • get_event_details - Event information
  • filter_events_by_date - Filter by date

Geocoder Server

  • geocode_location - Convert address → coordinates
  • reverse_geocode - Convert coordinates → address
  • calculate_distance - Distance between locations

Weather Server

  • get_weather_forecast - Multi-day forecasts
  • get_current_weather - Current conditions

Finance Server

  • convert_currency - Currency conversion
  • get_market_overview - Market data

Traffic & Crowd Server

  • analyze_location_traffic - Real-time analysis
  • analyze_youtube_video - Video stream analysis
  • get_traffic_patterns - Historical patterns

Configuration

Environment Variables

Create a .env file in the root directory:

# Required
SERPAPI_KEY=your_key
ANTHROPIC_API_KEY=your_key

# Optional - Slack bot
SLACK_BOT_TOKEN=xoxb-your-token
SLACK_APP_TOKEN=xapp-your-token

Claude Desktop (MCP Mode)

If you want to use TravelGenie with Claude Desktop, add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "flight-search": {
      "command": "uv",
      "args": ["--directory", "/path/to/TravelGenie/servers/flight_server", 
               "run", "python", "flight_server.py"],
      "env": {"SERPAPI_KEY": "your_key"}
    }
  }
}

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json


Troubleshooting

Servers not responding?

  • Double-check your API keys in .env
  • Make sure you're using Python 3.12.1 or higher
  • Check the server logs for errors

Import errors?

pip install -r requirements.txt --upgrade

Slack bot not connecting?

  • Verify your tokens are correct
  • Make sure Socket Mode is enabled in your Slack app settings
  • Check that your bot has the right scopes: chat:write, app_mentions:read

No search results?

  • Try using airport codes (like "IAD" instead of city names) - sometimes that works better
  • Check if you've hit your SerpAPI quota
  • Make sure your dates are in the future

Testing

To test things out:

# Test Slack bot
python slack_bot.py --test

# Test Streamlit UI
streamlit run streamlit_app.py

Contributing

Contributions are welcome! There's always room for improvement. Some ideas:

  • New server types (restaurants, car rentals, etc.)
  • Better filtering algorithms
  • Improved caching and performance
  • Mobile support
  • More tests

How to contribute:

  1. Fork the repo
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Support

If you run into issues:


License

MIT License - see LICENSE file for details.


Ready to plan your next trip? Just run streamlit run streamlit_app.py or set up the Slack bot and you're good to go!

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured