> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stratta.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Architecture

> Comment la plateforme Stratta et le connecteur MCP s'articulent.

Stratta comporte deux parties : la **plateforme** sur stratta.ch (comptes, clés, organisations) et le
**serveur MCP** `@stratta/mcp` (le connecteur que vous installez dans Claude). Cette page montre
comment ils s'articulent — utile si vous intégrez Stratta ou simplement par curiosité.

## Vue d'ensemble

```mermaid theme={null}
flowchart LR
    A[Claude / Claude Code] -->|MCP tools over stdio| B["@stratta/mcp<br/>(thin client)"]
    B -->|API key auth| C[Stratta backend]
    C --> D[(TreeRAG store:<br/>documents, sections,<br/>figures, formulas,<br/>tables, cross-refs)]
    E[stratta.ch web app] --> C
    F[You] -->|sign up, API keys,<br/>organization| E
```

## Le serveur MCP est un client léger

`@stratta/mcp` est volontairement minimal. Il :

* Parle le [Model Context Protocol](https://modelcontextprotocol.io) en stdio à votre client Claude.
* Authentifie chaque requête avec votre clé API.
* Transmet les appels au backend Stratta et en renvoie les résultats.

Toutes les données et la logique — les normes, le scoping par organisation, la structure des
citations — vivent sur le backend. Le package ne contient aucun contenu de norme, raison pour
laquelle les mises à jour se résument à `npx -y @stratta/mcp` récupérant la dernière version.

## Le backend

Le backend stocke chaque norme sous forme de structure **TreeRAG** : un arbre de `sections` sous un
`document`, avec des `figures`, `formulas`, `tables` et `crossRefs` attachés. Les outils de lecture
interrogent cet arbre ; les outils d'ingestion y écrivent. Chaque enregistrement porte un
`organizationId` afin que les requêtes soient scopées à votre espace de travail.

| Couche              | Technologie                                                       |
| ------------------- | ----------------------------------------------------------------- |
| Connecteur MCP      | `@stratta/mcp` — TypeScript, MCP SDK, transport stdio             |
| Plateforme web      | TanStack Start (SSR) sur Vercel                                   |
| Backend et stockage | Convex (base de données, fonctions serveur, stockage de fichiers) |
| Authentification    | Better Auth + accès API par clé                                   |
| Email               | Resend                                                            |

## L'authentification aujourd'hui : les clés API

Stratta authentifie le connecteur MCP avec une **clé API** — il n'existe pas aujourd'hui de connexion
OAuth via navigateur pour le serveur MCP. Cela garde le connecteur simple et fonctionne partout où le
MCP stdio fonctionne. (Une option distante, basée sur OAuth, a été évaluée mais n'est pas proposée
actuellement.) Voir [Sécurité](/fr/concepts/security) et l'[aperçu MCP](/fr/mcp/overview).

## Pour aller plus loin

<CardGroup cols={2}>
  <Card title="TreeRAG" icon="tree" href="/fr/concepts/treerag">
    Le modèle de données derrière les citations.
  </Card>

  <Card title="Référence MCP" icon="terminal" href="/fr/mcp/overview">
    Les outils que le connecteur expose.
  </Card>
</CardGroup>
