MCP server for Microsoft To Do — manage task lists, tasks, and checklist items via Graph API
Project description
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:
{
"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:
{
"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:
- Your browser opens to Microsoft's login page
- Sign in with your Microsoft account (personal or work/school)
- Consent to the requested permissions (Tasks.ReadWrite, User.Read)
- 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
# 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file microsoft_todo_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: microsoft_todo_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 119.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc0307083edcec3d83ad1bfd5f97b68a8f9e4f6600ec2ee775271a479b522695
|
|
| MD5 |
f26872074bc4888a474deb60e1c7a721
|
|
| BLAKE2b-256 |
2ac3bdacac1acd3a67a6e457873588e78bd194ccccba458f4fbff8479a2c7a6a
|
Provenance
The following attestation bundles were made for microsoft_todo_mcp_server-0.1.0.tar.gz:
Publisher:
release.yml on vexxhost/microsoft-todo-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
microsoft_todo_mcp_server-0.1.0.tar.gz -
Subject digest:
cc0307083edcec3d83ad1bfd5f97b68a8f9e4f6600ec2ee775271a479b522695 - Sigstore transparency entry: 1086028038
- Sigstore integration time:
-
Permalink:
vexxhost/microsoft-todo-mcp-server@d5e1caf22d33b66711b9f571c7d6d4ed9b8bb3f5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vexxhost
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d5e1caf22d33b66711b9f571c7d6d4ed9b8bb3f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file microsoft_todo_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: microsoft_todo_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6050638fea4f64ba1e22336f386471341524e324856dfe8c4cdc6cb21367a97c
|
|
| MD5 |
2f19b20a4fba754d7a202a72e42b3702
|
|
| BLAKE2b-256 |
f35e07c1f20a63bbc87369b22ecfa02b49444a7621d5ffdaa6279a346a3216ea
|
Provenance
The following attestation bundles were made for microsoft_todo_mcp_server-0.1.0-py3-none-any.whl:
Publisher:
release.yml on vexxhost/microsoft-todo-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
microsoft_todo_mcp_server-0.1.0-py3-none-any.whl -
Subject digest:
6050638fea4f64ba1e22336f386471341524e324856dfe8c4cdc6cb21367a97c - Sigstore transparency entry: 1086028096
- Sigstore integration time:
-
Permalink:
vexxhost/microsoft-todo-mcp-server@d5e1caf22d33b66711b9f571c7d6d4ed9b8bb3f5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/vexxhost
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d5e1caf22d33b66711b9f571c7d6d4ed9b8bb3f5 -
Trigger Event:
push
-
Statement type: