Skip to main content
Glama
README.md
# āœˆļø AI Travel Planner MCP

An AI-powered Travel Planning Assistant built using **FastMCP**, **LangGraph**, **LangChain**, **FastAPI**, and **NiceGUI**.

This project was created while exploring **Model Context Protocol (MCP)**, **Agentic AI**, and **LangGraph workflows** through a practical real-world use case.

The application helps users plan trips by fetching live weather information, generating packing suggestions, and providing AI-powered travel recommendations based on their destination and budget.

---

## šŸš€ Features

* šŸŒ Destination-based travel planning
* 🌤 Real-time weather information
* šŸŽ’ Smart packing recommendations
* šŸ¤– AI-powered travel suggestions
* šŸ”— MCP Tool Integration
* 🧠 LangGraph Agent Workflow
* ⚔ FastAPI Backend
* šŸŽØ Modern NiceGUI Interface
* šŸŒ™ Dark Mode Support

---

## šŸ—ļø Architecture

```text
User Input
     │
     ā–¼
NiceGUI Interface
     │
     ā–¼
FastAPI Backend
     │
     ā–¼
LangGraph Workflow
     │
 ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
 │ Weather Agent │
 ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         │
 ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
 │ Packing Agent │
 ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         │
 ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
 │ Travel Advisor   │
 ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         │
 ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
 │ Final Report     │
 ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
         │
         ā–¼
Travel Recommendation
```

---

## 🧠 MCP Tools

### Location Tool

Uses OpenStreetMap's Nominatim API to retrieve geographical coordinates from a destination name.

### Weather Tool

Uses Open-Meteo API to fetch real-time weather information.

### Packing Tool

Generates packing suggestions based on weather conditions.

---

## šŸ› ļø Tech Stack

### AI & Agents

* LangChain
* LangGraph
* FastMCP
* Groq LLM

### Backend

* FastAPI
* Python

### Frontend

* NiceGUI

### APIs

* Open-Meteo API
* OpenStreetMap Nominatim API

---

## šŸ“‚ Project Structure

```text
travel-planner-mcp/

ā”œā”€ā”€ app.py
ā”œā”€ā”€ graph.py
ā”œā”€ā”€ state.py
│
ā”œā”€ā”€ agents/
│   ā”œā”€ā”€ weather_agent.py
│   ā”œā”€ā”€ packing_agent.py
│   ā”œā”€ā”€ travel_advisor_agent.py
│   └── final_report_agent.py
│
ā”œā”€ā”€ tools/
│   ā”œā”€ā”€ weather_tool.py
│   ā”œā”€ā”€ location_tool.py
│   └── packing_tool.py
│
ā”œā”€ā”€ mcp/
│   └── mcp_server.py
│
ā”œā”€ā”€ ui/
│   └── ui.py
│
ā”œā”€ā”€ .env
ā”œā”€ā”€ requirements.txt
└── README.md
```

---

## āš™ļø Installation

### Clone Repository

```bash
git clone <YOUR_REPOSITORY_URL>
cd travel-planner-mcp
```

### Create Virtual Environment

```bash
python -m venv .venv
```

### Activate Environment

Windows:

```bash
.venv\Scripts\activate
```

Linux/macOS:

```bash
source .venv/bin/activate
```

### Install Dependencies

```bash
pip install -r requirements.txt
```

---

## šŸ”‘ Environment Variables

Create a `.env` file in the root directory.

```env
GROQ_API_KEY=YOUR_GROQ_API_KEY
```

---

## ā–¶ļø Running the Application

### Start FastAPI

```bash
uvicorn app:app --reload
```

Swagger Documentation:

```text
http://127.0.0.1:8000/docs
```

---

### Start MCP Server

```bash
python mcp/mcp_server.py
```

---

### Start NiceGUI

```bash
python ui/ui.py
```

Application URL:

```text
http://localhost:8080
```

---

## šŸ“ø Example Request

```json
{
  "city": "Ooty",
  "budget": "Medium"
}
```

---

## šŸ“ø Example Response

```json
{
  "weather": {
    "temperature": 18,
    "windspeed": 12
  },
  "packing_list": [
    "Jacket",
    "Water Bottle",
    "Comfortable Shoes"
  ],
  "recommendation": "Good weather for sightseeing and outdoor activities."
}
```

---

## šŸ“š What I Learned

This project helped me gain hands-on experience with:

* Model Context Protocol (MCP)
* FastMCP Tool Development
* LangGraph State Management
* Agent-Based Workflows
* LLM Tool Calling
* FastAPI Development
* API Integrations
* NiceGUI Dashboard Development

---

## šŸš€ Future Improvements

* Hotel Recommendation Agent
* Restaurant Recommendation Agent
* Multi-Day Trip Planning
* Budget Estimation
* Google Maps Integration
* Travel Itinerary Generator
* PDF Export
* Multi-Agent Collaboration

---

## šŸ‘Øā€šŸ’» Author

### Shyam Sundhar

Computer Science Engineering (AI & ML)

Passionate about:

* Artificial Intelligence
* Machine Learning
* Generative AI
* Agentic AI
* Mobile App Development
* Full Stack Development

šŸ”— LinkedIn:
https://www.linkedin.com/in/shyamgsundhar/

šŸ’» GitHub:
https://github.com/shyamgsundhar

---

## ⭐ Support

If you found this project useful or interesting, consider giving it a ⭐ on GitHub.

Feedback, suggestions, and contributions are always welcome!

Maintenance

ActivityInactive
ResponsivenessNo issues