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

Model Context Protocol

Connectez ChatGPT et Codex à vos outils et à vos sources d’information.

Le protocole MCP (Model Context Protocol) permet à ChatGPT et à Codex d’utiliser les outils et les informations d’autres systèmes. Un serveur MCP décrit les outils disponibles et traite les requêtes qui leur sont adressées, par exemple pour consulter un ticket ou récupérer de la documentation.

Choisissez le parcours qui correspond à votre tâche :

  • Créer une connexion : utilisez Plugin Creator et Sites pour créer un plugin adapté au système de votre équipe.
  • Utiliser un serveur existant : connectez-le à ChatGPT ou à Codex en suivant les instructions de configuration pour le Web, l’application de bureau, la CLI ou l’IDE.

Exemple : consultation d’un ticket dans le système d’assistance de votre équipe.

Un plugin permet de distribuer une connexion MCP pour l’utiliser dans ChatGPT. Les plugins peuvent aussi inclure des skills contenant des instructions réutilisables. Si vous avez uniquement besoin d’instructions, consultez Créer des plugins.

Créer un plugin MCP avec Plugin Creator et Sites

Utilisez Plugin Creator pour créer et modifier votre plugin, et Sites pour héberger son serveur MCP.

Avant de commencer

Consultez d’abord le répertoire des plugins. Si vous avez besoin d’une nouvelle connexion, rassemblez la documentation de l’API de votre système et identifiez une méthode de connexion approuvée. Si nécessaire, demandez de l’aide au responsable du système.

L’exemple ci-dessous crée un plugin de consultation des tickets d’assistance. Remplacez [ticketing system] par le nom de votre système.

Vous utilisez ChatGPT Enterprise ?

Demandez au propriétaire ou à un administrateur de votre espace de travail de vérifier les autorisations sous Paramètres de l’espace de travail → Autorisations et rôles :

  • Utiliser des plugins permet de créer, de modifier et d’utiliser des plugins. Pour modifier un plugin, il faut également disposer d’un accès en modification à ce plugin.
  • L’accès à Sites permet de créer et de publier votre site.
  • Importer des plugins et Créer des plugins avec des serveurs MCP sont nécessaires au propriétaire du site qui publie le plugin utilisant MCP.

L’autorisation Utiliser des plugins est activée par défaut. Les deux autorisations de publication de plugins MCP sont désactivées par défaut. Consultez les articles sur l’accès à Sites et les autorisations relatives aux plugins.

1. Créez votre plugin

Lancez une nouvelle tâche en mode Work, sélectionnez @Plugin Creator et joignez la documentation de votre API. Décrivez la tâche :

Création de votre plugin
Créez un plugin de consultation des tickets d’assistance avec un serveur MCP hébergé sur Sites, à partir de la documentation ci-jointe de l’API de [ticketing system]. Je veux pouvoir saisir un numéro de ticket pour connaître son statut, son responsable et sa dernière mise à jour. Configurez le plugin en lecture seule et indiquez-moi ce qu’il faut pour le connecter.

Vous attendez encore l’accès à l’API ? Demandez à Plugin Creator d’utiliser des données d’exemple en attendant.

2. Connectez votre système

Dans la même conversation, demandez à Plugin Creator de connecter le serveur à l’API de votre système et de vous guider lors de l’authentification. Utilisez la méthode d’authentification approuvée par votre organisation. Ne saisissez aucun mot de passe, clé API ou autre secret dans la conversation.

Besoin d’aide ? Transmettez votre conversation avec Plugin Creator et la documentation de l’API au responsable du système ou à un développeur pour obtenir de l’aide lors de la configuration de l’accès.

Détails sur la connexion et l’hébergement

Sites gère l’authentification entre ChatGPT et votre serveur MCP. Votre serveur a également besoin d’une connexion approuvée à l’API de votre système. Cette connexion détermine les enregistrements qu’il peut consulter et les actions qu’il peut effectuer.

Pour utiliser un autre hébergeur, suivez les guides Créer un serveur MCP, puis Connecter et tester votre plugin. Pour configurer la connexion des utilisateurs, consultez le guide d’authentification.

3. Publiez et installez le plugin

