Model Context Protocol Advanced Topics
← Toutes les leçons
Leçon 09Model Context Protocol Advanced Topics

State and the StreamableHTTP transport

Audio récapitulatif

Pas de récapitulatif audio pour cette leçon.

Notes de cours

Concepts Clés : Flags de Réponse (Stateless et JSON)

Contexte : Mise à l'échelle (Scaling) et Load Balancer

  • Problème : Un serveur MCP populaire peut nécessiter une mise à l'échelle horizontale (plusieurs copies de serveur).
  • Solution : Utiliser un équilibreur de charge (Load Balancer) pour répartir les requêtes.
  • Défi : Maintenir la cohérence des sessions (ex: requêtes de type SSE) lorsque les requêtes sont routées aléatoirement vers différents serveurs.

Flag stateless (Sans état)

  • Fonction : Lorsque ce flag est mis à true, le serveur ne maintient plus de session (pas d'ID de session).
  • Conséquences Négatives :
  • Le serveur ne peut plus suivre un client spécifique.
  • Le chemin de réponse SSE (Server-Sent Events) ne peut plus être utilisé pour envoyer des requêtes au client.
  • Fonctionnalités comme l'échantillonnage (sampling), le journal de progression ou les abonnements sont impossibles.
  • Avantages :
  • Le serveur n'a pas besoin de passer par l'initialisation du client (pas de requêtes d'initialisation et de notification de suivi).
  • Réduction du trafic reçu par le serveur.
  • Trade-off : Gain en performance/simplicité contre perte de fonctionnalités de session.

Flag json response (Réponse JSON)

  • Fonction : Lorsque ce flag est mis à true, les requêtes POST envoyées au client n'ont pas le streaming activé.
  • Conséquences :
  • Le client attend la réponse finale complète.
  • Aucun message intermédiaire (comme les logs ou les étapes de connexion) n'est reçu pendant le traitement de la requête (ex: appel d'outil).
  • Trade-off : Réception de données en bloc (final) contre perte du flux de données en temps réel (streaming).

Recommandation de Développement

  • Lors du développement local, utilisez le transport qui sera utilisé en production (ex: HTTP streamable) pour éviter des problèmes de configuration ultérieurs.

Takeaways

  • L'utilisation d'un équilibreur de charge (Load Balancer) pour la mise à l'échelle nécessite de gérer la cohérence des sessions.
  • Le flag stateless désactive le suivi de session, ce qui améliore la performance mais empêche l'utilisation de SSE et le suivi client.
  • Le flag json response désactive le streaming des requêtes POST, forçant le client à attendre la réponse finale complète.
  • Le choix entre les deux flags représente un compromis entre la performance/simplicité et la fonctionnalité de session/flux de données en temps réel.
  • Il est recommandé d'utiliser le transport de production lors du développement local pour éviter les problèmes de configuration.
Cartes mémo 9 cartes
Question
cliquez pour révéler · ←/→
Réponse
cliquez pour retourner
Exporter vers Anki (.tsv) ↓
Vérification des connaissances 0 questions

No quiz for this lesson yet.