
Mcp Microsoft Todo
io.github.MAG-CiePublished by GitHub account MAG-Ciev1.2.2Updated Oct 24, 2026
MCP server for Microsoft To Do via Microsoft Graph. MSAL device code flow, no client secret needed.
The publisher's own server: Microsoft Learn MCP
Overview
Lets an assistant read and manage Microsoft To Do lists and tasks through Microsoft Graph, including creating, updating, completing, moving, and deleting tasks.
- What you can do
- Exposes 28 tools over Microsoft Graph for Microsoft To Do: list task lists, list and search tasks, get task details, summarize today's and overdue tasks, and export tasks as iCalendar. It can create, update, complete, move, and delete tasks, manage checklist sub-items, linked resources, and custom JSON extensions, and run batch operations on up to 100 tasks at once. Read tools return a compact text format by default, with full Graph JSON available via a verbose option.
- When to use it
- Useful when you want an assistant to work with your Microsoft To Do tasks in natural language: reviewing what is due today or overdue, searching across lists, adding or completing tasks, organizing categories, or exporting tasks to a calendar. Works with personal, Office 365, and Microsoft 365 accounts.
- Requirements
- Runs locally as an npm package via npx, so Node.js 20+ is required. A Microsoft account is needed; sign-in uses the MSAL device code flow, with no Azure App Registration required for the official npm version. The optional MS_TENANT environment variable selects the tenant (common, consumers, organizations, or a tenant ID). The MS_CLIENT_ID environment variable is required only for development forks. Tokens are cached locally.
Installation
In SourceWeft
- Open Mcp Microsoft Todo in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
mcp-microsoft-todo
🇫🇷 Version française : README.fr.md
MCP server to drive Microsoft To Do from Claude Code, Claude Desktop, or any MCP-compatible client.
Works with any Microsoft account: personal (outlook.com, hotmail.com, live.com), Office 365 personal or business, Microsoft 365. Zero Azure setup required on the user side — just sign in via device code flow.
🏗 Built and maintained by MAG&Cie
This MCP server is open-source and free to use. It's also a showcase of our Création de MCP offering at MAG&Cie — we build custom MCP connectors for businesses that want to plug AI into their internal tools (CRM, ERP, custom APIs, internal databases).
If you'd like the same kind of connector for your tools — drop us a line at www.mag-cie.com/creation-mcp.
🚀 End-user installation
Prerequisites (all clients)
- Node.js 20+ (nodejs.org)
- A Microsoft account (free or paid)
No Azure account required, no App Registration to create, nothing to compile.
🟦 Claude Code (CLI)
Install (one command):
If you have a personal Microsoft account (outlook.com, hotmail.com, live.com, msn.com, Office 365 personal), add MS_TENANT=consumers:
Verify it's wired up:
First use — recommended: pre-auth in a terminal first to avoid the "stuck on first MCP call" issue (where the device code is printed to MCP stderr but Claude Code doesn't surface it):
You'll see:
Visit the URL, enter the code, sign in. The token is cached in ~/.mcp-microsoft-todo/token-cache.json and refreshed automatically — you'll never have to do this again. Now go to Claude Code and any prompt that calls a tool will work instantly.
Skip the pre-auth step if you're feeling lucky — the MCP will trigger the device code flow on first call too. The code goes to the Claude Code MCP log file (look in
%USERPROFILE%\.claude\logs\on Windows or~/.claude/logs/elsewhere).
Update to the latest version:
The -y flag of npx auto-accepts the download. Without @latest, npx may serve a stale cached version.
Uninstall:
🟪 Claude Desktop (app)
1. Locate the config file:
On Windows, you can open it directly with:
If the file doesn't exist, create it with an empty JSON object {} then edit.
2. Add the config:
For a personal Microsoft account, add env:
To localize the compact-format strings (optional, see Localization):
3. Restart Claude Desktop COMPLETELY (not just close the window):
- Windows: right-click systray icon → Quit, then relaunch
- macOS: ⌘+Q then relaunch
4. Verify it's wired up:
In Claude Desktop, look at the 🔌 plug or 🔧 tools icon at the bottom right of the input area — you should see microsoft-todo listed.
5. First auth — recommended pre-auth in a terminal:
You'll see the device code immediately in the terminal. Visit the URL, enter the code, sign in. Token cached. Now Claude Desktop will reuse this cache — no need to fish in the logs.
Without --auth, the device code goes to the Claude Desktop MCP log file:
- Windows:
%APPDATA%\Claude\logs\mcp-server-microsoft-todo.log - macOS:
~/Library/Logs/Claude/mcp-server-microsoft-todo.log
Update: edit the version in args (@mag-cie/mcp-microsoft-todo@latest), restart Claude Desktop. Or let npx do its thing (npx cache ~24h).
🟧 Cursor / Continue / other stdio MCP clients
Any MCP client that supports the stdio transport works the same way. Generic format:
Adapt to the client's config format (often JSON or TOML similar to Claude Desktop).
💡 Example prompts
Once installed, just ask Claude in natural language. Sample prompts that exercise the main tools:
🆘 Auth troubleshooting
🛠 Available tools (28)
Safety column legend: read = read-only, write = mutates state (non-idempotent create), update = idempotent mutation (safe to retry), delete = destructive (data loss). See Safety annotations below for details.
Lists & tasks
Batch operations (saves API calls)
Sub-tasks (checklist items)
Linked resources (external URLs attached to a task)
Open extensions (custom JSON metadata)
Cross-list helpers
Export
Output format
By default, tools return a compact text format (one line per item) to save LLM tokens. Legend:
[!]high importance,[?]low (nothing if normal)[v]completed,[>]in progress,[w]waiting,[d]deferred (nothing if not started)due:,rem:,rec:,cat:,body:fields shown only when populated
To get the full Graph JSON, pass verbose: true to any read tool.
🔐 Safety annotations
Every tool exposed by this server carries the MCP tool annotations defined by the Model Context Protocol spec (2025-06-18):
These hints are advisory — the server itself enforces nothing — but MCP clients (Claude Code, Claude Desktop, Cursor, …) can use them to:
- Auto-approve
readOnlyHint: truecalls without prompting (faster UX for read-heavy workflows) - Show a confirmation dialog before
destructiveHint: truecalls (e.g.delete_task,batch_delete_tasks,move_task) - Retry on transient failures only when
idempotentHint: true - Display the friendly
titleinstead of the snake_casename
The full mapping is in src/index.ts (ANNOTATIONS constant). Summary by safety class (see also the per-tool Safety column above):
- read (15 tools): all
list_*,get_*,search_*,summarize_*,export_*—readOnlyHint: true - write (4 tools):
create_*,batch_create_tasks—destructiveHint: false, idempotentHint: false - update (5 tools):
update_*,complete_*,set_extension,bulk_update_categories,batch_complete_tasks—destructiveHint: false, idempotentHint: true - delete (5 tools):
delete_*,batch_delete_tasks,move_task—destructiveHint: true, idempotentHint: true
move_task is classified as delete because it deletes the source task (a new task is created in the target list with a different id).
🌍 Localization
The MCP works in any language out of the box — Claude reads the data the server returns and replies to the user in whatever language they prompted in. Try "List my tasks", "Liste mes tâches", "Zeig meine Aufgaben", "我的任务" — all work.
Optionally, you can localize the compact-format short labels returned by the server itself (No tasks., Due today:, Overdue:, Task X deleted., etc.) — this is a marginal improvement (saves a few tokens, slightly cleaner LLM context). Set MCP_LOCALE in your env:
Resolution order: MCP_LOCALE → LC_ALL → LANG → fallback en. Only the first 2 chars are inspected (so fr_FR.UTF-8 works). Unsupported locale → falls back to en.
🔒 Security & privacy
- The Microsoft token is stored only on your machine in
~/.mcp-microsoft-todo/token-cache.json - No data transits through MAG&Cie servers
- Revoke access at any time at https://account.live.com/consent/Manage
- To purge the local token:
rm -rf ~/.mcp-microsoft-todo
Graph permissions requested: Tasks.ReadWrite, Tasks.ReadWrite.Shared, offline_access.
🧑💻 Developer setup (fork / contribution)
If you fork or want to develop locally with your own Azure AD App Registration:
1. Azure AD App Registration (maintainer/fork side only)
- https://portal.azure.com → Microsoft Entra ID → App registrations → New registration
- Name:
mcp-microsoft-todo(free choice) - Supported account types: Accounts in any organizational directory and personal Microsoft accounts
- Redirect URI: leave empty
- Register
- Note the Application (client) ID
- Authentication tab → Allow public client flows: Yes
- Authentication tab → Add a platform → Mobile and desktop applications → check
https://login.microsoftonline.com/common/oauth2/nativeclient - API permissions tab → Add a permission → Microsoft Graph → Delegated → add
Tasks.ReadWrite,Tasks.ReadWrite.Shared, andoffline_access. Grant admin consent if on a corporate tenant.
2. Build and local auth
The token cache will be written to ~/.mcp-microsoft-todo/token-cache.json.
3. Wire up Claude Code (local build)
⚠️ Env vars must be visible at spawn time. On Windows with fnm, verify the PowerShell session that launches
claudehasMS_CLIENT_IDexported.
4. Run tests
⬆️ Upgrading from earlier versions
🗺 Roadmap
- v0.1 — stdio + 6 CRUD tools
- v0.2 — distributable npm package, baked-in client ID
- v0.3 — recurrence + reminders + checklists + linkedResources + search + move + summarize_today + retry/error robustness + vitest tests + compact format (verbose opt-in)
- v0.4 — auto pagination +
$batchoperations +Tasks.ReadWrite.Sharedscope (read shared lists) - v0.5 — open extensions + cross-list helpers (overdue, by category, bulk update) + iCalendar export
- v1.0 — stable milestone: GitHub Actions CI + extended tests + snapshot tests + README polish
Possible future versions:
- v1.1 — file attachments (Graph beta)
- v1.2 — auto-pagination follow-on for
summarize_today/search_tasks/list_overdue_tasks - v2.0 — remote HTTP/SSE transport for Claude.ai custom connectors (multi-user OAuth)
📄 License
MIT — © MAG&Cie
Source: README.md at commit cf612cd
Tools
0Version history
1- v1.2.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Microsoft integrations

Microsoft Learn MCP
com.microsoftOfficial publisher
A free remote MCP server that lets an AI assistant search official Microsoft Learn documentation, find code samples, and fetch documentation pages as markdown.

Playwright Cloud Browsers
com.microsoftOfficial publisher
Remote MCP server giving AI agents managed Playwright cloud browsers to create sessions, navigate and inspect pages, and interact with elements.

Microsoft Sentinel Data Exploration
com.microsoftOfficial publisher
Remote Microsoft Sentinel MCP server that lets an assistant find relevant tables and retrieve security data from the Sentinel data lake using natural language.
Visio
com.microsoft
Lets an assistant create, update and read Microsoft Visio diagrams by driving the Visio desktop application on the user's Windows machine.

Microsoft Clarity MCP
Published by GitHub account surendranb
Local MCP server that pulls Microsoft Clarity behavioral UX data — rage clicks, dead clicks, quick backs and JS errors — into an AI assistant.