Microsoft Planner MCP server
Microsoft Planner MCP server — plans, buckets, tasks via Microsoft Graph, ETags handled
4 stars89 downloads/wk
Reviews
Write oneNobody has reviewed Microsoft Planner yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Microsoft Planner tools (16, 5 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
graph_find_endpointDiscover which Microsoft Graph endpoint (and its query params) fits a task — search a curated catalog
graph_getRead-only GET for any Microsoft Graph v1.0 path under /planner, /groups or /users (delegated sessions
planner_create_bucketwrite actionCreate a new bucket (column) in a plan.
planner_create_taskwrite actionCreate a Planner task in a plan. Optionally set the bucket, due date, priority, assignees, labels, and a description.
planner_delete_taskwrite actionPermanently delete a Planner task. This cannot be undone.
planner_find_userFind a user by display name or UPN/email to get the user ID needed for task assignments and planner_list_user_tasks.
planner_get_planGet a Planner plan with its buckets and labels. Bucket IDs are needed to create or move tasks; label names are accepted by the task tools' label fields.
planner_get_taskGet a Planner task including its description and checklist. Also returns the etags needed by update tools (updates fetch them automatically).
planner_list_my_plansList the Planner plans the session's signed-in user has access to — no group ID or guessing needed.
planner_list_plansList all Planner plans owned by a Microsoft 365 group. Get the group ID from planner_search_groups.
planner_list_tasksList Planner tasks in a plan (or a single bucket). Optionally filter by assignee user ID or open/completed state.
planner_list_user_tasksList all Planner tasks assigned to a user across every plan they participate in. Get the user ID from planner_find_user.
planner_search_groupsSearch Microsoft 365 groups (Teams) by display name. Use this first to find the group ID required by planner_list_plans.
planner_update_taskwrite actionUpdate a Planner task: title, bucket (move), due date, priority, progress (not started / in progress / completed), assignees, or labels. Fetches the current etag automatically.
planner_update_task_detailswrite actionUpdate a task's description, add checklist items, or check/uncheck existing checklist items (item IDs come from planner_get_task).
planner_whoamiShow who this session acts as: app-only (client credentials, writes attributed to the app) or delegated
Public scan report
scanner v0.1.10 · 2026-10-29 · same rubric, same numbers if you re-run it
- Code scan15 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 59 days ago12/15
- Maintainer identityregistry namespace matches repository owner7/10
How Microsoft Planner compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 77/100
- higher than 50% of 48,255 servers
- Tools
- 16
- the typical server has 7
- Tools that change things
- 31%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 4
- more than 82% of 28,688 servers
- Downloads a week
- 89
- more than 60% of 12,191 servers with a package
What its tools let an agent do: 11 read · 5 change
Install Microsoft Planner in Claude Code, Cursor or VS Code
Runs npx -y mcp-planner on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add mcp-planner -- npx -y mcp-planner
What the publisher says
From the Microsoft Planner repository's README, as published. We do not edit it. Read it on GitHub
mcp-planner
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.
Tools
† Advanced toolset (opt-in, off by default) — an escape hatch for Graph surface the curated tools don't wrap. Enable with PLANNERADVANCEDTOOLSET=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.
Setup
1. Entra ID app registration
- Entra admin center → App registrations → New registration
- API permissions → Application permissions → add Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All → Grant admin consent
- Certificates & secrets → New client secret — note the value
2. Run
MS_TENANT_ID=<tenant> MS_CLIENT_ID=<client-id> MS_CLIENT_SECRET=<secret> npx -y mcp-plannerClaude Code:
claude mcp add planner --env MS_TENANT_ID=<tenant> --env MS_CLIENT_ID=<client-id> --env MS_CLIENT_SECRET=<secret> -- npx -y mcp-plannerHTTP mode
npx -y mcp-planner --transport http --port 3000Sessions 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.
Delegated mode — act as the signed-in user
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.
- A separate, public app registration: Authentication → Allow public client flows → Yes; API permissions → Delegated Tasks.ReadWrite, Group.Read.All, User.ReadBasic.All (+ admin consent where the tenant requires it).
- Each user signs in once via the device-code helper and keeps the printed refresh token:
node scripts/device-login.mjs --tenant <tenant-id> --client <public-client-id>- Use MSREFRESHTOKEN instead of MSCLIENTSECRET (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.
Docker
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Microsoft Planner: common questions
- Is Microsoft Planner MCP server safe?
- Mostly: it is graded B (77/100). Read the Microsoft Planner safety report
- How do I install Microsoft Planner?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Microsoft Planner need an API key?
- Yes. The registry entry asks for
MS_CLIENT_SECRET. - Is Microsoft Planner maintained?
- The last commit was 65 days ago (2026-08-31). The latest release is v0.4.0.
- What can I use instead of Microsoft Planner?
- Servers from other publishers that do the same job: Microsoft 365 MCP Server.
- How does Microsoft Planner compare with other MCP servers?
- safety score 77/100 (higher than 50% of 48,255 servers); tools 16 (the typical server has 7); tools that change things 31% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Microsoft Planner
Same job from other publishers: the closest match first, then the best rated.
- Microsoft 365 MCP ServerInteract with Microsoft 365 and Office services through the Microsoft Graph API.not reviewedEstablishedB