关于 Grist MCP Server
Grist MCP Server 是一个用于连接 Grist API 的 MCP 服务,让大模型可以直接读取和操作 Grist 中的数据。适合需要通过 AI 助手管理 Grist 文档、表格与记录的用户。
主要功能
- 01列出组织、工作区、文档、表格和列
- 02创建、读取、更新和删除记录
- 03支持 SQL 查询(仅 SELECT)
- 04管理用户访问权限
- 05下载 SQLite、Excel 和 CSV 文件
- 06管理附件和 webhook
适用场景
- 01让 AI 助手分析并汇总 Grist 表格数据
- 02通过自然语言批量新增或修改记录
- 03导出文档为 CSV 或 Excel 文件
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露大量 Grist 相关工具,如列表、记录操作、SQL 查询和导出等。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
54收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍

Grist MCP 服务
用于与 Grist API 交互的 MCP(Model Context Protocol)服务。此服务可直接通过 Claude 等大模型访问和操作 Grist 数据。
项目结构
mcp-server-grist/
├── src/
│ └── mcp_server_grist/ # Package principal
│ ├── __init__.py # Point d'entrée du package
│ ├── __main__.py # Support pour exécution en module
│ ├── version.py # Gestion de version
│ ├── main.py # Point d'entrée principal
│ ├── server.py # Configuration du serveur MCP
│ ├── client.py # Client API Grist
│ ├── tools/ # Outils MCP organisés par catégorie
│ └── models.py # Modèles de données Pydantic
├── tests/ # Tests unitaires et d'intégration
├── docs/ # Documentation détaillée
├── requirements.txt # Dépendances Python
├── pyproject.toml # Configuration moderne du package
├── Dockerfile # Configuration Docker
├── docker-compose.yml # Configuration multi-services
├── .env.template # Template pour variables d'environnement
└── README.md # Documentation principale
前提条件
- Python 3.8+
- 有效的 Grist API 密钥
- 以下 Python 包:
fastmcp、httpx、pydantic、python-dotenv
即用即跑
通过 uvx(推荐)
使用 uvx 时,环境配置和软件包下载会在运行时即时完成。
uvx mcp-server-grist
与支持 MCP 协议的常用 AI 助手搭配使用
JSON 配置如下:
{
"mcpServers": {
"grist-server": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-grist"
],
"env": {
"GRIST_API_KEY": "ta_cle_API_GRIST"
}
}
}
}
安装
通过 pip
pip install mcp-server-grist
安装后,可以通过以下命令运行服务:
mcp-server-grist
与 Claude Desktop 搭配使用
如需将此 MCP 服务与 Claude Desktop 搭配使用,请将以下配置添加到 mcp_servers.json 文件中:
{
"mcpServers": {
"grist-mcp": {
"command": "node",
"args": [
"chemin/vers/npm-wrapper/bin/start.js"
],
"env": {
"GRIST_API_KEY": "votre_clé_api_grist",
"GRIST_API_URL": "https://docs.getgrist.com/api"
}
}
}
}
将 chemin/vers/npm-wrapper/bin/start.js 替换为此软件包中所含 Node.js wrapper 的 start.js 脚本的绝对路径。
开发模式安装
如需参与贡献或自定义服务:
# Cloner le repository
git clone https://github.com/modelcontextprotocol/mcp-server-grist.git
cd mcp-server-grist
# Installer en mode développement
pip install -e .
# Lancer les tests
python -m pytest tests
通过 Docker
使用 Docker 快速部署:
# Construire l'image
docker build -t mcp/grist-mcp-server .
# Exécuter le container
docker run -it --rm \
-e GRIST_API_KEY=votre_clé_api \
-e GRIST_API_HOST=https://docs.getgrist.com/api \
mcp/grist-mcp-server
通过 Docker Compose
并行部署多种传输模式:
# Configurer les variables d'environnement
cp .env.example .env
# Éditer le fichier .env avec votre clé API
# Lancer les services
docker-compose up
配置
环境变量
根据 .env.template 创建 .env 文件,并设置以下变量:
GRIST_API_KEY=votre_clé_api
GRIST_API_HOST=https://docs.getgrist.com/api
LOG_LEVEL=INFO # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
你可以在 Grist 账户设置中找到 API 密钥。
Claude Desktop 配置
将以下内容添加到 claude_desktop_config.json:
Python 版本
{
"mcpServers": {
"grist-mcp": {
"command": "python",
"args": [
"-m", "grist_mcp_server"
]
}
}
}
Docker 版本
{
"mcpServers": {
"grist-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "GRIST_API_KEY=votre_clé_api",
"-e", "GRIST_API_HOST=https://docs.getgrist.com/api",
"mcp/grist-mcp-server"
]
}
}
}
启动选项
此服务支持多种符合 MCP 标准的传输模式:
模块模式(推荐)
# Mode stdio (par défaut pour Claude)
python -m mcp_server_grist --transport stdio
# Mode HTTP streamable (pour intégration web)
python -m mcp_server_grist --transport streamable-http --host 127.0.0.1 --port 8000 --path /mcp
# Active le mode debug avec logging détaillé
python -m mcp_server_grist --debug
其他选项
Options:
--transport {stdio,streamable-http,sse}
Type de transport à utiliser
--host HOST Hôte pour les transports HTTP (défaut: 127.0.0.1)
--port PORT Port pour les transports HTTP (défaut: 8000)
--path PATH Chemin pour streamable-http (défaut: /mcp)
--mount-path MOUNT_PATH
Chemin pour SSE (défaut: /sse)
--debug Active le mode debug
--help Affiche l'aide
传输安全
对于 HTTP 传输,我们建议:
- 使用
127.0.0.1(localhost),而非0.0.0.0,以限制对本地网络的访问 - 启用来源验证(
validate_origin),以防止 DNS 重绑定攻击 - 如需向互联网开放服务,请使用带 HTTPS 的反向代理
功能
- 直接通过大模型访问 Grist 数据
- 列出组织、工作区、文档、表和列
- 管理记录(创建、读取、更新、删除)
- 使用高级查询功能筛选和排序数据
- 支持 SQL 查询(仅限 SELECT)
- 通过 API 密钥安全认证
- 管理用户访问权限
- 导出和下载数据(SQLite、Excel、CSV)
- 管理附件
- 管理 Webhook
- 智能公式验证
可用工具
组织和文档管理
list_organizations:列出组织describe_organization:获取组织的详细信息modify_organization:修改组织delete_organization:删除组织list_workspaces:列出组织中的工作区describe_workspace:获取工作区的详细信息create_workspace:创建新的工作区modify_workspace:修改工作区delete_workspace:删除工作区list_documents:列出工作区中的文档describe_document:获取文档的详细信息create_document:创建新文档modify_document:修改文档delete_document:删除文档move_document:将文档移动到另一个工作区force_reload_document:强制重新加载文档delete_document_history:删除文档历史记录
表和列管理
list_tables:列出文档中的表create_table:创建新表modify_table:修改表list_columns:列出表中的列create_column:创建新列create_column_with_feedback:创建列并进行验证,提供详细反馈modify_column:修改列delete_column:删除列create_column_with_formula_safe:创建公式列并进行验证get_formula_helpers:获取构建公式的帮助validate_formula:验证公式并建议修正get_table_schema:获取表的架构
数据操作
list_records:按排序和限制条件列出记录add_grist_records:添加记录add_grist_records_safe:添加记录并进行验证update_grist_records:更新记录delete_grist_records:删除记录
筛选和 SQL 查询
filter_sql_query:用于简单筛选的优化 SQL 查询- 常见筛选条件的简化接口
- 支持排序和限制
- 基本 WHERE 条件
execute_sql_query:复杂 SQL 查询- 自定义 SQL 查询
- 支持 JOIN 和子查询
- 可配置参数和超时
访问权限管理
list_organization_access:列出有权访问组织的用户modify_organization_access:修改用户对组织的访问权限list_workspace_access:列出有权访问工作区的用户modify_workspace_access:修改用户对工作区的访问权限list_document_access:列出有权访问文档的用户modify_document_access:修改用户对文档的访问权限
导出和下载
download_document_sqlite:以 SQLite 格式下载文档download_document_excel:以 Excel 格式下载文档download_table_csv:以 CSV 格式下载表
附件管理
list_attachments:列出文档中的附件get_attachment_info:获取附件信息download_attachment:下载附件upload_attachment:上传附件
Webhook 管理
list_webhooks:列出文档的 webhookcreate_webhook:创建 webhookmodify_webhook:修改 webhookdelete_webhook:删除 webhookclear_webhook_queue:清空 webhook 队列
使用示例
# Liste des organisations
orgs = await list_organizations()
# Liste des espaces de travail
workspaces = await list_workspaces(org_id=1)
# Liste des documents
docs = await list_documents(workspace_id=1)
# Liste des tables
tables = await list_tables(doc_id="abc123")
# Liste des colonnes
columns = await list_columns(doc_id="abc123", table_id="Table1")
# Liste des enregistrements avec tri et limite
records = await list_records(
doc_id="abc123",
table_id="Table1",
sort="name",
limit=10
)
# Filtrage simple avec filter_sql_query
filtered_records = await filter_sql_query(
doc_id="abc123",
table_id="Table1",
columns=["name", "age", "status"],
where_conditions={
"organisation": "OPSIA",
"status": "actif"
},
order_by="name",
limit=10
)
# Requête SQL complexe avec execute_sql_query
sql_result = await execute_sql_query(
doc_id="abc123",
sql_query="""
SELECT t1.name, t1.age, t2.department
FROM Table1 t1
JOIN Table2 t2 ON t1.id = t2.employee_id
WHERE t1.status = ? AND t1.age > ?
ORDER BY t1.name
LIMIT ?
""",
parameters=["actif", 25, 10],
timeout_ms=2000
)
# Ajout d'enregistrements
new_records = await add_grist_records(
doc_id="abc123",
table_id="Table1",
records=[{"name": "John", "age": 30}]
)
# Mise à jour d'enregistrements
updated_records = await update_grist_records(
doc_id="abc123",
table_id="Table1",
records=[{"id": 1, "name": "John", "age": 31}]
)
# Création d'une colonne de formule avec validation
formula_column = await create_column_with_formula_safe(
doc_id="abc123",
table_id="Table1",
column_label="Total",
formula="$Prix * $Quantité",
column_type="Numeric"
)
# Téléchargement d'un document au format Excel
excel_doc = await download_document_excel(
doc_id="abc123",
header_format="label"
)
# Gestion des accès
await modify_document_access(
doc_id="abc123",
user_email="[email protected]",
access_level="editors"
)
详细使用场景
导航与探索
list_organizations、list_workspaces、list_documents、list_tables、list_columns- 用于探索 Grist 结构并发现可用数据
- 执行特定操作前,需要先获取 ID
- 非常适合数据分析的初始阶段
查询与筛选
list_records:获取表中的所有记录filter_sql_query:对单个表进行简单筛选execute_sql_query:执行包含联接和子查询的复杂查询
数据操作
add_grist_records和add_grist_records_safe:添加数据,可选择是否进行验证update_grist_records:修改现有记录delete_grist_records:删除记录
使用公式
get_formula_helpers:获取列引用的正确语法validate_formula:检查并自动修正公式create_column_with_formula_safe:安全地创建计算列
导出与下载
download_document_sqlite、download_document_excel、download_table_csv:导出数据download_attachment:获取附件
访问管理
list_*_access和modify_*_access:管理用户权限
外部集成
create_webhook、modify_webhook:将 Grist 连接到其他服务
使用场景
Grist MCP 服务旨在:
- 分析并总结 Grist 数据
- 以编程方式创建、更新和删除记录
- 构建报告和可视化内容
- 回答有关所存储数据的问题
- 将 Grist 与语言模型连接,以支持自然语言查询
- 自动化涉及 Grist 数据的工作流
- 通过 Webhook 将 Grist 集成到其他系统
贡献
欢迎贡献!以下是参与贡献的方式:
- Fork 项目
- 为你的功能创建分支
- 提交更改
- 推送到分支
- 发起 Pull Request
许可证
此 MCP 服务采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。