Architecture
Comment la plateforme Stratta et le connecteur MCP s'articulent ensemble.
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
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| ELe serveur MCP est un client léger
@stratta/mcp est volontairement minimal. Il :
- Parle le Model Context Protocol 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é |
| Resend |
Deux transports, une seule autorité
Stratta se joint de deux façons, et elles ne diffèrent que par la preuve d'identité :
| Connecteur distant | Serveur local | |
|---|---|---|
| Adresse | https://stratta.ch/mcp | @stratta/mcp sur npm |
| Transport | Streamable HTTP | stdio |
| Preuve | jeton OAuth 2.1, une heure, renouvelé | clé API, jusqu'à révocation |
Le reste est commun : les mêmes requêtes scopées par organisation, le même compteur mensuel, le même corpus. L'organisation n'est jamais un paramètre venu du client : elle est dérivée du justificatif, côté serveur, et relue à chaque appel pour qu'un accès meure avec l'appartenance et non avec le jeton.
L'ingestion passe par les deux. La pré-passe lit toujours le PDF sur une machine : un agent qui en
a une (Claude Code, Codex, Cursor, Gemini CLI) ingère par le connecteur en téléchargeant le script.
Seul add_attachment, qui dépose un fichier de votre disque dans un dossier, exige le serveur local.
Voir Connecter un agent par le navigateur, Sécurité et l'aperçu MCP.