mcpField
G
google-sheets

google-sheets

github.com/zapier数据与数据库182126 次安装9 周前更新
代码仓库

关于 google-sheets

google-sheets 是一个通过 Google Sheets API 操作电子表格、并借助 Google Drive 查找文件的 agentskills.io 技能。它同时提供按表头处理记录和按 A1 地址编辑单元格的方式,并支持工作表结构与格式管理。

主要功能

  1. 01查找并读取行或单元格区域
  2. 02追加、更新、清除或删除数据
  3. 03创建和管理电子表格与工作表
  4. 04设置单元格格式、排序和验证规则
  5. 05应用条件格式

适用场景

  1. 01按列值查找电子表格记录
  2. 02追加支出记录或更新状态字段
  3. 03在指定单元格区域编辑公式或值
  4. 04设置下拉选项并格式化日期或货币列

MCP 相关

对于支持 MCP 的客户端,该技能可使用已加载的工具,也可注册为本地 MCP 服务。它向 MCP 客户端提供电子表格、行、单元格、工作表及格式操作工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zapier/connectors --skill google-sheets

安装后在 Claude Code 中输入/google-sheets确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.mcp.json
CHANGELOG.md
cli.js
cli.ts
connections.ts
index.ts
LICENSE
NOTICE
package.json
README.md
.claude-plugin/
plugin.json
evals/
evals.json
results.md
lib/
a1.ts
constants.ts
headers.ts
schemas.ts
sheetsFetch.ts
spreadsheetId.ts
references/
google-sheets-a1-and-values.md
google-sheets-api-gotchas.md
use-as-cli.md
use-as-mcp.md
use-as-recipe.md
use-as-sdk.md
use-with-zapier.md
use-without-zapier.md
scripts/
addColumn.ts
addConditionalFormatRule.ts
addWorksheet.ts

详细介绍

Google Sheets

