关于 google-tasks
google-tasks 是用于管理 Google Tasks 任务清单和任务的 Agent 技能。它以专用脚本支持整理、查看和更新待办事项,并可通过 Zapier 管理的连接或直接 OAuth 令牌进行身份验证。
主要功能
- 01创建、重命名和删除任务清单
- 02查找、创建、更新和完成任务
- 03调整任务顺序、层级和所属清单
- 04筛选任务并清除已完成项目
适用场景
- 01将待办事项整理到任务清单和子任务中
- 02按状态、截止日期或标题查看任务
- 03完成、重新开启任务或将其移至其他清单
MCP 相关
MCP 客户端可直接加载其工具,也可通过本地注册的 MCP 服务访问。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zapier/ connectors --skill google-tasks安装后在 Claude Code 中输入/google-tasks确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.mcp.jsonCHANGELOG.mdcli.jscli.tsconnections.tsindex.tsLICENSENOTICENOTICE.mdpackage.jsonREADME.md.claude-plugin/plugin.jsonevals/evals.jsonresults.mdlib/google-tasks.tsreferences/google-tasks-api-gotchas.mduse-as-cli.mduse-as-mcp.mduse-as-recipe.mduse-as-sdk.mduse-with-zapier.mduse-without-zapier.mdscripts/clearCompletedTasks.tscreateTask.tscreateTaskList.tsdeleteTask.tsdeleteTaskList.tsfindTask.tsgetTask.tsgetTaskList.ts详细介绍
Google Tasks
适用于 Google Tasks 的 Agent 可调用工具(Google Tasks API v1)。管理任务列表(列出、获取、创建、重命名、删除)和任务(列出、按标题查找、获取、创建、更新、完成/重新打开、重新排序/更改父任务/移动、删除,以及清除已完成任务)。通过 Zapier 管理的 Google 连接(推荐)或直接 OAuth 令牌进行一次身份验证。此连接器将完整的任务功能封装为 13 个用途单一、I/O 稳定且可预测的脚本——没有触发器(它不会轮询)。
适用于 Google Tasks 的独立非官方连接器。与 Google Tasks 无关联,未经其认可,也未获其赞助。“Google Tasks”是其所有者的商标,在此仅用于标识本连接器所适配的服务。
适用场景
- 记录和整理待办事项——创建任务(可选择将其设为子任务或放在指定位置),创建和重命名任务列表。
- 查看列表中的内容——列出未完成(或已完成)的任务,按标题查找任务,获取任务详情。
- 推进工作——将任务标记为已完成或重新打开,重新排序任务或更改其父任务,将任务移至其他列表。
- 清理——删除任务或列表,或清除(隐藏)列表中的所有已完成任务。
- 只要用户想要管理 Google Tasks 或其待办事项列表,就可以使用,即使用户没有明确提到 Google Tasks。
设置
这是一项 agentskills.io 技能。
如果尚未将此连接器安装为技能,请先运行 npx skills add zapier/connectors --skill google-tasks 安装(或使用你所用工具自己的技能安装机制),然后再继续。安装技能会复制这些文件,而非依赖项。在运行 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-tasks__<tool>),也可以自行注册本地服务(或指导用户注册) | references/use-as-mcp.md |
终端/子进程访问权限(可以运行 node) | references/use-as-cli.md |
| 仅有自己的代码,并将此软件包作为依赖项导入 | references/use-as-sdk.md |
| 没有工具访问权限、终端或导入此软件包的能力——你需要编写自己的代码,直接调用 Google Tasks API(例如,在代码执行沙盒中) | references/use-as-recipe.md |
脚本
所有脚本都使用单个 google-tasks 连接。
| 脚本 | 脚本名称 | 连接 | 描述 |
|---|---|---|---|
scripts/listTaskLists.ts | listTaskLists | google-tasks | 列出用户的任务列表(ID + 标题)。这是任何 tasklist 输入的解析器。 |
scripts/getTaskList.ts | getTaskList | google-tasks | 按 ID 获取单个任务列表。 |
scripts/createTaskList.ts | createTaskList | google-tasks | 创建新的任务列表。 |
scripts/updateTaskList.ts | updateTaskList | google-tasks | 重命名任务列表(标题是唯一可编辑字段)。 |
scripts/deleteTaskList.ts | deleteTaskList | google-tasks | 删除任务列表及其中的所有任务(不可撤销)。 |
scripts/listTasks.ts | listTasks | google-tasks | 列出/搜索列表中的任务;默认仅显示未完成任务,并支持完成状态、截止日期和更新时间筛选。 |
scripts/findTask.ts | findTask | google-tasks | 按标题查找列表中的任务(优先精确匹配)。将标题解析为任务 ID。 |
scripts/getTask.ts | getTask | google-tasks | 按 ID 获取单个任务。 |
scripts/createTask.ts | createTask | google-tasks | 创建任务(可选创建子任务/指定位置)。 |
scripts/updateTask.ts | updateTask | google-tasks | 更新任务;将 status 设为已完成或重新打开任务。 |
scripts/moveTask.ts | moveTask | google-tasks | 重新定位任务、更改其父级,或将任务移至其他列表。 |
scripts/deleteTask.ts | deleteTask | google-tasks | 永久删除任务。 |
scripts/clearCompletedTasks.ts | clearCompletedTasks | google-tasks | 隐藏列表中的所有已完成任务(可恢复;不会造成破坏)。 |
消歧与拒绝处理
- 按名称解析任务或列表。 更新、完成、移动或删除通过标题引用的任务之前,先解析任务 —
findTask会返回最佳标题匹配项,也可以使用listTasks查看候选项。如果列表中有两个或更多任务的标题相同(忽略大小写的精确匹配),不要默默选取其中一个:列出这些候选项,并附上可用于区分的字段(截止日期、状态、备注),然后询问用户要选哪一个。如果只有一个匹配项,就直接操作 — 不要过度追问。按名称指定列表时,listTaskLists也适用同样的规则。 - 不支持的操作 — 如实说明,不要伪造结果。 此连接器无法:创建或编辑定期任务(API 没有重复周期字段 — 只能在 Google Tasks 应用中管理重复周期)、设置任务的具体时间或提醒(
due仅包含日期 — 时间会被丢弃),或通过写入position来重新排序(请使用moveTask)。如果用户要求执行其中任何一项,请说明不支持并停止 — 不要改用其他工具,并谎称已成功完成未执行的操作。
认证
每种形态都会将认证信息作为连接选择器传递,而不是密钥——格式为 [<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。 若要将大型结果缩减为所需字段,请传入一个 jq 表达式,对 data 进行后处理(具体语法同样因形态而异)。jq 仅针对 data 运行,而非 { data, meta } 信封,因此表达式应以 data 为根(运行脚本的 --help——或所用形态的等效命令——可查看其输出架构)。转换后的值会替换 data,meta 则保持不变;结果不会再次根据输出架构进行验证。
参考资料
在处理相关内容前,加载匹配的参考文件:
| 参考资料 | 涵盖内容 | 加载时机 |
|---|---|---|
| references/google-tasks-api-gotchas.md | API 特性与边缘情况 | 任务或任务列表调用的行为与预期不符时——截止日期丢失时间、position/排序、由服务器管理的 status/完成状态、隐藏任务与已删除任务、子任务嵌套限制、分配的任务(来自 Docs/Chat)、分页/页面大小或每用户限制、配额/速率限制(429/配额原因),或身份验证范围(401/403 insufficientPermissions)错误。 |