# Brancher Stratta à VS Code

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 qui lit cette page depuis VS Code pour le compte d'un
utilisateur : lis le guide en entier avant d'agir, exécute la commande ou
écris le fichier 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. Déclaration du connecteur.
3. Autorisation dans le navigateur.
4. Vérification.
5. Auto-rapport obligatoire.

## 1. Contrôle de l'environnement

La déclaration écrit sur la machine de l'utilisateur et suppose une extension
d'agent capable de parler MCP, typiquement GitHub Copilot en mode agent. Rien
d'autre n'est requis : ni Node, ni paquet.

## 2. Déclarer le connecteur

Le chemin le plus court passe par la CLI :

```bash
code --add-mcp '{"name":"stratta","type":"http","url":"https://stratta.ch/mcp"}'
```

Sur PowerShell, les guillemets simples ne protègent pas le JSON : utilise des
guillemets doubles échappés, ou passe par le fichier ci-dessous.

Pour que le serveur suive un dépôt et son équipe, déclare-le dans
`.vscode/mcp.json`. **La clé de premier niveau est `servers`, pas
`mcpServers`** : les deux conventions coexistent selon les clients, et se
tromper produit un fichier valide qui ne fait rien.

```json
{
  "servers": {
    "stratta": {
      "type": "http",
      "url": "https://stratta.ch/mcp"
    }
  }
}
```

Ce fichier étant versionné, il ne contient de toute façon aucun secret. Pour
un humain, un bouton fait la même chose : https://stratta.ch/installer
(« Installer dans VS Code »).

**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

Au premier démarrage du serveur (bouton « Start » au-dessus du bloc dans
`mcp.json`, ou premier appel d'outil depuis le chat), VS Code propose de se
connecter à Stratta et ouvre le navigateur. La page nomme l'application, le
compte et l'organisation concernés ; l'utilisateur clique sur « Autoriser ».
N'affirme jamais avoir autorisé l'accès : c'est toujours l'utilisateur qui le
fait.

## 4. Vérifier

Ouvre le chat en mode agent et demande :

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

Les outils Stratta doivent apparaître dans le sélecteur d'outils. Sinon :
mauvaise clé de premier niveau dans le fichier, serveur non démarré, ou
autorisation refusée.

## 5. Auto-rapport obligatoire

Imprime exactement un rapport avant de terminer ton tour :

- **(A)** Déclaration faite : dis par quel chemin, et que l'utilisateur doit
  autoriser l'accès au premier démarrage du serveur si ce n'est pas déjà fait.
- **(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.

## 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` :

```json
{
  "servers": {
    "stratta": {
      "command": "npx",
      "args": ["-y", "@stratta/mcp"]
    }
  }
}
```

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

## Désinstallation

Retire le bloc `stratta` du fichier où il a été déclaré, ou passe par la vue
MCP de VS Code. L'accès accordé se retire depuis
https://stratta.ch/connections : le connecteur perd l'accès à son prochain
appel.

## Diagnostic

La vue MCP de VS Code (commande « MCP: List Servers ») montre l'état du serveur
et son journal. Une fois autorisé, l'outil `whoami` répond sous quelle
organisation la connexion lit.
