mcpField
G
google-tasks

google-tasks

github.com/zapier生产力182110 次安装10 周前更新
代码仓库

关于 google-tasks

google-tasks 是用于管理 Google Tasks 任务清单和任务的 Agent 技能。它以专用脚本支持整理、查看和更新待办事项,并可通过 Zapier 管理的连接或直接 OAuth 令牌进行身份验证。

主要功能

  1. 01创建、重命名和删除任务清单
  2. 02查找、创建、更新和完成任务
  3. 03调整任务顺序、层级和所属清单
  4. 04筛选任务并清除已完成项目

适用场景

  1. 01将待办事项整理到任务清单和子任务中
  2. 02按状态、截止日期或标题查看任务
  3. 03完成、重新开启任务或将其移至其他清单

MCP 相关

MCP 客户端可直接加载其工具,也可通过本地注册的 MCP 服务访问。

安装

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

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

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

包含的文件

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

.mcp.json
CHANGELOG.md
cli.js
cli.ts
connections.ts
index.ts
LICENSE
NOTICE
NOTICE.md
package.json
README.md
.claude-plugin/
plugin.json
evals/
evals.json
results.md
lib/
google-tasks.ts
references/
google-tasks-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/
clearCompletedTasks.ts
createTask.ts
createTaskList.ts
deleteTask.ts
deleteTaskList.ts
findTask.ts
getTask.ts
getTaskList.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.tslistTaskListsgoogle-tasks列出用户的任务列表(ID + 标题)。这是任何 tasklist 输入的解析器。
scripts/getTaskList.tsgetTaskListgoogle-tasks按 ID 获取单个任务列表。
scripts/createTaskList.tscreateTaskListgoogle-tasks创建新的任务列表。
scripts/updateTaskList.tsupdateTaskListgoogle-tasks重命名任务列表(标题是唯一可编辑字段)。
scripts/deleteTaskList.tsdeleteTaskListgoogle-tasks删除任务列表及其中的所有任务(不可撤销)。
scripts/listTasks.tslistTasksgoogle-tasks列出/搜索列表中的任务;默认仅显示未完成任务,并支持完成状态、截止日期和更新时间筛选。
scripts/findTask.tsfindTaskgoogle-tasks按标题查找列表中的任务(优先精确匹配)。将标题解析为任务 ID。
scripts/getTask.tsgetTaskgoogle-tasks按 ID 获取单个任务。
scripts/createTask.tscreateTaskgoogle-tasks创建任务(可选创建子任务/指定位置)。
scripts/updateTask.tsupdateTaskgoogle-tasks更新任务;将 status 设为已完成或重新打开任务。
scripts/moveTask.tsmoveTaskgoogle-tasks重新定位任务、更改其父级,或将任务移至其他列表。
scripts/deleteTask.tsdeleteTaskgoogle-tasks永久删除任务。
scripts/clearCompletedTasks.tsclearCompletedTasksgoogle-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.mdAPI 特性与边缘情况任务或任务列表调用的行为与预期不符时——截止日期丢失时间、position/排序、由服务器管理的 status/完成状态、隐藏任务与已删除任务、子任务嵌套限制、分配的任务(来自 Docs/Chat)、分页/页面大小或每用户限制、配额/速率限制(429/配额原因),或身份验证范围(401/403 insufficientPermissions)错误。

评论

支持 Markdown