Accéder au contenu principal

Tutoriel Codex CLI MCP : créer un agent de tableau de bord de portefeuille

Faites sortir votre agent de codage IA de son bac à sable. Découvrez comment utiliser Codex CLI et MCP pour connecter les LLM à des données en direct, des outils externes et des workflows multi-agents.
Actualisé 19 sept. 2026  · 15 min lire

Explorez l'IA

ChatGPTClaudePerplexity

Vous l'avez sans doute remarqué : les agents de codage IA sont redoutables pour écrire des fonctions complexes ou déboguer des erreurs coriaces. Mais ils atteignent vite leurs limites. Dès que vous avez besoin d'une information qui n'est pas présente dans vos fichiers de projet, ils cessent souvent d'être utiles. 

\n

Imaginez toutefois que votre agent puisse sortir de cet environnement pour récupérer des données en direct, consulter une documentation à jour ou utiliser des outils pour votre compte. C'est là que ces agents deviennent vraiment puissants.

\n

Dans ce tutoriel, je vous montre pas à pas comment y parvenir avec Codex CLI et le Model Context Protocol, ou MCP. Nous couvrirons les fondamentaux de l'intégration entre Codex CLI et MCP, construirons de zéro un projet de tableau de bord financier à partir de données boursières en direct, verrons des schémas multi-agents et aborderons les bonnes pratiques de sécurité.

\n

Pour en tirer pleinement parti, je vous encourage vivement à suivre en parallèle. Créez un nouveau projet Next.js, assurez-vous d'avoir une installation fonctionnelle de Codex CLI et récupérez une clé API gratuite chez Alpha Vantage afin d'être prêt à construire.

\n

Si vous débutez avec l'IA agentique, je vous recommande fortement de vous inscrire au parcours de compétences AI Agent Fundamentals.

\n

Fondamentaux de Codex CLI MCP

\n

Avant d'entrer dans le code, comprenons les outils que nous allons utiliser. Voyons précisément ce qu'est MCP et comment Codex CLI l'exploite.

\n

Qu'est-ce que MCP ?

\n

MCP signifie Model Context Protocol. Il s'agit d'un standard ouvert introduit par Anthropic pour normaliser la façon dont les systèmes d'IA se connectent à des outils et sources de données externes. Techniquement, il s'appuie sur JSON-RPC 2.0 via STDIO (entrée/sortie standard) ou HTTP.

\n

\"MCP

\n

Source : truefoundry

\n

L'enjeu est majeur : cela résout un véritable « cauchemar d'intégration ». Par le passé, connecter un LLM à une base de données ou un outil donné supposait souvent de développer un connecteur spécifique à ce couple. C'était complexe, difficile à maintenir et peu scalable. 

\n

Avec MCP, on dispose d'un protocole unifié pour toutes les connexions d'outils aux LLM. Il simplifie l'écosystème en remplaçant les intégrations sur mesure par une interface standard.

\n

Si vous voulez comprendre ce qui se passe sous le capot, ce pas à pas pour créer un serveur et un client MCP est un bon complément.

\n

Qu'est-ce que Codex CLI ?

\n

Parlons maintenant de Codex CLI. C'est l'agent de codage léger en ligne de commande d'OpenAI. Comme d'autres outils d'IA pour le code, tels que Claude Code ou Cursor, il est conçu pour comprendre l'intégralité du contexte de votre projet, et pas seulement le fichier actuellement ouvert.

\n

Il rassemble tout au même endroit : indexation efficace du code, historique de conversation et exécution de commandes au sein d'une même interface texte (TUI). Presque tout son comportement se contrôle et se personnalise via un fichier config.toml, ce qui le rend très simple à gérer.

\n

Comment Codex implémente MCP

\n

Côté implémentation MCP, Codex gère à la fois des serveurs STDIO et des serveurs HTTP « streamables » :

\n
    \n
  • Serveurs STDIO exécutés en local : pensez-y comme à des commandes et arguments spécifiques lancés directement sur votre machine.
  • \n
  • Serveurs HTTP streamables connectés à distance via une URL, avec prise en charge facultative d'un jeton bearer ou d'une authentification OAuth.
  • \n
\n

\"Codex

\n

Atout pratique : Codex CLI et l'extension IDE partagent le même fichier config.toml. Vous bénéficiez ainsi des mêmes outils MCP que vous travailliez dans le terminal ou l'éditeur : inutile de configurer deux fois, ce qui fait gagner un temps précieux. 

\n

Codex gère aussi très bien l'authentification, avec OAuth via la commande codex mcp login <server-name>. Vous contrôlez finement ce que l'agent peut faire en filtrant des outils via les paramètres enabled_tools ou disabled_tools dans votre configuration.

\n

Configuration de Codex CLI MCP

\n

Maintenant que la théorie est posée, passons à la pratique. Dans cette section, nous allons voir comment configurer vos serveurs MCP pour qu'ils soient opérationnels.

