Grist
Grist is a relational spreadsheet platform that combines the flexibility of a spreadsheet with the robustness of a database, allowing users to create custom applications tailored to their data needs.
Verdict
Common use cases
- Log support tickets into a Grist tracker
- Query inventory levels before placing orders
- Update project status rows during standups
- Create new tables for ad-hoc data collection
- Pull customer records for account reviews
Integration
- Vendor
- Grist
- Category
- productivity
- Auth
- API_KEY
- Tools
- 32
- Composio slug
grist
Tools
- Add Records
Tool to add records to a specified table in a Grist document. Use after confirming doc and table IDs.
- Create Document
Tool to create a document in a workspace. Use when you need to add a new document programmatically after selecting a workspace.
- Create Document Webhook
Tool to create a new webhook for a specified document. Use when you need to register webhook endpoints for document events in Grist. Run after confirming document ID.
- Create SCIM User
Tool to create a new SCIM user. Use when provisioning new user accounts via SCIM. Run after gathering all required user details.
- Create Table
Tool to create tables in a document. Use after confirming the document ID. Creates one or more tables with specified columns in the given document.
- Delete Attachmentdestructive
Tool to delete a specified attachment from a Grist document. Use when you need to remove a file by providing its document and attachment IDs.
- Delete Columndestructive
Tool to delete a column from a Grist document table. Use after confirming document, table, and column IDs.
- Delete Grist Table Recordsdestructive
Tool to delete records from a specified Grist table. Use when you need to remove specific rows by their IDs. Use after confirming the row IDs exist.
- Delete SCIM Userdestructive
Tool to delete a specified user via SCIM. Use after confirming the user's SCIM user ID exists.
- Delete Webhookdestructive
Tool to delete a webhook from a Grist document. Use when you need to remove a specific webhook after confirming its ID.
- Download All Attachments Archive
Tool to download all attachments from a Grist document as a .zip or .tar archive. Use after ensuring attachments exist in the specified document.
- Download Attachment
Tool to download the binary data of an attachment. Use when you have the document ID and attachment ID and need the raw file content.
- Download Grist Attachment Content
Tool to download the raw bytes of an attachment. Use when you need to retrieve the binary data of a specific Grist document attachment after confirming the document and attachment IDs.
- Fetch Column Metadata
Tool to fetch metadata for a specific column in a Grist document table. Use when you need to inspect column properties before data operations.
- Fetch Document Metadata
Tool to fetch metadata for a specified Grist document. Use after obtaining the document ID.
- Fetch Table Metadata
Tool to retrieve metadata for a specified table in a Grist document. Use when you need to inspect table schema details before data operations.
- Get Org Access
Tool to fetch org access details. Use when you need to retrieve numeric user IDs for actions like SCIM user deletion when SCIM API is disabled.
- Get Users
Tool to retrieve a list of users via SCIM v2. Use when you need to page through and filter enterprise users in Grist.
- List Attachments
Tool to list all attachments in a Grist document. Use after confirming the document ID to retrieve attachment metadata.
- List Columns
Tool to list all columns in a specified Grist table. Use after selecting the document and table to inspect column metadata.
- List Organizations
Tool to list all organizations accessible to the authenticated user. Use when you need to select a Grist organization for subsequent operations.
- List Records
Tool to retrieve records from a specified table within a Grist document. Use when you need to fetch rows by applying optional filters, sorting, limits, or hidden columns. Example: list records where pet is 'cat' sorted by '-age'.
- List Tables
Tool to list all tables within a specified document. Use after obtaining the document ID to retrieve its tables.
- List Webhooks
Tool to list webhooks configured for a document. Use when you need to retrieve all webhooks for a document after obtaining its ID.
- List Workspaces
Tool to list all workspaces and documents accessible to the authenticated user on the current site. Use when you need to select a workspace or document for subsequent operations.
- Run SQL Query
Tool to execute a read-only SQL SELECT query on a Grist document. Use after confirming the document ID and preparing a valid SQL SELECT statement.
- Update Column Metadata
Tool to update metadata for one or more columns in a Grist document table. Use after confirming document and table IDs. Example: change label or type of columns.
- Update Document Metadata
Tool to update metadata for a specified Grist document. Use when you need to rename or pin/unpin a document after obtaining its ID.
- Update Records
Tool to update records in a specified table within a document. Use after fetching record IDs.
- Update Table Metadata
Tool to update metadata for a specified table. Use after confirming document and table IDs to modify properties such as onDemand or visibility.
- Update Webhook
Tool to update an existing webhook for a specified document. Use when you need to modify webhook settings after confirming document and webhook IDs.
- Upload Attachment
Tool to upload one or more attachments to a Grist document. Use when you need to add files to a document after preparing file data.
Setup
Setup guide
- 11. In Switchy, open Settings and navigate to Integrations. 2. Find Grist in the MCP directory and click Connect. 3. Log into your Grist account at docs.getgrist.com and go to Profile Settings, then API. 4. Generate a new API key and copy it. 5. Paste the key into Switchy's connection dialog and click Authorize. 6. Open any Space and type '@Grist list workspaces' to confirm the connection works. 7. To use most tools, you'll need a document ID (visible in the Grist URL when you open a doc) and a table ID (found in the table's settings menu). 8. Test adding a record by typing '@Grist add records to table [tableId] in document [docId] with data [your JSON]'. 9. If you see a success message, the integration is live and your team can start querying and updating Grist data from any Space.
What teammates see: by default, memories from Grist are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Add Customer Feedback
@Grist add a record to the Feedback table in document abc123 with columns: timestamp (today's date), user_id (12345), comment ('Great onboarding flow'), and sentiment ('positive').Open in a Space →Query Open Tasks
@Grist fetch all records from the Tasks table in document xyz789 where the Status column equals 'In Progress', and show me the Task Name, Assignee, and Due Date columns.Open in a Space →
Create Sprint Table
@Grist create a table called Sprint_24 in document abc123 with columns: Story (text), Points (number), Assignee (text), and Status (choice: To Do, In Progress, Done).Open in a Space →
Update Inventory Count
@Grist update the record with ID 42 in the Inventory table of document xyz789, setting the Quantity column to 150 and the Last_Updated column to today's date.Open in a Space →
Set Up Webhook Listener
@Grist create a webhook for document abc123 that posts to https://example.com/grist-updates whenever any table in the document changes.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@Grist show me all records in the 'Customers' table where status is 'Active' and sort by last_contact_date
I've retrieved 47 active customer records from your Grist document. The most recently contacted customers include: Acme Corp (contacted 2 days ago, $45K ARR), TechStart Inc (contacted 5 days ago, $28K ARR), and BuildRight LLC (contacted 1 week ago, $52K ARR). The oldest contact was DataFlow Systems at 89 days ago. Would you like me to flag customers who haven't been contacted in over 60 days, or export this filtered view?
This example demonstrates Grist's read capabilities for structured data queries. Requires read access to the specific document. Grist excels at spreadsheet-like filtering and sorting, but complex joins across multiple tables may require multiple tool calls. Response time depends on table size—documents with 10K+ rows may take several seconds.
@Grist add a new project to the 'Projects' table: name 'Website Redesign', owner 'Sarah Chen', budget $85000, start date today
I've added the new project record to your Projects table (row ID: 142). The record includes: Project Name: 'Website Redesign', Owner: 'Sarah Chen', Budget: $85,000, Start Date: 2025-01-15, Status: (set to default 'Planning'). The record is now visible in your Grist document and any linked views. Should I also create related task records in your Tasks table, or set up a webhook to notify your team channel?
This write operation shows Grist's ability to insert structured records with proper data types. The MCP will validate column names and data formats before insertion—mismatched types will fail. Side-effect: this immediately modifies your live Grist document. If your table has formula columns or triggers, they'll recalculate automatically. Always verify table and column IDs first.
@Grist review all tasks in the 'Sprint_Tasks' table due this week and draft a status summary grouped by assignee
I've analyzed 23 tasks due this week across your Sprint_Tasks table. Here's the breakdown by assignee: **Marcus** (8 tasks, 5 in-progress, 2 blocked, 1 complete), **Priya** (9 tasks, 7 in-progress, 2 complete), **Jordan** (6 tasks, 4 in-progress, 2 not-started). Blockers: Marcus has 2 tasks waiting on API documentation; Priya's tasks are on track. Recommendation: prioritize unblocking Marcus's dependencies and check in with Jordan on the 2 not-started items before Friday standup.
This synthesis example combines Grist's data retrieval with AI reasoning to produce actionable insights. The MCP fetches raw records, then the AI aggregates and interprets patterns. Accuracy depends on your table's status field values matching common conventions. For real-time dashboards, consider Grist's native summary tables instead—this approach is best for ad-hoc analysis.
Use-case deep-dives
When Grist beats Airtable for support triage at 10-person scale
A 10-person support team routes 200 inbound tickets daily across three product lines. They need a shared view where anyone can reassign, tag, and update status without fighting over a spreadsheet. Grist wins here because the 32-tool MCP gives you full CRUD on records, tables, and webhooks—your AI can add tickets from Slack, update priority mid-standup, and trigger alerts when SLA thresholds hit. The API_KEY auth means one shared credential for the whole team, no per-seat OAuth dance. The trade-off: if you're already deep in Airtable's automation ecosystem, migration cost outweighs the MCP advantage. But if you're starting fresh or your current tool can't handle programmatic writes at this volume, Grist's MCP is the faster path to a working triage board.
Why Grist's MCP works for async backlog refinement
A 5-person product team grooms 40 backlog items weekly, splitting work across two time zones. They need to bulk-update story points, reassign owners, and archive completed epics without scheduling a synchronous call. Grist's MCP handles this because the Create Table and Add Records tools let your AI scaffold new sprint views on the fly, while Delete Grist Table Records cleans up stale rows as you go. The 32-tool surface means you're not hitting API limits when processing batch updates—critical when you're refining 15 stories in one conversation. The boundary: if your backlog lives in Jira and you need two-way sync with engineering tickets, Grist becomes a shadow system. Use this when your backlog is lightweight and your team prefers a spreadsheet mental model over heavyweight project tools.
When Grist's webhook tooling accelerates CRM hygiene
A 3-person sales team maintains 120 active deals in a homegrown CRM built on Grist. Every Friday they deduplicate contacts, archive dead leads, and flag stale opportunities older than 60 days. The MCP's Create Document Webhook tool lets your AI listen for new deal entries and auto-tag them by source, while Delete Column and Delete Attachment prune obsolete fields as your pipeline schema evolves. The 32-tool count matters here because sales ops is messy—you're constantly tweaking table structure, not just reading data. The catch: if your CRM is Salesforce or HubSpot, this MCP is irrelevant; it only works if Grist is your system of record. But for teams running lean with a Grist-native pipeline, the MCP turns weekly cleanup from a 90-minute slog into a 10-minute AI-assisted sweep.
Frequently asked
What does the Grist MCP let me do in Switchy?
It gives your AI agents direct access to your Grist spreadsheets and databases. Agents can read data, add or delete records, create new tables and documents, manage webhooks, and handle attachments — all without leaving the conversation. Think of it as turning Grist into a queryable, editable data layer your team can manipulate through natural language.
Do I need admin access to connect Grist?
You need an API key from your Grist account, which you generate in your profile settings. The key inherits your personal permissions, so if you can't edit a document manually, the MCP can't either. For team use, consider creating a dedicated service account with appropriate workspace access rather than using someone's personal key.
Can it handle formulas and column types in Grist?
The MCP can create tables with typed columns and add records that respect those types, but it doesn't evaluate or modify Grist formulas directly. If your table has a formula column, the MCP writes to data columns and lets Grist compute the rest. For complex schema changes or formula editing, you'll still use Grist's UI.
How is this different from just using Grist's API?
The API requires your team to write and maintain integration code for every workflow. The MCP wraps that API so agents handle the logic for you — they pick the right tool, construct the request, and parse the response based on what you ask in plain English. You skip the scripting; the agent does the plumbing.
Who on the team should connect the Grist MCP?
Whoever owns your team's Grist data architecture or has write access to the workspaces agents will touch. If multiple people need agent access to Grist, each can connect their own API key in Switchy, scoped to their permissions. The MCP doesn't consume Grist seats, but every connected key counts as one integration in your Switchy plan.