Microsoft Planner MCP server — plans, buckets, tasks via Microsoft Graph, ETags handled
MCPpedia last refreshed this data
io.github.selic/mcp-planner is an MCP server that microsoft Planner MCP server — plans, buckets, tasks via Microsoft Graph, ETags handled. Its tool list has not been published yet over stdio and http, requires no API key, and scores 85/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-selic-mcp-planner": {
"args": [
"-y",
"mcp-planner"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
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.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'mcp-planner' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked mcp-planner against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in productivity
MCP server for monday.com integration.
Local-first AI memory with knowledge graphs and hybrid search. 17+ AI tools via MCP. Free.
Give AI agents access to your Obsidian vault via local files or Self-hosted LiveSync.
🧠 An adaptation of the MCP Sequential Thinking Server to guide tool usage. This server provides recommendations for which MCP tools would be most effective at each stage.
MCP Security Weekly
Get CVE alerts and security updates for io.github.selic/mcp-planner and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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 consentMS_TENANT_ID=<tenant> MS_CLIENT_ID=<client-id> MS_CLIENT_SECRET=<secret> npx -y mcp-planner
Claude Code:
claude mcp add planner --env MS_TENANT_ID=<tenant> --env MS_CLIENT_ID=<client-id> --env MS_CLIENT_SECRET=<secret> -- npx -y mcp-planner
npx -y mcp-planner --transport http --port 3000
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).node scripts/device-login.mjs --tenant <tenant-id> --client <public-client-id>
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.
docker build -t mcp-plan
... [View full README on GitHub](https://github.com/selic/mcp-planner#readme)