Grist MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Grist MCP ServerAdd a row to Expenses: Name=John, Amount=50"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Grist MCP Server
Micro-service HTTP autonome qui expose des outils MCP permettant à un client comme Perplexity de lire et d'écrire dans des documents Grist en langage naturel.
Comment ça marche (important à comprendre)
Ce n'est pas ce micro-service qui "comprend" le français. Dans le protocole MCP :
L'utilisateur écrit dans Perplexity : "Ajoute une ligne avec Nom=Dupont, Montant=120 dans la table Depenses".
Le modèle de Perplexity (lui-même) lit la liste des outils exposés par ce serveur (leurs noms, descriptions, paramètres) et décide d'appeler
add_recordsavec les bons arguments JSON (docId,tableId,records).Ce micro-service reçoit cet appel JSON-RPC structuré, traduit en appel HTTP vers l'API REST de Grist, puis renvoie le résultat à Perplexity, qui le reformule en français.
Votre travail (déjà fait dans ce dépôt) consiste donc surtout à :
exposer des outils avec des descriptions et schémas très clairs (c'est ce qui guide le modèle de Perplexity),
traduire ces outils en appels à l'API Grist (
/api/docs/{docId}/tables/{tableId}/records, etc.).
Related MCP server: perplexity-mcp-server
Outils exposés (~51 outils)
1. Navigation & découverte
Outil | Usage |
| Lister les sites Grist accessibles |
| Lister les workspaces/documents d'une organisation |
| Retrouver un |
| Métadonnées complètes d'un document |
| Lister les tables d'un document |
| Lister les colonnes d'une table |
2. Lecture de données
Outil | Usage |
| Lire des lignes (avec filtre/tri/limite) |
| SELECT SQL en lecture seule, pour des agrégations |
3. Écriture de données
Outil | Usage |
| Ajouter une ou plusieurs lignes |
| Modifier des lignes existantes |
| Ajouter ou mettre à jour selon des critères-clé |
| ⚠️ Supprimer des lignes (irréversible) |
4. Schéma — Tables
Outil | Usage |
| Créer une ou plusieurs tables |
| Modifier les métadonnées d'une table |
| ⚠️ Supprimer une table (irréversible) |
5. Schéma — Colonnes
Outil | Usage |
| Ajouter des colonnes |
| Modifier des colonnes existantes |
| Ajouter ou mettre à jour une colonne |
| ⚠️ Supprimer une colonne (irréversible) |
6. Documents — Cycle de vie
Outil | Usage |
| Créer un document vide |
| Renommer un document |
| Copier un document (ou son gabarit) |
| Créer un fork personnel |
| Déplacer vers un autre workspace |
| Épingler/désépingler |
| Corbeille (ou suppression permanente ⚠️) |
| Restaurer depuis la corbeille |
| ⚠️ Supprimer définitivement |
7. Workspaces
Outil | Usage |
| Créer un workspace |
| Renommer un workspace |
| Corbeille (ou suppression permanente ⚠️) |
| Restaurer depuis la corbeille |
| ⚠️ Supprimer définitivement (et tous ses documents) |
8. Contrôle d'accès
Outil | Usage |
| Lister les rôles utilisateurs sur un document |
| Inviter/retirer/changer un rôle sur un document |
| Lister les rôles utilisateurs sur un workspace |
| Inviter/retirer/changer un rôle sur un workspace |
9. Exports & téléchargements
Outil | Usage |
| URL authentifiée : CSV, TSV, XLSX, SQLite, schéma |
10. Snapshots & historique
Outil | Usage |
| Lister les sauvegardes automatiques |
| ⚠️ Restaurer un document à un snapshot |
| Historique des actions (états/hashes) |
| Réduire la taille de l'historique |
| Comparer deux versions ou deux documents |
11. Webhooks
Outil | Usage |
| Lister les webhooks configurés |
| Créer un webhook (add/update) |
| Modifier un webhook existant |
| Supprimer un webhook |
| Vider la file d'attente non livrée |
12. Pièces jointes
Outil | Usage |
| Lister les métadonnées des pièces jointes |
| Métadonnées + URL de téléchargement d'une pièce jointe |
| Téléverser une ou plusieurs pièces jointes (base64 → multipart/form-data) |
13. Actions bas-niveau
Outil | Usage |
| Appliquer des actions internes Grist (AddRecord, RenameColumn, RenameTable, etc.) — pour tout ce que les autres outils ne couvrent pas |
14. Admin & performance
Outil | Usage |
| Forcer le rechargement (redémarre le moteur de formules) |
| Forcer l'écriture immédiate sur disque |
| Démarrer/arrêter/consulter le chronomètre de performance des formules |
15. Organisation & profil
Outil | Usage |
| Statistiques d'utilisation d'une organisation (docs, pièces jointes) |
| Profil de l'utilisateur authentifié par la clé API |
Pour la demande "Analyse les données de la table X du document Y", Perplexity enchaînera
typiquement : find_document (si Y est un nom) → list_tables/get_table_schema →
get_table_records (ou run_sql_query pour une agrégation), puis fera l'analyse lui-même
à partir des données renvoyées.
Pour "Attache ce fichier à la ligne X" : upload_attachments (retourne un ou plusieurs
IDs numériques) → update_records en assignant ces IDs à une colonne de type Attachments.
Installation
cp .env.example .env
# éditez .env : GRIST_API_KEY, GRIST_API_URL, MCP_SERVER_TOKEN
npm install
npm startLe serveur écoute sur http://localhost:3939/mcp.
Récupérer une clé API Grist
Compte Grist > Account settings > Developer > API keys > Create. ⚠️ Cette clé a les mêmes droits que votre compte sur tous vos documents. Pour limiter le risque, créez idéalement un compte Grist dédié ("service account") qui n'a accès qu'aux documents que vous voulez exposer à Perplexity, et utilisez sa clé API ici.
Tester en local
Avant de brancher Perplexity, vous pouvez tester avec MCP Inspector :
npx @modelcontextprotocol/inspector
# puis dans l'UI : URL = http://localhost:3939/mcp, Transport = Streamable HTTP
# Header: Authorization: Bearer <votre MCP_SERVER_TOKEN>Déploiement
Perplexity exige une URL publique en HTTPS. Quelques options simples :
Test rapide :
ngrok http 3939puis utilisez l'URLhttps://xxxx.ngrok-free.app/mcp.Production légère : déployez sur Render, Railway, Fly.io ou un petit VPS (avec Nginx/Caddy en reverse proxy pour le TLS). Le service est sans état persistant côté disque (tout passe par l'API Grist), donc une seule instance suffit largement, mais pensez à un stockage de session externe (Redis) si vous scalez à plusieurs instances, car
transportsest actuellement en mémoire.
Variables d'environnement à définir sur la plateforme de déploiement : GRIST_API_KEY,
GRIST_API_URL, MCP_SERVER_TOKEN, PORT (souvent imposé par la plateforme).
Note pour upload_attachments : la taille maximale d'un fichier accepté dépend de la
limite configurée sur votre document/site Grist ainsi que de la limite de payload de votre
plateforme d'hébergement (souvent quelques Mo par défaut sur Render/Railway) — augmentez-la
si vous prévoyez des pièces jointes volumineuses. L'encodage base64 augmente la taille du
fichier d'environ 33% par rapport à l'original.
Connecter à Perplexity
Dans Perplexity : Account settings > Connectors > + Custom connector > Remote
Name : Grist
MCP Server URL :
https://votre-domaine.tld/mcpAuthentication : API Key → collez la valeur de
MCP_SERVER_TOKENTransport : Streamable HTTP
Cochez la case de confirmation des risques, puis Add, puis activez le connecteur.
Activez ensuite le connecteur "Grist" sous Sources dans une conversation, et testez :
"Liste les tables du document Suivi Budget" "Analyse les données de la table Depenses du document Suivi Budget" "Ajoute une ligne dans la table Depenses avec Nom=Taxi, Montant=35, Date=2026-06-30" "Téléverse ce fichier et attache-le à la ligne 12 de la table Depenses"
Sécurité — pistes d'amélioration
Remplacer la clé API Grist statique par une app OAuth Grist (voir la doc Grist sur les "Connected apps"), qui permet d'autoriser l'accès à des documents précis et de révoquer l'accès indépendamment du compte utilisateur — plus sûr qu'une clé API globale.
Ajouter une journalisation des appels d'outils (qui a fait quoi, quand) si plusieurs personnes partagent ce connecteur.
Restreindre ou retirer les outils destructifs si vous ne voulez pas que l'IA puisse supprimer des données ou de la structure :
delete_records,delete_table,delete_column,delete_document,delete_workspace,restore_from_snapshot(remplace l'état courant), etapply_user_actions(accès bas-niveau très permissif).Limiter la taille et les types MIME acceptés par
upload_attachmentscôté serveur si le connecteur est partagé, pour éviter les abus de stockage ou l'upload de fichiers non désirés.Envisager de retirer
get_org_usageetget_current_userdu périmètre exposé si le connecteur est partagé par plusieurs utilisateurs, ces outils exposant des informations de compte potentiellement sensibles.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/runconnect/grist-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server