Prérequis
Choisissez une façon de faire tourner Calame :
| Environnement | Requiert |
|---|---|
| Application desktop (le plus simple) | Windows 10/11 x64, rien d’autre à installer |
| Docker (serveurs, équipes) | Docker Desktop ou Docker Engine + Compose |
| Node.js (mode dev) | Node ≥ 20, pnpm ≥ 9 |
Il vous faut aussi :
- Une base de données à exposer (PostgreSQL, MySQL ou SQLite). Pour les tests, Calame fournit un générateur SQLite de démo ; voir l’étape 04.
- Facultatif : une clé d’API LLM si vous voulez le chat intégré (Anthropic, OpenRouter, ou une installation Ollama locale).
Installer et lancer
Option A · Application desktop (Windows)
Téléchargez l’installeur et lancez-le : aucun droit administrateur requis, Calame s’ouvre sur http://localhost:4567 et continue de tourner depuis la barre système quand vous fermez la fenêtre. Les mises à jour s’installent silencieusement au démarrage.
Option B · Docker (serveurs, équipes)
$ git clone https://github.com/Calame-Tech/calame.git
$ cd calame
$ docker compose upAttendez :
calame-1 | Calame is running on http://localhost:4567/calame-data est créé : votre compte admin, vos profils, jetons et journal d’audit survivent aux redémarrages.Option C · Node.js (dev)
$ git clone https://github.com/Calame-Tech/calame.git
$ cd calame
$ pnpm install
$ pnpm devMême cible : http://localhost:4567.
Créer le compte admin
Ouvrez http://localhost:4567. Au premier lancement, vous arrivez sur la page Setup :
- Choisissez un email et un mot de passe admin (12 caractères ou plus recommandés).
- Validez. Vous êtes maintenant connecté en tant qu’admin de l’espace de travail.
users dans calame.db (ou supprimez le fichier de base de données entier dans CALAME_DATA_DIR pour une réinitialisation complète), redémarrez.Connecter une base de données
Dans le panneau Sources, cliquez sur Nouvelle source. Trois moteurs SQL sont pris en charge dans le cœur :
- PostgreSQLport 5432
- MySQLport 3306
- SQLitechemin de fichier
Tester SQLite, sans configuration
Envie d’essayer sans toucher à de vraies données ? Utilisez le générateur fourni :
$ node scripts/generate-demo-db.jsCeci crée demo-logistique-v2.db à la racine du dépôt, un jeu de données logistique fictif (~5 Mo, ~30 tables, fausses données personnelles). Utilisez ./demo-logistique-v2.db dans le formulaire de connexion SQLite.
SET TRANSACTION READ ONLY sur Postgres, --readonly sur SQLite). Même un LLM malveillant ne peut pas modifier vos données via un profil, sauf si vous activez explicitement la file d’écriture.Créer un profil
Un profil est une vue publiée de votre base de données, avec sa propre authentification, son masquage et ses permissions. Une seule base, plusieurs profils.
5.1 · Tables et colonnes
Choisissez les tables à exposer. Pour chaque table, choisissez les colonnes visibles. Décochez tout ce que vous ne voulez pas que le LLM voie.
5.2 · Masquage des données personnelles
Calame détecte automatiquement les données personnelles probables (email, téléphone, adresse, carte, numéro de sécurité sociale…). Règles par colonne ou globales : caviardage complet, hachage, masquage partiel ou regex personnalisée.
5.3 · Restriction au niveau des lignes (facultatif)
Restreignez le profil aux lignes correspondant à une condition, par ex. client_email = "<email de l’utilisateur authentifié>". Utilisé pour l’isolation des données par utilisateur.
5.4 · Mode d’authentification
Choisissez-en un : ouvert · jeton Bearer · mot de passe · SSO OIDC · OAuth 2.1 avec enregistrement dynamique de client · URL de validation externe.
Tester dans le chat intégré
Pas besoin d’un client externe pour valider le profil.
- Paramètres → Fournisseur IA → choisissez votre fournisseur (Anthropic, OpenRouter, ou un point de terminaison compatible OpenAI comme un Ollama local).
- Choisissez un modèle (par ex.
claude-sonnet-4-5,llama3.1:8b). - Ouvrez Chat → choisissez le profil → demandez : « Combien de tables dans cette base ? Montre un exemple de ligne pour chacune. »
Générer un jeton utilisateur
Pour les clients IA externes avec authentification par jeton Bearer :
- Panneau Utilisateurs → Nouvel utilisateur
- Email, nom, profils attribués
- Générer un jeton. Calame ne l’affiche qu’une fois. Copiez-le maintenant.
Pour les modes OAuth / SSO, aucun jeton n’est nécessaire ; le client gère le flux.
Connecter un client IA
L’URL du point de terminaison MCP est toujours http://localhost:4567/mcp/<profile-name>.
Claude Desktop · en un clic
Ouvrez la page de votre serveur MCP et cliquez sur Connecter à Claude Desktop. Calame génère un jeton dédié révocable, fusionne l’entrée dans claude_desktop_config.json (une sauvegarde .bak horodatée est conservée), et le profil apparaît dans les outils de Claude après un redémarrage. Rien d’autre à installer sur la machine.
Cursor · VS Code · clients OAuth
Pour les profils en mode OAuth 2.1, il suffit de coller l’URL du point de terminaison dans les paramètres MCP du client : Calame prend en charge l’enregistrement dynamique de client, donc le client s’enregistre lui-même et invite l’utilisateur dans le navigateur. Aucun jeton à copier.
Copilot · ChatGPT · assistants cloud
Microsoft et OpenAI n’atteignent les serveurs MCP que via HTTPS public. Sur la page du serveur, cliquez sur Exposer pour Copilot / ChatGPT : un tunnel Cloudflare intégré donne à votre Calame local une URL publique protégée par jeton (aucun compte requis), avec des guides pas à pas pour Copilot Studio et les connecteurs ChatGPT. L’URL change à chaque session et meurt avec le tunnel.
Solution manuelle (tout client MCP)
Modifiez claude_desktop_config.json (Mac : ~/Library/Application Support/Claude/, Windows : %APPDATA%\Claude\), ou l’équivalent chez votre client :
{
"mcpServers": {
"calame": {
"transport": {
"type": "http",
"url": "http://localhost:4567/mcp/sales",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}
}Pour les profils OAuth, supprimez le bloc headers ; le client invite l’utilisateur via le navigateur.
Vérification avec curl
$ curl -X POST http://localhost:4567/mcp/sales \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Vous devriez obtenir une réponse JSON listant les outils générés automatiquement pour votre profil (un par table + un outil de requête).
Et ensuite
- Déployer en production : des modèles Caddy / nginx sont disponibles dans
docs/Caddyfileetdocs/nginx.conf. - Journal d’audit : chaque requête, qui, quand, avec quelle portée. Filtrez et exportez depuis le panneau Audit.
- Utilisateurs multiples + SSO : Paramètres → Authentification unique ; connectez Calame à Google, Okta, Keycloak, Azure AD. (Pro ou Enterprise)
- Secrets dans Vault : Calame peut récupérer les identifiants de base de données depuis HashiCorp Vault au lieu de les stocker localement.
Une lacune ou un blocage ?
Ouvrez un ticket sur GitHub ou écrivez-nous ; nous répondons généralement sous un jour ouvré.