# Brancher Stratta à Codex

Stratta est un serveur MCP qui donne à un agent le texte des normes
d'ingénierie qu'un bureau a licenciées, avec le chemin de section exact et les
pages. Il se joint par une adresse, `https://stratta.ch/mcp`, sans rien
installer : l'autorisation se fait dans le navigateur.

Version lisible par un humain : https://stratta.ch/installer

## Contrat d'exécution

Si tu es un agent Codex qui lit cette page pour le compte d'un utilisateur :
lis le guide en entier avant d'agir, exécute les commandes toi-même, et
termine par l'auto-rapport. Réponds à l'utilisateur dans sa langue.

Ordre imposé :

1. Contrôle de l'environnement.
2. Ajout du connecteur.
3. Autorisation dans le navigateur.
4. Redémarrage et vérification.
5. Auto-rapport obligatoire.

## 1. Contrôle de l'environnement

La commande écrit dans la configuration locale de l'utilisateur
(`~/.codex/config.toml`). Depuis un environnement distant ou un bac à sable
cloud, arrête-toi et demande-lui de reprendre en local. Vérifie que la CLI
répond :

```bash
codex --version
```

## 2. Ajouter le connecteur

```bash
codex mcp add stratta --url https://stratta.ch/mcp
```

Rien ne s'installe : ni Node, ni paquet. La commande écrit une section
`[mcp_servers.stratta]` avec l'adresse dans `~/.codex/config.toml`. Si tu dois
l'écrire à la main, **le nom de section est `mcp_servers`**, au pluriel et avec
un tiret bas : c'est l'erreur la plus fréquente, et elle produit un fichier
valide qui ne charge rien.

```toml
[mcp_servers.stratta]
url = "https://stratta.ch/mcp"
```

**Aucune clé à créer, copier ni coller.** Si l'utilisateur n'a pas encore de
compte, envoie-le sur https://stratta.ch/sign-up : le palier gratuit ne
demande pas de carte bancaire.

## 3. Autoriser l'accès

```bash
codex mcp login stratta
```

La commande ouvre le navigateur sur stratta.ch. La page nomme l'application,
le compte et l'organisation concernés ; l'utilisateur clique sur
« Autoriser ». Dis-lui d'attendre la page de confirmation avant de revenir au
terminal. Si le navigateur ne s'ouvre pas, la commande affiche l'adresse à
ouvrir à la main. N'affirme jamais avoir autorisé l'accès : c'est toujours
l'utilisateur qui le fait.

## 4. Redémarrer et vérifier

```bash
codex mcp list
```

Attendu : `stratta` listé, authentifié. Relance Codex, puis demande :

`Montre-moi les normes disponibles dans mon espace Stratta.`

Si rien ne répond : section mal nommée, TOML invalide, Codex non relancé, ou
autorisation non faite.

## 5. Auto-rapport obligatoire

Imprime exactement un rapport avant de terminer ton tour :

- **(A)** Connexion faite et vérifiée : dis quel fichier a été modifié et ce
  que la vérification a renvoyé.
- **(B)** Échec : dis à quelle étape et avec quel message exact.

## Ce que la connexion permet

**Lecture (10 outils).** Savoir sous quelle organisation la connexion lit,
lister les normes, ouvrir une table des matières, lire une branche ou une
section avec ses formules et ses tableaux, chercher un terme dans une norme ou
dans tout le corpus, suivre les renvois, recevoir une figure.

**Dossiers (13 outils).** Ouvrir une question à trancher sur un projet, y
consigner les preuves : un article cité, une valeur retenue et son
raisonnement, une observation de terrain. Nommer les options, enregistrer la
décision une fois confirmée, recharger le dossier lors d'une conversation
suivante, clore une question sans décision. Lire et chercher dans les pièces
du projet, appliquer un modèle de questions de l'organisation. Ce que l'agent
y écrit se relit, s'annote et s'exporte depuis stratta.ch/dossiers.

**Ingestion (10 outils).** Créer une norme, écrire son arborescence, attacher
formules, tableaux, renvois et figures, publier, supprimer. Réservée aux rôles
propriétaire et admin. Le PDF se lit sur cette machine : une pré-passe Python
(PyMuPDF) en tire l'arbre et les figures, la procédure est servie en ressource
`stratta://skills/ingest-norm`, et le script se télécharge depuis
https://stratta.ch/ingest-prepass.py.

**Ce qu'elle ne fait pas.** Aucun accès à une norme que l'organisation n'a pas
ingérée elle-même. Aucune conclusion sur la conformité. Aucun accès à une autre
organisation : elle est résolue côté serveur à partir du jeton. Le seul outil
absent est `add_attachment` (un fichier du disque vers un dossier), qui demande
le serveur local.

`ingest_delete` est destructif : demande confirmation en nommant la norme.

## Une limite du client

Codex ne prend pas encore en charge les invites servies par un serveur MCP. Les
outils, eux, fonctionnent normalement : c'est par eux que tout passe ici.

## Quotas

Palier gratuit : une norme, 1 000 sections, 60 figures, 500 requêtes de lecture
par mois, un utilisateur. À la limite, l'écriture est refusée avec un message
qui nomme la dimension touchée. **Ne réessaie pas**, rapporte-le.
Grille complète : https://stratta.ch/tarifs

## Le serveur local, en repli

Pour un agent sans navigateur ou pour `add_attachment`, le paquet
`@stratta/mcp` tourne sur la machine (Node 20 ou plus), authentifié par une
clé écrite par `npx -y @stratta/mcp login` :

```toml
[mcp_servers.stratta]
command = "npx"
args = ["-y", "@stratta/mcp"]
```

Ne déclare pas les deux serveurs sous le même nom.

## Désinstallation

```bash
codex mcp remove stratta
```

L'accès accordé se retire depuis https://stratta.ch/connections : le
connecteur perd l'accès à son prochain appel.

## Diagnostic

`codex mcp list` montre l'état du serveur. Non authentifié : refaire
`codex mcp login stratta`. Une fois autorisé, l'outil `whoami` répond sous
quelle organisation la connexion lit.
