DevOps et supervision

ChatGPT utilise désormais des webhooks standard pour la livraison en temps réel des événements MCP

La nouvelle extension MCP Events d'OpenAI permet à ChatGPT de réagir aux changements des systèmes externes via des webhooks standardisés, introduisant des exigences spécifiques de sécurité et de gestion du cycle de vie pour les développeurs.

Illustration de flux de données sécurisés reliant un serveur à une interface de chat IA.
Illustration créée pour cet article

Traduit automatiquement depuis l’original en anglais.

OpenAI a intégré le support des événements du Model Context Protocol (MCP) dans ChatGPT, permettant à l'assistant IA de s'abonner aux mises à jour en temps réel provenant de systèmes externes. Cette implémentation, détaillée dans une analyse technique publiée par Svix le 21 octobre 2026, repose entièrement sur des webhooks standard pour la livraison des événements. Les développeurs créant des serveurs MCP doivent désormais gérer les cycles de vie des abonnements, la vérification cryptographique et des protocoles de sécurité stricts pour garantir que leurs applications peuvent pousser des données vers ChatGPT en toute sécurité.

Ce qui s'est passé

Le Model Context Protocol a évolué d'un modèle sans état requête-réponse vers une architecture pilotée par les événements. MCP Events est une extension qui permet à un client IA, tel que ChatGPT, de s'abonner à des occurrences spécifiques dans un autre système, comme un nouveau commentaire sur un document, une pull request fusionnée ou une alerte d'incident critique. Lorsque ces événements se produisent, le serveur MCP notifie le client, qui peut alors déclencher des actions automatisées ou des appels d'outils. Bien que la spécification définisse trois modes de livraison — sondage périodique (polling), flux push et webhooks — ChatGPT ne prend actuellement en charge que la livraison par webhook.

Pour prendre en charge cela, un serveur MCP doit déclarer ses capacités événementielles et implémenter trois nouvelles méthodes : events/list, events/subscribe et events/unsubscribe. La méthode events/list décrit les événements disponibles, y compris leurs noms, descriptions et schémas pour les arguments et les charges utiles. Lorsqu'un utilisateur demande à ChatGPT de surveiller une ressource spécifique, le client envoie une demande d'abonnement contenant une URL de rappel, un secret de signature généré par le client et une valeur de durée de vie (TTL). Le serveur doit valider cette demande, vérifier le point de terminaison de rappel, puis commencer à publier des événements signés sur l'URL fournie chaque fois que la condition spécifiée est remplie.

Détails clés

  • ChatGPT utilise exclusivement la livraison par webhook pour les événements MCP, obligeant les serveurs à envoyer des événements par POST vers une URL de rappel fournie par le client.
  • Les abonnements sont temporaires ; ils expirent en fonction d'un paramètre ttlMs et doivent être rafraîchis par le client avant la date limite.
  • Chaque charge utile d'événement inclut un eventId pour la déduplication, un horodatage, des données et un curseur pour reprendre après des interruptions.
  • La vérification nécessite une poignée de main défi-réponse où le point de terminaison doit signer un défi avec une clé dérivée du secret d'abonnement.
  • Les serveurs doivent mettre en œuvre une protection SSRF en validant les adresses IP au moment de la livraison et en ne suivant jamais les redirections.
  • Les charges utiles des événements doivent être minimales, ne contenant que des identifiants et des résumés, afin de réduire le risque d'attaques par injection de prompt.

Contexte

Les webhooks sont un modèle courant pour la communication entre serveurs, où une application envoie des requêtes HTTP POST à une autre lorsque des événements spécifiques se produisent. Standard Webhooks est une spécification ouverte créée en 2023 qui définit comment ces requêtes doivent être signées et structurées pour assurer la sécurité et la fiabilité. MCP Events s'appuie directement sur cette base, utilisant le même schéma de signature HMAC-SHA256 et la même structure d'en-têtes. Cet alignement signifie que les bibliothèques et outils existants conçus pour Standard Webhooks peuvent largement être réutilisés pour les intégrations MCP, réduisant la charge d'ingénierie pour les développeurs.

Le passage à des interactions pilotées par les événements répond aux limitations des systèmes basés sur le sondage périodique, où les clients doivent demander répétitivement des mises à jour. En poussant les événements uniquement lorsque des changements se produisent, les systèmes réduisent la latence et le trafic réseau inutile. Cependant, cela introduit une complexité autour de la fiabilité et de la sécurité. Les serveurs doivent garantir la livraison grâce aux tentatives successives, gérer gracieusement les événements dupliqués et s'assurer que les acteurs malveillants ne peuvent pas enregistrer des URLs de rappel arbitraires pour lancer des attaques contre des tiers.

Pourquoi c'est important

Pour les équipes exécutant des logiciels auto-hébergés ou construisant des outils internes, la prise en charge des événements MCP ouvre de nouvelles avenues pour l'intégration de l'IA. Au lieu de compter sur des vérifications périodiques ou des déclencheurs manuels, vos systèmes peuvent notifier proactivement ChatGPT des changements importants. Cela permet des workflows plus réactifs et autonomes, tels que la mise à jour automatique de la documentation lors de modifications de code ou l'alerte des équipes de support lorsqu'un ticket prioritaire est créé. Cependant, cela exige également une attention rigoureuse à la sécurité et à la stabilité de l'infrastructure.

L'exigence d'abonnements éphémères et de secrets générés par le client change la manière dont les points de terminaison webhook sont gérés. Contrairement aux webhooks traditionnels qui peuvent persister indéfiniment, les abonnements MCP doivent être suivis, rafraîchis et nettoyés automatiquement. Ne pas gérer correctement l'expiration peut entraîner des événements manquants ou des fuites de ressources. De plus, les implications sécuritaires liées à l'acceptation d'URLs de rappel externes exigent une logique de validation robuste pour prévenir la falsification de requêtes côté serveur (SSRF) et les attaques par injection de prompt, où des données d'événements malveillantes pourraient manipuler le comportement de l'IA.

Ce que vous pouvez faire

  • Implémentez les méthodes events/list, events/subscribe et events/unsubscribe dans votre serveur MCP conformément à la spécification en cours de rédaction.
  • Utilisez les bibliothèques Standard Webhooks pour gérer la signature et la vérification, en assurant la compatibilité avec le format attendu par ChatGPT.
  • Validez toutes les URLs de rappel lors de l'abonnement en effectuant une poignée de main défi-réponse qui exige que le point de terminaison prouve la propriété du secret.
  • Appliquez des protections SSRF en résolvant et en validant les adresses IP au moment de la livraison de l'événement, et non seulement au moment de l'abonnement.
  • Gardez les charges utiles des événements petites et sûres, en envoyant uniquement des identifiants et des résumés plutôt que le contenu complet, afin d'atténuer les risques d'injection de prompt.
  • Maintenez un journal d'événements en ajout uniquement (append-only) pour prendre en charge les curseurs et garantir qu'aucun événement n'est perdu lors des redémarrages du serveur ou des lacunes d'abonnement.

Autres actualités

Toutes les actualités