todoist-automation について
todoist-automationは、ComposioのTodoistツールキットでタスク、プロジェクト、セクション、フィルターを管理するスキルです。Rube MCP経由で操作し、有効なTodoist接続が必要です。
主な機能
- 01タスクの作成、更新、完了、再開、削除
- 02タスクの一括作成
- 03プロジェクトとセクションの整理
- 04条件によるタスク検索
- 05完了済みタスク履歴の表示
活用シーン
- 01期限付きまたは定期タスクのプロジェクトへの追加
- 02プロジェクト用タスクの一括作成
- 03プロジェクト、ラベル、期限による未完了タスクの検索
- 04指定期間に完了したタスクの確認
MCP 対応
Rube MCP経由でComposioのTodoistツールキットを利用します。利用にはRube MCPへの接続とTodoistの認証が必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill todoist-automationインストール後、Claude Code で/todoist-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による Todoist の自動化
Composio の Todoist ツールキットを通じて、タスクの作成と管理、プロジェクトの整理、セクションの管理、フィルタリング、一括タスクのワークフローなど、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_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認します- ツールキット
todoistを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクに従って Todoist OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. タスクの作成と管理
使用する場面: ユーザーがタスクの作成、更新、完了、再開、削除を希望する場合
ツールの順序:
TODOIST_GET_ALL_PROJECTS- プロジェクトを一覧表示し、対象プロジェクト ID を探します [前提条件]TODOIST_GET_ALL_SECTIONS- タスクを配置するプロジェクト内のセクションを一覧表示します [任意]TODOIST_CREATE_TASK- 内容、期日、優先度、ラベルを指定して単一のタスクを作成します [必須]TODOIST_BULK_CREATE_TASKS- 1 回のリクエストで複数のタスクを作成します [代替手段]TODOIST_UPDATE_TASK- タスクのプロパティ(内容、期日、優先度、ラベル)を変更します [任意]TODOIST_CLOSE_TASK- タスクを完了としてマークします [任意]TODOIST_REOPEN_TASK- 以前に完了したタスクを再開します [任意]TODOIST_DELETE_TASK- タスクを完全に削除します [任意]
CREATE_TASK の主なパラメーター:
content: タスク名(マークダウンとハイパーリンクに対応)description: 追加のメモ(期日はここに記載しないでください)project_id: 英数字のプロジェクト ID。受信トレイに追加する場合は省略しますsection_id: プロジェクト内での配置先を示す英数字のセクション IDparent_id: サブタスクを作成するためのタスク IDpriority: 1(通常)から 4(緊急)までです。注: Todoist の UI では p1 が緊急ですが、API では p4 が緊急ですdue_string:"tomorrow at 3pm"、"every Friday at 9am"のような自然言語による日付due_date:YYYY-MM-DD形式の特定の日付due_datetime: RFC3339 形式(YYYY-MM-DDTHH:mm:ssZ)の特定の日付と時刻labels: ラベル名を格納した配列duration+duration_unit: タスクの所要時間(例:30+"minute")
注意点:
- 一度に指定できる
due_*フィールドは 1 つだけです(due_langはどのフィールドとも併用できます) - 期日を
contentやdescriptionに含めないでください。due_stringフィールドを使用します - 「for 30 minutes」のような所要時間を表す語句を
due_stringに含めないでください。duration+duration_unitを使用します - API の
priorityは 1=通常、4=緊急です(p1 が緊急となる Todoist UI の表示とは逆です) - タスク 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:サブプロジェクトを作成する際の親プロジェクトIDis_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 is invalid」が発生する場合があります。数値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 days、due before: YYYY-MM-DD、due after: YYYY-MM-DD - 検索:内容を検索するには
search: keyword - 演算子:
&(AND)、|(OR)、!(NOT)
- キーワード:
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:1 ページあたりの最大件数(デフォルトは 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- 1 回のリクエストで複数のタスクを作成します[必須]
主なパラメーター:
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:
project_idを指定してTODOIST_GET_ALL_SECTIONSを実行します - タスクの内容 -> タスク ID:
filterまたはsearch: keywordを指定してTODOIST_GET_ALL_TASKSを実行します
ページネーション
TODOIST_GET_ALL_TASKS:条件に一致する未完了のタスクをすべて返します(ページネーションは不要です)TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE:カーソルベースのページネーションを使用します。結果がなくなるまで、レスポンスのcursorを引き継いでくださいTODOIST_GET_ALL_PROJECTSとTODOIST_GET_ALL_SECTIONS:すべての結果を返します(ページネーションは不要です)
期限日の処理
- 自然言語:
due_stringを使用します(例:"tomorrow at 3pm"、"every Monday") - 特定の日付:
YYYY-MM-DD形式のdue_dateを使用します - 特定の日時:RFC3339 形式(
YYYY-MM-DDTHH:mm:ssZ)のdue_datetimeを使用します - 一度に指定できる期限フィールドは 1 つだけです(どのフィールドにも
due_langを併用できます) - 繰り返しタスク:
due_stringに自然言語を指定します(例:"every Friday at 9am")
既知の注意点
ID 形式
- タスク ID は数値(
"2995104339")または英数字("6X4Vw2Hfmg73Q2XR")です - プロジェクト ID も同様に形式が異なるため、API が返す形式を優先してください
- 一部のツールは数値 ID のみ受け付けます。400 エラーが発生した場合は、GET_PROJECT を使って数値の
idを取得してください - レスポンスオブジェクトには
idとv2_idの両方が含まれる場合があります。API 操作にはidを使用してください
優先度の逆転
- API の優先度:1 = 通常、4 = 緊急
- Todoist UI の表示:p1 = 緊急、p4 = 通常
- この対応は逆になっています。どちらの基準を指しているか、必ずユーザーに確認してください
フィルター構文
- フィルターの語句は、ユーザーのアカウントに実在するエンティティを参照する必要があります
#NonExistentProjectや@NonExistentLabelを指定すると HTTP 400 が発生します- テキスト検索には、単独のキーワードではなく
search: keywordを使用してください &(AND)、|(OR)、!(NOT)を使って組み合わせます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 提供