← L'édition
IASuite1 min de lecture

MCP en Go : la version 1.8.0 affine la transition vers le protocole stateless

Après l'évolution du protocole MCP vers un fonctionnement sans état, le SDK officiel Go publie sa version 1.8.0. Elle améliore la rétrocompatibilité lors des requêtes HTTP et renforce la sécurité des serveurs face à l'épuisement des ressources.

Fil « Suppression du handshake de session dans le protocole MCP » · ← Relire l'épisode du 16 septembre

Illustration de l'article — github.com
Image : github.com

Après la suppression de la négociation de session initiale dans la révision 2026-07-28 de MCP (Model Context Protocol, la norme de communication entre assistants IA et outils), le SDK (Software Development Kit, ensemble d'outils de développement) officiel en Go précise sa gestion des migrations dans sa version v1.8.0. Lorsqu'un serveur HTTP étatique (stateful, qui conserve la session en mémoire) reçoit une requête au format 2026-07-28, il ne renvoie plus une réponse HTTP 400 en texte brut, mais un code d'erreur JSON-RPC (le format de messagerie du protocole) identifié sous le numéro -32022. Ce comportement permet au client de négocier une version plus ancienne au lieu d'interrompre brutalement la connexion.

Cette version intègre également plusieurs protections contre la saturation des serveurs et offre un contrôle plus fin aux développeurs :

  • Limitation des données en entrée : les structures JSON sont rejetées au-delà de 1 000 niveaux d'imbrication, les flux SSE (Server-Sent Events, technique de transmission de données en continu) sont plafonnés via MaxEventSize, et les réponses OAuth d'enregistrement dynamique sont limitées à 1 Mo.
  • Contrôle des versions et du cache : la fonction ServerOptions.SupportedProtocolVersions permet de restreindre explicitement les versions du protocole acceptées par le serveur, tandis que ServerOptions.SetCacheable autorise la définition d'une politique de cache par requête.
  • Traitement des annulations : l'envoi des notifications d'annulation devient asynchrone par défaut, supprimant le blocage synchrone qui pouvait durer jusqu'à 5 secondes.