mcpField
G
grist-mcp-server

grist-mcp-server

Local
github.com/gwhthompsonData & Analytics4Updated 39w ago

About grist-mcp-server

grist-mcp-server connects MCP clients to Grist, offering tools to manage documents, records, schemas, SQL queries, and pages. It also supports deployment as an HTTP server on Cloudflare Workers.

Key features

  1. 01List workspaces and find documents
  2. 02Inspect tables and schemas
  3. 03Query data with SQL
  4. 04Create, update, and delete records
  5. 05Manage schemas, pages, and webhooks
  6. 06Create or copy documents

Use cases

  1. 01Create a Grist document and set up tables
  2. 02Import or update records in bulk
  3. 03Query tables with joins and aggregations

MCP support

Exposes 11 tools for Grist document, record, schema, SQL, page, and webhook operations to MCP clients. It can also run as a remote MCP server on Cloudflare Workers over HTTP.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"gwhthompson-grist": {
"command": "npx",
"args": [
"-y",
"grist-mcp-server"
],
"env": {
"GRIST_API_KEY": "<GRIST_API_KEY>",
"GRIST_BASE_URL": "<GRIST_BASE_URL>"
}
}
}
}
Run commandnpx -y grist-mcp-server
Environment variables to set
GRIST_API_KEYSecretYour Grist API key
GRIST_BASE_URLBase URL for Grist instance (default: https://docs.getgrist.com)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmgrist-mcp-server2.0.33

Tools

11

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
limitintegerNo
offsetintegerNo
detail_levelstringNo
name_containsstringNo
response_formatstringNo

Details

From the project README

Grist MCP Server

CI codecov npm License MCP

MCP server for Grist. 11 tools for documents, records, SQL, and pages.

Quick Start

Claude Code (recommended)
claude mcp add grist --env GRIST_API_KEY=your_api_key --env GRIST_BASE_URL=https://docs.getgrist.com -- npx -y grist-mcp-server
Claude Desktop (MCPB bundle)
  1. Download grist-mcp-server.mcpb from Releases
  2. In Claude Desktop: Settings → Developer → MCP Servers → Install from MCPB
  3. Configure your Grist API key and base URL
  4. Restart Claude Desktop
Manual configuration (.mcp.json)

Add 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"
      }
    }
  }
}
Install from source
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"
      }
    }
  }
}
Cloudflare Workers (HTTP transport)

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:

  • Stateless design: Each request creates a fresh server instance
  • CORS enabled for all origins (safe because auth uses headers, not cookies)
  • Configure environment variables via wrangler secret put GRIST_API_KEY

Tools

ToolPurpose
grist_get_workspacesList and filter workspaces
grist_get_documentsFind documents by ID, name, or workspace
grist_get_tablesGet table structure and schema
grist_query_sqlRun SQL queries with JOINs and aggregations
grist_get_recordsFetch records with filters
grist_manage_recordsAll record CRUD operations (add/update/delete/upsert)
grist_manage_schemaSchema operations: tables, columns, summaries
grist_manage_pagesPage layout and management
grist_create_documentCreate new Grist documents or copy existing ones
grist_manage_webhooksCreate and manage webhooks for real-time event notifications
grist_helpDiscover tools and get detailed documentation with JSON schemas

Examples

Create a database
1. grist_get_workspaces → find workspace
2. grist_create_document → create document
3. grist_manage_schema → create tables with columns
Import data
1. grist_get_documents → find document
2. grist_get_tables → check structure
3. grist_manage_records → upsert data (adds new, updates existing)
Query data
1. grist_get_tables → understand schema
2. grist_query_sql → run SQL with JOINs and aggregations

Troubleshooting

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.

Testing

npm test  # Docker required - container lifecycle is automatic

Documentation

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.

Links

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.