11 tools for managing Grist documents with AI
MCP server for Grist. 11 tools for documents, records, SQL, and pages.
claude mcp add grist --env GRIST_API_KEY=your_api_key --env GRIST_BASE_URL=https://docs.getgrist.com -- npx -y grist-mcp-servergrist-mcp-server.mcpb from ReleasesAdd to your .mcp.json file:
{
"mcpServers": {
"grist": {
"command": "npx",
"args": ["-y", "grist-mcp-server"],
"env": {
"GRIST_API_KEY": "your_api_key",
"GRIST_BASE_URL": "https://docs.getgrist.com"
}
}
}
}git clone https://github.com/gwhthompson/grist-mcp-server.git
cd grist-mcp-server
npm install && npm run buildAdd to your MCP config:
{
"mcpServers": {
"grist": {
"command": "node",
"args": ["/path/to/grist-mcp-server/dist/index.js"],
"env": {
"GRIST_API_KEY": "your_api_key",
"GRIST_BASE_URL": "https://docs.getgrist.com"
}
}
}
}Deploy as a remote MCP server using Cloudflare Workers for HTTP-based access.
Local development:
npm run worker:devDeploy to Cloudflare:
npm run worker:deployConfiguration:
The Workers deployment uses header-based authentication:
X-Grist-API-Key: Your Grist API key (required)X-Grist-Base-URL: Grist instance URL (optional, defaults to https://docs.getgrist.com)Endpoint: https://your-worker.workers.dev/mcp
Example request:
curl -X POST https://your-worker.workers.dev/mcp \
-H "Content-Type: application/json" \
-H "X-Grist-API-Key: your_api_key" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'Notes:
wrangler secret put GRIST_API_KEY| Tool | Purpose |
|---|---|
grist_get_workspaces | List and filter workspaces |
grist_get_documents | Find documents by ID, name, or workspace |
grist_get_tables | Get table structure and schema |
grist_query_sql | Run SQL queries with JOINs and aggregations |
grist_get_records | Fetch records with filters |
grist_manage_records | All record CRUD operations (add/update/delete/upsert) |
grist_manage_schema | Schema operations: tables, columns, summaries |
grist_manage_pages | Page layout and management |
grist_create_document | Create new Grist documents or copy existing ones |
grist_manage_webhooks | Create and manage webhooks for real-time event notifications |
grist_help | Discover tools and get detailed documentation with JSON schemas |
1. grist_get_workspaces → find workspace
2. grist_create_document → create document
3. grist_manage_schema → create tables with columns1. grist_get_documents → find document
2. grist_get_tables → check structure
3. grist_manage_records → upsert data (adds new, updates existing)1. grist_get_tables → understand schema
2. grist_query_sql → run SQL with JOINs and aggregationsServer won't start: Check GRIST_API_KEY is set in config.
Authentication fails: Verify API key at https://docs.getgrist.com/settings/keys.
Empty document list: Check GRIST_BASE_URL matches your Grist instance.
Connection errors (self-hosted): Verify URL includes https:// and server is reachable.
npm test # Docker required - container lifecycle is automaticTool descriptions are concise. Use grist_help for details:
grist_help({tools: ["grist_manage_records"], only: ["examples"]})grist_help({tools: ["grist_query_sql"], only: ["errors"]})See CHANGELOG.md for version history.