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 MCP | Importez un plugin contenant uniquement des skills. |
| Un point de terminaison MCP HTTPS public | Créez une soumission MCP distante. Incluez les éventuels skills dans le même brouillon. |
| Un serveur MCP local | Dé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 Claude | Marche à suivre |
|---|---|
skills | Conservez 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 manifeste | Conservez les répertoires et leurs déclarations dans le manifeste au sein de l’archive. |
| Skills faisant explicitement référence à Claude | Remplacez 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.json | Adaptez 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 Claude | OpenAI 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*.json | Conservez 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 dependencies | Dé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.json | Conservez 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 apps | Ne 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
- Vérifiez que la racine de l’archive, ou son unique répertoire de premier niveau, contient
.claude-plugin/plugin.jsonavec un champdescriptionnon vide et au moins un skill valide à l’emplacementskills/<skill-name>/SKILL.md. - Ouvrez le portail de soumission de plugins, sélectionnez Créer un plugin, choisissez Skills uniquement et importez l’archive.
- Vérifiez le fichier
.codex-plugin/plugin.jsongénéré. Le portail ajoute les valeurs par défaut manquantes de l’interface et normalise les champs de texte lors de la conversion. - 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.
- 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 Claude | Marche à suivre |
|---|---|
| Un serveur MCP distant | Ré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 manifeste | Incluez 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 à Claude | Remplacez 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.json | Adaptez 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 Claude | OpenAI 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 MCP | Soumettez 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 dependencies | Dé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
- 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.
- 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.
- 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.
- 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.
- 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-challengesur 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
emailde l’utilisateur etemail_verified: true. Déclarez et activez les portéesopenidetemail. 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 valeur | Solution de remplacement pour OpenAI |
|---|---|
| Un choix qui peut varier d’une tâche à l’autre | Ajoutez 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 distant | Utilisez 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 à conserver | Stockez-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 Codex | Utilisez 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 utilisateurs | Placez 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.