用于通过 Google Sheets API v4(https://sheets.googleapis.com/v4/)处理 Google Sheets,并通过 Google Drive API 查找电子表格。共提供 26 个工具,分为两种互补的操作方式:记录操作——将行作为以列标题为键的对象(适用于“记录这笔支出”“将状态更新为 Done”“查询上季度总额”等任务);以及单元格操作——使用原始 A1 地址值处理公式、精确控制数字和文本,以及任意范围。此外,还支持电子表格和工作表的结构与呈现设置(格式、排序、验证)。

用于 Google Sheets 的独立非官方连接器。与 Google Sheets 无关联,也未获其认可或赞助。“Google Sheets”是其所有者的商标,此处仅用于标识本连接器所支持的服务。

适用场景

  • 读取或查找电子表格中的数据 — 按列值查找一行(lookupRow)、查找所有匹配行(findRows)、列出一段行(listRows),或读取原始范围(getValues)。
  • 写入数据 — 追加一行或多行(createRow / createRows)、更新某行的特定列而不影响其他列(updateRow / updateRows),或写入原始范围 / 公式(updateValues)。
  • 清除或删除 — 清除行内容但保留该行(clearRows / clearValues),或彻底删除行(deleteRows)。
  • 管理结构 — 创建电子表格(createSpreadsheet),添加 / 列出 / 复制 / 重命名 / 隐藏 / 删除工作表,添加列。
  • 设置格式与验证 — 数字 / 日期 / 货币格式、文本样式、对范围排序、复制范围、下拉列表以及数字 / 日期验证、条件格式。

设置

这是一个 agentskills.io 技能。

如果尚未将此连接器安装为技能,请先运行 npx skills add zapier/connectors --skill google-sheets 安装(或使用你的运行环境自身的技能安装机制),然后继续。安装技能会复制这些文件,而不是依赖项。运行 CLI、本地 MCP 服务或 zapier-sdk 身份验证命令之前,请先在此处运行一次 npm install --omit=dev。想在自己的项目中将已发布的软件包作为依赖项导入?npm install 会自动解析所有内容——请参阅 references/use-as-sdk.md。

想查看实际的仓库源代码——浏览 references/、运行此连接器的测试或修改代码?请参阅 README.md,了解如何克隆指定范围的仓库。

此连接器需要 Node.js 22.18+。选择与你的运行方式相符的参考文档,并在进行任何操作之前加载:

你拥有……加载
可连接 MCP 的客户端——工具可能已加载(例如 mcp__google-sheets__<tool>),或者你可以自行注册本地服务(或指导用户注册)references/use-as-mcp.md
终端/子进程访问权限(可以运行 node)references/use-as-cli.md
只有自己的代码,并将此软件包作为依赖项导入references/use-as-sdk.md
无法访问工具、终端,也无法导入此软件包——你需要编写自己的代码,直接调用 Google Sheets API(例如在代码执行沙盒中)references/use-as-recipe.md

脚本

所有脚本都使用唯一的 google-sheets 连接。

脚本脚本名称连接描述
scripts/createSpreadsheet.tscreateSpreadsheetgoogle-sheets创建新的电子表格,可选择添加工作表和标题行。
scripts/getSpreadsheet.tsgetSpreadsheetgoogle-sheets获取电子表格的元数据及其工作表列表。
scripts/listSpreadsheets.tslistSpreadsheetsgoogle-sheets按名称在 Drive 中查找电子表格(需要 Drive 访问权限;否则请传入 URL/ID)。
scripts/addWorksheet.tsaddWorksheetgoogle-sheets添加工作表(标签页),可选择添加标题行。
scripts/listWorksheets.tslistWorksheetsgoogle-sheets列出电子表格中的工作表(标签页)。
scripts/copyWorksheet.tscopyWorksheetgoogle-sheets将工作表复制到另一个电子表格(或同一个电子表格)中。
scripts/updateWorksheetProperties.tsupdateWorksheetPropertiesgoogle-sheets重命名、移动、冻结行/列、隐藏工作表或更改其颜色。
scripts/deleteWorksheet.tsdeleteWorksheetgoogle-sheets永久删除工作表及其数据。
scripts/addColumn.tsaddColumngoogle-sheets插入列,可选择设置标题标签。
scripts/createRow.tscreateRowgoogle-sheets根据列标题对应的值追加单行。
scripts/createRows.tscreateRowsgoogle-sheets通过一次批量调用追加多行。
scripts/updateRow.tsupdateRowgoogle-sheets按行号更新某一行中的指定列(其他列保持不变)。
scripts/updateRows.tsupdateRowsgoogle-sheets通过一次批量调用更新多行(每行按行号指定)。
scripts/lookupRow.tslookupRowgoogle-sheets查找第一个列值与指定值匹配的行。
scripts/findRows.tsfindRowsgoogle-sheets按列/值筛选条件查找所有匹配的行(有范围限制)。
scripts/listRows.tslistRowsgoogle-sheets将一段行范围读取为记录。
scripts/clearRows.tsclearRowsgoogle-sheets清除指定行的内容(保留行;其他内容不会移动)。
scripts/deleteRows.tsdeleteRowsgoogle-sheets删除指定行;其下方的所有内容都会上移。
scripts/getValues.tsgetValuesgoogle-sheets以 A1 表示法读取原始单元格范围。
scripts/updateValues.tsupdateValuesgoogle-sheets向原始单元格范围写入值(RAW 或 USER_ENTERED)。
scripts/clearValues.tsclearValuesgoogle-sheets清除原始单元格范围中的值(保留格式)。
scripts/formatCells.tsformatCellsgoogle-sheets对范围应用数字/日期/货币格式或文本样式。
scripts/sortRange.tssortRangegoogle-sheets按一列或多列对范围排序。
scripts/copyRange.tscopyRangegoogle-sheets将范围(值 + 格式)复制到其他位置。
scripts/setDataValidation.tssetDataValidationgoogle-sheets为范围设置下拉列表/数字/日期验证规则。
scripts/addConditionalFormatRule.tsaddConditionalFormatRulegoogle-sheets为范围添加条件格式规则。

消歧与拒绝

写入前先消歧。 在通过列值找到某行后写入(例如,更新通过 lookupRow 找到的行,或操作通过 listSpreadsheets 找到的电子表格)之前,请统计大小写不敏感的精确匹配项:

  • 恰好匹配一项 — 对其执行操作。不要过度追问;只有一个明确匹配项时,答案就是它。
  • 有两项或更多并列匹配 — 停止操作。列出并列的行(或电子表格),并附上可用于区分的字段(另一列的值、电子表格的修改时间 / URL),然后询问用户要选哪一项。不要擅自选择,也不要对所有匹配项写入。

行号并不稳定 — 插入 / 删除 / 排序时,行号会变化。若要在多次运行中定位同一条逻辑记录,请使用 lookupRow 按唯一键列匹配,而不要依赖记住的行号。

执行破坏性操作或批量覆盖操作前先确认。 deleteWorksheet、deleteRows、clearRows 和 clearValues 会删除数据;updateValues 可能会覆盖数据。先与用户确认确切目标,且删除 / 清除 / 覆盖的范围绝不能超过用户的要求。

不支持的操作 — 明确告知并停止;不要假装用其他工具实现。 此目录有意不支持:

  • 创建或管理图表、数据透视表、命名范围、受保护范围或筛选器。 没有相应工具;不要尝试用格式设置来替代。
  • 一步完成查找或创建。 组合操作:lookupRow → 如果未找到,则执行 createRow。
  • 永久删除整个电子表格。 删除工作表(deleteWorksheet)是唯一支持的结构性删除操作。

如果用户要求执行上述任何操作,请告知用户不支持,并停止。

身份验证

每种形态都会将一个连接选择器(而非密钥)传递给身份验证:[<resolver>:]<value> 字符串。每个连接器都接受 zapier:<connection-id>(由 Zapier 管理的身份验证 — 经由 Zapier 的身份验证、重试和治理层路由);部分连接器还接受一个或多个直接令牌解析器(名称和数量因连接器而异)— 请查看此连接器自己的解析器,而不要想当然。<resolver>: 前缀可省略;不带前缀的值会交给第一个接受它的解析器 — UUID 格式的不带前缀值始终会被 zapier: 接受。每个脚本都会声明所需的连接及其接受的解析器。传递连接的确切语法(以及如何查看此连接器的解析器列表)因形态而异 — 请参阅上方加载的参考资料。

想先检查已配置的内容?不要为此转储环境变量的值 — env 或 env | grep <name> 会同时打印变量名和值;如果其中设置了有效凭据,就会将其泄露到对话记录中。只检查变量名(env | cut -d= -f1 | grep -i <name>),或直接测试已知变量名([ -n "$VAR_NAME" ])。

还没有连接?任选一种方式 — 并按照参考资料中的流程获取连接;不要只让用户提供连接 ID 或令牌,仿佛他们早已记住这些信息:

加载
直接传递凭据references/use-without-zapier.md
通过 Zapier 连接进行路由references/use-with-zapier.md

输出格式

每个脚本都会返回一个 { data, meta } 信封:

  • data — 脚本的结果(其形状由 outputSchema 声明;有关如何在你的形状中检查脚本的确切架构,请参阅上文加载的参考资料)。
  • meta.outputDataValidation — 对 data 进行验证的结果:
    • { skipped: false, droppedPaths: null } — 已验证,未移除任何内容。
    • { skipped: false, droppedPaths: [...], instruction } — 已验证,但这些路径已从 data 中剥离:它们是脚本从 API 返回、但 outputSchema 未声明的字段。如果需要这些字段,请重新运行并跳过输出验证。
    • { skipped: true } — 已绕过验证;data 是未经检查的原始脚本输出。

读取被剥离的字段 / skipOutputDataValidation。 如需接收未经验证的原始结果,请选择退出输出验证(具体语法因形状而异——请参阅上文加载的参考资料)。输入验证不会跳过。

精简结果 / filterOutputData。 如需将大型结果缩减为所需字段,请传入一个对 data 进行后处理的 jq 表达式(具体语法同样因形状而异)。jq 只针对 data 运行,不针对 { data, meta } 信封,因此表达式应以 data 为根(运行脚本的 --help——或形状的等效命令——即可查看输出架构)。转换后的值会替换 data,meta 保持不变,结果不会再次根据输出架构进行验证。

参考资料

在对应领域开展工作前,请加载匹配的参考文件:

参考资料涵盖内容加载时机
references/google-sheets-api-gotchas.md错误恢复、速率限制重试、batchUpdate 原子性、行删除和追加逻辑、400/403/404/429 错误进行任何可能失败的调用之前——包括错误恢复、速率限制重试、batchUpdate 原子性、行删除或追加逻辑,或遇到 400/403/404/429 错误时
references/google-sheets-a1-and-values.mdRAW 与 USER_ENTERED、序列号日期、不规则行、带工作表名称引号的 A1 范围读取或写入单元格值之前——尤其是在选择 RAW 或 USER_ENTERED、解读序列号日期、处理不规则行,或构造带工作表名称引号的 A1 范围时

评论

支持 Markdown