61
/ 100
4 days ago
glama

Microsoft To Do MCP

A hardened MCP server that lets you manage Microsoft To Do tasks via natural language in Claude Desktop, with OS-keychain token storage and no client secret.

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
⚠️
Tool annotations don’t match behaviour
4 read-only tools perform write/delete/exec — auth-status (line 62: appendFileSync(AUDIT_LOG_PATH, JSON.stringify(entry) + '\n', 'utf8')); get-task-lists (line 62: appendFileSync(AUDIT_LOG_PATH, JSON.stringify(entry) + '\n', 'utf8')); get-tasks (line 62: appendFileSync(AUDIT_LOG_PATH, JSON.stringify(entry) + '\n', 'utf8'))
⚠️
Tool descriptions don’t match what handlers do
4 tools describe read intent but their handlers mutate — auth-status (line 62: appendFileSync(AUDIT_LOG_PATH, JSON.stringify(entry) + '\n', 'utf8')); get-task-lists (line 62: appendFileSync(AUDIT_LOG_PATH, JSON.stringify(entry) + '\n', 'utf8')); get-tasks (line 62: appendFileSync(AUDIT_LOG_PATH, JSON.stringify(entry) + '\n', 'utf8'))
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
🔐
You'll be asked for 2 credentials: MSTODO_ACCESS_TOKEN, MSTODO_REFRESH_TOKEN
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
configCLIENT_IDyour_client_id
🔐 secretMSTODO_ACCESS_TOKEN/ MSTODO_REFRESH_TOKEN — — Inject tokens directly, bypassing storage
configMSTODO_AUDIT_LOGLocal audit trail Every tool call appended to audit.log — tool name, timestamp, ID fields only, never task content. Disable via audit_log / =false.
configMSTODO_AUDIT_LOG_FILE
configMSTODO_AUTH_IDLE_TIMEOUT_MS600000 (10 min) How long standalone npm run auth waits before auto-exiting
configMSTODO_AUTH_PORT
configMSTODO_DEBUGQuieter logging Full response bodies and account email are off by default. Enable via debug_logging / =true only when troubleshooting.
configMSTODO_INCLUDE_SHAREDNarrower scopes by default Only Tasks.Read + Tasks.ReadWrite — not Tasks..Shared, which would let the LLM touch tasks others shared with you. Opt in via the include_shared setting / =true.
configMSTODO_OAUTH_PORT(Embedded port configurable via the oauth_port setting in Claude Desktop, or in the manual flow.)
🔐 secretMSTODO_REFRESH_TOKENMSTODO_ACCESS_TOKEN / — — Inject tokens directly, bypassing storage
configMSTODO_TOKEN_FILEper-user app-data dir Override the token storage path
configTENANT_IDyour_tenant_id_or_organizations_or_consumers_or_common
configXDG_CONFIG_HOME
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/aashish079-g6-mstodomcp-19v1j9)](https://m8ven.ai/mcp/aashish079-g6-mstodomcp-19v1j9)
commit: 6e216a6ce162d4df3645748cae4d004b30148e61
code hash: c76b4a8d178d6491d80bf9a7b1481a0bba3942584007e0f6ee6b86041746cfbd
verified: 7/27/2026, 10:17:59 AM
view raw JSON →