Vue d'ensemble
Sarmate expose un serveur MCP (Model Context Protocol) qui donne accès à votre drive LaTeX à des clients IA externes.
- URL :
https://mcp.sarmate.net/mcp - Transport : Streamable HTTP / SSE
- Auth : Bearer token (
Authorization: Bearer smt_xxx) - Plan : Perso, Pro ou Etab requis (free non supporté)
- Rate limit : 60 req/min/IP
- Limite de tokens : 10 tokens actifs par compte
Setup par client
smt_VOTRE_TOKEN — remplacez-le manuellement par votre vrai token. Ne saisissez jamais votre token dans un champ d'une page publique (risque de phishing, y compris via un faux clone de cette page). Créer un compte pour générer un token.
Claude Desktop (Mac / Windows / Linux)
Claude Desktop ne parle pas HTTP nativement. Il faut utiliser le bridge mcp-remote (Node.js requis) qui convertit le transport stdio en HTTP.
Fichier à éditer :
- macOS :
~/Library/Application Support/Claude/claude_desktop_config.json - Windows :
%APPDATA%\Claude\claude_desktop_config.json - Linux :
~/.config/Claude/claude_desktop_config.json
Contenu (fusionner avec les autres serveurs MCP existants si vous en avez) :
Claude.ai (Web / iOS / Android)
Via l'UI web / mobile :
- Settings → Connectors → Add custom connector
- Name :
sarmate - URL :
https://mcp.sarmate.net/mcp - Auth : Custom header →
Authorization: Bearer smt_VOTRE_TOKEN
Vous devrez ensuite activer le connecteur dans chaque conversation où vous voulez l'utiliser (icône en bas du champ de saisie).
Claude Code (CLI)
Une seule commande dans le terminal :
Ajoute le serveur en scope user (disponible dans tous vos projets). Utilisez --scope project pour limiter au repo courant.
Cursor
Cursor parle HTTP nativement (pas de bridge nécessaire). Éditez :
~/.cursor/mcp.json(global).cursor/mcp.json(par projet)
Aussi possible via Cursor Settings → MCP → Add Server.
Cline (VS Code)
Dans VS Code : sidebar Cline → MCP Servers → Configure MCP Servers, puis collez :
Continue (VS Code)
Ajoutez ce bloc à votre ~/.continue/config.yaml :
ChatGPT (Developer Mode, beta)
Fonctionnalité beta. Plus / Pro = lecture seule ; les outils en écriture sont réservés aux comptes Business / Enterprise / Edu.
- Settings → Apps → Advanced settings → Developer mode
- Create app
- URL :
https://mcp.sarmate.net/mcp - Transport : Streamable HTTP
- Auth : Custom header →
Authorization: Bearer smt_VOTRE_TOKEN
Gemini CLI
Méthode rapide (CLI déjà installé) :
Manuellement, dans ~/.gemini/settings.json :
Le Chat (Mistral) — 🇫🇷 EU
Le Chat (le LLM de Mistral, hébergé dans l'UE) supporte les MCP connectors personnalisés directement depuis l'interface web — aucun fichier de config à éditer.
- Ouvrez chat.mistral.ai — le panneau de gauche est visible par défaut.
- Intelligence → Connecteurs → Ajouter un connecteur.
- Onglet Connecteur MCP personnalisé, puis renseignez :
- Nom du connecteur (grand titre en haut — obligatoire) :
Sarmate - Serveur du connecteur :
https://mcp.sarmate.net/mcp - Description (facultatif) :
Sarmate.net - Méthode d'authentification : Authentification par token API
- Nom de l'en-tête :
Authorization· Type d'en-tête :Bearer - Valeur de l'en-tête :
smt_VOTRE_TOKEN(le token seul — sans « Bearer » devant)
- Nom du connecteur (grand titre en haut — obligatoire) :
- Créer — le connecteur est utilisable immédiatement, sans redémarrage.
Disponible sur tous les plans Le Chat (Free / Pro / Student). Sarmate × Le Chat = pile 100% européenne (Mistral France + Sarmate O2Switch / Ionos France), idéal pour facs et chercheurs avec contraintes RGPD / souveraineté.
Doc Mistral : docs.mistral.ai/le-chat/.../mcp-connectors
Autre client MCP
Configuration générique pour tout client MCP supportant streamable HTTP + Bearer :
- URL :
https://mcp.sarmate.net/mcp - Transport : Streamable HTTP / SSE
- Auth header :
Authorization: Bearer smt_VOTRE_TOKEN
Pour les clients stdio-only (pas de HTTP), utilisez mcp-remote comme bridge :
Outils disponibles
11 outils disponibles. Tags : Lecture sûr, toujours autorisé — Écriture crée un snapshot avant modification — Compile consomme votre quota de compilation (sauf Pro/Etab).
Workflow Markdown
Une IA peut maintenant compiler du Markdown sans installation locale de Pandoc ET analyser son propre PDF. Séquence type :
// 1. Compile a .md to PDF compile({ "path": "draft.md" }) // → { status: "success", mode: "markdown", pdf_path: "draft.pdf", // pdf_url: "https://user-content.sarmate.net/.../draft.pdf", // compilation_time_ms: 4231 } // 2. Read the resulting PDF text for analysis read_pdf({ "path": "draft.pdf" }) // → { text: "...", text_bytes: 23874, extract_ms: 412 } // 3. If the .md compile fails, the response includes log_excerpt + hint // so the AI can fix the .md and retry.
Attention : dans les en-têtes YAML de vos .md, évitez \usepackage{bm} ou \boldsymbol{} — ils entrent en conflit avec unicode-math (auto-chargé par Pandoc + xelatex). Utilisez plutôt \symbf{x} ou \mathbf{x}.
Page complète sur le workflow Markdown : /markdown-to-latex.php
delete_file — désactivé intentionnellement. La suppression de fichiers passe par votre file manager Sarmate (mesure de sécurité contre les hallucinations de l'IA).
Sécurité
- Stockage bcrypt: tokens en hash, jamais en clair.
- Snapshots pré-écriture: 30 jours de rétention. Restauration via restore_version.
- Path traversal bloqué: sanitize_rel + realpath check, lecture/écriture hors du drive user impossible.
- Extensions interdites: .php, .htaccess, .exe, .sh… (write_file/create_file lehnt ab).
- Scope granulaire: token limitable à un dossier et/ou en lecture seule.
- Audit log: chaque appel enregistré (token_id, tool, params, status, IP, timestamp).
- Révocation instantanée: le client IA est déconnecté au prochain appel.
- Rate limit: 60 req/min/IP (nginx).
FAQ
Combien de tokens puis-je avoir ?
Quel est le quota de compilation par plan ?
Que se passe-t-il si je crée un nouveau token avec le même label ?
Ai-je besoin d'une clé API du fournisseur LLM ?
Est-ce que ça fonctionne en OAuth ?
Mes fichiers sont-ils envoyés à l'IA ?
Puis-je self-hoster le serveur MCP ?
Comment débugger une erreur de connexion ?
Exemples curl bruts (debug)
Utile pour valider que le serveur et votre token fonctionnent, indépendamment du client.
tools/list
tools/call (read_file)
Prêt à essayer ?
Créez un token en 30 secondes et copiez le snippet adapté à votre client.
Créer un compte Retour à la présentation