AWS re:Invent 2025 : MCP Server Open Source pour la Planification
- Published on
- Authors

- Name
- Sylvain BRUAS
- @sylvain_bruas
Le Model Context Protocol, une Révolution pour l'IA
Le Model Context Protocol (MCP) représente une avancée majeure dans l'écosystème de l'intelligence artificielle. Développé par Anthropic, MCP standardise la façon dont les modèles d'IA accèdent et interagissent avec des sources de données externes. Contrairement aux approches traditionnelles où chaque intégration nécessite un développement spécifique, MCP propose un protocole unifié qui permet aux modèles d'IA de découvrir et d'utiliser automatiquement des outils externes.
L'intérêt principal de MCP réside dans sa capacité à étendre les capacités des modèles d'IA au-delà de leurs connaissances pré-entraînées. Un serveur MCP expose des "outils" que l'IA peut invoquer dynamiquement selon le contexte de la conversation. Cette approche ouvre des possibilités infinies : accès à des bases de données en temps réel, intégration avec des APIs externes, manipulation de fichiers, et bien plus encore.
Dans cet article, je partage mon retour d'expérience sur le développement d'un serveur MCP pour AWS re:Invent 2025, mon premier projet open source de cette envergure. Ce projet illustre parfaitement les défis et opportunités du développement MCP, tout en démontrant comment (Kiro)[https://kiro.dev/] peut considérablement accélérer le processus de développement.
Le Défi : Gérer la Complexité d'AWS re:Invent
AWS re:Invent est l'une des conférences technologiques les plus importantes au monde, avec plus de 2200 sessions réparties sur 5 jours dans plusieurs hôtels de Las Vegas. Pour un participant, naviguer dans cette masse d'informations représente un défi considérable :
- Volume de données : 2200 sessions avec des métadonnées complexes (niveaux, services AWS, speakers, lieux)
- Sources multiples : API officielle, flux RSS des mises à jour, agenda AWS des événements spéciaux
- Besoins personnalisés : Gestion d'événements personnels, listes de favoris, export calendrier
- Contraintes temps réel : Synchronisation continue des données, cache intelligent
Reinvent-planner.cloud par Raphael Manke
Ce projet s'appuie sur l'excellent travail de Raphael Manke et son site reinvent-planner.cloud, qui constitue la source de données principale de notre serveur MCP. Raphael a créé une API robuste et bien documentée qui agrège les données officielles d'AWS re:Invent, les enrichit avec des métadonnées utiles, et les expose via une interface REST moderne.
L'API de reinvent-planner.cloud fournit :
- Catalogue complet : 2200+ sessions avec détails techniques et mises à jour journalières
- Flux RSS : Notifications des nouvelles sessions et modifications
- Métadonnées enrichies : Niveaux de difficulté, services AWS, topics, speakers
- Filtrage avancé : Par lieu, jour, niveau, service, domaine d'intérêt
Sans cette infrastructure de qualité, développer un serveur MCP aussi complet aurait nécessité un effort considérable de scraping et de normalisation des données. Le travail de Raphael illustre parfaitement l'importance de l'écosystème open source dans la création de solutions innovantes.
L'objectif était de créer un serveur MCP capable de transformer cette complexité en une interface simple et intuitive pour les modèles d'IA, tout en s'appuyant sur cette base de données fiable et maintenue.
Architecture Technique : Une Approche en Couches
Vue d'Ensemble du Système
Architecture en Couches Détaillée
L'architecture suit un modèle en trois couches bien défini :
Architecture Locale vs Web : Choix et Implications
Exécution Locale : Avantages et Contraintes
Le serveur MCP re:Invent fonctionne entièrement en local sur la machine de l'utilisateur, une approche qui présente des avantages significatifs mais aussi des limitations :
Avantages de l'approche locale :
- Performance optimale : Pas de latence réseau pour les requêtes
- Données privées : Événements personnels et favoris restent sur la machine
- Disponibilité offline : Fonctionnement même sans connexion internet (cache) ou dans les transports (train, avion ...)
- Coût zéro : Pas d'infrastructure serveur à maintenir
- Simplicité de déploiement : Installation directe via script
Contraintes identifiées :
- Installation requise : Chaque utilisateur doit configurer l'environnement Python
- Maintenance individuelle : Mises à jour à déployer sur chaque poste
Configuration Locale Actuelle
{
"mcpServers": {
"reinvent-planner": {
"command": "/path/to/venv/bin/python",
"args": ["./server.py"],
"cwd": "/path/to/project",
"env": {
"PYTHONPATH": "/path/to/project"
}
}
}
}
Cette configuration lance un processus Python local qui communique avec Kiro via STDIO, créant une expérience transparente pour l'utilisateur.
Composants Clés et Défis Techniques
1. Gestionnaire de Cache Intelligent
Le cache représente un défi majeur avec 2200 sessions à gérer. Il est indispensable d'avoir le moins de pression possible sur les sources de données, ceci est possible car les données ne sont pas rafraichies très fréquemment. L'approche adoptée combine cache mémoire et persistance SQLite.
Défis rencontrés :
- Gestion de la cohérence entre cache mémoire et base de données
- Optimisation des performances avec de gros volumes
- Stratégie de fallback en cas d'indisponibilité API
2. Moteur de Recherche Multi-Critères
Le moteur de recherche doit gérer 8 types de filtres différents avec des performances optimales :
# Exemple de recherche complexe
search_sessions(
query="AI machine learning",
day="Tuesday",
venue="Venetian",
level=300,
service="SageMaker"
)
Bonne pratique : Utilisation d'index SQLite optimisés et requêtes préparées pour maintenir des temps de réponse < 2 secondes même avec 2200+ résultats.
3. Synchronisateur Multi-Sources
La synchronisation de trois sources de données hétérogènes présente des défis uniques :
L'Apport de Kiro dans le Développement
Accélération du Processus de Spécification
Kiro a amélioré mon approche de ce développement en me soutenant avec une mise en forme structuré de mes idées et spécifications. j'ai ensuite pu dérouler les phases suivantes (Design puis Taches) pour implémenter cette solution. J'ai pu également tester facilement les évolutions de ce projet en connectant Kiro avec le serveur MCP que j'étais en train de concevoir.
Configuration de Kiro pour le Serveur MCP
Installation et Configuration Initiale
La mise en place du serveur MCP dans Kiro est assez simple :
1. Installation du Serveur MCP
# Cloner le projet
git clone https://github.com/sylvainbruas/reinvent-planner
cd reinvent-planner
# Installation automatique
chmod +x install.sh
./install.sh
# Ou installation manuelle
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
2. Configuration MCP dans Kiro
Créer ou modifier le fichier .kiro/settings/mcp.json :
{
"mcpServers": {
"reinvent-planner": {
"command": "./reinvent-planner/venv/bin/python",
"args": ["./reinvent-planner/server.py"],
"cwd": "./reinvent-planner",
"env": {
"PYTHONPATH": "./reinvent-planner",
"LOG_LEVEL": "INFO"
},
"disabled": false,
"autoApprove": [
"search_sessions",
"get_session_details",
"list_available_filters",
"get_schedule_by_day",
"get_rss_updates",
"sync_rss_feed",
"get_aws_events",
"sync_aws_events",
"sync_all_data",
"get_sync_history",
"add_personal_event",
"get_personal_events",
"delete_personal_event",
"add_session_to_favorites",
"get_favorite_sessions",
"remove_session_from_favorites",
"create_favorite_list",
"export_schedule_to_ical"
]
}
}
}
3. Vérification de la Connexion
Une fois configuré, Kiro affiche le serveur MCP dans le panneau des outils disponibles :
✅ reinvent-planner (18 outils disponibles)
📊 Sessions: search_sessions, get_session_details, list_available_filters, get_schedule_by_day
🔄 Sync: get_rss_updates, sync_rss_feed, get_aws_events, sync_aws_events, sync_all_data, get_sync_history
👤 Personnel: add_personal_event, get_personal_events, delete_personal_event
⭐ Favoris: add_session_to_favorites, get_favorite_sessions, remove_session_from_favorites, create_favorite_list
📤 Export: export_schedule_to_ical
Exemples de Requêtes Complexes avec Kiro
Requêtes Simples - Utilisation du Serveur MCP Seul
1. Recherche et Planification de Base
Trouve-moi toutes les sessions sur l'intelligence artificielle niveau 300 ou plus au Venetian mardi, et ajoute les 3 plus intéressantes à ma liste plan_a
Outils MCP utilisés :
- search_sessions(query="intelligence artificielle", venue="Venetian", day="Tuesday", level=300)
- add_session_to_favorites(session_id="...", list_name="plan_a", priority=1)
2. Gestion d'Événements Personnels
Ajoute une réunion équipe de 9h à 10h mardi au Treasure Island, puis montre-moi mon planning complet de la journée incluant mes événements personnels
Outils MCP utilisés :
- add_personal_event(title="Réunion équipe", start_datetime="2025-12-02 09:00", end_datetime="2025-12-02 10:00", location="Treasure Island")
- get_schedule_by_day(day="Tuesday")
- get_personal_events(day="Tuesday")
Requêtes Complexes - Combinaison avec d'Autres Sources
1. Planification Optimisée avec Géolocalisation
Je loge au Treasure Island. Trouve-moi les sessions IA mardi au Venetian, calcule les temps de trajet, vérifie la météo prévue, et suggère des restaurants proches pour déjeuner entre les sessions
Sources de données combinées :
- Serveur MCP re:Invent : Sessions et planning
- Google Maps API : Distances et temps de trajet
- OpenWeather API : Prévisions météorologiques
- Yelp/Google Places : Restaurants et avis
Réponse coordonnée :
📋 Sessions IA trouvées au Venetian - Mardi:
• 10:30-11:30 | CNS417 - Networking and observability strategies for Kubernetes
• 13:00-14:00 | AIM304 - Building AI-powered applications with Amazon Bedrock
• 15:30-16:30 | MLO315 - Scaling machine learning operations on AWS
🚶 Temps de trajet depuis Treasure Island:
• Venetian: 18 minutes à pied ou 8 minutes en navette gratuite
• Navettes toutes les 15 minutes de 7h à 23h
🌤️ Météo prévue mardi:
• Ensoleillé, 24°C, vent léger
• Aucune précipitation prévue
• Idéal pour marcher entre les hôtels
🍽️ Restaurants recommandés près du Venetian (12h-14h):
• Bouchon Bistro - Cuisine française, 4.5⭐ (5min à pied)
• TAO Asian Bistro - Cuisine asiatique, 4.3⭐ (2min à pied)
• Yardbird - Cuisine américaine, 4.4⭐ (8min à pied)
2. Analyse Comparative Multi-Critères
Compare les sessions de sécurité niveau 400 entre le Venetian et MGM mercredi, vérifie les disponibilités d'hôtels si je veux changer de lieu, et estime le budget total incluant transport et repas
Sources de données combinées :
- Serveur MCP re:Invent : Sessions de sécurité niveau 400
- Booking.com API : Disponibilités et prix hôtels
- Uber/Lyft API : Coûts de transport
- Restaurant APIs : Prix moyens des repas
Analyse générée :
🔒 Sessions Sécurité Niveau 400 - Mercredi:
📍 VENETIAN (3 sessions):
• 10:30-11:30 | SEC407 - Building robust container security pipeline
• 14:00-15:00 | SEC412 - Advanced threat detection with AWS GuardDuty
• 16:30-17:30 | SEC419 - Zero-trust architecture implementation
📍 MGM (2 sessions):
• 11:30-12:30 | SEC408 - Cryptographic best practices for cloud
• 15:00-16:00 | SEC415 - Advanced IAM policies and cross-account access
🏨 Disponibilités Hôtels (mercredi soir):
• Venetian: 299$/nuit (Deluxe Suite disponible)
• MGM: 189$/nuit (Grand King disponible)
• Treasure Island: 149$/nuit (votre réservation actuelle)
💰 Estimation Budget Changement vers Venetian:
• Surcoût hôtel: +150$ (299$ - 149$)
• Transport économisé: -25$ (moins de trajets)
• Repas sur place: +40$ (restaurants plus chers)
• TOTAL: +165$ pour optimiser votre temps
📊 Recommandation: Rester au Treasure Island
• Économie de 165$ avec seulement 15min de trajet supplémentaire
• Sessions MGM accessibles en 12min de navette
• Plus de flexibilité pour les repas et pauses
Avantages de l'Approche Multi-Sources
Kiro orchestre automatiquement les différents serveurs MCP pour fournir des réponses complètes et actionnables, transformant des requêtes complexes en plans d'action. L'IA analyse les contraintes multiples (temps, budget, préférences, disponibilités) pour proposer les meilleures solutions sans intervention manuelle.
Défis d'un Premier Projet Open Source
Qualité et Robustesse du Code
Défi : Assurer la qualité d'un projet destiné à être public et réutilisable.
Approche :
- Tests unitaires obligatoires pour chaque composant
- Gestion d'erreurs affinées
- Documentation technique complète avec exemples d'utilisation
Performance et Scalabilité
Contraintes identifiées :
- Temps de réponse < 2s avec 2200+ sessions
- Gestion mémoire efficace du cache
- Concurrence SQLite avec verrous appropriés
Solutions implémentées :
- Index de base de données optimisés
- Cache à deux niveaux (mémoire + SQLite)
- Pagination intelligente des résultats
- Requêtes asynchrones vers les sources externes
Leçons Apprises et Perspectives
Ce qui a Bien Fonctionné
Architecture MCP : Le protocole MCP s'est révélé parfaitement adapté à ce type d'application. La découverte automatique des outils et l'invocation contextuelle par l'IA créent une expérience utilisateur impresionnante.
Écosystème reinvent-planner.cloud : S'appuyer sur l'API de Raphael Manke a considérablement accéléré le développement. Cette approche illustre l'importance de réutiliser des composants de qualité plutôt que de réinventer la roue.
Méthodologie Kiro : Le workflow Requirements → Design → Tasks a structuré le développement et évité les écueils classiques des projets sans spécification claire et partagée. On a ainsi une référence pour l'évolution du projet
Choix techniques : SQLite + cache mémoire + httpx async forment une stack performante pour une application légère.
Évolutions Futures
Assistant IA : Intégration de recommandations personnalisées basées sur l'historique utilisateur et les préférences déclarées.
Écosystème MCP étendu : Développement ou intégration de serveurs MCP complémentaires (géolocalisation, hôtellerie, météo) pour créer un assistant de voyage complet.
Collaboration : Partage de listes de favoris entre participants, recommandations sociales basées sur les profils similaires.
Analytics avancées : Métriques d'utilisation pour optimiser l'expérience utilisateur et identifier les tendances de participation.
Migration progressive vers le web : Évolution de l'architecture locale vers un modèle hybride puis entièrement web pour maximiser l'accessibilité et les fonctionnalités collaboratives.
Améliorations avec les Services AWS
En tant qu'architecte AWS, l'évolution naturelle de ce projet serait d'exploiter l'écosystème AWS pour transformer le serveur MCP local en une plateforme cloud native robuste et scalable. Voici les améliorations clés que les services AWS pourraient apporter :
Architecture Cloud Native avec AWS
Infrastructure Serverless
Fonctionnalités Avancées Possibles
1. Notifications Intelligentes avec Amazon SNS
- Conflits détectés : Sessions en conflit avec événements personnels
- Nouvelles sessions : Correspondant aux intérêts utilisateur
- Optimisations : Suggestions de planning plus efficace
- Rappels contextuels : Basés sur la localisation et l'heure
2. Analytics Avancées avec Amazon QuickSight
- Tendances de participation par service AWS, niveau, lieu
- Optimisation des ressources : sessions peu sélectionnées, créneaux populaires
Migration Strategy vers AWS
Phase 1 : Lift & Shift
- Migration de la base SQLite vers DynamoDB
- Déploiement des Lambda functions pour chaque outil MCP
- Configuration d'API Gateway et authentification Cognito
Phase 2 : Cloud Native
- Intégration d'ElastiCache pour le cache distribué
- Mise en place d'EventBridge pour l'orchestration
- Déploiement du frontend avec Amplify ou S3 + Cloudfront
Phase 3 : Intelligence Augmentée
- Intégration d'Amazon Bedrock pour les recommandations
- Déploiement des analytics avec QuickSight
Cette évolution vers AWS transformerait le serveur MCP local en une plateforme cloud native robuste, capable de servir de nombreux utilisateurs simultanément tout en maintenant des coûts optimisés grâce à l'architecture serverless.
Hébergement Web avec FastMCP
Une approche plus simple et accessible consiste à transformer le serveur MCP local en service web public en utilisant des frameworks spécialisés comme FastMCP.
Avantages du Déploiement Web :
- Aucune installation requise côté client
- Configuration simple : URL + token d'authentification
- Compatibilité avec tous les clients MCP
- Mises à jour instantanées pour tous les utilisateurs
FastMCP : Framework pour Serveurs MCP Web
FastMCP est un framework Python moderne qui simplifie la création de serveurs MCP accessibles via HTTP/WebSocket, permettant de transformer rapidement un serveur MCP local en service web public.
Architecture Web Simplifiée
Cette solution est plus simple qu'une migration vers du cloud native AWS, mais nécessite une ou plusieurs instances de calcul disponible en continue. Cette solution sera donc moins économique, et ne pourra être rentable que pour un nombre élevé d'utilisateurs.
Conclusion
Ce premier projet open source m'a permis de découvrir la puissance du Model Context Protocol et de profiter de l'efficacité de Kiro pour structurer le développement. L'architecture en couches, la gestion intelligente du cache, et l'exposition de multiples outils MCP créent une solution robuste et extensible qui fonctionne bien en local.
L'expérience a également souligné l'importance de l'écosystème open source : s'appuyer sur le travail de qualité de Raphael Manke avec reinvent-planner.cloud a permis de se concentrer sur la valeur ajoutée du protocole MCP plutôt que sur la collecte de données. Je le remercie une nouvelle fois de m'avoir autorisé à m'appuyer sur son travail. Le fait qu'un projet soit open source n'autorise pas à s'approprier le travail ou les données d'autrui sans permission.
Leçons sur l'Architecture Locale vs Web
L'architecture locale actuelle présente des avantages indéniables : performance optimale, confidentialité des données, fonctionnement offline et coût zéro. Cependant, l'évolution vers une architecture web hybride ouvrirait de nouvelles possibilités :
Avantages immédiats d'une version web :
- Accessibilité universelle sans installation
- Synchronisation multi-appareils
- Maintenance centralisée et mises à jour instantanées
Vision d'Avenir
Le serveur MCP AWS re:Invent Planner démontre qu'il est possible de créer des intégrations IA sophistiquées avec des outils modernes, que ce soit en local ou dans le cloud. Plus encore, il ouvre la voie à un écosystème de serveurs MCP interconnectés : géolocalisation, hôtellerie, météo, transport. Cette vision d'assistants IA spécialisés mais coordonnés représente l'avenir des applications intelligentes.
L'architecture locale actuelle constitue une base solide pour cette évolution. Les composants développés (cache intelligent, synchronisation multi-sources, gestion d'erreurs robuste) sont transposables vers une architecture web, facilitant une migration progressive.
Recommandations pour les Architectes
Pour les architectes souhaitant se lancer dans le développement MCP, je recommande vivement de :
- Commencer local : Prototyper rapidement avec une architecture locale simple
- Utiliser une méthodologie structurée comme celle de Kiro pour maintenir la qualité
- Penser évolutivité dès le départ : patterns compatibles local/web
- S'appuyer sur l'écosystème existant plutôt que de tout reconstruire
- Planifier la migration : architecture locale comme tremplin vers le web
- Prioriser l'expérience utilisateur : performance et simplicité avant tout
Le code source complet du serveur MCP AWS re:Invent Planner est disponible sur GitHub avec documentation technique détaillée et exemples d'utilisation. Remerciements particuliers à Raphael Manke pour reinvent-planner.cloud, source de données essentielle de ce projet.