Demandez à Plugin Creator de publier le serveur avec Sites et de vous fournir le lien du plugin en conservant vos paramètres d’accès actuels. Pour créer le plugin d’un site, son propriétaire doit publier le site. Si vous disposez d’un accès en modification, demandez au propriétaire de le publier.

  1. Ouvrez la fiche du plugin ou retrouvez-la sous Plugins → Personnel → Créés par vous.
  2. Sélectionnez Installer, puis Connecter, et authentifiez-vous si nécessaire.

4. Utilisez votre plugin

Lancez une nouvelle tâche en mode Work, choisissez votre plugin avec @ et demandez « Quel est le statut du ticket 123 ? » en utilisant un numéro de ticket de votre système. Vous pouvez utiliser ses outils avec ceux d’autres plugins dans la même conversation.

Partager ou modifier votre plugin

Avec Business ou Enterprise, invitez les membres de votre équipe via les options de partage du plugin. Vous devez disposer de l’autorisation Partager des plugins. Pour référencer le plugin dans le répertoire de l’espace de travail, il vous faut également l’autorisation Publier des plugins dans l’espace de travail. Consultez les autorisations de partage.

Les membres de votre équipe doivent avoir accès au plugin, à son application et au site (au minimum en lecture). Chaque personne installe le plugin et se connecte avec son propre compte. L’accès aux enregistrements dépend de la connexion du serveur à l’API.

Pour modifier ce plugin hébergé sur Sites, reprenez votre conversation avec Plugin Creator, demandez-lui de mettre à jour le site existant et publiez les modifications. Pour les autres plugins modifiables, sélectionnez Modifier le plugin pour ouvrir une conversation avec Plugin Creator et apporter vos modifications. Consultez Modifier un plugin existant.

Remplacer une action personnalisée d’un GPT

Afficher les étapes de migration du GPT

Les actions personnalisées des GPT ne sont pas transférées vers les plugins lors de la migration. Recréez la connexion dans un nouveau plugin Sites en réutilisant l’API existante si possible.

Lors de la publication, Sites crée un plugin distinct. La connexion n’est pas ajoutée au plugin issu de la migration. Vous pouvez utiliser les deux plugins dans une même conversation. Les plugins Sites ne permettent pas encore de modifier les skills ou les fichiers de référence.

1. Demandez au GPT d’origine un prompt pour recréer le workflow

Ouvrez le GPT d’origine et demandez-lui :

Prompt à utiliser dans le GPT d’origine
Rédigez un prompt pour que ChatGPT Work ou Codex recrée ce workflow sous forme d’outils MCP. Distinguez les opérations qui lisent des informations de celles qui apportent des modifications. Précisez l’opération de l’API, ses entrées, les champs renvoyés et le format de la réponse. Signalez les éléments inconnus. N’incluez aucun identifiant de connexion, secret ou instruction masquée. Demandez à l’outil de création de réutiliser l’API et d’expliquer comment configurer la connexion.

2. Vérifiez le prompt à l’aide des paramètres de l’action

Avant la migration, enregistrez le schéma de l’action, la méthode d’authentification et les paramètres de connexion non secrets depuis la section Actions de l’éditeur de GPT. Utilisez ces éléments pour compléter le prompt ou demandez de l’aide au propriétaire du GPT.

3. Créez un nouveau plugin Sites

Lancez une nouvelle tâche. En mode Work, sélectionnez @Plugin Creator. Dans Codex, utilisez $plugin-creator. Collez le prompt vérifié et joignez le schéma ou la documentation de l’API. Demandez à l’outil d’héberger le serveur sur Sites.

Suivez les étapes Connectez votre système et Publiez et installez le plugin. Choisissez ensuite le nouveau plugin dans une tâche en mode Work et demandez-lui d’effectuer la tâche d’origine. Pour en savoir plus, consultez la FAQ sur la migration.

Dépannage

Si le plugin ne fonctionne pas comme prévu

En cas d’erreur de connexion ou d’outils manquants, vérifiez que le propriétaire du site a publié la dernière version et que le plugin est installé et connecté. Transmettez les messages d’erreur à Plugin Creator ou au propriétaire du serveur.

