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

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.
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:
- You make a request for a trip
- Claude geocodes your locations
- Searches flights, hotels, events
- Checks weather forecasts
- Analyzes traffic patterns
- Converts currencies
- 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:
- Run
streamlit run streamlit_app.py - Fill in your trip details (origin, destination, dates, budget, interests)
- Click "Plan My Trip"
- 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 filtersget_flight_details- Get detailed flight infofilter_flights_by_price- Filter by your budget
Hotel Server
search_hotels- Find accommodationsget_hotel_details- Property detailsfilter_hotels_by_price- Budget filtering
Event Server
search_events- Find local eventsget_event_details- Event informationfilter_events_by_date- Filter by date
Geocoder Server
geocode_location- Convert address → coordinatesreverse_geocode- Convert coordinates → addresscalculate_distance- Distance between locations
Weather Server
get_weather_forecast- Multi-day forecastsget_current_weather- Current conditions
Finance Server
convert_currency- Currency conversionget_market_overview- Market data
Traffic & Crowd Server
analyze_location_traffic- Real-time analysisanalyze_youtube_video- Video stream analysisget_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:
- Fork the repo
- Create a feature branch
- Make your changes
- Submit a pull request
Support
If you run into issues:
- GitHub Issues: github.com/abhioriganti/TravelGenie/issues
- API Docs:
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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.