AI & Analytics Legends La plateforme de connaissance SAP Analytics
Fiche concept

Transport HTTP Streaming MCP — pour déploiements multi-tenants en production

Transport HTTP Streaming MCP — pour déploiements multi-tenants en production — illustration de section Analytics Legends pour la base de connaissances SAP Analytics (concepts, études, Academy)

À jour au 2026-10-06

Qu'est-ce que Transport HTTP Streaming MCP ?

Le transport Streamable HTTP de MCP traite chaque requête comme indépendante par défaut, remplaçant le transport SSE-seul qui cassait la continuité de session derrière un répartiteur de charge — le seul transport qui scale horizontalement sur des conteneurs sans-état.

De quoi il s'agit

Le transport Streamable HTTP de MCP, introduit dans la révision de la spécification Model Context Protocol de mars 2025 et remplaçant le transport original tout-SSE, est le format de communication de production pour servir des outils MCP à des clients agents distants sur un réseau. Un point d'accès HTTPS unique accepte les requêtes JSON-RPC 2.0 par POST ; le serveur répond par une simple réponse JSON pour un appel d'outil ponctuel, ou fait évoluer la même connexion vers un flux d'événements en morceaux lorsqu'un outil doit pousser des résultats partiels, des mises à jour de progression, ou une souscription de longue durée. Le transport est sans état par défaut, chaque requête porte l'intégralité de sa charge JSON-RPC et peut, en principe, atterrir sur n'importe quelle instance backend, mais il prend en charge des sessions avec état via un en-tête d'identifiant de session négocié lors de la poignée de main initiale, pour les cas où une continuité entre requêtes est réellement nécessaire.

Pourquoi c'est important

  • L'ancien transport SSE-seul exigeait une connexion persistante, si bien que différents cycles de requêtes pouvaient atterrir sur des instances backend différentes et casser la session — un vrai blocage pour le scaling horizontal.
  • Streamable HTTP permet au même serveur MCP d'auto-scaler sur BTP Cloud Foundry ou Kyma, de terminer TLS au edge et de s'authentifier en tokens porteurs OAuth 2.1.
  • Les logs d'audit par-tenant de chaque appel d'outil peuvent remonter vers SAP AI Agent Hub, satisfaisant les obligations de tenue de registre de l'Art. 9 du Règlement IA UE au niveau du transport.

