For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale

Soumettez votre plugin Claude Code à OpenAI

Convertissez un plugin ou un connecteur Claude Code en un plugin que vous pouvez soumettre à OpenAI.

Si vous publiez déjà un plugin ou un connecteur Claude Code, choisissez la procédure de soumission selon qu’il contient des skills, un serveur MCP ou les deux.

Ce dont vous disposezÉléments à soumettre
Des skills sans serveur MCPImportez un plugin contenant uniquement des skills.
Un point de terminaison MCP HTTPS publicCréez une soumission MCP distante. Incluez les éventuels skills dans le même brouillon.
Un serveur MCP localDéployez-le à une URL HTTPS publique. Si ce n’est pas possible, adressez-vous à votre contact OpenAI pour la prise en charge du MCP local.

Claude utilise des procédures de soumission distinctes pour les plugins Claude Code et les connecteurs MCP. OpenAI utilise un seul package de plugin pouvant contenir des skills, des serveurs MCP ou les deux. Les fiches de la marketplace Claude et les approbations obtenues ne sont pas transférées.

Si votre plugin contient des skills, passez en revue leurs instructions en suivant les recommandations sur le respect des instructions avant de les soumettre via l’une ou l’autre des procédures.

Soumettez un plugin contenant uniquement des skills

Choisissez cette procédure lorsque le plugin n’a pas besoin de serveur MCP.

Vérifiez ce qu’OpenAI prend en charge

Contenu de votre plugin ClaudeMarche à suivre
skillsConservez chaque skill avec son SKILL.md, ses scripts, ses références et ses ressources. Pour être importée directement, une archive Claude doit contenir au moins un skill à l’emplacement skills/<skill-name>/SKILL.md.
Répertoires de skills personnalisés déclarés dans le manifesteConservez les répertoires et leurs déclarations dans le manifeste au sein de l’archive.
Skills faisant explicitement référence à ClaudeRemplacez les références propres à Claude dans les instructions des skills par des formulations indépendantes du fournisseur, comme « le modèle ». Ne conservez un nom de produit que lorsque l’instruction s’applique réellement à ce produit.
commands, commands/, agents ou agents/Convertissez les comportements réutilisables en skills. Transformez chaque commande Markdown en skill, déplacez les procédures réutilisables des agents dans des skills et intégrez les instructions de persona utiles au skill concerné.
hooks ou hooks/hooks.jsonAdaptez les hooks de commande à l’environnement d’exécution des hooks Codex, y compris dans ChatGPT Work et Codex. Les scripts des hooks doivent être disponibles dans l’environnement d’exécution et reconnus comme fiables avant de s’exécuter. Ne dépendez pas des hooks dans le mode Discussion standard ; Codex n’exécute pas les gestionnaires de hooks de type prompt ou agent.
userConfig ou ${user_config.*}OpenAI n’exécute pas les invites d’installation de Claude et ne substitue pas les variables user_config par leurs valeurs. Suivez la section Remplacez userConfig de Claude. Si le plugin a besoin d’identifiants ou de paramètres utilisateur persistants, utilisez un serveur MCP.
Skills créant ou mettant à jour des artefacts dynamiques ClaudeOpenAI ne prend pas actuellement en charge les artefacts dynamiques Claude. Supprimez les instructions qui nécessitent de créer, de rouvrir, d’actualiser ou de mettre à jour un artefact. Renvoyez plutôt le contenu sous-jacent sous forme de réponse ordinaire dans la conversation ; par exemple, affichez les tableaux des artefacts sous forme de tableaux standard. Le HTML propre aux artefacts, la persistance, le comportement d’actualisation et les interactions ne sont pas conservés.
bin/, settings, settings.json, CLAUDE.md ou .claude/settings*.jsonConservez les utilitaires et les instructions nécessaires dans le plugin. Appelez les exécutables fournis à l’aide de chemins relatifs au package et supprimez les paramètres propres à Claude.
outputStyles, lspServers, experimental.themes, experimental.monitors, channels ou dependenciesDéplacez les comportements essentiels dans des skills, puis supprimez la déclaration Claude. Contactez votre partenaire OpenAI si le workflow principal nécessite de recevoir des messages provenant de canaux.
.claude-plugin/plugin.jsonConservez le manifeste pour importer directement une archive Claude. Le portail le convertit en .codex-plugin/plugin.json.
.claude-plugin/marketplace.json, .mcp.json, mcpServers, .app.json ou appsNe vous appuyez pas sur ces fichiers ou déclarations. L’importation d’un plugin contenant uniquement des skills exclut la configuration du serveur MCP, et vous ne pouvez pas soumettre une intégration de serveur MCP existante par référence.

