Lets agents manage Microsoft To Do tasks through the Microsoft Graph API.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add microsoft-to-do --env MS_TODO_ACCESS_TOKEN='<MS_TODO_ACCESS_TOKEN>' --env MS_TODO_REFRESH_TOKEN='<MS_TODO_REFRESH_TOKEN>' -- npx --yes microsoft-todo-mcp-server~/.codex/config.toml
[mcp_servers.microsoft-to-do]
command = "npx"
args = ["--yes", "microsoft-todo-mcp-server"]
env = { MS_TODO_ACCESS_TOKEN = "<MS_TODO_ACCESS_TOKEN>", MS_TODO_REFRESH_TOKEN = "<MS_TODO_REFRESH_TOKEN>" }
# codex mcp add microsoft-to-do --env MS_TODO_ACCESS_TOKEN='<MS_TODO_ACCESS_TOKEN>' --env MS_TODO_REFRESH_TOKEN='<MS_TODO_REFRESH_TOKEN>' -- npx --yes microsoft-todo-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"microsoft-to-do": {
"command": "npx",
"args": [
"--yes",
"microsoft-todo-mcp-server"
],
"env": {
"MS_TODO_ACCESS_TOKEN": "<MS_TODO_ACCESS_TOKEN>",
"MS_TODO_REFRESH_TOKEN": "<MS_TODO_REFRESH_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"microsoft-to-do": {
"type": "stdio",
"command": "npx",
"args": [
"--yes",
"microsoft-todo-mcp-server"
],
"env": {
"MS_TODO_ACCESS_TOKEN": "<MS_TODO_ACCESS_TOKEN>",
"MS_TODO_REFRESH_TOKEN": "<MS_TODO_REFRESH_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"microsoft-to-do": {
"command": "npx",
"args": [
"--yes",
"microsoft-todo-mcp-server"
],
"env": {
"MS_TODO_ACCESS_TOKEN": "<MS_TODO_ACCESS_TOKEN>",
"MS_TODO_REFRESH_TOKEN": "<MS_TODO_REFRESH_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"microsoft-to-do": {
"command": "npx",
"args": [
"--yes",
"microsoft-todo-mcp-server"
],
"env": {
"MS_TODO_ACCESS_TOKEN": "<MS_TODO_ACCESS_TOKEN>",
"MS_TODO_REFRESH_TOKEN": "<MS_TODO_REFRESH_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"microsoft-to-do": {
"command": "npx",
"args": [
"--yes",
"microsoft-todo-mcp-server"
],
"env": {
"MS_TODO_ACCESS_TOKEN": "<MS_TODO_ACCESS_TOKEN>",
"MS_TODO_REFRESH_TOKEN": "<MS_TODO_REFRESH_TOKEN>"
}
}
}
}Environment variables
MS_TODO_ACCESS_TOKENMS_TODO_REFRESH_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.