# MAG-Cie/mcp-microsoft-todo [Health: Active]

**Category:** 🛠️ Other Tools and Integrations  
**Repository:** https://github.com/MAG-Cie/mcp-microsoft-todo  
**GitHub Stars:** 18  
**npm Downloads (last month):** 513  
**Views:** 7  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mag-cie-mcp-microsoft-todo

## Description
Microsoft To Do task management via Microsoft Graph API. MSAL device code flow (no client secret needed), persisted token cache, full MCP safety annotations.

## Tools
Capabilities this server exposes over MCP:

- **list_task_lists** — List all the user's To Do lists (Tasks, Inbox, custom lists, etc.).
- **list_tasks** — List the tasks of a To Do list. Supports OData filter, $orderby, $top, and pagination.
- **get_task** — Fetch a task's detail by ID.
- **create_task** — Create a new task in a To Do list. Supports recurrence and reminder.
- **update_task** — Update an existing task (title, status, recurrence, reminder, etc.).
- **complete_task** — Shortcut to mark a task as completed.
- **delete_task** — Delete a task permanently.
- **move_task** — Move a task from one list to another. Recreates the task in the target list (title, body, due, recurrence, reminder, categories preserved) then deletes the original. Note: checklistItems and linkedResources are NOT moved (Graph limitation). The task ID changes.
- **search_tasks** — Search a term in the titles of tasks across ALL lists (case-sensitive). By default excludes completed tasks.
- **summarize_today** — Summary of tasks due today and overdue, aggregated per list. Useful for the question "what do I have to do today?".
- **list_all_tasks** — Fetch every active task across every list in a single round-trip (uses Graph $batch internally). Use this for the question "what are all my tasks?" instead of N×list_tasks calls. Optional `filter` is an OData filter applied per list (e.g. "importance eq 'high'"). By default `status ne 'completed'` is appended unless `include_completed` is true.
- **list_checklist_items** — List the sub-items (checklist) of a task.
- **create_checklist_item** — Add a sub-item (checklist) to a task.
- **update_checklist_item** — Update a sub-item (rename or check/uncheck).
- **delete_checklist_item** — Delete a sub-item.
- **list_linked_resources** — List the linked resources (external URLs, third-party app refs) of a task.
- **create_linked_resource** — Attach a linked resource (URL or external ref) to a task.
- **delete_linked_resource** — Delete a linked resource from a task.
- **batch_create_tasks** — Create several tasks in a single HTTP call via Microsoft Graph $batch (up to 100 items, auto-chunked by 20). Returns: status + result OR error per item, in order. More efficient than N create_task calls.
- **batch_complete_tasks** — Mark several tasks as completed in a single $batch HTTP call (up to 100 items).
- **batch_delete_tasks** — Delete several tasks in a single $batch HTTP call (up to 100 items).
- **list_extensions** — List the open extensions (custom JSON metadata) attached to a task.
- **set_extension** — Create or update (upsert) an open extension on a task. Lets you attach arbitrary JSON metadata (project_id, external_ref, custom flags...) that persist in Microsoft Graph.
- **delete_extension** — Delete an open extension from a task.
- **list_overdue_tasks** — List ALL overdue tasks (status ne completed and dueDateTime < today) across every list. Aggregated via Promise.all.
- **list_tasks_by_category** — List ALL tasks containing a given category, across every list. OData filter: categories/any(c: c eq '...').
- **bulk_update_categories** — Add/remove categories on several tasks in one operation. 2-phase batch: GET to read existing categories, then PATCH with the updated set. Per-item errors, no global fail.
- **export_tasks_ics** — Export tasks to iCalendar format (text/calendar VTODO) for import into Google Calendar, Apple Calendar, Outlook, Thunderbird, etc. Recurrence converted to RRULE when possible. Reminder converted to VALARM.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-microsoft-todo": {
    "command": "npx",
    "args": ["-y","@mag-cie/mcp-microsoft-todo"]
  }
}
```

## Documentation

## What MAG-Cie/mcp-microsoft-todo MCP server does

MAG-Cie/mcp-microsoft-todo MCP server exposes Microsoft To Do operations as MCP tools. It can enumerate lists, read individual tasks, create and edit tasks, mark tasks complete, delete them, and move them between lists. Task creation and updates support fields such as title, status, due dates, importance, recurrence, reminders, and categories.

The server also covers task organization and reporting. Agents can search titles across all lists, summarize items due today or already overdue, retrieve every active task in one operation, filter tasks by category, and list overdue tasks. Checklist items, linked resources, and Microsoft Graph open extensions are managed through separate tools. An iCalendar export produces VTODO data for use with calendar and task applications named in the project documentation, including Google Calendar, Apple Calendar, Outlook, and Thunderbird.

## How it works

The server uses Microsoft Graph and authenticates through MSAL device code flow. A user opens the displayed Microsoft sign-in URL, enters the supplied code, and grants access with their Microsoft account. No client secret or Azure setup is required for normal use. The account can be personal, Microsoft 365, or Office 365.

After authentication, the token cache is saved at `~/.mcp-microsoft-todo/token-cache.json` and refreshed automatically. Most operations run against the relevant To Do list or task. Several higher-volume operations use Graph batching: listing all tasks uses `$batch`, while batch creation, completion, and deletion accept up to 100 items and split requests into groups of 20. Moving a task recreates it in the destination list and removes the source task, so its ID changes and checklist items or linked resources are not transferred.

## Setup and configuration

MAG-Cie/mcp-microsoft-todo MCP server requires Node.js 20 or newer and a Microsoft account. Install it as a stdio MCP server with `npx -y @mag-cie/mcp-microsoft-todo`, using the configuration format required by the selected client.

For personal Microsoft accounts, set `MS_TENANT=consumers`. The README recommends running the package with `--auth` once in a terminal so the device code is visible immediately; clients can also trigger authentication on the first tool call. `MCP_LOCALE=fr` optionally localizes compact-format strings. Developers using a fork may need `MS_CLIENT_ID`, but the official npm package does not require it.

Claude Code can register the server with `claude mcp add --transport stdio`. Claude Desktop uses an `mcpServers` entry with `npx` as the command. Cursor, Continue, and other stdio-capable clients can use the same command and arguments in their own configuration format.

## Tools and capabilities

The documented tool set includes 28 operations for:

- Lists and tasks, including OData filters, ordering, pagination, recurrence, and reminders.
- Batch creation, completion, and deletion.
- Today, overdue, cross-list search, and category-based queries.
- Checklist items and linked resources.
- Custom JSON metadata through open extensions.
- Category updates across multiple tasks.
- iCalendar export with recurrence rules and alarms when conversion is possible.

Safety annotations distinguish read operations, updates, non-idempotent writes, and destructive deletes.

## Limitations and notes

Title search is case-sensitive and excludes completed tasks by default. Bulk and all-list operations may apply active-task filters unless completed items are explicitly requested. Moving a task does not preserve checklist items or linked resources because of a Microsoft Graph limitation, and the recreated task receives a new ID. Deletion is permanent. If authentication fails, the documented recovery is to remove the local token-cache directory and sign in again; personal accounts may require `MS_TENANT=consumers`.

_Full upstream README: https://allmcps.com/mcp/mag-cie-mcp-microsoft-todo/readme_

