La spécification de juillet 2026 de MCP supprime toute forme d'état de session de la couche protocolaire, forçant tout l'état à résider dans la fenêtre de contexte du modèle. Ce changement permet à n'importe quel serveur MCP de répondre à n'importe quelle requête, ouvrant la voie à des déploiements purement sans état (stateless) derrière des répartiteurs de charge, des fonctions serverless et des pods Kubernetes à mise à l'échelle automatique.
Pourquoi ce changement est important
Depuis sa première version, MCP (Model Communication Protocol) conservait un handshake de session léger et un en-tête Mcp-Session-Id pour suivre l'état de la conversation à travers plusieurs appels HTTP. Cette conception permettait au serveur de se souvenir des handles d'outils, des taux d'échantillonnage ou des préférences de journalisation appartenant à un client donné. Elle offrait également des flux Server-Sent Events (SSE) reprenables, de sorte qu'une connexion interrompue pouvait reprendre là où elle s'était arrêtée.
La spécification du 28 juillet 2026 élimine entièrement le handshake de session. Chaque requête transporte désormais la version du protocole et les capacités du client dans un champ _meta, et l'en-tête Mcp-Session-Id disparaît. Les champs Roots, sampling et logging sont marqués comme obsolètes. En résumé, le protocole de communication est désormais un pur modèle requête-réponse ; il n'y a plus de « session » à maintenir.
Ce que les développeurs doivent faire différemment
L'état n'est plus une préoccupation du serveur ; il réside dans la fenêtre de contexte du modèle. Lorsqu'un modèle doit se référer à une ressource externe, il doit recevoir un handle explicite du serveur dans le résultat d'un outil. La requête suivante inclut ce handle en tant qu'argument, et le modèle le traite comme n'importe quel autre token.
Comme la fenêtre de contexte est un tampon de tokens de taille fixe, chaque handle consomme de l'espace qui entre en compétition avec les prompts de l'utilisateur ou la sortie du modèle.
La fiabilité change également. Sans la reprise des flux SSE ou la redistribution des messages, un flux interrompu perd entièrement la requête. Les clients doivent redémarrer l'appel de zéro. Pour des requêtes rapides et sans état, cela est acceptable ; pour des tâches de récupération de longue durée ou des tâches d'agent multi-étapes, cela oblige les développeurs à construire leur propre logique de tentative (retry logic) ou à diviser le travail en morceaux plus petits.
Le Pilot Protocol comble la lacune
L'absence d'état de MCP est intentionnelle, mais elle laisse la couche réseau sans identité au niveau de la connexion ni sans garanties de fiabilité. Le Pilot Protocol, qui se situe sous MCP, comble cette lacune. Pilot établit l'identité une seule fois et utilise le chiffrement pour lier les paquets à l'expéditeur. Du point de vue de MCP, le client envoie simplement une nouvelle requête HTTP à chaque fois ; Pilot maintient la stabilité du transport sous-jacent.
Les deux protocoles se complètent : MCP reste léger, peu coûteux par requête et facile à mettre à l'échelle derrière n'importe quel point de terminaison HTTP, tandis que Pilot s'occupe du travail lourd que les protocoles traditionnels basés sur des sessions fournissaient auparavant.
Avantages à grande échelle
- Compatible avec les répartiteurs de charge – Aucune affinité de session n'est requise ; n'importe quel backend peut servir n'importe quelle requête.
- Prêt pour le serverless – Les fonctions peuvent démarrer à la demande, traiter une requête et s'arrêter sans état persistant.
- Mise à l'échelle automatique Kubernetes – Les pods peuvent être ajoutés ou supprimés librement ; le plan de contrôle ne suit plus les cartes de session.
Les compromis
- Surcharge de tokens – Les handles et tout autre état occupent désormais la fenêtre de contexte du modèle, entrant directement en compétition avec le prompt et la réponse.
- Exactitude pilotée par le modèle – Le modèle doit renvoyer correctement les handles ; une hallucination ou une faute de frappe peut briser le flux de travail.
- Absence de reprise intégrée – Les tâches de longue durée doivent implémenter leur propre système de points de contrôle (checkpointing) ou accepter le risque de redémarrages complets.
- Obsolescence des diagnostics – Les champs Roots, sampling et logging ont disparu, les développeurs perdent donc un crochet pratique pour une surveillance fine, à moins de l'ajouter au niveau de l'application.
L'essentiel
En effaçant l'état de session du protocole, MCP 2026-07 transforme le protocole en un pur point de terminaison HTTP pouvant être placé derrière n'importe quel répartiteur de charge, plateforme de fonctions ou nœud de bordure (edge node). L'avantage est une évolutivité évidente ; l'inconvénient est que l'état réside désormais dans la fenêtre de tokens limitée du modèle et que la fiabilité repose sur le client et la couche Pilot sous-jacente. À mesure que les agents IA passent de quelques secondes à plusieurs heures d'exécution, l'équilibre entre un prix par requête peu élevé et la pression sur le budget de tokens déterminera si le modèle sans état s'avère être une victoire durable.