Préparez et importez l’archive

  1. Vérifiez que la racine de l’archive, ou son unique répertoire de premier niveau, contient .claude-plugin/plugin.json avec un champ description non vide et au moins un skill valide à l’emplacement skills/<skill-name>/SKILL.md.
  2. Ouvrez le portail de soumission de plugins, sélectionnez Créer un plugin, choisissez Skills uniquement et importez l’archive.
  3. Vérifiez le fichier .codex-plugin/plugin.json généré. Le portail ajoute les valeurs par défaut manquantes de l’interface et normalise les champs de texte lors de la conversion.
  4. Testez les skills importés dans un environnement vierge. Vérifiez que chaque skill peut trouver les fichiers et les exécutables qu’il référence et ne dépend pas de packages locaux, de fichiers ou d’identifiants non déclarés.
  5. Renseignez les champs de la fiche et ceux destinés à la révision, corrigez tous les problèmes détectés par l’analyse et soumettez le brouillon.

Si l’archive ne remplit pas les conditions d’importation directe, suivez Préparez le package de votre plugin pour créer le manifeste OpenAI et la structure du package. Consultez Créer des skills pour connaître les exigences relatives aux skills.

Soumettez un plugin avec un serveur MCP distant

Choisissez cette procédure lorsque le serveur dispose d’une URL HTTPS publique et stable qu’OpenAI peut atteindre. Le serveur pouvait être local dans le plugin Claude ; pour cette soumission, l’essentiel est de l’avoir déployé en tant que service distant.

Vérifiez ce qu’OpenAI prend en charge

Contenu de votre intégration ClaudeMarche à suivre
Un serveur MCP distantRéutilisez l’implémentation du serveur. Soumettez un point de terminaison HTTPS public et stable utilisant Streamable HTTP.
Un serveur MCP local ou une extension Claude Desktop (.mcpb)Déployez le serveur MCP à une URL HTTPS publique. Si ce n’est pas possible, adressez-vous à votre contact OpenAI pour la prise en charge du MCP local. Le portail n’accepte pas les fichiers .mcpb.
Skills ou répertoires de skills personnalisés déclarés dans le manifesteIncluez les skills dans la même soumission Avec MCP . Conservez chaque SKILL.md avec ses scripts, ses références et ses ressources.
Skills faisant explicitement référence à ClaudeRemplacez les références propres à Claude dans les instructions des skills par des formulations indépendantes du fournisseur, comme « le modèle ». Ne conservez un nom de produit que lorsque l’instruction s’applique réellement à ce produit.
commands, commands/, agents ou agents/Convertissez les comportements réutilisables en skills. Transformez chaque commande Markdown en skill, déplacez les procédures réutilisables des agents dans des skills et intégrez les instructions de persona utiles au skill concerné.
hooks ou hooks/hooks.jsonAdaptez les hooks de commande à l’environnement d’exécution des hooks Codex, y compris dans ChatGPT Work et Codex. Les scripts des hooks doivent être disponibles dans l’environnement d’exécution et reconnus comme fiables avant de s’exécuter. Ne dépendez pas des hooks dans le mode Discussion standard ; Codex n’exécute pas les gestionnaires de hooks de type prompt ou agent.
userConfig ou ${user_config.*}OpenAI n’exécute pas les invites d’installation de Claude et ne substitue pas les variables user_config par leurs valeurs. Suivez la section Remplacez userConfig de Claude pour transférer chaque valeur vers une entrée explicite, OAuth, un stockage hébergé ou une configuration locale de Codex.
Skills créant ou mettant à jour des artefacts dynamiques ClaudeOpenAI ne prend pas actuellement en charge les artefacts dynamiques de Claude. Supprimez les instructions qui nécessitent de créer, de rouvrir, d’actualiser ou de mettre à jour un artefact. Renvoyez plutôt le contenu sous-jacent sous forme de réponse classique dans la conversation ; par exemple, affichez les tableaux des artefacts sous forme de tableaux standard. Le code HTML, la persistance, le comportement d’actualisation et les interactions propres aux artefacts ne sont pas conservés.
.app.json, apps ou une intégration existante de serveur MCPSoumettez directement le point de terminaison du serveur MCP. Vous ne pouvez pas soumettre une intégration existante de serveur MCP en y faisant référence.
outputStyles, lspServers, experimental.themes, experimental.monitors, channels ou dependenciesDéplacez les comportements essentiels dans des skills ou des outils MCP, puis supprimez la déclaration Claude. Contactez votre partenaire OpenAI si le workflow principal nécessite la réception de messages provenant de canaux.

