Grist MCP server
Grist in any MCP client, through Memtro: Grist does not publish this server. Memtro's Grist connector reads Grist through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Grist spreadsheet-databases on Grist Cloud or a self-hosted server: documents, tables, columns and rows, and read-only SQL. Can add, change, upsert or delete rows, add tables and columns, rename a table, delete a column, create, copy, rename, move, trash or restore a document, and create a workspace.
Reads
grist_list_documentsGrist sites, workspaces and documents the key can reach: document id and name per workspace.grist_list_tablesThe tables of a Grist document and, for each, its columns: id (what filters and writes use), label, type and whether it is a formula.grist_list_recordsRows of a Grist table, optionally filtered by exact values and sorted.grist_sqlRun one read-only SQL SELECT (SQLite) against a Grist document: tables by their ids, columns by their ids.
Acts, when you ask
These change something in Grist. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
grist_add_recordsAdd new rows to a Grist table, only when the person asked.grist_update_recordsChange values in existing rows of a Grist table, only when the person asked.grist_delete_recordsDelete rows from a Grist table, only when the person explicitly asked to delete them.grist_upsert_recordsAdd or update rows of a Grist table, matched on the columns in each row's "require": where one row matches, its "fields" columns are OVERWRITTEN…grist_add_tableAdd a new empty table with the given columns to a Grist document.grist_rename_tableRename a table's id in a Grist document.grist_add_columnsAdd columns to a Grist table (empty, or formula columns).grist_delete_columnDelete one column from a Grist table, with every value in it, for everyone using the document.grist_create_documentCreate a new empty Grist document in a workspace (workspace_id from grist_list_documents).grist_copy_documentCopy a Grist document into a workspace under a new name, with its data, or only its structure when as_template is true.grist_rename_documentRename a Grist document.grist_move_documentMove a Grist document to another workspace on the same site.grist_trash_documentMove a Grist document to the trash.grist_restore_documentRestore a Grist document from the trash; its collaborators regain access.grist_create_workspaceCreate an empty workspace on a Grist site (site_id from grist_list_documents).
Connect it
First connect Grist on Dashboard → Connections, then add Memtro to your client once. The Grist tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.
claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Pi
One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.
Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Grist connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › What does our customers table say about Northwind?
- › How many open orders are in the Sales document this month?
- › Which suppliers in Grist have no contract end date?
- › Add a row to the Leads table for Brightwave Ltd
- › Copy the Q4 Pipeline document as a template for Q1
Questions
- Is this an official Grist MCP server?
- No. It is Memtro's MCP server with Memtro's Grist connector behind it: the connector reads Grist through its API with the credentials you connect on Dashboard → Connections, and Grist publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in Grist?
- Only when you ask, and only what it has been granted: add rows to a table; change values in existing rows; delete rows from a table; add or update rows matched on chosen columns (upsert); add a table, add columns, rename a table, or delete a column with its data; create a document in a workspace, copy one, rename it, or move it to another workspace; move a document to the trash or restore it from there; create a workspace. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.