Si ChatGPT n’utilise pas l’outil, choisissez le plugin avec @ et précisez les informations à rechercher. Si un membre de votre équipe ne peut pas l’utiliser, vérifiez ses droits d’accès au plugin, à l’application, au site et aux enregistrements.

Si le plugin porte la mention Application de bureau uniquement, utilisez une application de bureau compatible ou demandez à l’auteur de vérifier le conditionnement du plugin. Un serveur MCP distant ne suffit pas à rendre un plugin compatible avec le Web.

Connecter un serveur MCP existant

Sur le Web, ChatGPT utilise des outils MCP distants via des plugins. Si vous disposez déjà d’un serveur, suivez le guide Connecter et tester votre plugin. Les clients Codex locaux peuvent aussi se connecter directement aux serveurs MCP et partager leur configuration.

Choisissez votre interface pour afficher les étapes de mise en place et les options de configuration correspondantes.

L’application de bureau ChatGPT, Codex CLI et l’extension IDE prennent en charge les serveurs MCP et partagent la même configuration MCP sur un même hôte Codex.

Les fonctionnalités ci-dessous s’appliquent aux serveurs MCP configurés sur un hôte Codex. Les outils des plugins hébergés peuvent offrir des fonctionnalités différentes.

Fonctionnalités MCP prises en charge

  • Serveurs STDIO : serveurs exécutés dans un processus local lancé par une commande.
    • Variables d’environnement
  • Serveurs Streamable HTTP : serveurs accessibles à une adresse donnée.
    • Authentification par jeton Bearer
    • Authentification OAuth, y compris les documents de métadonnées d’identifiant client (CIMD) et l’enregistrement dynamique des clients (DCR)
    • Authentification par session ChatGPT pour les serveurs de confiance d’OpenAI
  • Instructions du serveur : Codex lit le champ MCP instructions renvoyé lors de l’initialisation et s’en sert pour guider l’utilisation de l’ensemble des outils du serveur.

Si vous développez ou maintenez un serveur MCP pour Codex, utilisez instructions pour décrire les workflows qui font appel à plusieurs outils, ainsi que les contraintes et les limites de débit communes à l’ensemble du serveur. Rédigez les 512 premiers caractères de façon à ce qu’ils se suffisent à eux-mêmes : Codex disposera ainsi des consignes essentielles au moment de décider comment utiliser le serveur.

Connecter Codex à un serveur MCP

Codex enregistre la configuration MCP dans config.toml, avec ses autres paramètres de configuration. Par défaut, ce fichier se trouve dans ~/.codex/config.toml. Vous pouvez aussi configurer des serveurs MCP pour un projet particulier dans .codex/config.toml (projets de confiance uniquement).

L’application de bureau ChatGPT, Codex CLI et l’extension IDE partagent cette configuration. Une fois vos serveurs MCP configurés, vous pouvez passer d’un client à l’autre sans reprendre la configuration.

Configuration dans l’application de bureau ChatGPT

  1. Ouvrez les Paramètres, puis sélectionnez Serveurs MCP.
  2. Sélectionnez Ajouter un serveur.
  3. Saisissez un nom, choisissez STDIO ou Streamable HTTP, puis indiquez la commande ou l’URL du serveur.
  4. Enregistrez le serveur, puis sélectionnez Redémarrer.

La liste indique quels serveurs sont activés et lesquels nécessitent OAuth. Sélectionnez S’authentifier lorsqu’un serveur OAuth exige une connexion. Dans la zone de saisie, tapez /mcp pour afficher les serveurs connectés.

Configuration avec config.toml

Pour un réglage plus fin, modifiez ~/.codex/config.toml ou le fichier .codex/config.toml d’un projet. La référence de configuration vous permet de rechercher une option parmi toutes les options MCP prises en charge.

Configurez chaque serveur MCP dans une table [mcp_servers.<server-name>] du fichier de configuration.

Serveurs STDIO

  • command (obligatoire) : commande qui lance le serveur.
  • args (facultatif) : arguments à transmettre au serveur.
  • env (facultatif) : variables d’environnement à définir pour le serveur.
  • env_vars (facultatif) : variables d’environnement à autoriser et à transmettre.
  • cwd (facultatif) : répertoire de travail à partir duquel lancer le serveur.

