Aller au contenu principal
Leçon 9 sur 14 · Apps SDK et plugins ChatGPT — serveurs MCP et interfaces

Tester et déboguer

Leçon 9 sur 14 Mis à jour le 3 novembre 2026 Développeur
Sur cette page
  1. Tester par couches
  2. Le serveur MCP
  3. Le plugin complet
  4. Diagnostiquer par couche
  5. Points clés à retenir

Leçon réécrite le 3 novembre 2026 d’après les pages Connect and test your plugin et Troubleshooting de la documentation Plugins d’OpenAI. L’ancien « playground de développement » et ses commandes appartenaient au SDK inexistant de la première version du cours. Sources : Connect and test · Troubleshooting.

Tester par couches

OpenAI recommande de tester chaque capacité avant le plugin installé au complet : d’abord le serveur MCP seul, connecté à ChatGPT, puis le plugin empaqueté avec ses skills. Conservez vos prompts d’évaluation et leurs résultats tout au long du développement, pour comparer le comportement d’une version à l’autre.

Le serveur MCP

Préparer le point d’accès

Avant de tester dans ChatGPT, vérifiez que le serveur est joignable en HTTPS public — ou par un Secure MCP Tunnel —, qu’il parle streamable HTTP (en général sur /mcp), que noms, descriptions, schémas et annotations des outils sont présents, et que la découverte de l’authentification fonctionne pour les outils qui exigent un compte. Un tunnel de développement suffit pour les essais, pas pour la soumission.

Inspecter

MCP Inspector appelle vos outils directement, sans modèle :

npx @modelcontextprotocol/inspector@latest

Passez chaque outil au crible : entrées représentatives, cas limites, identifiants manquants, résultats vides. Vérifiez la validation des schémas, les erreurs d’authentification, les annotations, le comportement de confirmation et le résultat lisible par le modèle.

Évaluer le choix des outils

Une fois le serveur connecté comme plugin personnel (leçon 4), installez-le, ouvrez une nouvelle conversation, tapez @ et sélectionnez-le. Construisez un jeu d’évaluation qui contient :

  • des demandes directes, qui doivent appeler un outil précis ;
  • des demandes indirectes, qui expriment le même objectif autrement ;
  • des demandes de suivi, qui réutilisent des identifiants obtenus plus tôt ;
  • des écritures, qui exigent autorisation ou confirmation ;
  • des demandes hors périmètre, qui ne doivent appeler aucun outil.

Pour chacune, notez l’outil choisi, ses arguments, le résultat, les erreurs et le comportement de confirmation. Rejouez l’ensemble à chaque changement de nom, de description, de schéma ou d’annotation. Si le serveur renvoie une interface, testez à la fois le composant et le résultat lisible par le modèle.

Voir les échanges bruts

Pour lire les requêtes et les réponses complètes, le Playground de l’API accepte un serveur MCP : Tools → Add → MCP Server, saisissez l’adresse HTTPS, connectez-vous, puis lancez vos prompts de test.

Rafraîchir les métadonnées

Après tout changement de nom, de description, de schéma, d’annotation, d’authentification ou de ressource d’interface : redéployez ou relancez le serveur, ouvrez la connexion sur chatgpt.com/plugins, sélectionnez Refresh, vérifiez que les métadonnées annoncées ont changé, et rejouez les tests concernés dans une nouvelle conversation. Ce rafraîchissement vaut pour les serveurs connectés directement ; pour un plugin publié, les mises à jour d’outils relèvent de la revue continue (leçon 11).

Avant d’empaqueter, vérifiez que la liste d’outils correspond aux capacités annoncées, que les résultats structurés respectent les schémas de sortie, que les échecs d’authentification renvoient des erreurs utiles, que les bons prompts déclenchent les bons outils et que les mauvais n’en déclenchent aucun, et que l’interface s’affiche sans erreur dans la console en restaurant correctement son état.

Le plugin complet

Une fois le serveur au point — ou d’emblée pour un plugin fait seulement de skills —, empaquetez le plugin (leçon 10), ajoutez-le à une place de marché locale, installez-le depuis le répertoire des plugins, puis rejouez les demandes de votre inventaire de cas d’usage : directes, indirectes, de suivi, négatives, et les cas limites volontairement exclus. Vérifiez que le plugin suit les instructions des skills, utilise les bonnes ressources, accomplit chaque étape et produit un résultat utile ; que les skills appellent les bons outils ; et que l’authentification fonctionne après l’installation.

Diagnostiquer par couche

Quand quelque chose ne va pas, commencez par isoler la couche fautive : serveur, composant ou client ChatGPT.

SymptômePiste
Aucun outil listéLe serveur tourne-t-il ? L’adresse se termine-t-elle bien par /mcp ?
Données structurées, mais pas de composantL’outil porte-t-il _meta.ui.resourceUri vers une ressource enregistrée de type text/html;profile=mcp-app, qui se charge sans erreur de CSP ?
Erreurs de schémaVos modèles Python ou TypeScript correspondent-ils au outputSchema annoncé ?
Composant lentLes appels d’outil dépassent-ils quelques centaines de millisecondes ? Profilez, mettez en cache
Composant qui ne se charge pasConsole du navigateur : violation de CSP, bundle incomplet ?
État perdu (glisser-déposer, édition)Appelez window.openai.setWidgetState après chaque mise à jour et restaurez depuis window.openai.widgetState au montage
Mise en page cassée sur mobileLisez window.openai.displayMode et window.openai.maxHeight ; évitez hauteurs fixes et actions au survol
L’outil n’est jamais choisiRéécrivez la description en « À utiliser quand… », revoyez les prompts de démarrage
Le mauvais outil est choisiPrécisez les outils voisins, indiquez les cas exclus, scindez un outil trop large
Erreurs 401Joignez WWW-Authenticate à la réponse ; vérifiez émetteur et audience
invalid_client sur une connexion existanteLe client OAuth enregistré existe-t-il encore ? Restaurez-le plutôt que d’en créer un autre
Tunnel ngrok qui expireRelancez-le, vérifiez que le serveur local tourne ; en production, un hébergement stable avec sondes de santé
Streaming cassé derrière un proxyLe répartiteur ou le CDN doit laisser passer le streaming HTTP sans le mettre en tampon

Si le problème persiste, rassemblez les journaux du serveur, la console du composant, la transcription des appels d’outil et des captures, notez le prompt utilisé, et transmettez le tout à votre contact chez OpenAI.

Points clés à retenir

  • Testez par couches : serveur seul (Inspector, puis ChatGPT), puis plugin complet
  • Un jeu d’évaluation : demandes directes, indirectes, de suivi, d’écriture et hors périmètre
  • Le Playground de l’API montre les échanges MCP bruts
  • Refresh après chaque modification de métadonnées, puis nouvelle conversation
  • En cas de problème, isolez d’abord la couche : serveur, composant ou client