DEV Community

Cover image for Comment faire lire vos notes et bases de connaissances osFoundry Ă  Codex CLI via MCP
BBT for BBT Français

Posted on

Comment faire lire vos notes et bases de connaissances osFoundry Ă  Codex CLI via MCP

À 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
Enter fullscreen mode Exit fullscreen mode

L'onglet Connected avec la connexion Codex CLI sélectionnée

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
Enter fullscreen mode Exit fullscreen mode

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",
]
Enter fullscreen mode Exit fullscreen mode

Ce que chaque ligne apporte :

  • scopes remplace 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, dont osfoundry: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 avec readOnlyHint, donc les neuf outils de lecture s'exĂ©cutent sans confirmation et edit_record_item demande d'abord.
  • enabled_tools garde 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
Enter fullscreen mode Exit fullscreen mode

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 scopes ci-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).

La checklist Tools avec seulement les outils de lecture cochés, puis Save tools

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.
Enter fullscreen mode Exit fullscreen mode

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)