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-server
grist-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 build
Add 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:dev
Deploy to Cloudflare:
npm run worker:deploy
Configuration:
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 columns
1. 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 aggregations
Server 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 automatic
Tool 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.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y grist-mcp-serverMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-gwhthompson-grist-mcp-server": {
"command": "npx",
"args": [
"-y",
"grist-mcp-server"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencegrist-mcp-servernpmio.github.gwhthompson/grist-mcp-server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.