Flight Search MCP Server
Integrates with Google Gemini API for natural language understanding, enabling users to query flights using conversational language.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
โ๏ธ Flight Search Agent
Auteur : Saad Bendahou
Contexte : Projet acadรฉmique - Deep Learning / Intelligence Artificielle
Annรฉe : 2025
๐ Description
Flight Search Agent est un agent conversationnel intelligent dรฉveloppรฉ pour la recherche et la rรฉservation de vols. Le projet utilise le protocole MCP (Model Context Protocol) pour exposer des outils de recherche standardisรฉs, intรจgre Google Gemini API pour la comprรฉhension du langage naturel, et l'API Amadeus pour rรฉcupรฉrer des donnรฉes de vols rรฉelles en temps rรฉel.
L'interface web moderne est dรฉveloppรฉe avec FastAPI et offre une expรฉrience utilisateur immersive avec un arriรจre-plan animรฉ et des รฉtiquettes de villes flottantes.
๐ฏ Caractรฉristiques principales
โ Recherche de vols intelligente entre diffรฉrentes villes (Maroc, Europe, Monde)
โ Comprรฉhension du langage naturel : dates relatives ("demain", "la semaine prochaine")
โ Google Gemini API : LLM rapide et efficace (gemini-2.5-flash)
โ Protocole MCP : Exposition d'outils de recherche standardisรฉs
โ Intรฉgration API Amadeus : Donnรฉes de vols rรฉelles et professionnelles
โ Interface FastAPI : Interface web moderne avec HTML/CSS/JS personnalisรฉ
โ Multilingue : Support Franรงais et Anglais
โ Parsing de dates : Conversion automatique de dates naturelles
โ Validation stricte : L'application ne dรฉmarre que si les APIs sont configurรฉes
Related MCP server: Google Flights MCP Server
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ UTILISATEUR โ
โ (Interface Web FastAPI) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ app_fastapi.py โ
โ - Endpoint / : Page HTML โ
โ - Endpoint /chat : API REST โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ gemini_agent.py โ
โ - GeminiFlightAgent : Agent principal โ
โ - Comprรฉhension du langage naturel โ
โ - Extraction des paramรจtres (origine, destination, date) โ
โ - Formatage des rรฉponses โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ flight_data.py โ
โ - search_flights() : Fonction principale โ
โ - Gestion des donnรฉes de vols โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ amadeus_api.py โ
โ - search_flights_amadeus() : Recherche rรฉelle โ
โ - get_airport_code() : Conversion ville โ code IATA โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ date_parser.py โ
โ - parse_date_with_context() : Parsing dates naturelles โ
โ - get_current_date_info() : Informations date actuelle โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ mcp_server.py (Optionnel) โ
โ - Serveur MCP pour intรฉgration avec Cursor/Claude โ
โ - Exposition des mรชmes outils via protocole MCP โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโFlux de donnรฉes
Utilisateur envoie une requรชte via l'interface web
FastAPI reรงoit la requรชte et appelle
gemini_agent.chat()Gemini Agent analyse la requรชte et extrait les paramรจtres
Flight Data appelle
amadeus_api.search_flights_amadeus()Amadeus API retourne les donnรฉes de vols rรฉelles
Gemini Agent formate la rรฉponse de maniรจre conviviale
FastAPI retourne la rรฉponse formatรฉe ร l'utilisateur
๐ Structure du Projet
Flight_Search_Agent/
โโโ app_fastapi.py # Application FastAPI principale
โโโ gemini_agent.py # Agent Gemini + logique conversation
โโโ amadeus_api.py # Intรฉgration API Amadeus
โโโ flight_data.py # Gestion des donnรฉes de vols
โโโ date_parser.py # Parseur de dates naturelles
โโโ mcp_server.py # Serveur MCP (optionnel)
โโโ mcp_config.json # Configuration MCP
โ
โโโ templates/ # Templates HTML
โ โโโ index.html # Interface web principale
โ
โโโ static/ # Fichiers statiques
โ โโโ Bg.jpg # Image de fond
โ
โโโ requirements.txt # Dรฉpendances Python
โโโ .gitignore # Fichiers ignorรฉs par Git
โโโ .env # Variables d'environnement (non versionnรฉ)
โโโ README.md # Documentation๐ ๏ธ Installation
Prรฉrequis
Python 3.10+
Clรฉs API :
Google Gemini API : Google AI Studio
Amadeus API : Amadeus for Developers
1. Cloner le projet
git clone <repository-url>
cd Flight_Search_Agent2. Installer les dรฉpendances
pip install -r requirements.txt3. Configurer les variables d'environnement
Crรฉez un fichier .env ร la racine du projet :
GEMINI_API_KEY=votre_cle_gemini_ici
AMADEUS_CLIENT_ID=votre_client_id_ici
AMADEUS_CLIENT_SECRET=votre_client_secret_iciImportant : L'application ne dรฉmarrera PAS si ces variables ne sont pas configurรฉes ou si elles contiennent des valeurs placeholder.
4. Obtenir les clรฉs API
Google Gemini API (Gratuit)
Allez sur Google AI Studio
Connectez-vous avec votre compte Google
Cliquez sur "Create API Key"
Copiez votre clรฉ API
Amadeus API (Gratuit pour dรฉveloppeurs acadรฉmiques)
Allez sur Amadeus for Developers
Crรฉez un compte gratuit (compte acadรฉmique/non-lucratif)
Crรฉez une nouvelle application
Copiez votre Client ID et Client Secret
๐ป Utilisation
Lancer l'application FastAPI
python app_fastapi.pyL'application sera accessible sur : http://localhost:8000
Utiliser le serveur MCP (Optionnel)
Pour intรฉgrer avec Cursor/Claude Desktop :
python mcp_server.pyPuis configurez votre client MCP avec :
{
"mcpServers": {
"flight-search": {
"command": "python",
"args": ["mcp_server.py"],
"cwd": "C:\\path\\to\\Flight_Search_Agent"
}
}
}๐ฏ Exemples de Requรชtes
L'agent comprend des requรชtes en langage naturel :
"Je veux un vol de Casablanca ร Paris demain"
"Trouve-moi un vol Marrakech - Bruxelles pour le 20 dรฉcembre"
"Quels vols sont disponibles de Rabat ร Londres la semaine prochaine?"
"Vol pas cher de Fรจs ร Barcelone le 15 janvier"๐ Villes Supportรฉes
Maroc ๐ฒ๐ฆ
Casablanca (CMN)
Marrakech (RAK)
Rabat (RBA)
Fรจs (FEZ)
Tanger (TNG)
Agadir (AGA)
Europe ๐ช๐บ
Paris (CDG/ORY)
Londres (LHR)
Madrid (MAD)
Barcelone (BCN)
Bruxelles (BRU)
Amsterdam (AMS)
Autres ๐
Dubaรฏ (DXB)
Istanbul (IST)
Montrรฉal (YUL)
New York (JFK)
Washington (DCA)
๐ง Technologies Utilisรฉes
FastAPI - Framework web moderne et rapide
Google Gemini API - LLM rapide et efficace (gemini-2.5-flash)
Amadeus API - API professionnelle de recherche de vols
MCP (Model Context Protocol) - Protocole d'exposition d'outils
Python 3.10+ - Langage de dรฉveloppement
Jinja2 - Moteur de templates HTML
HTML/CSS/JavaScript - Interface web personnalisรฉe
๐ Tools MCP Disponibles
1. search_flights
Recherche des vols entre deux villes avec date.
Paramรจtres :
origin: Ville de dรฉpart (ex: "Casablanca", "CMN")destination: Ville d'arrivรฉe (ex: "Paris", "CDG")date: Date de voyage au format YYYY-MM-DD
2. parse_date
Convertit une date naturelle en format ISO.
Paramรจtres :
date_expression: Date en langage naturel (ex: "demain", "le 20 dรฉcembre")
3. get_current_date
Retourne la date actuelle et rรฉfรฉrences.
4. list_airports
Liste les aรฉroports disponibles.
๐ Dรฉpannage
Erreur "APIs non configurรฉes"
Vรฉrifiez que le fichier
.envexiste et contient les bonnes clรฉsVรฉrifiez que les clรฉs ne sont pas des placeholders
L'application ne dรฉmarre PAS sans APIs configurรฉes
Erreur "GEMINI_API_KEY not found"
Vรฉrifiez que vous avez dรฉfini la variable d'environnement
GEMINI_API_KEYObtenez votre clรฉ sur Google AI Studio
Erreur "AMADEUS_CLIENT_ID not found"
Vรฉrifiez que vous avez dรฉfini les variables
AMADEUS_CLIENT_IDetAMADEUS_CLIENT_SECRETCrรฉez un compte sur Amadeus for Developers
Erreur de dรฉpendances
pip install -r requirements.txtL'API Amadeus retourne une erreur
Vรฉrifiez que vous utilisez l'environnement "test" (par dรฉfaut)
Vรฉrifiez les limites de votre compte Amadeus (gratuit pour dรฉveloppeurs)
Vรฉrifiez que les codes d'aรฉroport sont corrects
๐ Notes de Dรฉveloppement
Validation des APIs
L'application valide strictement la prรฉsence des APIs au dรฉmarrage. Si les clรฉs sont manquantes ou contiennent des valeurs placeholder, l'application lรจve une exception et ne dรฉmarre pas.
Gestion des erreurs
Les erreurs API sont capturรฉes et retournรฉes de maniรจre conviviale ร l'utilisateur
L'historique de conversation est maintenu pour amรฉliorer les rรฉponses
Les dates relatives sont automatiquement converties en format ISO
Interface utilisateur
Arriรจre-plan avec image de ciel et nuages
รtiquettes de villes flottantes avec animations
Chat transparent avec bordures visibles
Barre d'astuces rabattable depuis le haut
Heure locale mise ร jour en temps rรฉel
๐ Licence
Ce projet est dรฉveloppรฉ dans un contexte acadรฉmique et non-lucratif.
๐ค Auteur
Saad Bendahou
Projet acadรฉmique - Deep Learning / Intelligence Artificielle
Annรฉe 2025
๐ Remerciements
Google pour l'API Gemini
Amadeus pour l'API de recherche de vols (compte acadรฉmique)
La communautรฉ open-source Python
Dรฉveloppรฉ avec โค๏ธ pour l'apprentissage et la recherche acadรฉmique
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
This server cannot be deployed
Maintenance
Related MCP Connectors
Search award flights and cash fares, optimize points, and predict fares inside ChatGPT and Claude.
whentofly: flexible-date economy/business flight search + price-level context for AI agents
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
Search and compare flight offers through a cache-aware Streamable HTTP MCP server for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables flight search capabilities through the Amadeus Flight Offers Search API, allowing users to search for flights between locations with specified dates using natural language queries.1MIT
- AlicenseAqualityBmaintenanceIntegrates Google Flights data into AI workflows for natural language flight searches, price comparisons, flexible date searches, and multi-city itinerary planning with support for various cabin classes and passenger types.98MIT
- AlicenseNot gradedqualityDmaintenanceProvides access to 50+ Amadeus Travel APIs for AI assistants to search and book flights, hotels, activities, and ground transfers, along with travel analytics, price predictions, and comprehensive travel reference data.16 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables flight and airport search capabilities through Skyscanner, allowing users to find flight options, compare prices, and locate airports using natural language.20GPL 3.0