mcpField
M
microsoft-todo

microsoft-todo

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

microsoft-todo について

curl と jq を使い、Microsoft Graph 経由で Microsoft To Do を操作するコマンドラインスキルです。タスクリストとタスクの操作に加え、認証、権限、ページネーションについて説明します。

主な機能

  1. 01タスクリストの一覧表示
  2. 02未完了タスクの取得
  3. 03タスクの作成
  4. 04任意の期限とリマインダーの設定
  5. 05ページ分割された結果の取得

活用シーン

  1. 01ユーザーのタスクリストを探す
  2. 02リスト内の未完了タスクを確認する
  3. 03期限付きタスクを追加する
  4. 04複数ページにまたがる全タスクの取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/acedatacloud/skills --skill microsoft-todo

インストール後、Claude Code で/microsoft-todoを入力して読み込まれたか確認します。

詳細

curl + jq を使用して、Microsoft Graph 経由で Microsoft To Do を操作します。ユーザーの OAuth ベアラートークンは $MICROSOFT_TODO_TOKEN に格納されています。すべての呼び出しで Authorization: Bearer $MICROSOFT_TODO_TOKEN が必要です。ベース URL: https://graph.microsoft.com/v1.0

エラーは {"error":{"code","message"}} 形式です。message をそのまま表示してください。401 はトークンの有効期限切れを意味します(再インストールしてください)。書き込み時の 403/ErrorAccessDenied は、ユーザーが Tasks.Read しか許可していないことを意味します。読み取りと書き込みの両方を許可して再接続するよう依頼してください。

G="https://graph.microsoft.com/v1.0"; AUTH="Authorization: Bearer $MICROSOFT_TODO_TOKEN"
# Task lists
curl -sS -H "$AUTH" "$G/me/todo/lists" | jq '.value[] | {id, displayName, wellknownListName}'

タスク

LIST="LIST_ID"
# Open tasks in a list (filter notStarted/inProgress; $top caps page size)
curl -sS -H "$AUTH" \
  "$G/me/todo/lists/$LIST/tasks?\$filter=status ne 'completed'&\$top=50" \
  | jq '.value[] | {id, title, status, due: .dueDateTime.dateTime}'

# Create (confirm first). dueDateTime/reminderDateTime are optional.
curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"title":"Follow up with Alex","dueDateTime":{"dateTime":"2026-06-30T17:00:00","timeZone":"UTC"}}' \
  "$G/me/todo/lists/$LIST/tasks" | jq '{id, title, status}'

# Complete: PATCH the task with {"status":"completed"}
curl -sS -X PATCH -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"status":"completed"}' "$G/me/todo/lists/$LIST/tasks/TASK_ID" | jq '{title, status}'

注意点

  • OData パラメーター($filter、$top、$select)では、シェル内で $ をエスケープ(\$filter)し、スペースを URL エンコードする必要があります。URL 全体を引用符で囲んでください。
  • wellknownListName: "defaultList" は、ユーザーの既定の「Tasks」リストです。リストが指定されていない場合の適切な代替になります。
  • ページネーションには @odata.nextLink を使用します。「すべてのタスク」を取得するには、このリンクをたどってください。

コメント