\n

Prérequis

\n

Avant de relier Codex à MCP et à l'Agents SDK, assurez-vous d'avoir :

\n
    \n
  • \n

    Codex CLI installé sur cette machine. Installez-le globalement via npm install -g @openai/codex. Vérifiez avec codex --version.

    \n
  • \n
  • \n

    Codex authentifié sur cette machine. Exécutez codex login (ou codex login --device-auth en environnement sans interface) une fois, et vérifiez que codex fonctionne dans votre terminal. 

    \n
  • \n
  • \n

    Pour le workflow multi-agent, vous avez aussi besoin d'une clé API OpenAI. Récupérez-la dans la console OpenAI, puis définissez-la dans votre shell avec export OPENAI_API_KEY=\"sk-...\".

    \n
  • \n
  • \n

    Les variables d'environnement des outils externes sont renseignées. Par exemple, Alpha Vantage lit votre clé marché depuis ALPHA_VANTAGE_KEY, que vous devez également exporter avant de lancer les exemples.

    \n
  • \n
\n

Pour obtenir une clé API AlphaVantage :

\n
    \n
  1. Allez sur la page d'assistance AlphaVantage.
  2. \n
  3. ​Remplissez le court formulaire d'inscription (organisation, fonction, e-mail).
  4. \n
  5. Votre clé API s'affiche immédiatement. Copiez-la et conservez-la en lieu sûr.
  6. \n
\n

L'offre gratuite permet jusqu'à 25 requêtes API par jour. Pour un usage plus intensif, Alpha Vantage propose des forfaits premium.

\n

Ajouter des serveurs MCP via la CLI

\n

Ajoutons un nouveau serveur via l'interface en ligne de commande avec codex mcp add. Ainsi, vous n'avez pas à modifier les fichiers de configuration manuellement : Codex fait l'essentiel pour vous.

\n

Par exemple, pour les recherches de documentation, vous pouvez utiliser le serveur MCP Context7. Pour l'installer, exécutez :

\n

codex mcp add context7 -- npx -y @upstash/context7-mcp

\n

Ajouter des serveurs MCP via config.toml

\n

Si les commandes CLI sont idéales pour démarrer vite, vous aurez parfois besoin de plus de contrôle, ou simplement envie de voir ce qui se passe sous le capot. Dans ce cas, modifiez directement le fichier de configuration.

\n

Notez qu'il existe deux emplacements de configuration, avec des portées différentes :

\n
    \n
  • \n

    Fichier global ~/.codex/config.toml, appliqué à tous vos projets

    \n
  • \n
  • \n

    Fichier spécifique au projet dans .codex/config.toml à la racine du projet. En général, les réglages projet priment sur le global en cas de conflit.

    \n
  • \n
\n

Tous les serveurs MCP ne disposent pas d'une commande d'installation CLI dédiée. Dans ces cas, configurez-les directement dans ~/.codex/config.toml en indiquant la commande et les arguments pour lancer le processus serveur. Vous contrôlez ainsi s'il s'exécute en local via STDIO ou se connecte à distance via HTTP.

\n

Le serveur MCP AlphaVantage en fait partie. Ouvrez config.toml et ajoutez le bloc suivant :

\n
[mcp_servers.alphavantage]\ncommand = \"uvx\"\nargs = [\"av-mcp\", \"<your-key>”]
\n

Avertissement : coder en dur une clé API dans config.toml n'est pas recommandé en production. Évitez-le dans tout projet versionné (GitHub), partagé ou déployé : toute personne ayant accès au fichier peut lire et abuser de la clé. Pour ce tutoriel, c'est acceptable puisque config.toml réside dans votre répertoire personnel (~/.codex/) et n'est accessible que sur votre machine.

\n

Utile : ajoutez startup_timeout_sec=30 pour étendre le délai par défaut de 10 secondes et laisser le temps à la connexion de s'établir.

\n

Gérer les serveurs MCP

\n

Une fois plusieurs serveurs en place, vous devrez les administrer. Codex propose une série de commandes pour rester organisé.

\n

Pour voir ceux installés : codex mcp list. Pour détailler un serveur (comme Alpha Vantage) : codex mcp get alphavantage. Et pour en supprimer un (par exemple Context7) : codex mcp remove context7.

\n

Enfin, pendant une session Codex active, vous pouvez vérifier que tout tourne correctement. Tapez /mcp dans l'interface de chat : l'état des outils connectés s'affiche. Vous devriez voir alphavantage et context7 avec Status: enabled.

\n

Créer un tableau de bord de risque de portefeuille avec Codex et MCP

\n

La théorie, c'est bien, mais rien ne vaut un cas concret. Nous allons construire un tableau de bord fonctionnel de risque de portefeuille à partir de zéro, en utilisant Codex et MCP pour récupérer des données de marché réelles et calculer des indicateurs de risque.

\n

