mcpField
T
todoist-automation

todoist-automation

github.com/davepoon生産性3.7k125 回インストール今日更新
リポジトリ

todoist-automation について

todoist-automationは、ComposioのTodoistツールキットでタスク、プロジェクト、セクション、フィルターを管理するスキルです。Rube MCP経由で操作し、有効なTodoist接続が必要です。

主な機能

  1. 01タスクの作成、更新、完了、再開、削除
  2. 02タスクの一括作成
  3. 03プロジェクトとセクションの整理
  4. 04条件によるタスク検索
  5. 05完了済みタスク履歴の表示

活用シーン

  1. 01期限付きまたは定期タスクのプロジェクトへの追加
  2. 02プロジェクト用タスクの一括作成
  3. 03プロジェクト、ラベル、期限による未完了タスクの検索
  4. 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 キーは不要です。エンドポイントを追加するだけで動作します。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確認します
  2. ツールキット todoist を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクに従って Todoist OAuth を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

主なワークフロー

1. タスクの作成と管理

使用する場面: ユーザーがタスクの作成、更新、完了、再開、削除を希望する場合

ツールの順序:

  1. TODOIST_GET_ALL_PROJECTS - プロジェクトを一覧表示し、対象プロジェクト ID を探します [前提条件]
  2. TODOIST_GET_ALL_SECTIONS - タスクを配置するプロジェクト内のセクションを一覧表示します [任意]
  3. TODOIST_CREATE_TASK - 内容、期日、優先度、ラベルを指定して単一のタスクを作成します [必須]
  4. TODOIST_BULK_CREATE_TASKS - 1 回のリクエストで複数のタスクを作成します [代替手段]
  5. TODOIST_UPDATE_TASK - タスクのプロパティ(内容、期日、優先度、ラベル)を変更します [任意]
  6. TODOIST_CLOSE_TASK - タスクを完了としてマークします [任意]
  7. TODOIST_REOPEN_TASK - 以前に完了したタスクを再開します [任意]
  8. TODOIST_DELETE_TASK - タスクを完全に削除します [任意]

CREATE_TASK の主なパラメーター:

  • content: タスク名(マークダウンとハイパーリンクに対応)
  • description: 追加のメモ(期日はここに記載しないでください)
  • project_id: 英数字のプロジェクト ID。受信トレイに追加する場合は省略します
  • section_id: プロジェクト内での配置先を示す英数字のセクション ID
  • parent_id: サブタスクを作成するためのタスク ID
  • priority: 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. プロジェクトを管理する

使用する場面:ユーザーがプロジェクトの一覧表示、作成、更新、または確認を希望する場合

ツールの実行順序:

  1. TODOIST_GET_ALL_PROJECTS - メタデータとともにすべてのプロジェクトを一覧表示します[必須]
  2. TODOIST_GET_PROJECT - IDを指定して、特定のプロジェクトの詳細を取得します[任意]
  3. TODOIST_CREATE_PROJECT - 名前、色、表示スタイルを指定して、新しいプロジェクトを作成します[任意]
  4. 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. セクションを管理する

使用する場面:ユーザーがセクションを使ってプロジェクト内のタスクを整理したい場合

ツールの実行順序:

  1. TODOIST_GET_ALL_PROJECTS - 対象のプロジェクトIDを確認します[前提条件]
  2. TODOIST_GET_ALL_SECTIONS - 重複を避けるため、既存のセクションを一覧表示します[前提条件]
  3. TODOIST_CREATE_SECTION - プロジェクト内に新しいセクションを作成します[必須]
  4. TODOIST_UPDATE_SECTION - 既存のセクションの名前を変更します[任意]
  5. 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. タスクの検索とフィルタリング

使用する場面:条件に基づいてタスクを探す、今日のタスクを確認する、または完了済みタスクの履歴を取得する場合

ツールの実行順序:

  1. TODOIST_GET_ALL_TASKS - オプションのフィルタークエリを指定して、未完了のタスクを取得します[必須]
  2. TODOIST_GET_TASK - ID を指定して特定のタスクの詳細を取得します[任意]
  3. TODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATE - 指定した期間内に完了したタスクを取得します[任意]
  4. 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. タスクの一括作成

使用する場面:複数のタスクをまとめて作成し、プロジェクトのひな形を用意する場合

ツールの実行順序:

  1. TODOIST_GET_ALL_PROJECTS - 対象プロジェクトの ID を特定します[前提条件]
  2. TODOIST_GET_ALL_SECTIONS - タスクを配置するセクションの ID を特定します[任意]
  3. 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_PROJECTproject_id
プロジェクトを作成TODOIST_CREATE_PROJECTname、color、view_style
プロジェクトを更新TODOIST_UPDATE_PROJECTproject_id、name、color
セクションを一覧表示TODOIST_GET_ALL_SECTIONSproject_id
セクションを作成TODOIST_CREATE_SECTIONproject_id、name、order
セクションを更新TODOIST_UPDATE_SECTIONsection_id、name
セクションを削除TODOIST_DELETE_SECTIONsection_id
すべてのタスクを取得TODOIST_GET_ALL_TASKSfilter、ids
タスクを取得TODOIST_GET_TASKtask_id
タスクを作成TODOIST_CREATE_TASKcontent、project_id、due_string、priority
タスクを一括作成TODOIST_BULK_CREATE_TASKStasks(配列)
タスクを更新TODOIST_UPDATE_TASKtask_id、content、due_string
タスクを完了TODOIST_CLOSE_TASKtask_id
タスクを再開TODOIST_REOPEN_TASKtask_id
タスクを削除TODOIST_DELETE_TASKtask_id
完了したタスクTODOIST_GET_COMPLETED_TASKS_BY_COMPLETION_DATEsince、until
フィルターを一覧表示TODOIST_LIST_FILTERSsync_token

Composio 提供

コメント