An MCP server implementation that provides tools for interacting with the Grist API, enabling integration between Grist spreadsheets and language models.
List all Grist organizations that the user has access to.
Returns: A list of organizations with their IDs, names, and domains.
List all workspaces in a Grist organization.
Inputs:
org_id
(int or string): The ID of the organization to list workspaces forReturns: A list of workspaces with their IDs and names.
List all documents in a Grist workspace.
Inputs:
workspace_id
(int): The ID of the workspace to list documents forReturns: A list of documents with their IDs and names.
List all tables in a Grist document.
Inputs:
doc_id
(string): The ID of the document to list tables forReturns: A list of tables with their IDs.
List all columns in a Grist table.
Inputs:
doc_id
(string): The ID of the document containing the tabletable_id
(string): The ID of the table to list columns forReturns: A list of columns with their IDs and field data.
List records in a Grist table with optional filtering, sorting, and limiting.
Inputs:
doc_id
(string): The ID of the document containing the tabletable_id
(string): The ID of the table to list records fromfilter_json
(string, optional): JSON string for filtering records (e.g., '{"column_name": ["value1", "value2"]}')sort
(string, optional): Comma-separated list of columns to sort by (prefix with '-' for descending order)limit
(int, optional): Maximum number of records to returnReturns: A list of records with their IDs and field data.
Add records to a Grist table.
Inputs:
doc_id
(string): The ID of the document containing the tabletable_id
(string): The ID of the table to add records torecords
(array): List of records to add as dictionaries of field valuesReturns: A list of IDs for the newly created records.
Update records in a Grist table.
Inputs:
doc_id
(string): The ID of the document containing the tabletable_id
(string): The ID of the table to update records inrecords
(array): List of records to update (each must include "id" and field values)Returns: A list of IDs for the updated records.
Delete records from a Grist table.
Inputs:
doc_id
(string): The ID of the document containing the tabletable_id
(string): The ID of the table to delete records fromrecord_ids
(array): List of record IDs to deleteReturns: A dictionary containing the operation status and a message.
The Grist MCP Server is designed for:
fastmcp
, httpx
, pydantic
, python-dotenv
Create a .env
file with the following:
GRIST_API_KEY=your_api_key_here
GRIST_API_HOST=https://docs.getgrist.com/api
Replace your_api_key_here
with your actual Grist API key, which you can find in your Grist account settings.
Add this to your claude_desktop_config.json
:
{
"mcpServers": {
"grist-mcp": {
"command": "python",
"args": [
"-m", "grist_mcp_server"
]
}
}
}
{
"mcpServers": {
"grist-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "GRIST_API_KEY=your_api_key_here",
"-e", "GRIST_API_HOST=https://docs.getgrist.com/api",
"mcp/grist-mcp-server"
]
}
}
}
Docker:
docker build -t mcp/grist-mcp-server .
pip install mcp-server-grist
Or manually:
git clone https://github.com/yourusername/mcp-server-grist.git
cd mcp-server-grist
pip install -r requirements.txt
This MCP server is licensed under the MIT License.
{
"mcpServers": {
"grist-mcp": {
"env": {},
"args": [
"-m",
"grist_mcp_server"
],
"command": "python"
}
}
}
Seamless access to top MCP servers powering the future of AI integration.