env_vars accepte des noms de variables ou des objets qui précisent leur source :

env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]

Pour les entrées de type chaîne et celles qui indiquent source = "local", Codex lit les variables dans son environnement local. Avec source = "remote", Codex les lit dans l’environnement d’exécution distant, ce qui nécessite le transport stdio MCP à distance.

Serveurs Streamable HTTP

  • url (obligatoire) : adresse du serveur.
  • auth (facultatif) : méthode d’authentification à essayer après les jetons Bearer et les en-têtes d’autorisation configurés. Utilisez oauth (valeur par défaut) pour employer les identifiants OAuth MCP enregistrés. Utilisez chatgpt pour employer la session ChatGPT en cours avec l’origine ChatGPT de confiance d’OpenAI. Les identifiants OAuth enregistrés servent alors de solution de repli.
  • bearer_token_env_var (facultatif) : nom de la variable d’environnement contenant le jeton Bearer à envoyer dans Authorization.
  • http_headers (facultatif) : correspondance entre les noms d’en-têtes et des valeurs statiques.
  • env_http_headers (facultatif) : correspondance entre les noms d’en-têtes et les noms de variables d’environnement dont proviennent les valeurs.
  • http_headers_helper (facultatif) : commande locale qui affiche un objet JSON associant des noms d’en-têtes à des chaînes de caractères, par exemple {"X-Auth": "temporary-token"}. Cette option est disponible pour les connexions MCP via HTTP établies depuis l’environnement local. Elle ne s’applique ni aux serveurs stdio ni aux connexions établies via un environnement d’exécution distant.

Codex met en cache les en-têtes fournis par la commande auxiliaire pour la connexion. Lorsqu’une requête POST de même origine renvoie 401 ou 403, Codex actualise les en-têtes une fois et ne réessaie que si la commande renvoie des valeurs différentes. Les jetons Bearer explicites et les identifiants OAuth ont priorité sur l’en-tête Authorization fourni par la commande. Une réponse OAuth 403 signalant une portée insuffisante ne déclenche pas d’actualisation des en-têtes.

Si aucune source ne fournit d’identifiants, Codex peut se connecter au serveur sans authentification. Exécutez séparément codex mcp login <server-name> pour lancer une connexion OAuth MCP.

Autres options de configuration

  • environment_id permet de choisir l’environnement d’un serveur stdio ou Streamable HTTP. Sa valeur par défaut est local. Pour vous connecter via un exécuteur distant, utilisez l’identifiant d’environnement enregistré pour cet exécuteur.
  • startup_timeout_sec (facultatif) : délai maximal de démarrage du serveur, en secondes. Valeur par défaut : 10.
  • tool_timeout_sec (facultatif) : délai maximal accordé au serveur pour exécuter un outil, en secondes. Valeur par défaut : 60.
  • enabled (facultatif) : utilisez false pour désactiver un serveur sans le supprimer.
  • Définissez required = true pour que le démarrage échoue si ce serveur est activé mais n’est pas prêt. Par défaut, startup_readiness = "connection" exige une connexion active. Définissez startup_readiness = "catalog" pour qu’un catalogue d’outils valide en cache suffise au démarrage pendant que le serveur établit la connexion. Les appels d’outils nécessitent toujours une connexion active.
  • enabled_tools (facultatif) : liste des outils autorisés.
  • disabled_tools (facultatif) : liste des outils interdits (appliquée après enabled_tools).
  • default_tools_approval_mode (facultatif) : mode d’approbation par défaut des outils de ce serveur. Les valeurs prises en charge sont auto, prompt, writes et approve. Le mode writes demande une approbation pour les outils qui ne sont pas déclarés en lecture seule.
  • tools.<tool>.approval_mode (facultatif) : remplace le mode d’approbation par défaut pour un outil donné.
  • tools.<tool>.output_token_limit (facultatif) : nombre strictement positif de tokens alloués à la sortie d’un outil, avant application de la marge de sérialisation habituelle de 20 %. Cette valeur remplace le seuil de troncature par défaut du modèle pour la sortie de cet outil.

