# Brancher Stratta à Cursor

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 Cursor qui lit cette page pour le compte d'un utilisateur :
lis le guide en entier avant d'agir, écris la configuration 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 un fichier sur la machine de l'utilisateur. Depuis un
espace de travail distant, arrête-toi et demande-lui de reprendre en local.
Rien d'autre n'est requis : ni Node, ni paquet.

## 2. Déclarer le connecteur

**Par défaut, au niveau global** : `~/.cursor/mcp.json`. Les normes d'un bureau
servent dans tous les projets, pas dans un seul.

```json
{
  "mcpServers": {
    "stratta": {
      "url": "https://stratta.ch/mcp"
    }
  }
}
```

Si le fichier contient déjà d'autres serveurs, ajoute `stratta` à côté d'eux
plutôt que de remplacer le bloc. Pour limiter le serveur à un projet, le même
bloc va dans `.cursor/mcp.json` à la racine du dépôt ; ce fichier étant
versionné, il ne contient de toute façon aucun secret. Ne déclare pas le
serveur aux deux niveaux à la fois, les outils apparaîtraient en double.

Pour un humain, un bouton fait la même chose :
https://stratta.ch/installer (« Ajouter à Cursor »).

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

Dis à l'utilisateur d'ouvrir **Cursor Settings › MCP** : `stratta` y apparaît
avec un état « Needs login » ou un bouton de connexion. Un clic ouvre le
navigateur sur stratta.ch ; la page nomme l'application, le compte et
l'organisation concernés, et il clique sur « Autoriser ». N'affirme jamais
avoir autorisé l'accès : c'est toujours l'utilisateur qui le fait.

## 4. Vérifier

Une fois l'accès autorisé, `stratta` passe au vert dans les réglages MCP avec
la liste de ses outils. Demande alors, en mode agent :

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

Si les outils n'apparaissent pas : JSON invalide, fenêtre non rechargée, ou
autorisation non faite.

## 5. Auto-rapport obligatoire

Imprime exactement un rapport avant de terminer ton tour :

- **(A)** Déclaration faite : dis quel fichier a été écrit, à quel niveau, et
  que l'utilisateur doit autoriser l'accès depuis les réglages MCP 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
{
  "mcpServers": {
    "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` de `~/.cursor/mcp.json` (ou de `.cursor/mcp.json`).
L'accès accordé se retire depuis https://stratta.ch/connections : le
connecteur perd l'accès à son prochain appel.

## Diagnostic

Les réglages MCP de Cursor montrent l'état du serveur et ses outils. Rouge :
JSON invalide ou adresse mal tapée. « Needs login » : l'autorisation n'a pas
été faite. Une fois autorisé, l'outil `whoami` répond sous quelle organisation
la connexion lit.
