关于 Google Sheets MCP Server
Google Sheets MCP Server 让 MCP 客户端通过 Google 服务账号读取和写入电子表格,适合需要将表格操作交给 Agent 的用户。它支持追加、更新和读取单元格,也可把 Apify 数据集写入工作表,并可托管运行或自行部署。
主要功能
- 01列出工作表标签
- 02读取指定单元格范围
- 03追加或更新行与单元格
- 04导出 Apify 数据集
- 05支持托管或自行部署
适用场景
- 01让 Agent 查询共享表格中的数据
- 02将新记录追加到表格并按列名匹配
- 03更新指定范围内的单元格
- 04把 Apify 数据集写入工作表
MCP 相关
作为 MCP 服务向客户端公开 Google Sheets 的读取、写入和 Apify 数据集导出工具。使用 Google 服务账号凭据,并可通过 Apify 托管端点或自托管端点连接。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://oldjard--google-sheets-mcp.apify.actor/mcpclaude mcp add --transport http joshuawhite389-google-sheets https://oldjard--google-sheets-mcp.apify.actor/mcp{"mcpServers":{"joshuawhite389-google-sheets":{"type":"http","url":"https://oldjard--google-sheets-mcp.apify.actor/mcp"}}}在 Cursor 中打开{"servers":{"joshuawhite389-google-sheets":{"type":"http","url":"https://oldjard--google-sheets-mcp.apify.actor/mcp"}}}在 VS Code 中打开{"mcpServers":{"joshuawhite389-google-sheets":{"type":"http","url":"https://oldjard--google-sheets-mcp.apify.actor/mcp"}}}{"mcpServers":{"joshuawhite389-google-sheets":{"serverUrl":"https://oldjard--google-sheets-mcp.apify.actor/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://oldjard--google-sheets-mcp.apify.actor/mcp需要授权工具
详细介绍
Google Sheets MCP Server
一个 MCP 服务,让 Claude、Cursor 或任何其他 MCP 客户端读取和写入你的 Google Sheets:列出电子表格中的工作表标签页、读取单元格范围、追加或更新行,以及将 Apify 数据集导出到工作表标签页。
它使用你自己的 Google 服务账号登录,因此没有共享配额、无需批准 OAuth 应用,也不会过期。此服务账号只能打开你与其共享的工作表。
有两种使用方式:
- 托管在 Apify 上(无需安装):apify.com/oldjard/google-sheets-mcp。 当你的 Agent 调用服务时,Apify 会启动它;服务空闲后,Apify 会将其停止。费用按使用量收取,从你自己的 Apify 账号扣费(价格见下文)。
- 自行托管(免费):克隆此仓库并自行运行。代码相同。
工具
| 工具 | 功能 |
|---|---|
list_sheets | 列出电子表格中的工作表标签页,并显示其大小和链接 |
read_range | 读取单元格(Leads!A1:D50、A1:D50 或整个工作表标签页)。较长的工作表标签页会分页返回,并提供下一个待读取的范围 |
append_rows | 在最后一行下方添加行。对象会按名称与表头匹配(新字段会成为新列)。数组会按原样写入。可跳过工作表标签页中已有的行 |
update_range | 从左上角单元格开始覆盖单元格,并在需要时扩展工作表标签页 |
export_dataset | 将 Apify 数据集写入工作表标签页:追加、替换或仅写入新行 |
写入的值都是纯值,绝不会作为公式写入。每次调用最多读取或写入 5,000 行。如果工具无法执行某项操作(工作表未共享、工作表标签页名称错误、缺少密钥),它会返回通俗易懂的解决方法,例如需要共享工作表的准确邮箱地址。
Google 设置(约 5 分钟,只需设置一次)
你需要一个 Google 服务账号:这是一个机器人 Google 用户,只能访问你与其共享的工作表。 它是免费的,使用 Sheets API 时 Google 不会要求提供账单信息。
- 打开 console.cloud.google.com,创建一个项目并选中它。
- 打开 Google Sheets API 页面,然后点击 启用。
- IAM 与管理 > 服务账号 > 创建服务账号。为其命名,跳过可选的角色步骤,然后点击完成。
- 打开该服务账号,选择密钥 > 添加密钥 > 创建新密钥 > JSON。系统会下载一个
.json文件。 - 复制其
client_email。将你希望 Agent 使用的每个 Google Sheet 分享给该邮箱,并授予编辑者权限。 - 将密钥转换为一行 base64:
base64 -w0 key.json(在 macOS 上:base64 -i key.json)。
某些 Google Workspace 组织会禁止使用服务账号密钥。如果第 4 步提示因政策而无法创建密钥,请为该项目使用个人 Google 账号;只要与该邮箱共享,工作表可以存放在任何位置。
连接:托管在 Apify 上
使用 URL https://oldjard--google-sheets-mcp.apify.actor/mcp,并设置两个标头。对于 Claude Code:
claude mcp add --transport http google-sheets https://oldjard--google-sheets-mcp.apify.actor/mcp \
--header "Authorization: Bearer <your Apify API token>" \
--header "X-Google-Service-Account-Key: <the base64 line>"
其他客户端在 JSON 配置中使用相同的 URL 和 headers。
**定价(托管):**每次成功的工具调用收费 $0.001,export_dataset 每写入一行收费 $0.0004。失败的调用、表头行和跳过的重复行均免费。每次启动服务收费 $0.00005。与任何 Apify Standby Actor 一样,Apify 还会对 Agent 连接期间以及连接后短暂空闲期间的运行平台用量收费(服务运行时占用 256 MB,因此每个会话只需不到一美分)。密钥通过 HTTPS 传输到你自己的运行实例中,仅保存在内存里,绝不会记录或存储。
连接:自行托管
需要 Node.js 24 或更高版本。
git clone https://github.com/joshuawhite389/google-sheets-mcp && cd google-sheets-mcp
npm install
PORT=3000 npm run serve
然后将客户端指向 http://localhost:3000/mcp,并设置 X-Google-Service-Account-Key 标头(无需 Apify 令牌;此时 export_dataset 会从本地 ./storage 文件夹读取数据集)。Dockerfile 会为 Apify 构建相同的服务;若要在其他地方运行,请设置 APIFY_META_ORIGIN=STANDBY 和 ACTOR_WEB_SERVER_PORT。
值得了解的限制
- Google 允许每个电子表格最多包含 1,000 万个单元格,每个单元格最多包含 50,000 个字符。
- 服务账号使用 Google 的标准配额:每分钟 60 个写入请求。遇到速率限制和 Google 服务异常时, 会通过退避机制重试。
开发
npm test # unit tests against a fake Google API that verifies the signed sign-in
npm run e2e # the real server process, driven by a real MCP client, against the fake Google
npm run typecheck
相关项目
Dataset to Pinecone & Qdrant Vector Export(一个 Apify Actor, 而非 MCP 服务)可将抓取的数据集分块并生成嵌入,导出到你自己的 Pinecone 或 Qdrant 索引中。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。