microsoft-todo-mcp-server
by vexxhost
README.md
# microsoft-todo-mcp-server
MCP server for Microsoft To Do — manage task lists, tasks, and checklist items via the Microsoft Graph API.
## Features
- **13 MCP tools** for full CRUD on task lists, tasks, and checklist items
- **Zero-config authentication** — uses a well-known Microsoft client ID, no app registration needed
- **Interactive browser login** — opens your browser on first run, then caches credentials
- **Launch with uvx** — no installation required
## Quick Start
### Claude Desktop / Copilot / any MCP client
Add to your MCP client configuration:
```json
{
"mcpServers": {
"microsoft-todo": {
"command": "uvx",
"args": ["microsoft-todo-mcp-server"]
}
}
}
```
On first launch, your browser will open for Microsoft sign-in. After that, credentials are cached and sign-in is automatic.
### Optional: Specify a tenant
If your organization requires a specific Azure AD tenant (e.g., due to conditional access policies), set the `AZURE_TENANT_ID` environment variable:
```json
{
"mcpServers": {
"microsoft-todo": {
"command": "uvx",
"args": ["microsoft-todo-mcp-server"],
"env": {
"AZURE_TENANT_ID": "your-tenant-id"
}
}
}
}
```
By default, the server uses the `common` tenant which works with any Microsoft account (personal or work/school).
## Available Tools
### Task Lists
| Tool | Description |
|------|-------------|
| `list_task_lists` | List all task lists |
| `create_task_list` | Create a new task list |
| `update_task_list` | Rename a task list |
| `delete_task_list` | Delete a task list |
### Tasks
| Tool | Description |
|------|-------------|
| `list_tasks` | List tasks in a list (optional status filter) |
| `create_task` | Create a task with title, body, due date, importance |
| `update_task` | Update any task fields |
| `complete_task` | Mark a task as completed |
| `delete_task` | Delete a task |
### Checklist Items (Subtasks)
| Tool | Description |
|------|-------------|
| `list_checklist_items` | List subtasks of a task |
| `create_checklist_item` | Add a subtask |
| `update_checklist_item` | Update or check/uncheck a subtask |
| `delete_checklist_item` | Delete a subtask |
## Authentication
This server uses Microsoft's well-known "Graph Command Line Tools" client ID for authentication. No Azure AD app registration is required.
On first run:
1. Your browser opens to Microsoft's login page
2. Sign in with your Microsoft account (personal or work/school)
3. Consent to the requested permissions (Tasks.ReadWrite, User.Read)
4. Credentials are cached locally for future use
Token cache is stored in your platform's config directory (e.g., `~/.config/microsoft-todo-mcp-server/` on Linux).
## Development
```bash
# Clone the repository
git clone https://github.com/vexxhost/microsoft-todo-mcp-server.git
cd microsoft-todo-mcp-server
# Install dependencies
uv sync
# Run the server locally
uv run microsoft-todo-mcp-server
# Lint
uv run ruff check src/
```
## License
Apache-2.0
TDQS
A3.7/5.0
Scored across 13 tools
Disambiguation5/5
Each tool targets a specific entity (task list, task, checklist item) with distinct actions. There is no overlap; even 'complete_task' is a clear shorthand for updating the completion status.
Naming Consistency5/5
All tools use a consistent 'verb_noun' pattern with underscores (e.g., create_task, list_checklist_items). No mixing of casing or irregular verbs.
Tool Count5/5
With 13 tools, the surface is well-scoped for a task management server—covering CRUD for three entities without being excessive or sparse.
Completeness5/5
The tool set covers creation, retrieval, updating, and deletion for all three entities (task lists, tasks, checklist items), including specialized actions like completing a task and toggling checklist items.
Maintenance
ActivityActive
ResponsivenessUnresponsive