# io.github.jordanburke/microsoft-todo-mcp-server (npm · microsoft-todo-mcp-server)

Microsoft To Do via Graph — task lists, tasks, checklist items and reminders.

- Trust score: 76/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- npm · `microsoft-todo-mcp-server`: 76/100 (this document), [markdown](https://verifymcp.io/servers/jordanburke-microsoft-todo-mcp-server/microsoft-todo-mcp-server.md), [page](https://verifymcp.io/servers/jordanburke-microsoft-todo-mcp-server/microsoft-todo-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `microsoft-todo-mcp-server`
- Version: `1.2.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 74/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available.
  - Declares code that runs automatically (postinstall) and that we could not recognise. It may be perfectly ordinary, but we have not established what it does.
  - 41 of 111 dependencies flagged as unhealthy (1 deprecated).
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to jordanburke/microsoft-todo-mcp-server).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 4 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1596 tokens (~99/item across 16 items; 16 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete-task-list" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the io.github.jordanburke/microsoft-todo-mcp-server server?

io.github.jordanburke/microsoft-todo-mcp-server runs locally as an npm package, launched with npx -y microsoft-todo-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add jordanburke-microsoft-todo-mcp-server -- npx -y microsoft-todo-mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "jordanburke-microsoft-todo-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "microsoft-todo-mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "jordanburke-microsoft-todo-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "microsoft-todo-mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add jordanburke-microsoft-todo-mcp-server -- npx -y microsoft-todo-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jordanburke-microsoft-todo-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "microsoft-todo-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add jordanburke-microsoft-todo-mcp-server --command npx --arg -y --arg microsoft-todo-mcp-server
```

### Hermes

```yaml
mcp_servers:
  jordanburke-microsoft-todo-mcp-server:
    command: "npx"
    args: ["-y", "microsoft-todo-mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "jordanburke-microsoft-todo-mcp-server": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "microsoft-todo-mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add jordanburke-microsoft-todo-mcp-server -t stdio -c npx -a -y microsoft-todo-mcp-server
```

### Other

```json
{
  "mcpServers": {
    "jordanburke-microsoft-todo-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "microsoft-todo-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 74, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-31 (score 58, −14)

- [security regression] Malware scan: pass → unverified
- [functional regression] Schema quality: 89 → 99
- [functional improvement] Security disclosure: fail → pass
- [functional] Package version: 1.1.4 → 1.2.0

### 2026-10-29 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 0 to 3. That category is still filling its 30-day observation window: 0 days of observed history at the previous scan, 1 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 71)

First indexed and scored.

## MCP tools (16)

### `auth-status` (~35 tokens)

Check if you're authenticated with Microsoft Graph API. Shows current token status and expiration time, and indicates if the token needs to be refreshed.

### `get-task-lists` (~39 tokens)

Get all Microsoft Todo task lists (the top-level containers that organize your tasks). Shows list names, IDs, and indicates default or shared lists.

### `get-task-lists-organized` (~83 tokens)

Get all task lists organized into logical folders/categories based on naming patterns, emoji prefixes, and sharing status. Provides a hierarchical view similar to folder organization.

Input parameters:

- `groupBy` (string): Grouping strategy - 'category' (default), 'shared', or 'type'
- `includeIds` (boolean): Include list IDs in output (default: false)

### `create-task-list` (~46 tokens)

Create a new task list (top-level container) in Microsoft Todo to help organize your tasks into categories or projects.

Input parameters:

- `displayName` (string, required): Name of the new task list

### `update-task-list` (~55 tokens)

Update the name of an existing task list (top-level container) in Microsoft Todo.

Input parameters:

- `displayName` (string, required): New name for the task list
- `listId` (string, required): ID of the task list to update

### `delete-task-list` (~48 tokens)

Delete a task list (top-level container) from Microsoft Todo. This will remove the list and all tasks within it.

Input parameters:

- `listId` (string, required): ID of the task list to delete

### `get-tasks` (~181 tokens)

Get tasks from a specific Microsoft Todo list. These are the main todo items that can contain checklist items (subtasks).

Input parameters:

- `count` (boolean): Whether to include a count of tasks
- `filter` (string): OData $filter query (e.g., 'status eq \'completed\'')
- `listId` (string, required): ID of the task list
- `orderby` (string): Property to sort by (e.g., 'createdDateTime desc')
- `select` (string): Comma-separated subset of the shown fields to include: status, dueDateTime, importance, categories, recurrence, body (e.g., 'status,dueDateTime'). id and title are always included; other names are ig…
- `skip` (number): Number of tasks to skip
- `top` (number): Maximum number of tasks to retrieve

### `create-task` (~267 tokens)

Create a new task in a specific Microsoft Todo list. A task is the main todo item that can have a title, description, due date, and other properties. Pass `recurrence` to make the task repeat (e.g. monthly bill payments, birthdays, weekly reviews).

Input parameters:

- `body` (string): Description or body content of the task
- `categories` (array): Categories associated with the task
- `dueDateTime` (string): Due date in ISO format (e.g., 2023-12-31T23:59:59Z)
- `importance` (string): Task importance
- `isReminderOn` (boolean): Whether to enable reminder for this task
- `listId` (string, required): ID of the task list
- `recurrence` (object): Recurrence rule. Omit for a one-off task. Requires `dueDateTime` to be set (the recurrence derives its first occurrence from it).
- `reminderDateTime` (string): Reminder date and time in ISO format
- `startDateTime` (string): Start date in ISO format (e.g., 2023-12-31T23:59:59Z)
- `status` (string): Status of the task
- `title` (string, required): Title of the task

### `update-task` (~292 tokens)

Update an existing task in Microsoft Todo. Allows changing any properties of the task including title, due date, importance, and recurrence. To stop a recurring task, pass `recurrence: null`. Pass a new `recurrence` object to change or add recurrence.

Input parameters:

- `body` (string): New description or body content of the task
- `categories` (array): New categories associated with the task
- `dueDateTime` (string): New due date in ISO format (e.g., 2023-12-31T23:59:59Z)
- `importance` (string): New task importance
- `isReminderOn` (boolean): Whether to enable reminder for this task
- `listId` (string, required): ID of the task list
- `recurrence`: New recurrence rule for the task. Pass an object to set/change recurrence. Pass `null` to make the task one-off (clears any existing recurrence). Omit to leave recurrence untouched.
- `reminderDateTime` (string): New reminder date and time in ISO format
- `startDateTime` (string): New start date in ISO format (e.g., 2023-12-31T23:59:59Z)
- `status` (string): New status of the task
- `taskId` (string, required): ID of the task to update
- `title` (string): New title of the task

### `delete-task` (~58 tokens)

Delete a task from a Microsoft Todo list. This will remove the task and all its checklist items (subtasks).

Input parameters:

- `listId` (string, required): ID of the task list
- `taskId` (string, required): ID of the task to delete

### `get-checklist-items` (~61 tokens)

Get checklist items (subtasks) for a specific task. Checklist items are smaller steps or components that belong to a parent task.

Input parameters:

- `listId` (string, required): ID of the task list
- `taskId` (string, required): ID of the task

### `create-checklist-item` (~89 tokens)

Create a new checklist item (subtask) for a task. Checklist items help break down a task into smaller, manageable steps.

Input parameters:

- `displayName` (string, required): Text content of the checklist item
- `isChecked` (boolean): Whether the item is checked off
- `listId` (string, required): ID of the task list
- `taskId` (string, required): ID of the task

### `update-checklist-item` (~102 tokens)

Update an existing checklist item (subtask). Allows changing the text content or completion status of the subtask.

Input parameters:

- `checklistItemId` (string, required): ID of the checklist item to update
- `displayName` (string): New text content of the checklist item
- `isChecked` (boolean): Whether the item is checked off
- `listId` (string, required): ID of the task list
- `taskId` (string, required): ID of the task

### `delete-checklist-item` (~76 tokens)

Delete a checklist item (subtask) from a task. This removes just the specific subtask, not the parent task.

Input parameters:

- `checklistItemId` (string, required): ID of the checklist item to delete
- `listId` (string, required): ID of the task list
- `taskId` (string, required): ID of the task

### `archive-completed-tasks` (~118 tokens)

Move completed tasks older than a specified number of days from one list to another (archive) list. Useful for cleaning up active lists while preserving historical tasks.

Input parameters:

- `dryRun` (boolean): If true, only preview what would be archived without making changes
- `olderThanDays` (number): Archive tasks completed more than this many days ago (default: 90)
- `sourceListId` (string, required): ID of the source list to archive tasks from
- `targetListId` (string, required): ID of the target archive list

### `test-graph-api-exploration` (~46 tokens)

Test various Graph API queries to discover hidden properties or endpoints for folder/group organization in Microsoft To Do.

Input parameters:

- `testType` (string, required): Type of test to run

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/jordanburke-microsoft-todo-mcp-server/microsoft-todo-mcp-server#diagnostics

## Score history

- 2026-11-05: 76
- 2026-11-04: 75
- 2026-11-03: 75
- 2026-11-02: 74
- 2026-11-01: 74
- 2026-10-31: 58
- 2026-10-30: 72
- 2026-10-29: 72
- 2026-10-28: 71

## Common questions

### What is the io.github.jordanburke/microsoft-todo-mcp-server server?

io.github.jordanburke/microsoft-todo-mcp-server is listed in the public MCP registry as io.github.jordanburke/microsoft-todo-mcp-server. Microsoft To Do via Graph, task lists, tasks, checklist items and reminders. This page covers its npm package (microsoft-todo-mcp-server).

### Is the io.github.jordanburke/microsoft-todo-mcp-server server safe to use?

io.github.jordanburke/microsoft-todo-mcp-server scores 76 out of 100 on VerifyMCP. We recorded 2 known advisories against it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.jordanburke/microsoft-todo-mcp-server server expose?

io.github.jordanburke/microsoft-todo-mcp-server exposes 16 tools: auth-status, get-task-lists, get-task-lists-organized, create-task-list, update-task-list, and 11 more. Their descriptions and schemas cost roughly 1,596 tokens of context every time the server is loaded.

### Is the io.github.jordanburke/microsoft-todo-mcp-server server still maintained?

io.github.jordanburke/microsoft-todo-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.jordanburke/microsoft-todo-mcp-server server under?

io.github.jordanburke/microsoft-todo-mcp-server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/microsoft-todo-mcp-server
- Socket report: https://socket.dev/npm/package/microsoft-todo-mcp-server
- Repository: https://github.com/jordanburke/microsoft-todo-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/jordanburke-microsoft-todo-mcp-server/microsoft-todo-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/jordanburke-microsoft-todo-mcp-server/microsoft-todo-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/jordanburke-microsoft-todo-mcp-server/microsoft-todo-mcp-server
