Microsoft Planner MCP Server
by mspstackio.github.mspstack/mcp-plannerv0.4.0
MCP server for Microsoft Planner via Microsoft Graph — plans, buckets, and tasks (create, update, assign, complete) with automatic ETag concurrency handling
context tax
queued
security
queued
cold start
queued
freshness
Maintained39d ago
Install Microsoft Planner MCP server
Install in Claude Code
claude mcp add planner -e MS_TENANT_ID='<ms-tenant-id>' -e MS_CLIENT_ID='<ms-client-id>' -e MS_CLIENT_SECRET='<ms-client-secret>' -- npx -y mcp-plannerInstall in Cursor
{
"mcpServers": {
"planner": {
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_TENANT_ID": "<ms-tenant-id>",
"MS_CLIENT_ID": "<ms-client-id>",
"MS_CLIENT_SECRET": "<ms-client-secret>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"planner": {
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_TENANT_ID": "<ms-tenant-id>",
"MS_CLIENT_ID": "<ms-client-id>",
"MS_CLIENT_SECRET": "<ms-client-secret>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"planner": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_TENANT_ID": "<ms-tenant-id>",
"MS_CLIENT_ID": "<ms-client-id>",
"MS_CLIENT_SECRET": "<ms-client-secret>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"planner": {
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_TENANT_ID": "<ms-tenant-id>",
"MS_CLIENT_ID": "<ms-client-id>",
"MS_CLIENT_SECRET": "<ms-client-secret>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| MS_TENANT_ID | yes | — | Microsoft Entra ID tenant id (GUID or domain) |
| MS_CLIENT_ID | yes | — | Entra app registration client id |
| MS_CLIENT_SECRET | yes | yes | Entra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions) |
| PLANNER_ADVANCED_TOOLSET | — | — | true/1 registers the advanced toolset (graph_get, graph_find_endpoint) — a read-only escape hatch limited to /planner, /groups, /users |
Freshness
Maintained — last maintenance signal 39d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-08-31 · 39d ago · GitHub
Latest release
2026-08-31 · 39d ago · GitHub · v0.4.0
Package published
no data · npm/PyPI
Registry entry updated
2026-08-31 · 39d ago · official registry · v0.4.0
FAQ
›How do I install the Microsoft Planner MCP server in Claude Code?
Run: claude mcp add planner -e MS_TENANT_ID='<ms-tenant-id>' -e MS_CLIENT_ID='<ms-client-id>' -e MS_CLIENT_SECRET='<ms-client-secret>' -- npx -y mcp-planner. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Microsoft Planner require an API key?
Yes. It expects MS_TENANT_ID, MS_CLIENT_ID, MS_CLIENT_SECRET, of which 1 is a secret.
›Can I use Microsoft Planner as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Microsoft Planner in the official MCP registry?
Yes, as io.github.mspstack/mcp-planner.