名称: todoist-automation 描述: 通过Rube MCP自动化Todoist任务管理、项目、分区、过滤和批量操作。始终首先搜索工具以获取当前模式。 需要: mcp: [rube] 类别: 业务生产力
通过Rube MCP的Todoist自动化
自动化Todoist操作,包括任务创建和管理、项目组织、分区管理、过滤和批量任务工作流,通过Composio的Todoist工具包。
工具包文档: composio.dev/toolkits/todoist
先决条件
- Rube MCP必须已连接(RUBE_SEARCH_TOOLS可用)
- 通过
RUBE_MANAGE_CONNECTIONS与工具包todoist建立有效的Todoist连接 - 始终先调用
RUBE_SEARCH_TOOLS以获取当前工具模式
设置
获取Rube MCP: 在客户端配置中添加https://rube.app/mcp作为MCP服务器。无需API密钥—只需添加端点即可工作。
- 验证Rube MCP可用,确认
RUBE_SEARCH_TOOLS响应 - 调用
RUBE_MANAGE_CONNECTIONS与工具包todoist - 如果连接不是ACTIVE,请按照返回的认证链接完成Todoist OAuth
- 在运行任何工作流之前,确认连接状态显示为ACTIVE
核心工作流
1. 创建和管理任务
使用时机: 用户想要创建、更新、完成、重新打开或删除任务
工具顺序:
TODOIST_GET_ALL_PROJECTS- 列出项目以找到目标项目ID [先决条件]TODOIST_GET_ALL_SECTIONS- 列出项目中的分区以放置任务 [可选]TODOIST_CREATE_TASK- 创建单个任务,包含内容、截止日期、优先级、标签 [必需]TODOIST_BULK_CREATE_TASKS- 在一个请求中创建多个任务 [替代方案]TODOIST_UPDATE_TASK- 修改任务属性(内容、截止日期、优先级、标签) [可选]TODOIST_CLOSE_TASK- 将任务标记为已完成 [可选]TODOIST_REOPEN_TASK- 恢复之前已完成的任务 [可选]TODOIST_DELETE_TASK- 永久删除任务 [可选]
CREATE_TASK的关键参数:
content: 任务标题(支持Markdown和超链接)description: 附加说明(请勿在此放置截止日期)project_id: 字母数字项目ID;省略以添加到收件箱section_id: 字母数字分区ID,用于在项目内放置任务parent_id: 任务ID,用于创建子任务priority: 1(正常)到4(紧急)—注意:Todoist UI显示p1=紧急,API p4=紧急due_string: 自然语言日期,如“明天下午3点”、“每周五上午9点”due_date: 特定日期YYYY-MM-DD格式due_datetime: 特定日期+时间,RFC3339YYYY-MM-DDTHH:mm:ssZ格式labels: 标签名称字符串数组duration+duration_unit: 任务持续时间(例如,30+"minute")
陷阱:
- 一次只能使用一个
due_*字段(除了due_lang,它可以伴随任何字段) - 请勿将截止日期嵌入
content或description中—使用due_string字段 - 请勿将持续时间短语如“for 30 minutes”嵌入
due_string—使用duration+duration_unit - API中的
priority: 1=正常,4=紧急(与Todoist UI显示相反,p1=紧急) - 任务ID可以是数字或字母数字;使用API返回的格式
CLOSE_TASK标记完成;DELETE_TASK永久删除—它们是不同的操作
2. 管理项目
使用时机: 用户想要列出、创建、更新或检查项目
工具顺序:
TODOIST_GET_ALL_PROJECTS- 列出所有项目及其元数据 [必需]TODOIST_GET_PROJECT- 通过ID获取特定项目详情 [可选]TODOIST_CREATE_PROJECT- 创建新项目,包含名称、颜色、视图样式 [可选]TODOIST_UPDATE_PROJECT- 修改项目属性 [可选]
关键参数:
name: 项目名称(创建时必需)color: Todoist调色板颜色(例如,“blue”、“red”、“green”、“charcoal”)view_style: “list”或“board”布局parent_id: 父项目ID,用于创建子项目is_favorite/favorite: 布尔值,标记为收藏project_id: 更新和获取操作时必需
陷阱:
- 名称相似的项目可能导致选择错误的project_id;始终验证
CREATE_PROJECT使用favorite,而UPDATE_PROJECT使用is_favorite—字段名不同- 使用API返回的项目
id,而不是v2_id,进行下游操作 - 字母数字/URL风格的项目ID在某些工具中可能导致HTTP 400错误;尽可能使用数字ID
3. 管理分区
使用时机: 用户想要使用分区在项目内组织任务
工具顺序:
TODOIST_GET_ALL_PROJECTS- 找到目标项目ID [先决条件]TODOIST_GET_ALL_SECTIONS- 列出现有分区以避免重复 [先决条件]TODOIST_CREATE_SECTION- 在项目中创建新分区 [必需]TODOIST_UPDATE_SECTION- 重命名现有分区 [可选]TODOIST_DELETE_SECTION- 永久删除分区 [可选]
关键参数:
project_id: 必需—创建分区的项目name: 分区名称(创建时必需)order: 整数位置,项目内的顺序(值较低的先出现)section_id: 更新和删除操作时必需
陷阱:
CREATE_SECTION需要project_id和name—省略project_id会导致400错误- 如果使用字母数字ID,可能发生HTTP 400“project_id无效”错误;优先使用数字ID
- 删除分区可能以不明显的方式移动或重新分组其任务
- 响应可能同时包含
id和v2_id;始终存储和重复使用正确的标识符 - 始终首先检查现有分区以避免创建重复项
4. 搜索和过滤任务
使用时机: 用户想要通过标准查找任务、查看今日任务或获取已完成任务历史
工具顺序:
TODOIST_GET_ALL_TASKS- 获取未完成任务,可选过滤查询 [必需]TODOIST_GET_TASK- 通过ID获取特定任务完整详情 [可选]TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE- 检索特定日期范围内已完成的任务 [可选]TODOIST_LIST_FILTERS- 列出用户的自定义保存过滤器 [可选]
GET_ALL_TASKS的关键参数:
filter: Todoist过滤语法字符串- 关键字:
today(今天)、tomorrow(明天)、overdue(逾期)、no date(无日期)、recurring(重复)、subtask(子任务) - 优先级:
p1(紧急)、p2、p3、p4(正常) - 项目:
#ProjectName(必须在账户中存在) - 标签:
@LabelName(必须在账户中存在) - 日期范围:
7 days(7天)、-7 days(-7天)、due before: YYYY-MM-DD(截止前)、due after: YYYY-MM-DD(截止后) - 搜索:
search: keyword用于内容文本搜索 - 操作符:
&(与)、|(或)、!(非)
- 关键字:
ids: 要检索的特定任务ID列表
GET_COMPLETED_TASKS_BY_COMPLETION_DATE的关键参数:
since: 开始日期,RFC3339格式(例如,2024-01-01T00:00:00Z)until: 结束日期,RFC3339格式project_id、section_id、parent_id: 可选过滤器cursor: 来自先前响应的分页游标limit: 每页最大结果数(默认50)
陷阱:
GET_ALL_TASKS仅返回未完成任务;使用GET_COMPLETED_TASKS_BY_COMPLETION_DATE获取已完成任务- 过滤项必须引用实际存在的实体;任意文本会导致HTTP 400错误
- 请勿在GET_ALL_TASKS过滤器中使用
completed(已完成)、!completed(未完成)或completed after(完成后)—会导致400错误 GET_COMPLETED_TASKS_BY_COMPLETION_DATE限制日期范围在since和until之间大约3个月- 搜索使用过滤器内的
search: keyword语法,而非单独参数
5. 批量任务创建
使用时机: 用户想要一次性搭建一个包含多个任务的项目
工具顺序:
TODOIST_GET_ALL_PROJECTS- 找到目标项目ID [先决条件]TODOIST_GET_ALL_SECTIONS- 找到任务放置的分区ID [可选]TODOIST_BULK_CREATE_TASKS- 在单个请求中创建多个任务 [必需]
关键参数:
tasks: 任务对象数组,每个至少需要content- 每个任务对象支持:
content、description、project_id、section_id、parent_id、priority、labels、due(对象,包含string、date或datetime)、duration、order
陷阱:
- 数组中的每个任务必须至少拥有
content字段 - 批量创建中的
due字段是一个具有嵌套字段(string、date、datetime、lang)的对象—与CREATE_TASK的平面字段结构不同 - 同一批次中的所有任务可以针对不同的项目/分区
常见模式
ID解析
操作前始终将人类可读名称解析为ID:
- 项目名称 -> 项目ID:
TODOIST_GET_ALL_PROJECTS,通过name字段匹配 - 分区名称 -> 分区ID:
TODOIST_GET_ALL_SECTIONS与project_id - 任务内容 -> 任务ID:
TODOIST_GET_ALL_TASKS与filter或search: keyword
分页
TODOIST_GET_ALL_TASKS: 返回所有匹配的未完成任务(无需分页)TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE: 使用基于游标的分页;遵循响应中的cursor直到没有更多结果TODOIST_GET_ALL_PROJECTS和TODOIST_GET_ALL_SECTIONS: 返回所有结果(无分页)
截止日期处理
- 自然语言: 使用
due_string(例如,“明天下午3点”、“每周一”) - 特定日期: 使用
due_date,YYYY-MM-DD格式 - 特定日期时间: 使用
due_datetime,RFC3339格式(YYYY-MM-DDTHH:mm:ssZ) - 一次只能使用一个截止字段(除了
due_lang,它可以伴随任何字段) - 重复任务: 在
due_string中使用自然语言(例如,“每周五上午9点”)
已知陷阱
ID格式
- 任务ID可以是数字(“2995104339”)或字母数字(“6X4Vw2Hfmg73Q2XR”)
- 项目ID类似;优先使用API返回的格式
- 某些工具仅接受数字ID;如果发生400错误,请尝试通过GET_PROJECT获取数字
id - 响应对象可能同时包含
id和v2_id;使用id进行API操作
优先级反转
- API优先级: 1 = 正常,4 = 紧急
- Todoist UI显示: p1 = 紧急,p4 = 正常
- 这是相反的;始终与用户澄清他们意指哪种约定
过滤语法
- 过滤项必须引用用户账户中的真实实体
#NonExistentProject(不存在项目)或@NonExistentLabel(不存在标签)将导致HTTP 400- 使用
search: keyword进行文本搜索,而非裸关键字 - 与
&(与)、|(或)、!(非)组合 completed(已完成)过滤器在GET_ALL_TASKS端点上无效
速率限制
- Todoist API有速率限制;尽可能使用
BULK_CREATE_TASKS进行批量操作 - 为避免节流,请间隔开快速连续请求
快速参考
| 任务 | 工具标识符 | 关键参数 |
|---|---|---|
| 列出所有项目 | TODOIST_GET_ALL_PROJECTS |
(无) |
| 获取项目 | TODOIST_GET_PROJECT |
project_id |
| 创建项目 | TODOIST_CREATE_PROJECT |
name、color、view_style |
| 更新项目 | TODOIST_UPDATE_PROJECT |
project_id、name、color |
| 列出分区 | TODOIST_GET_ALL_SECTIONS |
project_id |
| 创建分区 | TODOIST_CREATE_SECTION |
project_id、name、order |
| 更新分区 | TODOIST_UPDATE_SECTION |
section_id、name |
| 删除分区 | TODOIST_DELETE_SECTION |
section_id |
| 获取所有任务 | TODOIST_GET_ALL_TASKS |
filter、ids |
| 获取任务 | TODOIST_GET_TASK |
task_id |
| 创建任务 | TODOIST_CREATE_TASK |
content、project_id、due_string、priority |
| 批量创建任务 | TODOIST_BULK_CREATE_TASKS |
tasks(数组) |
| 更新任务 | TODOIST_UPDATE_TASK |
task_id、content、due_string |
| 完成任务 | TODOIST_CLOSE_TASK |
task_id |
| 重新打开任务 | TODOIST_REOPEN_TASK |
task_id |
| 删除任务 | TODOIST_DELETE_TASK |
task_id |
| 已完成任务 | TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE |
since、until |
| 列出过滤器 | TODOIST_LIST_FILTERS |
sync_token |
由Composio提供支持