Flight Search MCP Server
Integrates with Google Gemini API for natural language understanding, enabling users to query flights using conversational language.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Flight Search MCP ServerFind flights from Casablanca to Paris next Friday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
βοΈ 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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SaadBenth7o/MCP_FLIGHT-SEARCH-AGENT'
If you have feedback or need assistance with the MCP directory API, please join our Discord server