Model Context Protocol
Donnez à Codex accès à des outils et à du contexte tiers
Model Context Protocol (MCP) connecte les modèles à des outils et à du contexte. Utilisez-le pour donner à ChatGPT ou Codex accès à de la documentation tierce, ou pour leur permettre d’interagir avec des outils de développement tels que votre navigateur ou Figma.
ChatGPT web peut utiliser des outils distants reposant sur MCP et fournis par des plugins. Les clients Codex locaux peuvent également se connecter directement à des serveurs MCP et partager leur configuration.
L’application de bureau ChatGPT, Codex CLI et l’extension IDE prennent en charge les serveurs MCP et partagent la configuration MCP pour un même hôte Codex.
Les fonctionnalités de serveur prises en charge ci-dessous s’appliquent aux serveurs MCP configurés sur un hôte Codex. Les outils de plugins hébergés peuvent proposer des fonctionnalités différentes.
Fonctionnalités MCP prises en charge
- Serveurs STDIO : serveurs exécutés en tant que processus local (lancé par une commande).
- Variables d’environnement
- Serveurs Streamable HTTP : serveurs auxquels vous accédez à une adresse donnée.
- Authentification par jeton Bearer
- Authentification OAuth
- Authentification par session ChatGPT pour les serveurs internes de confiance
- Instructions du serveur : Codex lit le champ MCP
instructionsrenvoyé lors de l’initialisation et l’utilise comme consignes globales du serveur, en complément des outils de celui-ci.
Si vous développez ou gérez un serveur MCP pour Codex, utilisez instructions pour les workflows inter-outils, les contraintes et les limites de débit qui s’appliquent à l’ensemble du serveur. Veillez à ce que les 512 premiers caractères se suffisent à eux-mêmes afin que les consignes les plus importantes soient disponibles lorsque Codex décide comment utiliser le serveur.
Connecter Codex à un serveur MCP
Codex stocke la configuration MCP dans config.toml avec les autres paramètres de configuration de Codex. Par défaut, il s’agit de ~/.codex/config.toml, mais vous pouvez également limiter les serveurs MCP à un projet avec .codex/config.toml (projets approuvés 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 de ces clients à l’autre sans recommencer la configuration.
Configurer dans l’application de bureau ChatGPT
- Ouvrez Paramètres, puis sélectionnez Serveurs MCP.
- Sélectionnez Ajouter un serveur.
- Saisissez un nom, choisissez STDIO ou Streamable HTTP, puis indiquez la commande ou l’URL du serveur.
- Enregistrez le serveur, puis sélectionnez Redémarrer.
La liste des serveurs indique ceux qui sont activés et ceux qui nécessitent OAuth. Sélectionnez
S’authentifier lorsqu’un serveur OAuth nécessite une connexion. Dans la zone de saisie, tapez /mcp
pour afficher les serveurs connectés.
Configurer avec config.toml
Pour un contrôle plus précis, modifiez ~/.codex/config.toml ou un fichier limité au projet
.codex/config.toml. Consultez la référence de configuration
pour obtenir une liste consultable de toutes les options MCP prises en charge.
Configurez chaque serveur MCP à l’aide d’une table [mcp_servers.<server-name>] dans le fichier de configuration.
Serveurs STDIO
command(obligatoire) : commande qui démarre 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 depuis lequel démarrer le serveur.experimental_environment(facultatif) : définissez cette option surremotepour démarrer le serveur stdio via un environnement d’exécution distant lorsqu’un tel environnement est disponible.
env_vars peut contenir de simples noms de variables ou des objets dotés d’une source :
env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]Les entrées sous forme de chaîne et source = "local" sont lues depuis l’environnement local de Codex.
source = "remote" est lu depuis l’environnement d’exécution distant et nécessite
un accès MCP stdio distant.
Serveurs Streamable HTTP
url(obligatoire) : adresse du serveur.auth(facultatif) : authentification à essayer après les jetons Bearer configurés et les en-têtes d’autorisation. Utilisezoauth(valeur par défaut) pour les identifiants OAuth MCP enregistrés. Utilisezchatgptpour employer la session ChatGPT actuelle avec l’origine ChatGPT interne de confiance, en utilisant OAuth enregistré comme solution de secours.bearer_token_env_var(facultatif) : nom de la variable d’environnement contenant un jeton Bearer à envoyer dansAuthorization.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 (valeurs extraites de l’environnement).
Si aucune source d’identifiants n’est trouvée, Codex peut se connecter au serveur sans
authentification. Exécutez codex mcp login <server-name> séparément pour lancer une connexion
OAuth MCP.
Autres options de configuration
startup_timeout_sec(facultatif) : délai d’attente (en secondes) pour le démarrage du serveur. Valeur par défaut :10.tool_timeout_sec(facultatif) : délai d’attente (en secondes) pour l’exécution d’un outil par le serveur. Valeur par défaut :60.enabled(facultatif) : définissezfalsepour désactiver un serveur sans le supprimer.required(facultatif) : définisseztruepour faire échouer le démarrage si ce serveur activé ne peut pas être initialisé.enabled_tools(facultatif) : liste des outils autorisés.disabled_tools(facultatif) : liste des outils interdits (appliquée aprèsenabled_tools).default_tools_approval_mode(facultatif) : comportement d’approbation par défaut pour les outils de ce serveur. Les valeurs prises en charge sontauto,prompt,writesetapprove. Le modewritesdemande une approbation pour les outils qui ne sont pas signalés comme étant en lecture seule.tools.<tool>.approval_mode(facultatif) : remplacement du comportement d’approbation pour chaque outil.
Si votre fournisseur OAuth nécessite un port de rappel fixe, définissez l’option de premier niveau mcp_oauth_callback_port dans config.toml. Si elle n’est pas définie, Codex se lie à un port éphémère.
Si votre flux OAuth MCP doit utiliser une URL de rappel spécifique (par exemple, une URL d’entrée Devbox distante ou un chemin de rappel personnalisé), définissez mcp_oauth_callback_url. Codex utilise cette valeur comme URL de rappel de base, puis ajoute un identifiant de rappel propre au serveur afin de produire l’URL OAuth redirect_uri qu’il envoie lors de la connexion. Enregistrez l’URL redirect_uri complète ainsi obtenue auprès de votre fournisseur OAuth, y compris l’identifiant de rappel ajouté et tout chemin, toute requête ou tout port configuré, plutôt que d’enregistrer uniquement l’hôte ou le chemin de base sans ce suffixe. Les URL de rappel locales (par exemple localhost) se lient à l’interface locale ; les URL de rappel non locales se lient à 0.0.0.0 afin que le rappel puisse atteindre l’hôte.
Si le serveur MCP annonce scopes_supported, Codex privilégie ces
portées annoncées par le serveur lors de la connexion OAuth. Sinon, Codex utilise les
portées configurées dans config.toml.
Exemples de 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"Serveurs MCP fournis par des plugins
Les plugins installés peuvent inclure des serveurs MCP dans leur manifeste. Ces
serveurs sont lancés depuis le plugin ; la configuration utilisateur ne définit donc pas leur
commande de transport. Elle peut néanmoins contrôler leur activation et la politique applicable aux outils
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"Exemples de serveurs MCP utiles
La liste des serveurs MCP ne cesse de s’allonger. Voici quelques exemples courants :
- OpenAI Docs MCP : recherchez et consultez la documentation OpenAI destinée aux développeurs.
- Context7 : accédez à une documentation développeur à jour.
- Figma Local et Remote : accédez à vos conceptions Figma.
- Playwright : contrôlez et inspectez un navigateur avec Playwright.
- Chrome Developer Tools : contrôlez et inspectez Chrome.
- Sentry : accédez aux journaux Sentry.
- GitHub : gérez GitHub au-delà des fonctionnalités prises en charge par
git(par exemple, les pull requests et les issues).