Préparez et soumettez le serveur MCP

  1. Déployez le serveur MCP sur son point de terminaison HTTPS de production avec Streamable HTTP. Utilisez OAuth 2.1 lorsque le serveur accède aux données privées d’un utilisateur ou effectue des actions pour son compte. Suivez le guide Authentifier les utilisateurs pour connaître les exigences du produit prises en charge et la spécification d’autorisation MCP.
  2. Ajoutez des schémas d’outils précis et des annotations de sécurité. Testez chaque outil pour vérifier qu’il se connecte, s’authentifie, renvoie des résultats dans la structure attendue et demande la confirmation prévue pour les actions d’écriture ou de destruction.
  3. Convertissez les commandes ou les agents en skills et assurez-vous que les skills ne dépendent pas de paquets locaux, de fichiers ou d’identifiants non déclarés.
  4. Ouvrez le portail de soumission de plugins, sélectionnez Créer un plugin, choisissez Avec MCP et soumettez le point de terminaison de production. Le cas échéant, ajoutez les skills convertis au même brouillon.
  5. Vérifiez le domaine du serveur, configurez l’authentification si le serveur exige une connexion, remplissez les champs de présentation et de révision, corrigez tous les problèmes signalés par l’analyse, puis soumettez le brouillon.

Prévoyez ces deux étapes de configuration avant de soumettre votre plugin :

  • Vérification du domaine : vous devez pouvoir servir le token exact fourni par le portail à l’emplacement /.well-known/openai-apps-challenge sur l’hôte MCP ou un hôte parent autorisé. Effectuez la vérification lorsque le portail vous y invite. Consultez Configurer la soumission MCP.
  • OAuth et restrictions de domaine de l’espace de travail : si le plugin utilise OAuth, exposez un point de terminaison UserInfo qui renvoie l’attribut email de l’utilisateur et email_verified: true. Déclarez et activez les portées openid et email. Consultez Prendre en charge les restrictions de domaine de l’espace de travail.

Consultez les exigences de révision des serveurs MCP distants avant de soumettre votre plugin.

Remplacez userConfig de Claude

Les plugins OpenAI n’exécutent pas les invites d’installation userConfig de Claude et ne résolvent pas les références ${user_config.*}. Supprimez ces références et remplacez chaque valeur selon l’usage qu’en fait le plugin.

Ce que contrôle la valeurSolution de remplacement pour OpenAI
Un choix qui peut varier d’une tâche à l’autreAjoutez un paramètre d’entrée explicite au skill ou à l’outil MCP. Ne demandez la valeur que lorsque le workflow en a besoin.
Un identifiant d’authentification pour un service distantUtilisez OAuth 2.1 via le serveur MCP distant. Ne placez aucun secret dans l’archive du skill, le manifeste, les instructions ou les valeurs par défaut.
Une préférence à conserverStockez-la dans le service hébergé et associez-la à l’utilisateur authentifié. Permettez à l’utilisateur de la mettre à jour au moyen d’un workflow explicite ou d’un paramètre d’entrée d’outil.
Un paramètre pour un script ou un hook exécuté localement dans CodexUtilisez une variable d’environnement ou un fichier de configuration documenté. Vérifiez le paramètre avant de l’utiliser et, s’il manque, renvoyez une erreur indiquant comment résoudre le problème. Ne rendez pas ce paramètre local indispensable au workflow principal dans ChatGPT.
Une valeur fixe identique pour tous les utilisateursPlacez une valeur par défaut non secrète dans les instructions du skill ou dans la configuration du service hébergé.

Si un plugin composé uniquement de skills a besoin d’un identifiant d’authentification ou d’un paramètre à conserver entre les conversations, ajoutez un serveur MCP. Utilisez OAuth et un stockage hébergé pour le serveur distant. Si la valeur ne concerne que la tâche en cours, conservez un plugin composé uniquement de skills et recueillez-la au moyen d’un paramètre d’entrée explicite du skill.

Respectez les exigences de soumission

Avant de soumettre l’un ou l’autre type de plugin, obtenez un accès en écriture à la Gestion des applications dans l’organisation OpenAI qui en sera propriétaire. Vous devez également faire vérifier votre identité ou celle de votre entreprise. Chaque plugin doit passer par le processus de révision d’OpenAI.

Contactez votre partenaire OpenAI avant la soumission si les fonctionnalités essentielles du plugin nécessitent une exécution locale, un accès arbitraire aux fichiers sur l’ordinateur de l’utilisateur, un accès au matériel ou aux applications, un fonctionnement hors ligne ou la réception de messages provenant de canaux. Ces cas peuvent nécessiter une révision propre au produit.

Pour connaître le workflow complet du portail, consultez Soumettre des plugins. Si le portail signale un code de validation du paquet, consultez la référence des erreurs de soumission.