Points clés

  • Transport Streamable HTTP — révision du spec MCP de mars 2025, remplace le transport SSE-seul d'origine ; un point POST /mcp, upgrade optionnel vers SSE chunké pour les réponses streamées.
  • Sans-état par défaut — scaling horizontal sur BTP Cloud Foundry / Kyma ; en-tête Mcp-Session-Id optionnel pour les sessions à état quand nécessaire.
  • OAuth 2.1 imposé quand l'autorisation est prise en charge — le spec MCP 2026-07-28 l'exige de façon conditionnelle pour les transports HTTP (l'autorisation elle-même reste optionnelle au niveau protocole ; voir C226) ; la plupart des déploiements de production en ont quand même besoin.
  • Multi-tenant prêt — logs d'audit par-tenant remontés dans SAP AI Agent Hub (C211) ; obligation Art. 9-49 du Règlement IA UE déchargée au niveau du transport.
  • Anti-pattern — livrer un serveur stdio-seul puis le réécrire pour la production ; construisez HTTP dès le jour 1 quand plus d'un opérateur l'utilisera.
  • Extension Tasks (spec 2026-07-28) — pour les appels d'outils de longue durée, un serveur peut renvoyer un taskId durable au lieu de garder la connexion HTTP ouverte ; le client interroge tasks/get ou s'abonne aux notifications, survivant aux déconnexions et aux timeouts de répartiteur qu'un flux maintenu ouvert ne supporte pas.
  • Tasks vs streaming brut — une réponse SSE chunkée reste le bon choix pour un appel qui se termine en quelques secondes avec un résultat incrémental ; Tasks est le bon choix quand l'appel peut prendre des minutes à des heures ou que le client peut se déconnecter en cours d'appel.

Termes employés sur cette page

Streamable HTTP
Transport MCP introduit en 2025-03 — unique point de terminaison POST HTTPS, bascule optionnelle vers un flux text/event-stream fragmenté pour des résultats partiels ; format de communication de production.
Mcp-Session-Id
En-tête HTTP optionnel négocié à l'initialisation pour les sessions à état s'étendant sur plusieurs requêtes ; non requis pour les appels d'outils sans état.
OAuth 2.1
Profil d'authentification que MCP exige quand un serveur choisit de prendre en charge l'autorisation pour les transports HTTP (spec 2026-07-28) ; consolide les bonnes pratiques d'OAuth 2.0 et abandonne les flux implicite et ROPC. L'autorisation elle-même reste optionnelle au niveau protocole — voir C226.
Per-tenant scope
Claim OAuth restreignant l'accès d'un token aux outils et périmètres de données MCP d'un seul tenant client ; fondement de l'isolation multi-tenant.
Extension MCP Tasks
Une extension optionnelle (spec 2026-07-28, dépôt ext-tasks) permettant à un serveur de renvoyer un handle de tâche durable plutôt que de bloquer la connexion HTTP pour un appel de longue durée ; le client interroge tasks/get ou s'abonne à notifications/tasks jusqu'à ce que la tâche atteigne un état terminal.
CreateTaskResult / taskId
La réponse qu'un serveur compatible Tasks renvoie à la place d'un résultat synchrone : un taskId, un statut initial, une durée de vie (ttlMs) et un pollIntervalMs suggéré. La tâche doit être créée de façon durable avant l'envoi de la réponse, afin que le taskId survive à une déconnexion du client.
input_required (statut de tâche)
Un état du cycle de vie de l'extension Tasks indiquant que le serveur a besoin d'une saisie du client — souvent une elicitation — avant de continuer ; le client lit la carte inputRequests depuis tasks/get et répond via tasks/update, sans seconde connexion nécessaire.

Sources

  1. Model Context Protocol specification — Streamable HTTP transport (2025-03 revision)
  2. Model Context Protocol specification — Authorization (2025-06 revision, OAuth 2.1)
  3. Anthropic — Model Context Protocol SDK (TypeScript) HTTP transport reference
  4. SAP BTP — Cloud Foundry deployment of HTTPS endpoints
  5. Model Context Protocol — Tasks extension overview (spec 2026-07-28)
  6. Model Context Protocol — ext-tasks specification repository
  7. Model Context Protocol — Streamable HTTP transport (spec 2026-07-28)
  8. Model Context Protocol — stdio transport (spec 2026-07-28)
  9. Model Context Protocol — Extensions overview and client-matrix
  10. Model Context Protocol — Transports Working Group
  11. Model Context Protocol — Authorization specification (spec 2026-07-28)
  12. modelcontextprotocol/typescript-sdk — v2.3.0 release notes, 2 October 2026 (one server per request, same-origin redirects, expectedResource, Tasks on 2026-07-28)
  13. modelcontextprotocol/typescript-sdk — v2.3.1 release notes, 5 October 2026 (expectedResource in server-legacy)
  14. modelcontextprotocol/python-sdk — v2.3.0 release notes, 2 October 2026 (max_sse_event_size on the Streamable HTTP client)
  15. Model Context Protocol — Key changes, specification 2026-07-28 (sessions and SSE resumability removed from Streamable HTTP)

Fiche complète réservée aux abonnés. Ce que la fiche complète ajoute : le cadre de décision complet · la comparaison SAP · Snowflake · Databricks · Fabric · les pièges courants et leur correctif · l'aide-mémoire · les schémas d'architecture · les blocs de code · les chiffres à citer.

Ouvrir dans l'application →