Une mise à jour Composer peut faire passer une intégration laravel/mcp 0.9 de l’état fonctionnel à des réponses HTTP 400 sans modification du code applicatif. Avec la version 1.0, chaque requête POST doit contenir des valeurs cohérentes pour `MCP-Protocol-Version` et `Mcp-Method`. Des appels comme `tools/call` doivent aussi fournir `Mcp-Name`. Le serveur renvoie alors le code JSON-RPC `-32020`, même si les classes de tools et le serveur n’ont pas changé.

terminal
grep -rn "sessionId()\|setSessionId(\|SessionInitialized" app/

La version 1.0 adopte la révision MCP 2026-07-28. Le handshake `initialize` cède la place à `server/discover`, et le serveur ne conserve plus d’état de session. Les requêtes HTTP et les messages stdio transportent la version du protocole ainsi que les capacités du client via `params._meta`. Les API `sessionId()`, `setSessionId($id)` et `SessionInitialized` disparaissent. Le contexte doit être transmis explicitement dans les arguments des tools ou dans `_meta`, par exemple avec un `correlation_id`. Cette architecture permet de répartir les requêtes sur plusieurs instances sans session persistante ni stockage partagé.

Les clients plus anciens disposent toujours d’un mode de compatibilité. Un message `initialize` utilisant les révisions `2025-06-18` ou `2025-11-25` peut encore être négocié. Les serveurs utilisés par des agents externes doivent donc couvrir les deux générations dans leurs tests.

La découverte des tools devient également configurable. Un agent peut appeler `search_tools` puis `execute_tools`, au lieu de charger tous les schémas lors de la connexion. Le serveur peut toujours déclarer des classes comme `SearchOrders` et `GetCustomer` dans son tableau `tools`. Le serveur MCP de Statamic en présente désormais trois à la connexion et conserve huit autres derrière la recherche. Les indications de cache peuvent signaler qu’une réponse est réutilisable, préciser sa durée et définir son périmètre de confidentialité. Le client MCP de Laravel applique ces indications lorsqu’il consomme un autre serveur.

PKCE est désormais obligatoire dans les intégrations OAuth. Si le serveur d’autorisation ne publie pas `code_challenge_methods_supported`, `redirect()` échoue avant l’envoi de l’utilisateur vers le point d’autorisation. Les Client ID Metadata Documents deviennent la méthode recommandée pour l’enregistrement. Dynamic Client Registration reste utilisable, mais il est déprécié dans MCP 2026-07-28.

Le guide de mise à niveau doit précéder la modification du package. Il faut repérer les symboles de session supprimés, déplacer le contexte vers des identifiants explicites, vérifier les métadonnées OAuth des services tiers, décider quels tools doivent apparaître dès la connexion et tester les deux versions du protocole. Un simple update Composer peut sinon faire échouer tous les appels `tools/call` avec `-32020`.