Logo Teamwork

AWS re:Invent 2025 : MCP Server Open Source pour la Planification

Published on
Authors
Version audio
Chargement...
AWS re:Invent 2025 : MCP Server Open Source pour la Planification - Guide 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

Vue d'Ensemble du Système MCP re:Invent

Architecture en Couches Détaillée

L'architecture suit un modèle en trois couches bien défini :

Architecture en Trois Couches

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 :

Synchronisation des Sources de Données

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 :

  1. search_sessions(query="intelligence artificielle", venue="Venetian", day="Tuesday", level=300)
  2. 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 :

  1. add_personal_event(title="Réunion équipe", start_datetime="2025-12-02 09:00", end_datetime="2025-12-02 10:00", location="Treasure Island")
  2. get_schedule_by_day(day="Tuesday")
  3. 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
Écosystème MCP Étendu

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

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

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

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.