Pour afficher le tableau de bord, le projet utilise TypeScript, un langage basé sur JavaScript. Pour une piqûre de rappel à différents niveaux, consultez notre guide TypeScript Interview Questions.

\n

Mise en place du projet

\n

Suivez les étapes ci-dessous pour mettre en place le projet :

\n
    \n
  1. \n

    Initialisez le projet : exécutez la commande standard de création Next.js : npx create-next-app@latest portfolio-dashboard --typescript

    \n
  2. \n
  3. \n

    Acceptez les options par défaut pour une configuration standard

    \n
  4. \n
  5. \n

    Placez-vous dans le dossier du nouveau projet : cd portfolio-dashboard

    \n
  6. \n
  7. \n

    Préparez la structure des composants en créant un sous-dossier pour l'UI : mkdir components

    \n
  8. \n
  9. \n

    Créez l'élément de carte de portefeuille en fichier .tsx dans components : components/PortfolioCard.tsx

    \n
  10. \n
\n

Ce composant définit un PortfolioCard qui rend une carte stylée affichant une liste de positions boursières fictives (AAPL et TSLA) : symbole, nombre d'actions et prix courant. Il utilise des classes Tailwind CSS pour la mise en page et le style, avec une carte blanche et un formatage vert émeraude pour les prix. Le rendu attendu ressemble à ceci :

\n
// components/PortfolioCard.tsx\nimport React from 'react';\n\ntype Position = {\n  symbol: string;\n  shares: number;\n  price: number;\n};\n\nconst mockPositions: Position[] = [\n  { symbol: 'AAPL', shares: 10, price: 150.00 },\n  { symbol: 'TSLA', shares: 5, price: 900.00 },\n];\n\nexport const PortfolioCard = () => {\n  return (\n    // Added text-slate-900 to ensure visibility on the white background\n    <div className=\"p-6 border border-slate-200 rounded-xl shadow-sm bg-white text-slate-900\">\n      <h2 className=\"text-xl font-bold mb-4\">My Portfolio</h2>\n      <ul className=\"divide-y divide-slate-100\">\n        {mockPositions.map((pos) => (\n          <li key={pos.symbol} className=\"flex justify-between py-3\">\n            <div className=\"flex flex-col\">\n              <span className=\"font-bold text-slate-800\">{pos.symbol}</span>\n              <span className=\"text-sm text-slate-500\">{pos.shares} shares</span>\n            </div>\n            <span className=\"font-mono font-semibold text-emerald-600\">\n              ${pos.price.toFixed(2)}\n            </span>\n          </li>\n        ))}\n      </ul>\n    </div>\n  );\n};
\n

Après l'enregistrement, importez et utilisez <PortfolioCard/> dans votre fichier principal app/page.tsx pour l'afficher dans le navigateur :

\n
// app/page.tsx\nimport { PortfolioCard } from \"../components/PortfolioCard\";\n\nexport default function Page() {\n  return (\n    <main className=\"min-h-screen flex items-center justify-center bg-slate-50\">\n      <PortfolioCard />\n    </main>\n  );\n}
\n

En exécutant npm run dev, vous devriez voir un rendu similaire à ceci :

\n

\"Codex

\n

Avant de coder avec l'IA, assurons-nous que nos agents sont actifs. Laissez tourner le terminal avec npm run dev. Dans une nouvelle fenêtre de terminal :

\n
    \n
  1. \n

    Exécutez les commandes de configuration MCP vues plus haut, si ce n'est pas déjà fait

    \n
  2. \n
  3. \n

    Exporte«z votre clé API via export ALPHA_VANTAGE_KEY=”<your-key>”

    \n
  4. \n
  5. \n

    Dans la même fenêtre, lancez l'agent Codex avec codex

    \n
  6. \n
\n

Implémenter le ratio de Sharpe

\n

Premier indicateur : le ratio de Sharpe, essentiel pour évaluer la performance ajustée du risque. Chercher la formule et la bonne bibliothèque est souvent fastidieux : laissons Codex s'en charger.

\n

Dans votre session Codex, saisissez l'invite suivante :

\n

\"Add Sharpe ratio calculation for each position to PortfolioCard.tsx. Use Context7 to check the function signature if needed.\"

\n

Vous verrez Codex se mettre au travail. Il peut commencer par utiliser Context7 pour consulter la doc d'une bibliothèque d'analyse technique (ta-lib ou un équivalent JavaScript) et s'assurer des bons paramètres. Il modifiera ensuite automatiquement votre fichier PortfolioCard.tsx.

\n

Il étendra probablement mockPositions et ajoutera une fonction utilitaire pour calculer le ratio, ressemblant à ceci :

