Microsoft Planner MCP server β plans, buckets, tasks via Microsoft Graph, ETags handled
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
MCP server for Microsoft Planner via the Microsoft Graph API. Find groups and plans, list buckets and tasks, and create, update, assign, complete, or delete tasks β including descriptions and checklists β with Planner's ETag concurrency handled automatically.
Sibling project to mcp-itglue and mcp-connectwise-psa β same architecture.
| Tool | Description |
|---|---|
planner_search_groups | Find Microsoft 365 groups (Teams) by name β group ID |
planner_find_user | Find a user by name/UPN β user ID for assignments |
planner_list_plans | List plans owned by a group |
planner_get_plan | Plan + its buckets |
planner_create_bucket | Create a bucket in a plan |
planner_list_tasks | Tasks in a plan or bucket (filter by assignee, open/completed) |
planner_list_user_tasks | All tasks assigned to a user, across plans |
planner_get_task | Task with description and checklist |
planner_create_task | Create task (bucket, due date, priority, assignees, description) |
planner_update_task | Update title/bucket/due/priority/progress/assignees |
planner_update_task_details | Update description; add or (un)check checklist items |
planner_delete_task | Permanently delete a task |
graph_find_endpoint β | Search a curated catalog of the /planner, /groups, /users Graph surface |
graph_get β | Read-only GET for any Graph v1.0 path under /planner, /groups, /users |
β Advanced toolset (opt-in, off by default) β an escape hatch for Graph surface the curated tools don't wrap. Enable with PLANNER_ADVANCED_TOOLSET=true or --advanced. graph_get is verb-locked to GET, rejects /beta, and only reaches the three path prefixes above, so a shared app registration's other permissions (e.g. mail) stay out of reach.
Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All β Grant admin consentClaude Code:
Sessions authenticate per-request (BYOK) with x-ms-tenant-id + x-ms-client-id plus either x-ms-client-secret (app-only) or x-ms-refresh-token (delegated β see below), or fall back to the MS_* environment credentials when set. When both a secret and a refresh token arrive, the refresh token wins (header-overlay proxies can add but not remove headers). Health probe at GET /health.
App-only sessions act as the app registration; delegated sessions act as a user: their Planner permissions apply and every write is attributed to them.
Tasks.ReadWrite, Group.Read.All, User.ReadBasic.All (+ admin consent where the tenant requires it).MS_REFRESH_TOKEN instead of MS_CLIENT_SECRET (stdio), or the x-ms-refresh-token header (HTTP). Behind the MCP gateway, register it as a personal credential (field x-ms-refresh-token).The refresh token is a secret β it acts as you β and stays valid ~90 days past its last use; re-run the helper when it expires.
No MCP-level role gating: the Entra app registration's granted Graph permissions are the access control. Point sessions at different app registrations (BYOK headers) to scope what they can do.
If-Match ETag on every update/delete β the tools fetch the current resource and pass its ETag automatically. On a 412 (concurrent change), just retry.MIT
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/microsoft-planner)<a href="https://allmcps.com/mcp/microsoft-planner"><img src="https://allmcps.com/api/badge/microsoft-planner?style=directory" alt="Microsoft Planner on AllMCPs" /></a>