To Do & Planner MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TODO_MCP_DATA_DIR | No | Override the settings + cache folder (default %USERPROFILE%\.todo-planner-mcp; avoid AppData, which Claude Desktop redirects) | %USERPROFILE%\.todo-planner-mcp |
| TODO_MCP_TIMEZONE | No | auto (default: Microsoft 365 → Windows → UTC) or an IANA zone such as Australia/Sydney | auto |
| TODO_MCP_CLIENT_ID | No | Force a client ID (disables the login menu choice) | |
| TODO_MCP_LOG_LEVEL | No | INFO (default), DEBUG, WARNING | INFO |
| TODO_MCP_TENANT_ID | No | Force a tenant ID, domain or organizations | |
| TODO_MCP_AUTO_LOGIN | No | on (default) / off: open browser sign-in automatically when the session expires | on |
| TODO_MCP_CACHE_PATH | No | Override token cache location | |
| TODO_MCP_EXTRA_SCOPES | No | Space-separated extra delegated scopes, e.g. GroupMember.Read.All User.ReadBasic.All. Run login again after changing |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| planner_list_my_groupsA | List Microsoft 365 groups the user belongs to (needed as the container when creating a plan). Requires the GroupMember.Read.All permission; otherwise use group IDs from planner_list_plans. |
| planner_list_plansA | List Planner plans (projects) shared with the signed-in user, with their group IDs. |
| planner_create_planB | Create a Planner plan (project) in a Microsoft 365 group, optionally with initial buckets (e.g. ['To do', 'In progress', 'Done']). |
| planner_rename_planB | Rename a Planner plan. plan_ref is the plan ID or exact title. |
| planner_delete_planA | Permanently delete a Planner plan with ALL its buckets and tasks. Confirm with the user first. |
| planner_list_bucketsB | List buckets (columns) in a Planner plan. |
| planner_create_bucketC | Create a bucket in a Planner plan. |
| planner_rename_bucketC | Rename a bucket in a Planner plan. |
| planner_delete_bucketA | Permanently delete a bucket and ALL tasks in it. Confirm with the user first. |
| planner_list_tasksC | List tasks in a Planner plan, optionally filtered by bucket, completion and assignment. |
| planner_my_tasksB | List Planner tasks assigned to the signed-in user across all plans. |
| planner_get_taskB | Get a Planner task including description and checklist. |
| planner_create_taskC | Create a Planner task. assignees: 'me', user object IDs, or emails. labels: label names defined on the plan. Dates: YYYY-MM-DD (local time). |
| planner_update_taskA | Update a Planner task. Only supplied fields change. Empty string for due/start clears it. bucket_ref moves it to another bucket in the same plan. labels replaces the task's labels. check_items ticks existing checklist items (by ID or title). progress='completed' completes it. |
| planner_delete_taskA | Permanently delete a Planner task. Confirm with the user first. |
| todo_list_listsA | List all Microsoft To Do task lists (projects) for the signed-in user. |
| todo_create_listC | Create a new Microsoft To Do task list (project). |
| todo_rename_listB | Rename a To Do list. list_ref is the list ID or its exact name. |
| todo_delete_listA | Permanently delete a To Do list AND all tasks in it. Confirm with the user first. The default 'Tasks' list cannot be deleted. |
| todo_list_tasksB | List tasks in a To Do list. list_ref is the list ID or exact name (e.g. 'Tasks'). |
| todo_get_taskB | Get one To Do task with notes and checklist items. |
| todo_create_taskC | Create a task in a To Do list. Dates: YYYY-MM-DD or YYYY-MM-DDTHH:MM (local time). checklist adds sub-steps. |
| todo_update_taskA | Update a To Do task. Only supplied fields change. Pass an empty string for a date to clear it. Set status='completed' to complete a task, 'notStarted' to reopen it. |
| todo_delete_taskB | Permanently delete a To Do task. Confirm with the user first. |
| todo_move_taskA | Move a task to another To Do list (copies title, notes, dates, importance, status, categories and checklist, then deletes the original). The task gets a new ID. |
| todo_add_checklist_itemC | Add a checklist (sub-step) item to a To Do task. |
| todo_update_checklist_itemB | Rename and/or tick/untick a checklist item on a To Do task. |
| todo_delete_checklist_itemB | Delete a checklist item from a To Do task. Confirm with the user first. |
| auth_statusA | Show which sign-in app and Microsoft 365 account are in use and whether a valid token is available. |
| auto_loginA | Turn automatic sign-in on or off. When on (default), an expired Microsoft 365 session opens the browser sign-in automatically and the pending request continues afterwards. |
| loginA | Sign in to Microsoft 365. Opens the system browser on this computer for sign-in/MFA. On first use, or when the user wants to switch, ASK THE USER which app to sign in with:
timezone: 'auto' (default - the user's Microsoft 365 time zone, else this computer's) or an
IANA zone such as Australia/Sydney. Omit app to reuse the saved choice.
Once a sign-in app is configured it can't be changed from chat (only re-signed into); the user
changes it with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
The planner_* and todo_* prefixes cleanly separate the two product domains, and within each domain the resource+action combinations are distinct (list_buckets vs list_tasks vs my_tasks). The only mild risk is an agent choosing between planner_create_task and todo_create_task, but the descriptions make the target system explicit.
Almost every tool follows a predictable prefix + verb_noun pattern (planner_create_plan, todo_update_checklist_item, etc.). Minor deviations: planner_list_my_groups breaks the pattern (elsewhere it's list_plans/list_buckets), and the auth tools (login, auto_login, auth_status) use verb-only and noun-first forms instead of the verb_noun convention.
31 tools is heavy for a single MCP server, but it covers two full products (Planner and To Do) each with plans/lists, buckets, tasks, and checklists, so nearly every tool has a genuine role. Still, it sits at the upper edge where an agent faces a large surface and some consolidation (e.g. checklist operations) could trim it.
Both domains have full lifecycle coverage: create/rename/delete for plans, buckets and lists, plus task create/get/list/update/delete/move and checklist add/update/delete for To Do. Gaps are minor: no planner_get_plan or planner_get_bucket, and Planner checklists can only be ticked via planner_update_task with no dedicated add/delete checklist item tools as To Do has.