\n
function calculateSharpe(prices: number[]) {\n  // Codex implements the logic here using standard deviation and mean returns\n  // resulting in a return value like 1.23\n}
\n

Puis il mettra à jour votre JSX pour afficher le nouvel indicateur :

\n
<PortfolioCard sharpe={calculateSharpe(prices)}/>
\n

Dans le navigateur, vous devriez maintenant voir un ratio de Sharpe (par ex. 1,23) affiché à côté de vos positions, comme ceci :

\n

\"Codex

\n

Ajouter des alertes de volatilité

\n

Rendons maintenant le tableau de bord réactif avec de vraies données AlphaVantage. Nous voulons être alerté si une action devient trop volatile. Définissons une « forte volatilité » comme une volatilité sur 7 jours supérieure à 3 %.

\n

Dans le terminal Codex, entrez :

\n

\"Flag positions where 7-day volatility > 2% using Alpha Vantage data. Fetch the price history for the symbols in my list.\"

\n

C'est là que MCP excelle. Codex reconnaît qu'il lui faut des données externes. Il appellera alphavantage.get_price_history(\"AAPL\") et alphavantage.get_price_history(\"TSLA\") pour obtenir les séries historiques.

\n

Une fois les données récupérées, il écrira la logique pour calculer l'écart type des prix. Enfin, il mettra à jour le style du composant pour signaler visuellement le risque.

\n

Votre code PortfolioCard inclura un style conditionnel. La logique pourra ressembler à ceci :

\n
<li className={volatility > 2 ? \"text-red-500 font-bold\" : \"text-green-500\"}>\n  {pos.symbol}: {volatility}%\n</li>
\n

Dans l'application en cours d'exécution, vous verrez peut-être AAPL en vert (sûr) et TSLA en rouge (volatile), sur la base de données de marché en direct tirées par l'agent.

\n

Le rendu final devrait ressembler à ceci :

\n

\"Codex

\n

Votre interface peut légèrement différer selon la façon dont Codex structure le tout. Vous pouvez aussi spécifier davantage votre invite pour cadrer le rendu final.

\n

Pour concevoir des systèmes plus vastes et maîtriser les handoffs, les limites d'outils et l'évaluation, suivez notre cours Building Scalable Agentic Systems.

\n

Exécuter Codex comme serveur MCP

\n

Jusqu'ici, nous utilisions Codex comme interface principale appelant d'autres outils. Mais il y a plus : Codex peut également agir lui-même comme serveur MCP. 

\n

Vous pouvez donc exposer ses capacités d'édition de fichiers et d'exécution de commandes à d'autres clients MCP, permettant à d'autres agents IA d'utiliser Codex comme outil dans leurs workflows. L'avantage majeur : l'exécution en parallèle. 

\n

Vous pouvez conçoir un workflow où un agent utilise Codex pour construire le frontend, tandis qu'un autre agent séparé utilise une instance différente de Codex pour écrire l'API backend. Comme ils tournent dans des processus distincts, ils travaillent simultanément, pouvant diviser par deux le temps de développement.

\n

Démarrer Codex en mode serveur

\n

Pour activer ce mode, utilisez la commande : codex mcp-server.

\n

Une fois lancé, Codex cesse de se comporter comme une interface de chat et se met à l'écoute d'instructions d'un autre programme. Il expose ses capacités via le canal STDIO.

\n

Avant d'intégrer cela dans un système complexe, effectuez un test. L'équipe Model Context Protocol fournit un outil d'inspection pratique. Lancez l'interface web qui se connecte à votre instance Codex locale avec :

\n

npx @modelcontextprotocol/inspector codex mcp-server

\n

Cela ouvre une fenêtre de navigateur où vous pouvez envoyer manuellement des commandes à Codex et observer ses réponses : très utile pour le débogage. L'interface ressemble à ceci :

\n

\"MCP

\n

Intégration avec OpenAI Agents SDK

\n

Si vous développez en Python, vous pouvez orchestrer Codex dans un script personnalisé via l'OpenAI Agents SDK. Vous bâtissez ainsi un programme Python capable de \"mandater\" Codex pour des tâches de codage ciblées.

\n

Voici un exemple rapide de configuration. Vous utilisez MCPServerStdio pour lancer le processus Codex :

\n

Dans votre environnement virtuel Python, installez le package openai-agents :

\n

pip install openai-agents

\n

Pour configurer le processus codex, créez un fichier orchestrator.py avec le code suivant :

\n
from agents import Agent\nfrom agents.mcp import MCPServerStdio\n\n# initialize connection\ncodex_server = MCPServerStdio(\n    name=\"Codex CLI\",\n    params={\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"codex\", \"mcp-server\"]\n    },\n    client_session_timeout_seconds=360000,\n)\n# create codex agent\nagent = Agent(\n    name=\"Lead Developer\",\n    mcp_servers=[codex_server]\n)
\n

Dans cette configuration, le serveur MCP Codex expose deux outils principaux : codex() et codex-reply(). Il est important de comprendre la différence pour conserver le bon contexte de travail.

\n
    \n
  • Utilisez codex() pour démarrer une toute nouvelle session ou tâche. 
  • \n
  • Utilisez codex-reply() pour poursuivre une conversation existante ou itérer sur le travail en cours. Il requiert un paramètre conversationId pour faire le lien avec la bonne conversation.
  • \n
\n

Le paramètre client_session_timeout_sessions définit la durée maximale pendant laquelle le client conserve une session ouverte avec le serveur MCP STDIO. Nous mettons une marge très large à 360 000 secondes (100 heures) pour Codex, afin que des workflows longs puissent réutiliser la même session sans tomber en timeouts d'inactivité.

\n

Wrappers communautaires

\n

La communauté a également proposé des wrappers qui simplifient encore l'intégration. Un projet notable est le dépôt codex-mcp-wrapper sur GitHub, conçu pour intégrer Codex dans d'autres environnements, comme Claude Code.

\n

Orchestration multi-agents d'une chaîne finance avec Codex CLI MCP

\n

Maintenant que nous savons exécuter Codex en serveur, voyons un scénario réel où cela devient puissant. Nous allons orchestrer un pipeline multi-agents où plusieurs agents IA collaborent pour accélérer nettement l'amélioration de notre tableau de bord financier par rapport à un agent unique.

\n

\"Codex

\n

Si la conception multi-agents vous paraît abstraite, voici une présentation claire des architectures d'agents courantes et des cas où le multi-agents apporte un vrai gain.

\n

Coordonner les agents risque et UI

\n

Nous utilisons un script Python comme orchestrateur pour piloter le workflow. Plutôt que de tout demander à un seul agent, nous lançons deux agents spécialisés :

\n
    \n
  • Codex-Risk, centré sur l'analyse quantitative
  • \n
  • Codex-UI, centré sur l'implémentation frontend
  • \n
\n

Comme nous exécutons désormais Codex en serveur MCP headless via l'Agents SDK, l'SDK et les processus Codex doivent s'authentifier auprès d'OpenAI, et pas seulement la CLI interactive. 

\n

Pour rester simple et fiable, assurez-vous que OPENAI_API_KEY (ou éventuellement CODEX_API_KEY) est défini dans votre environnement avant de lancer l'orchestrateur, afin que chaque maillon puisse contacter les modèles. Exécutez :

\n
export OPENAI_API_KEY=<your-key>
\n

Nous initialisons deux serveurs MCP Codex indépendants dans un bloc async with pour des connexions stables et isolées (un processus par agent), ce qui permet l'exécution en parallèle. Voici le script d'orchestration orchestrator.py :

\n
import os\nimport asyncio\nfrom dotenv import load_dotenv\nfrom agents import Agent, Runner\nfrom agents.mcp import MCPServerStdio\n\n\nload_dotenv()\n\n\nasync def main():\n    async with MCPServerStdio(\n        name=\"Codex-Risk-Server\",\n        params={\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"codex\", \"mcp-server\"],\n            # Codex itself uses your existing auth (codex login / OPENAI_API_KEY)\n            \"env\": {\n                # pass through any env you already rely on inside Codex\n                \"OPENAI_API_KEY\": os.getenv(\"OPENAI_API_KEY\", \"\"),\n                \"CODEX_API_KEY\": os.getenv(\"CODEX_API_KEY\", \"\"),\n            },\n        },\n        client_session_timeout_seconds=360000,\n    ) as codex_risk_server, MCPServerStdio(\n        name=\"Codex-UI-Server\",\n        params={\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"codex\", \"mcp-server\"],\n            \"env\": {\n                \"OPENAI_API_KEY\": os.getenv(\"OPENAI_API_KEY\", \"\"),\n                \"CODEX_API_KEY\": os.getenv(\"CODEX_API_KEY\", \"\"),\n            },\n        },\n        client_session_timeout_seconds=360000,\n    ) as codex_ui_server:\n\n        # 1. Define specialized agents (both just use the 'codex' tool)\n        risk_agent = Agent(\n            name=\"Codex-Risk\",\n            instructions=(\n                \"You are a quant analyst. Use the 'codex' tool to compute VaR and \"\n                \"Sharpe ratio for all positions in the portfolio-dashboard project. \"\n                \"Assume Alpha Vantage integration and volatility logic are already implemented \"\n                \"in the code; reuse and extend that code instead of re-calling external APIs.\"\n            ),\n            mcp_servers=[codex_risk_server],\n        )\n\n        ui_agent = Agent(\n            name=\"Codex-UI\",\n            instructions=(\n                \"You are a frontend developer. Use the 'codex' tool to update the UI in \"\n                \"the portfolio-dashboard project. Your job is to add a VaR (95%) column \"\n                \"to the RiskTable / PortfolioCard views, with clear red/green conditional styling.\"\n            ),\n            mcp_servers=[codex_ui_server],\n        )\n\n        # 2. Run Risk + UI agents concurrently\n        risk_task = Runner.run(\n            risk_agent,\n            \"Compute portfolio VaR (95%) for all positions and write the results into the codebase \"\n            \"in a way that the UI can easily consume (e.g., exported constants or helper functions).\",\n        )\n        ui_task = Runner.run(\n            ui_agent,\n            \"Prepare or update the RiskTable / PortfolioCard components to display a VaR (95%) \"\n            \"column, assuming the risk logic already exists in the project.\",\n        )\n\n        risk_result, ui_result = await asyncio.gather(risk_task, ui_task)\n\n        print(\"=== Codex-Risk result ===\")\n        print(risk_result.final_output)\n        print(\"\\n=== Codex-UI result ===\")\n        print(ui_result.final_output)\n\n        # 3. Optional second pass: let UI agent consume the exact risk output\n        followup_ui_result = await Runner.run(\n            ui_agent,\n            (\n                \"Now update the UI to wire in the actual VaR values. \"\n                f\"Context from the risk agent: {risk_result.final_output}\"\n            ),\n        )\n\n        print(\"\\n=== Codex-UI follow-up ===\")\n        print(followup_ui_result.final_output)\n\n\nif __name__ == \"__main__\":\n    asyncio.run(main())
\n

Dans le même terminal où vous avez défini votre clé OpenAI, lancez le script d'orchestration :

\n
python orchestrator.py
\n

Ces agents partiront chacun de leur côté, consulteront la documentation Alpha Vantage via MCP, récupéreront les historiques et écriront la logique Python ou TypeScript pour calculer la Value at Risk de votre portefeuille.

\n

Après les modifications réalisées par les deux instances Codex, visualisez-les en relançant la commande npm run dev pour voir le résultat final dans le navigateur. Le rendu ressemblera à ceci :

\n

\"Codex

\n

En séparant les responsabilités, on transforme un processus qui prendrait 20 minutes d'allers-retours en pipeline entièrement automatisé. L'agent Risque gère les calculs, l'agent UI gère l'implémentation, et le tableau de bord se met à jour en quelques secondes.

\n

Exécution parallèle des tâches

\n

La vraie magie réside dans le modèle d'exécution. Dans une interface de chat standard, les appels d'outils sont séquentiels : il faut attendre la récupération des données avant de pouvoir demander la mise à jour d'un graphique.

\n

Avec MCP et cette approche multi-agents, on obtient une vraie concurrence. Pendant que l'agent Codex-Risk attend les réponses réseau de l'API Alpha Vantage, l'agent Codex-UI peut déjà préparer les colonnes et les classes CSS.

\n

En séparant ces enjeux, vous passez d'un flux de 15 à 20 minutes d'allers-retours à un pipeline fluide. De la récupération brute des données à l'analyse de risque avancée, puis à l'implémentation UI, le tout en environ 5 minutes.

\n

Sécurité : points d'attention et limites

\n

Comme tout outil puissant qui relie votre code au monde extérieur, parlons sécurité. Si Codex et MCP ouvrent des possibilités remarquables, ils introduisent aussi de nouvelles surfaces d'attaque et des limites pratiques à connaître avant tout déploiement en production.

\n

Vulnérabilités de configuration

\n

Le point critique concerne le fichier de configuration. Dans d'anciennes versions de Codex CLI, une vulnérabilité permettait l'injection de commandes malveillantes via config.toml, combiné à un fichier .env redirigeant CODEX_HOME vers un répertoire local. Ce point a été corrigé : assurez-vous d'utiliser la version v0.23.0 ou supérieure.

\n

Le risque ne disparaît toutefois pas totalement. Comme Codex respecte les configurations au niveau projet, si vous clonez un dépôt contenant un .codex/config.toml malveillant avec un .env définissant CODEX_HOME=./.codex, exécuter codex dans ce dossier peut déclencher des commandes inattendues.

\n

Adoptez le réflexe d'auditer le fichier de configuration de tout nouveau projet cloné. Traitez-le avec une grande prudence avant toute exécution.

\n

Limites de MCP

\n

Côté pratique, attendez-vous à quelques angles morts. Il n'y a pas encore de \u00ab test de connectivité \u00bb à l'ouverture de la CLI. Codex ne vous signalera pas automatiquement au démarrage si un serveur MCP est hors ligne. Vous devez demander au modèle quelque chose comme \u00ab Check my tools \u00bb pour vérifier la connexion.

\n

En outre, il est tentant d'installer tous les outils disponibles, mais restez sélectif. Si vous attachez trop de serveurs MCP, les performances du modèle commencent à se dégrader sensiblement. Plus vous ajoutez d'outils, plus le modèle doit filtrer de \u00ab bruit \u00bb, ce qui peut le perturber ou mener à des hallucinations. Bonne pratique : n'attachez que les serveurs MCP nécessaires.

\n

Codex CLI vs Claude Code

\n

Il est utile de comparer Codex CLI à son concurrent proche, Claude Code.

\n

Si votre objectif est l'automatisation et les pipelines d'intégration continue (CI), Codex CLI est généralement un meilleur choix. Léger, simple d'usage et hautement scriptable. Claude Code excelle comme environnement de codage interactif dans l'éditeur, avec une UX solide pour les refactorings, l'exécution de tests et des assistants par projet.

\n

Les styles de configuration diffèrent également. Codex utilise des fichiers TOML, avec un ~/.codex/config.toml partagé entre la CLI et l'extension IDE, plus des surcharges au niveau projet via .codex/config.toml dans chaque dépôt. Votre environnement est donc partagé par défaut, mais personnalisable par projet.

\n

Claude Code utilise généralement des paramètres au format JSON, avec une config globale (par exemple ~/.claude.json) et des fichiers spécifiques au projet (comme .mcp.json ou des réglages locaux), offrant une meilleure isolation mais un peu plus de configuration par dépôt.

\n

Ces deux outils sont à la pointe des agents de codage IA. Le choix dépend de votre workflow : si vous imaginez l'agent principalement dans un terminal ou un job CI, Codex s'intègre mieux ; si vous souhaitez surtout un compagnon de code centré éditeur, Claude Code paraîtra souvent plus naturel.

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n

Fonctionnalité

\n
\n

Codex CLI

\n
\n

Claude Code

\n
\n

Cas d'usage principal

\n
\n

Automatisation CI/CD, scripts headless, backends d'agents

\n
\n

Centré IDE, séances de codage interactives profondes dans l'éditeur

\n
\n

Format de configuration

\n
\n

TOML (~/.codex/config.toml + .codex/config.toml optionnel par projet)

\n
\n

Paramètres JSON (~/.claude.json + .mcp.json / réglages projet)

\n
\n

Périmètre de config

\n
\n

Profil global partagé avec surcharges projet

\n
\n

Défauts globaux et forte isolation par dépôt

\n
\n

Environnement

\n
\n

Centré terminal et agents, intégration aisée avec Agents SDK et CI

\n
\n

Centré IDE, axé sur l'UX en éditeur, refactors, tests et outils propulsés par MCP

\n
\n

Automatisation

\n
\n

Très scriptable, facile à exécuter en headless via codex mcp-server

\n
\n

Prend en charge MCP dans les projets, mais conçu surtout pour des workflows interactifs pilotés par l'UI

\n
\n

Effort de mise en place

\n
\n

Minimal une fois config.toml en place et partagé entre CLI et IDE

\n
\n

Légèrement plus de configuration par projet, pour une personnalisation fine locale au dépôt

\n
\n
\n

Pour aller plus loin, lisez notre guide Codex vs Claude Code.

\n

Conclusion

\n

Nous avons couvert beaucoup de terrain, des définitions de base de MCP à la création de notre propre agent Codex. S'il ne fallait retenir qu'une chose, c'est la force du workflow lui-même. La chaîne complète — configurer votre serveur MCP, exécuter Codex, et laisser les outils découvrir automatiquement les données dont ils ont besoin — vous permet de livrer des fonctionnalités plus vite qu'un humain.

\n

Si vous débutez, ne compliquez pas tout d'emblée. Commencez avec Context7 pour la documentation et, pourquoi pas, un seul MCP basé sur API, comme notre intégration Alpha Vantage. Familiarisez-vous avec ce flux avant de passer à plusieurs agents.

\n

Une fois en confiance, tout est possible. Explorez d'autres MCP. Connectez Figma pour générer du code UI directement depuis les maquettes, ou branchez Sentry pour que Codex diagnostique et corrige automatiquement des bugs en production. Expérimentez avec des sous-agents Codex et mesurez combien de vos tâches répétitives vous pouvez déléguer. Les outils sont là, puissants, prêts à l'emploi.

\n

Si vous souhaitez développer des applications d'IA, je vous recommande vivement de vous inscrire au parcours de compétences AI Engineering with LangChain. Les contenus sont natifs IA : vous bénéficiez d'un tuteur personnel qui vous enseigne exactement les compétences dont vous avez besoin pour passer de votre niveau actuel à un niveau expert en conception de workflows IA.

Codex CLI MCP : FAQ

Comment Codex CLI gère-t-il les mises à jour en temps réel lors de l'utilisation d'outils MCP ?

Codex CLI ne se met pas à jour en continu en arrière-plan. Il récupère des informations fraîches lorsqu'il décide d'appeler un outil MCP pendant votre session, par exemple pour obtenir les derniers cours via un serveur MCP Alpha Vantage ou consulter une doc à jour via un MCP de documentation. Si vous avez besoin de données toujours à jour, conçoyez votre workflow pour que l'agent rappelle l'outil à la demande (ou selon une planification que vous déclenchez), plutôt que de s'appuyer sur des résultats précédents.

Quel est le rôle de MCP pour intégrer Codex à des services externes comme Alpha Vantage ?

MCP est le pont qui permet à Codex d'appeler en toute sécurité des outils externes via une interface standardisée, au lieu d'écrire des intégrations ad hoc pour chaque service. En pratique, vous configurez des serveurs MCP (STDIO locaux ou HTTP distants). Codex découvre leurs \u00ab outils \u00bb et peut les utiliser pour récupérer des données, exécuter des actions et retourner des sorties structurées qu'il exploitera ensuite pour générer ou mettre à jour du code.

Quelles sont les principales différences entre Codex CLI et Claude Code ?

Codex CLI est conçu autour d'un flux de travail d'abord terminal, avec un fort potentiel de script et d'automatisation, et une configuration partagée via config.toml. Claude Code se positionne plutôt comme une expérience de codage interactive. La différence pratique tient à votre façon de travailler : si vous voulez un agent léger, pilotable par des flux CLI répétables et des outils MCP, Codex est souvent mieux adapté. Si vous préférez de longues sessions de codage très conversationnelles avec moins de pièces mobiles, Claude Code est généralement plus fluide.

Comment se compare la performance de Codex face à d'autres agents de codage IA lorsqu'on utilise des outils MCP ?

Les outils changent la donne. Un agent de codage sans outils est limité à ce qu'il y a dans votre dépôt et à ce qu'il \u00ab se souvient \u00bb de son entraînement. Avec MCP, Codex peut récupérer des données réelles, obtenir une documentation fiable et exécuter des commandes, ce qui réduit généralement les hallucinations et accélère la mise en œuvre. En contrepartie, la performance dépend énormément de votre configuration MCP : trop d'outils ou des outils mal cadrés ajoutent du bruit, ralentissent les décisions ou produisent des sorties chaotiques.

Quelles sont les bonnes pratiques pour configurer des serveurs MCP dans Codex CLI ?

Restez minimaliste et explicite. Ajoutez seulement les serveurs nécessaires, et désactivez ou cadrez les outils que vous ne voulez pas voir utilisés par l'agent. Utilisez des variables d'environnement pour les secrets (ne codez jamais les clés en dur). Préférez .codex/config.toml au niveau projet lorsque vous avez besoin de reproductibilité dans un dépôt, et ~/.codex/config.toml pour des défauts globaux de confiance. Enfin, vérifiez les outils tôt dans une session Codex, afin de détecter vite les serveurs défaillants.


Nikhil Adithyan's photo
Author
Nikhil Adithyan
LinkedIn
Un entrepreneur déterminé à rendre les outils d’analyse financière accessibles, et un marketeur qui aide les fintechs à développer leur visibilité et leur audience.
Travaille actuellement sur deux projets :
- BacktestZone, une plateforme no-code pour backtester des stratégies de trading technique
- Scriptonomy, une agence marketing spécialisée FinTech
Sujets
Agents d'intelligence artificielle
Intelligence artificielle
OpenAI
Grands modèles linguistiques

Cours sur l'IA agentique

Cursus

AI Engineering with LangChain

21 h
From prompt engineering to agentic systems—develop the complete skill set to build AI applications that scale, with an AI tutor by your side.
Voir les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow
Contenus associés

blog

Types d'agents d'intelligence artificielle : Comprendre leurs rôles, leurs structures et leurs applications

Découvrez les principaux types d'agents d'intelligence artificielle, comment ils interagissent avec les environnements et comment ils sont utilisés dans les différents secteurs d'activité. Comprendre les agents réflexes simples, les agents basés sur un modèle, les agents basés sur un but, les agents basés sur l'utilité, les agents d'apprentissage, etc.

blog

Architecture de l'entrepôt de données : Tendances, outils et techniques

Apprenez l'essentiel de l'architecture d'un entrepôt de données, des composants clés aux meilleures pratiques, pour construire un système de données évolutif et efficace !
Kurtis Pykes 's photo

Kurtis Pykes

15 min

cursor ai code editor

Tutoriel

Cursor AI : Un guide avec 10 exemples pratiques

Apprenez à installer Cursor AI sur Windows, macOS et Linux, et découvrez comment l'utiliser à travers 10 cas d'utilisation différents.

Tutoriel

Régression MCO : Les idées clés expliquées

Gagnez en confiance dans la régression par les MCO en maîtrisant ses fondements théoriques. Découvrez comment réaliser des mises en œuvre simples dans Excel, R et Python.
Josef Waples's photo

Josef Waples

8 min

Tutoriel

Tableaux Python

Tableaux Python avec exemples de code. Découvrez comment créer et imprimer des tableaux à l'aide de Python NumPy dès aujourd'hui.
DataCamp Team's photo

DataCamp Team

3 min

Tutoriel

Power Pivot Excel : guide pas à pas

Apprenez à relier des tables, écrire des formules DAX et construire des rapports interactifs dans Excel.
Laiba Siddiqui's photo

Laiba Siddiqui

14 min

Voir PlusVoir Plus