à la fin, Codex CLI pourra consulter la Note de spécification, la base de connaissances du support et les Records de bugs d'un de vos projets osFoundry pendant qu'il travaille dans votre dépÎt. Il les lit via le serveur MCP d'osFoundry, vous demande avant toute écriture, et chaque appel qu'il fait est listé dans osFoundry sous le Recent activity (activité récente) de la connexion. La configuration tient en une table dans ~/.codex/config.toml, une connexion dans le navigateur et un clic pour ajouter la connexion à un projet.
Qui fait quoi
| CÎté Codex | CÎté osFoundry | |
|---|---|---|
| Connexion | Votre connexion Codex habituelle, inchangée. Codex conserve le token OAuth d'osFoundry | Votre compte osFoundry approuve la connexion une fois, pour un workspace |
| Qui exécute le modÚle | Codex, sur votre machine, avec votre propre abonnement Codex | Personne. Pas de modÚle ni de clé de fournisseur sur ce chemin |
| OĂč s'exĂ©cutent les outils | Codex envoie l'appel d'outil en HTTPS |
api.osfoundry.io l'exécute aprÚs avoir vérifié l'accÚs |
| Quels outils Codex voit |
enabled_tools / disabled_tools dans config.toml
|
La checklist Tools de la connexion |
| Ce qu'il peut atteindre | Ce que le serveur renvoie | Les projets auxquels vous avez ajoutĂ© la connexion, plus les canaux oĂč vous l'avez invitĂ©e |
| Approbations | La propre demande de confirmation de Codex, réglée par default_tools_approval_mode
|
Les modifications GitNest et Room attendent sous "Needs your approval" (en attente de votre approbation) |
| OĂč restent les donnĂ©es | RĂ©ponses et diffs restent dans votre session Codex | Notes, records et articles restent dans osFoundry. Les Ă©lĂ©ments uniquement locaux ne quittent jamais l'appareil |
Configuration
1. Créer la connexion dans osFoundry
Cliquez sur l'icĂŽne de clĂ© dans l'en-tĂȘte d'osFoundry et ouvrez l'onglet Connected ("Connected agents", avec le nom du workspace actuel en dessous). Dans le formulaire sous "Connect in three steps" :
- Assistant : Other MCP client
- Display name : un nom que vous reconnaĂźtrez, par exemple
Codex CLI - Cliquez sur Add assistant (ajouter l'assistant)
La connexion apparaĂźt comme "Setup pending. This assistant cannot read or change anything yet." Copiez la Server address :
https://api.osfoundry.io/api/v1/external-mcp
Exemple : L'onglet Connected avec la connexion Codex CLI sélectionnée
2. Ajouter le serveur Ă Codex
La commande d'une ligne tirée de la documentation MCP de Codex d'OpenAI :
codex mcp add osfoundry --url https://api.osfoundry.io/api/v1/external-mcp
Elle écrit une table [mcp_servers.osfoundry]. Ouvrez ~/.codex/config.toml et resserrez-la. Toutes les clés ci-dessous figurent dans cette documentation :
[mcp_servers.osfoundry]
url = "https://api.osfoundry.io/api/v1/external-mcp"
scopes = ["osfoundry:read", "osfoundry:write"]
default_tools_approval_mode = "writes"
enabled_tools = [
"list_granted_resources",
"list_project_resources",
"list_note_tabs",
"read_note_tab",
"read_sheet_range",
"search_knowledge_base",
"read_knowledge_article",
"list_record_items",
"read_record_item",
"edit_record_item",
]
Ce que chaque ligne apporte :
-
scopesremplace ce que propose le serveur. Sans elle, Codex prend les scopes dans le challenge du serveur ou dans ses protected-resource metadata, et les métadonnées d'osFoundry en listent quatre, dontosfoundry:run. Un assistant de code qui se contente de lire et de mettre à jour des records n'a pas besoin de lancer des sessions. -
default_tools_approval_mode = "writes"fait demander une confirmation à Codex pour chaque outil qui n'est pas marqué en lecture seule. osFoundry marque ses outils avecreadOnlyHint, donc les neuf outils de lecture s'exécutent sans confirmation etedit_record_itemdemande d'abord. -
enabled_toolsgarde la liste d'outils courte. Le serveur en annonce 59 ; cette liste en compte dix. Les noms sont les noms MCP bruts, sans préfixe. Un nom mal orthographié ne provoque pas d'erreur. L'outil n'est simplement pas là .
Si le serveur ne doit s'appliquer qu'Ă un seul dĂ©pĂŽt, mettez la mĂȘme table dans le .codex/config.toml de ce dĂ©pĂŽt. Codex ne lit la configuration de projet que pour les projets que vous avez marquĂ©s comme fiables (trusted).
3. Se connecter
codex mcp login osfoundry
Le navigateur ouvre https://osfoundry.io/external-assistant-authorize, intitulé "Connect an agent". La page affiche l'Assistant client et "Returns to", une adresse locale puisque Codex reçoit le callback sur votre machine. Ensuite :
- Workspace to connect : choisissez-en un. Un deuxiÚme workspace nécessite sa propre connexion.
- Requested capabilities : avec les
scopesci-dessus, vous verrez deux lignes, "Read supported resources in projects you add" et "Change supported resources where you have edit access". - Connection : choisissez "Use pending: Codex CLI" pour que la connexion se rattache à celle de l'étape 1.
- Cochez "I approve connecting this assistant to " et cliquez sur Connect.
Sur une machine distante en SSH, codex mcp login osfoundry --no-browser affiche l'URL Ă la place. Vous l'ouvrez sur votre ordinateur portable et collez l'URL de redirection complĂšte dans le terminal.
Le serveur d'osFoundry dispose d'un endpoint d'enregistrement et accepte les clients publics, donc Codex s'enregistre tout seul. Aucun client ID Ă coller.
4. Ajouter la connexion Ă un projet
De retour dans icĂŽne de clĂ© â Connected, la connexion indique maintenant "Connected." Sous Projects, choisissez le projet et cliquez sur Add to project (ajouter au projet). Cela ouvre les Notes synchronisĂ©es du projet, ses bases de connaissances, ses canaux Record, ses Rooms cloud, ses dĂ©pĂŽts GitNest attribuĂ©s et son canal de discussion, y compris tout ce qui sera ajoutĂ© plus tard. Les autres canaux Message nĂ©cessitent chacun un Invite (invitation).
La section Tools commence avec "All supported tools are on by default." DĂ©cochez tout ce que cette connexion ne doit jamais appeler, mĂȘme si quelqu'un modifie config.toml plus tard, puis cliquez sur Save tools (enregistrer les outils).
Exemple : La checklist Tools avec seulement les outils de lecture cochés, puis Save tools
5. Vérifier depuis Codex
Dans la TUI de codex, /mcp liste les serveurs actifs. osfoundry doit y figurer. Ensuite, demandez simplement avec vos mots.
Une exécution réelle
Codex n'est pas installĂ© sur la machine oĂč ce texte a Ă©tĂ© Ă©crit, donc la session ci-dessous est un exemple simulĂ©. Les noms d'outils sont ceux que le serveur rĂ©el renvoie via tools/list. Le code source de Codex prĂ©fixe les outils MCP par mcp__<server>__ dans les noms que voit le modĂšle, d'oĂč leur forme ici. Le prompt, le projet et les rĂ©ponses sont du contenu de dĂ©monstration.
Exemple (simulé)
> Le test qui Ă©choue dans tests/test_refund.py attend une fenĂȘtre de 14 jours.
Vérifie la spec osFoundry et la KB du support avant de modifier quoi que ce soit.
âą mcp__osfoundry__list_granted_resources {}
â 1 projet : "Billing v2"
âą mcp__osfoundry__list_project_resources {"project_id": "âŠ", "resource_type": "note", "search": "remboursement"}
â Note "RĂšgles de remboursement (spec)"
âą mcp__osfoundry__list_note_tabs {"note_id": "âŠ"}
â onglets : Note (texte), Sheet "Cas limites"
âą mcp__osfoundry__read_note_tab {"note_id": "âŠ", "tab_id": "âŠ"}
â "Les remboursements sont acceptĂ©s dans les 30 jours suivant la date de factureâŠ"
âą mcp__osfoundry__search_knowledge_base {"knowledge_base_id": "âŠ", "query": "dĂ©lai de remboursement"}
â article "Politique de remboursement", mis Ă jour il y a 2 jours : 30 jours
âą edited src/billing/refund.py, tests/test_refund.py
âą mcp__osfoundry__edit_record_item {"record_channel_id": "âŠ", "item_id": "âŠ",
"values": {"status": "Fixed"}, "expected_version": "âŠ", "idempotency_key": "âŠ"}
[Codex demande : autoriser cet appel d'outil ? â oui]
â saved
C'était le test qui était faux, pas le code. La Note de spec et l'article de
la KB disent tous deux 30 jours. J'ai modifié le test et le commentaire de la
constante, lancé pytest (12 réussis) et passé le record "Délai de
remboursement décalé de 16 jours" à Fixed.
edit_record_item transmet la version renvoyĂ©e par read_record_item ou list_record_items, donc un record modifiĂ© entre-temps par quelqu'un d'autre est rejetĂ© au lieu d'ĂȘtre Ă©crasĂ©. Un idempotency_key rĂ©pĂ©tĂ© renvoie le premier rĂ©sultat, donc un appel relancĂ© n'Ă©crit pas deux fois. La demande d'approbation au milieu vient de Codex, pas d'osFoundry, Ă cause de default_tools_approval_mode = "writes".
OĂč passe la limite
Codex lit osFoundry, osFoundry ne lit pas Codex. La connexion permet à Codex d'appeler des outils quand il le décide. osFoundry liste chaque appel dans Recent activity avec le nom de l'outil, la décision d'accÚs et l'heure, mais il ne peut ouvrir ni votre session Codex, ni votre dépÎt, ni votre terminal. Votre code source ne va nulle part, sauf si Codex le place dans un argument d'outil, comme un commentaire de record.
Les deux filtres ont des rĂŽles diffĂ©rents. enabled_tools dans config.toml dĂ©cide de ce qui est proposĂ© au modĂšle, ce qui garde le prompt court et les choix Ă©vidents. La checklist Tools d'osFoundry est l'interrupteur du propriĂ©taire, et elle reste en vigueur quoi que dise le fichier local. Aucun des deux n'accorde d'accĂšs Ă quoi que ce soit. Ăa, c'est l'appartenance au projet.
L'accĂšs est dĂ©cidĂ© Ă chaque appel. Chaque appel est vĂ©rifiĂ© par rapport au statut de la connexion, Ă son workspace, Ă l'appartenance actuelle au projet, au projet dans lequel se trouve l'Ă©lĂ©ment Ă ce moment-lĂ et Ă votre propre rĂŽle dans celui-ci. DĂ©placez une Note vers un autre projet, retirez le projet ou cliquez sur Revoke connection (rĂ©voquer la connexion), et l'appel suivant de Codex est refusĂ©, mĂȘme si son token n'a pas expirĂ©.
Certaines écritures sont des propositions. Le travail GitNest, les change sets, les imports de fichiers et les pull requests passent par des outils propose_⊠et attendent dans l'onglet Connected sous "Needs your approval", avec la cible et les fichiers listés, jusqu'à ce que vous cliquiez sur Approve ou Decline. Codex ne reçoit jamais le token de votre fournisseur Git. La configuration d'exemple ci-dessus laisse de toute façon ces outils de cÎté, puisque Codex a déjà votre checkout local.
Les données uniquement locales restent locales. La réponse initialize du serveur le dit : "Local-only data is unavailable to cloud clients." Les Rooms locales, les sessions Graph locales et tout ce qui n'a pas été synchronisé ne sont pas visibles via cette connexion.
Pour la suite
Pointez Codex vers une base de connaissances qui vous sert déjà à répondre aux questions, et demandez-lui de vérifier une docstring ou un message d'erreur par rapport à elle, par exemple : "La formulation de la KB pour cette erreur correspond-elle à ce qu'affiche le code ?". search_knowledge_base renvoie l'ID de l'article et la date de sa derniÚre mise à jour, la source est donc facile à vérifier. La façon dont osFoundry les organise est décrite sur la page des bases de connaissances.


Top comments (0)