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
访问服务器

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!

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选