Le paramètre de premier niveau mcp_optional_startup_grace_ms détermine combien de temps Codex attend les serveurs MCP facultatifs lors de la création du catalogue initial d’outils. Sa valeur par défaut est de 1000 millisecondes. Réglez-le sur 0 pour que Codex applique à chaque serveur son propre délai startup_timeout_sec. Les serveurs obligatoires conservent leur délai de démarrage.

Enregistrement des clients OAuth et URL de rappel

Si votre serveur d’autorisation exige un client OAuth préenregistré, indiquez l’identifiant du client lorsque vous ajoutez le serveur MCP :

codex mcp add example --url https://mcp.example.com --oauth-client-id my-client

Pour un client confidentiel, ajoutez également --oauth-client-secret. Lisez le secret depuis une variable d’environnement :

codex mcp add example --url https://mcp.example.com --oauth-client-id my-client --oauth-client-secret "$MCP_CLIENT_SECRET"

Cette option nécessite un identifiant client et un secret, tous deux non vides. Codex enregistre le secret sous mcp_servers.example.oauth.client_secret dans config.toml. Gardez ce fichier privé et excluez-le du contrôle de version.

Enregistrez l’URL de rappel exacte affichée par codex mcp add. Lorsque le serveur d’autorisation annonce la prise en charge de l’identification de l’émetteur, la CLI peut afficher l’URL suivante :

OAuth callback URL: http://127.0.0.1/callback

Pour le client public de cet exemple, Codex enregistre l’URL de rappel et l’identifiant client dans config.toml pour les connexions ultérieures :

[mcp_servers.example]
url = "https://mcp.example.com"

[mcp_servers.example.oauth]
client_id = "my-client"
callback_url = "http://127.0.0.1/callback"

Les clients préenregistrés nouvellement ajoutés n’utilisent une URL de rappel stable que si le serveur d’autorisation annonce authorization_response_iss_parameter_supported: true et fournit un champ issuer dans ses métadonnées. Si le serveur n’annonce pas la prise en charge de l’identification de l’émetteur, Codex ajoute à l’URL un identifiant de rappel propre au serveur, ce qui donne par exemple http://127.0.0.1/callback/XuuuHAzzHOni. Les clients existants sans URL de rappel enregistrée continuent d’utiliser leur URI de redirection contenant leur identifiant de rappel.

Lors de la connexion, Codex choisit l’URL de rappel en fonction de la configuration OAuth et des métadonnées du serveur d’autorisation :

Configuration OAuth Identification de l’émetteur URL de rappel utilisée
callback_url sans client_id Prise en charge Codex utilise l’URL de rappel configurée pour enregistrer le client.
callback_url sans client_id Non prise en charge Pour enregistrer le client, Codex ajoute l’identifiant de rappel propre au serveur à l’URL de rappel configurée.
client_id et callback_url Prise en charge Codex réutilise l’URL de rappel configurée. La réponse d’autorisation doit contenir la valeur iss correspondante.
client_id et une callback_url se terminant par le bon identifiant de rappel Non prise en charge Codex réutilise l’URL de rappel configurée telle quelle.
client_id et une callback_url sans le bon identifiant de rappel Non prise en charge Codex ignore l’URL de rappel configurée. Il utilise mcp_oauth_callback_url ou, si ce paramètre n’est pas défini, http://127.0.0.1/callback, et y ajoute l’identifiant de rappel.
client_id sans callback_url configurée Prise en charge ou non Codex utilise l’URL de rappel globale ou celle par défaut et y ajoute l’identifiant de rappel propre au serveur.

Le recours à une autre URL ne modifie pas l’URL de rappel enregistrée. Codex calcule l’identifiant de rappel à partir de l’URL du serveur MCP, en tenant compte du chemin et de la chaîne de requête. Les mêmes règles de sélection s’appliquent aux connexions automatiques et explicites.

Définissez mcp_oauth_callback_url si vous avez besoin d’un chemin de rappel personnalisé ou d’une URL d’entrée pour une Devbox distante. Les clients préenregistrés nouvellement ajoutés utilisent cette URL telle quelle si leur fournisseur prend en charge l’identification de l’émetteur. Sinon, ils utilisent l’URL configurée à laquelle s’ajoute l’identifiant de rappel propre au serveur. Enregistrez toujours l’URL de rappel exacte affichée par codex mcp add.

