AI Travel Planner MCP
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!
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues