Mcp Microsoft Todo

by MAG-Cie

498 downloads
Not rated
GitHub

About

MCP server for Microsoft To Do via Microsoft Graph. MSAL device code flow, no client secret needed.

Details

Author
MAG-Cie
Downloads
498
Categories
Productivity, Project Management

- 28 tools: list, create, update, complete, delete tasks
- Batch operations (create, complete, delete up to 100 tasks)
- Sub‑task (checklist) management
- Attach external URLs as linked resources
- Custom JSON metadata via open extensions
- Cross‑list helpers (overdue, by category, bulk update)
- iCalendar export for Google/Apple/Outlook calendars
- Compact text output to save LLM tokens

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Mcp Microsoft Todo
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install via npm: npx -y @mag-cie/mcp-microsoft-todo. Add it to your MCP client’s config (e.g., Claude Desktop’s claude_desktop_config.json). For personal accounts, set MS_TENANT=consumers. On first use, run --auth in a terminal to cache the token, then ask natural‑language prompts like “Show me my To Do lists” or “Mark these tasks as done”.

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 / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp microsoft todo": {
            "microsoft-todo": {
                "command": "npx",
                "args": [
                    "-y",
                    "@mag-cie/mcp-microsoft-todo@latest"
                ],
                "env": {
                    "MS_CLIENT_ID": "your-azure-app-client-id",
                    "MS_TENANT": "common"
                }
            }
        }
    }
}

McpServers

{
    "microsoft-todo": {
        "command": "npx",
        "args": [
            "-y",
            "@mag-cie/mcp-microsoft-todo@latest"
        ],
        "env": {
            "MS_CLIENT_ID": "your-azure-app-client-id",
            "MS_TENANT": "common"
        }
    }
}

mcp-microsoft-todo

> 🇫🇷 Version française : README.fr.md

MCP server to drive Microsoft To Do from Claude Code, Claude Desktop, or any MCP-compatible client.

Works with any Microsoft account: personal (outlook.com, hotmail.com, live.com), Office 365 personal or business, Microsoft 365. Zero Azure setup required on the user side — just sign in via device code flow.

npm
license

---

🚀 End-user installation

Prerequisites (all clients)

- Node.js 20+ (nodejs.org)
- A Microsoft account (free or paid)

No Azure account required, no App Registration to create, nothing to compile.

---

🟦 Claude Code (CLI)

Install (one command):

claude mcp add --transport stdio microsoft-todo -- npx -y @mag-cie/mcp-microsoft-todo

If you have a personal Microsoft account (outlook.com, hotmail.com, live.com, msn.com, Office 365 personal), add MS_TENANT=consumers:

claude mcp add --transport stdio microsoft-todo --env MS_TENANT=consumers -- npx -y @mag-cie/mcp-microsoft-todo

Verify it's wired up:

claude mcp list

First use — recommended: pre-auth in a terminal first to avoid the "stuck on first MCP call" issue (where the device code is printed to MCP stderr but Claude Code doesn't surface it):

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.