Pour les URL de rappel http://127.0.0.1 sans port explicite, Codex omet le port d’écoute dans l’URL qu’il affiche et enregistre, puis y insère le port d’écoute actif lors de l’autorisation. Cette substitution ne s’applique pas à localhost, aux hôtes IPv6, aux URL HTTPS ni aux URL de rappel qui contiennent déjà un port. Les serveurs d’autorisation doivent accepter des ports de bouclage variables conformément à la section 7.3 de la RFC 8252.

Définissez mcp_oauth_callback_port pour choisir un port d’écoute global fixe, ou mcp_servers.<server-name>.oauth.callback_port pour le remplacer pour un serveur donné. Un port explicite dans l’URL de rappel ne configure pas le port d’écoute. Pour un rappel direct sur l’interface de bouclage, utilisez http://127.0.0.1 sans port explicite ou configurez le même port explicite pour l’URL de rappel et pour l’écoute. Si le rappel passe par un proxy, le port de l’URL externe peut volontairement différer du port d’écoute local. Pour les URL de rappel locales, Codex écoute sur l’interface locale. Pour les autres, il écoute sur 0.0.0.0.

Codex valide toute valeur iss renvoyée avant d’échanger le code d’autorisation. Si la valeur iss ne correspond pas à celle attendue, Codex rejette systématiquement la réponse. Si le serveur annonce la prise en charge de l’identification de l’émetteur, l’absence de iss entraîne également le rejet de la réponse. Dans ces deux cas, Codex n’échange pas le code et n’essaie pas d’autre URL de rappel. La connexion échoue également si l’URL de rappel est mal formée ou si le serveur annonce la prise en charge de l’identification de l’émetteur sans fournir d’émetteur dans ses métadonnées. Consultez Authentifier les utilisateurs.

Définissez mcp_servers.<server-name>.scopes dans config.toml pour choisir les portées OAuth d’un serveur. Pour les remplacer le temps d’une connexion, exécutez codex mcp login <name> --scopes read,write. Si vous ne les précisez ni dans le fichier ni dans la commande, Codex demande les portées indiquées par le serveur dans son défi d’authentification initial WWW-Authenticate. Si ce défi ne précise aucune portée, Codex utilise les portées annoncées dans les métadonnées de la ressource protégée, lorsqu’elles y figurent.

Une liste vide (scopes = []) laisse la bibliothèque OAuth choisir les portées. La bibliothèque peut également ajouter offline_access si le serveur d’autorisation le prend en charge.

Enregistrement des clients OAuth

Codex prend en charge les documents de métadonnées d’identifiant client OAuth (CIMD) et l’enregistrement dynamique des clients (DCR). Par défaut, Codex choisit automatiquement CIMD si le serveur d’autorisation annonce client_id_metadata_document_supported: true, inclut none dans token_endpoint_auth_methods_supported et que le rappel utilise une URL de bouclage prise en charge. Sinon, Codex utilise DCR lorsque cette méthode est disponible. Si un identifiant client OAuth est configuré, il est toujours prioritaire et Codex ignore l’étape d’enregistrement du client.

Pour CIMD sans réponses liées à l’émetteur, Codex CLI utilise un document de métadonnées propre au serveur MCP, hébergé par ChatGPT :

https://chatgpt.com/oauth/codex/<callback_id>/client.json

Codex calcule <callback_id> à partir de l’URL du serveur MCP et l’inclut dans l’URI de redirection de bouclage, par exemple http://127.0.0.1:<port>/callback/<callback_id>. Le document de métadonnées déclare l’URI de bouclage correspondante sans port. Les serveurs d’autorisation doivent accepter le port choisi lors de la connexion tout en exigeant une correspondance exacte de l’hôte et du chemin, conformément à la RFC 8252. Un hôte, un chemin ou des paramètres de requête de rappel personnalisés nécessitent DCR ou un identifiant client OAuth configuré.

Codex CLI prend également en charge un document CIMD stable et partagé :

https://chatgpt.com/oauth/codex/client.json

Codex CLI utilise le document stable avec le chemin partagé /callback si le serveur d’autorisation annonce authorization_response_iss_parameter_supported: true, fournit un issuer valide dans ses métadonnées et inclut la valeur iss correspondante dans ses réponses d’autorisation. Les serveurs dont les réponses ne sont pas liées à l’émetteur utilisent le document propre au rappel.

Pour choisir la méthode d’enregistrement pour une seule connexion depuis la CLI, utilisez --oauth-client-registration :

codex mcp login <server-name> --oauth-client-registration cimd
codex mcp login <server-name> --oauth-client-registration dcr

La valeur par défaut est auto. Le choix de la méthode d’enregistrement ne s’applique qu’à la connexion en cours et n’est pas enregistré dans config.toml.

Exemples de configuration dans config.toml

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env_vars = ["LOCAL_TOKEN"]

[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE"
# Optional MCP OAuth callback overrides (used by `codex mcp login`)
mcp_oauth_callback_port = 5555
mcp_oauth_callback_url = "https://devbox.example.internal/callback"
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }
[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
disabled_tools = ["screenshot"] # applied after enabled_tools
default_tools_approval_mode = "prompt"
startup_timeout_sec = 20
tool_timeout_sec = 45
enabled = true

[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"
output_token_limit = 30000

Serveurs MCP fournis par des plugins

Les plugins installés peuvent inclure des serveurs MCP dans leur manifeste. Le plugin lance ces serveurs, de sorte que la configuration utilisateur ne définit pas leur commande de transport. Vous pouvez toutefois activer ou désactiver ces serveurs et définir les règles d’utilisation de leurs outils dans la configuration utilisateur, sous plugins.<plugin>.mcp_servers.<server>.

[plugins."sample@test".mcp_servers.sample]
enabled = true
default_tools_approval_mode = "prompt"
enabled_tools = ["read", "search"]

[plugins."sample@test".mcp_servers.sample.tools.search]
approval_mode = "approve"

Les serveurs MCP HTTP fournis par des plugins peuvent également déclarer des paramètres OAuth dans .mcp.json. Les manifestes des plugins utilisent les noms de champs en camelCase clientId, callbackUrl et callbackPort :

{
  "mcpServers": {
    "sample": {
      "type": "http",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "clientId": "my-pre-registered-client",
        "callbackUrl": "http://127.0.0.1/callback/registered"
      }
    }
  }
}

Les serveurs MCP fournis par des plugins suivent les mêmes règles de sélection de l’URL de rappel que les autres serveurs MCP. Si un plugin fournit un clientId, que son fournisseur ne prend pas en charge les rappels liés à l’émetteur et que callbackUrl ne contient pas l’identifiant de rappel propre au serveur, Codex ignore cette URL pour la connexion. Il utilise mcp_oauth_callback_url ou, si ce paramètre n’est pas défini, http://127.0.0.1/callback, et y ajoute l’identifiant de rappel. La valeur configurée de callbackUrl reste inchangée.

Le paramètre oauth.callbackPort d’un plugin a priorité sur le paramètre global mcp_oauth_callback_port. Si aucun des deux n’est défini, Codex choisit un port éphémère. Le port indiqué dans callbackUrl ne détermine pas le port d’écoute. Pour un rappel direct sur l’interface de bouclage avec un port fixe, configurez le même port aux deux endroits :

{
  "callbackUrl": "http://127.0.0.1:4321/callback/registered",
  "callbackPort": 4321
}

Avec un point d’entrée distant ou un autre proxy, le port de l’URL de rappel peut volontairement différer du port d’écoute local si le proxy transmet les requêtes au port d’écoute configuré.

Exemples de serveurs MCP utiles

Le nombre de serveurs MCP ne cesse d’augmenter. En voici quelques-uns parmi les plus courants :

  • OpenAI Docs MCP : recherchez et consultez la documentation d’OpenAI destinée aux développeurs.
  • Context7 : accédez à une documentation à jour pour les développeurs.
  • Figma en local et à distance : accédez à vos maquettes Figma.
  • Playwright : pilotez et inspectez un navigateur avec Playwright.
  • Outils de développement Chrome : pilotez et inspectez Chrome.
  • Sentry : consultez les journaux Sentry.
  • GitHub : gérez les éléments de GitHub que git ne prend pas en charge, comme les pull requests et les issues.