Kelola task, bucket, dan plan Microsoft Planner dengan berinteraksi melalui Microsoft Graph API.
Juga dikenal sebagai mspstack/mcp-planner, mcp-planner
- Stars
- 4
- Tools
- 12
- Unduhan, 30 hari
- —
- Versi terbaru
- 0.4.0
- Commit terakhir
- 31 Agu 2026
- Lisensi
- MIT
Apa itu Microsoft Planner MCP?
Microsoft Planner adalah MCP server. Kelola task, bucket, dan plan Microsoft Planner dengan berinteraksi melalui Microsoft Graph API. Server ini menyediakan 12 tool, seperti planner_search_groups, planner_find_user, planner_list_plans.
Ringkasan dibuat dari README proyek
Tentang Microsoft Planner MCP server
MCP server ini memungkinkan Anda mengelola task, bucket, dan plan Microsoft Planner secara langsung dari AI client. Anda dapat berinteraksi dengan Microsoft Graph API untuk mencari Microsoft 365 groups, menemukan user tertentu untuk penugasan task, dan mengatur pekerjaan melalui plan dan bucket. Anda bisa membuat, memperbarui, atau menghapus task sementara server secara otomatis menangani ETag concurrency untuk mencegah konflik saat proses update.
User dapat melakukan setup secara lokal via stdio atau secara remote menggunakan HTTP transport. Server ini memerlukan registrasi aplikasi Entra ID dengan permission spesifik seperti Tasks.ReadWrite.All dan GroupMember.Read.All. Server mendukung autentikasi application-only menggunakan client secret maupun mode delegated menggunakan refresh token untuk bertindak atas nama user tertentu. Untuk kebutuhan tingkat lanjut, tersedia toolset opt-in yang menyediakan akses read-only ke bagian lain dari Graph surface termasuk groups dan users.
Apa yang bisa Anda lakukan dengannya
- 1Assign task ke anggota timCari user tertentu berdasarkan nama dan tugaskan mereka ke task Planner yang baru.
- 2Update checklist taskUbah deskripsi sebuah task atau menambah dan mencentang item dalam sebuah checklist.
- 3Organisir pekerjaan ke dalam bucketBuat bucket baru di dalam plan yang sudah ada untuk mengategorikan task.
- 4Audit beban kerja userAmbil daftar semua task yang saat ini ditugaskan ke orang tertentu di seluruh plan.
Ditulis berdasarkan README proyek. Setiap use case diperiksa terhadap kutipan dari README tersebut.
Cara menginstal Microsoft Planner MCP
Format diverifikasi 10 Nov 2026Tambahkan ke CursorTambahkan ke GooseInstal Microsoft Planner MCP di Claude Code
$ claude mcp add --env 'MS_CLIENT_SECRET=<YOUR_MS_CLIENT_SECRET>' --env 'MS_CLIENT_ID=<MS_CLIENT_ID>' --env 'MS_TENANT_ID=<MS_TENANT_ID>' mcp-planner -- npx -y mcp-plannerInstal Microsoft Planner MCP di Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"mcp-planner": {
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_CLIENT_SECRET": "<YOUR_MS_CLIENT_SECRET>",
"MS_CLIENT_ID": "<MS_CLIENT_ID>",
"MS_TENANT_ID": "<MS_TENANT_ID>"
}
}
}
}Instal Microsoft Planner MCP di VS Code
.vscode/mcp.json
{
"servers": {
"mcp-planner": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_CLIENT_SECRET": "<YOUR_MS_CLIENT_SECRET>",
"MS_CLIENT_ID": "<MS_CLIENT_ID>",
"MS_TENANT_ID": "<MS_TENANT_ID>"
}
}
}
}Instal Microsoft Planner MCP di VS Code CLI
$ code --add-mcp '{"name":"mcp-planner","type":"stdio","command":"npx","args":["-y","mcp-planner"],"env":{"MS_CLIENT_SECRET":"<YOUR_MS_CLIENT_SECRET>","MS_CLIENT_ID":"<MS_CLIENT_ID>","MS_TENANT_ID":"<MS_TENANT_ID>"}}'Instal Microsoft Planner MCP di Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"mcp-planner": {
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_CLIENT_SECRET": "<YOUR_MS_CLIENT_SECRET>",
"MS_CLIENT_ID": "<MS_CLIENT_ID>",
"MS_TENANT_ID": "<MS_TENANT_ID>"
}
}
}
}Instal Microsoft Planner MCP di Codex
$ codex mcp add mcp-planner --env 'MS_CLIENT_SECRET=<YOUR_MS_CLIENT_SECRET>' --env 'MS_CLIENT_ID=<MS_CLIENT_ID>' --env 'MS_TENANT_ID=<MS_TENANT_ID>' -- npx -y mcp-plannerInstal Microsoft Planner MCP di Codex config.toml
~/.codex/config.toml
[mcp_servers.mcp-planner] command = "npx" args = ["-y", "mcp-planner"] [mcp_servers.mcp-planner.env] MS_CLIENT_SECRET = "<YOUR_MS_CLIENT_SECRET>" MS_CLIENT_ID = "<MS_CLIENT_ID>" MS_TENANT_ID = "<MS_TENANT_ID>"
Instal Microsoft Planner MCP di Gemini CLI
$ gemini mcp add -s user -e 'MS_CLIENT_SECRET=<YOUR_MS_CLIENT_SECRET>' -e 'MS_CLIENT_ID=<MS_CLIENT_ID>' -e 'MS_TENANT_ID=<MS_TENANT_ID>' mcp-planner npx -- -y mcp-plannerInstal Microsoft Planner MCP di Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"mcp-planner": {
"command": "npx",
"args": [
"-y",
"mcp-planner"
],
"env": {
"MS_CLIENT_SECRET": "<YOUR_MS_CLIENT_SECRET>",
"MS_CLIENT_ID": "<MS_CLIENT_ID>",
"MS_TENANT_ID": "<MS_TENANT_ID>"
}
}
}
}Tool Microsoft Planner MCP 12
Terdeteksi dari READMEplanner_search_groupsplanner_find_userplanner_list_plansplanner_get_planplanner_create_bucketplanner_list_tasksplanner_list_user_tasksplanner_get_taskplanner_create_taskplanner_update_taskplanner_update_task_detailsplanner_delete_task
| planner_search_groups | — | |
| planner_find_user | — | |
| planner_list_plans | — | |
| planner_get_plan | — | |
| planner_create_bucket | — | |
| planner_list_tasks | — | |
| planner_list_user_tasks | — | |
| planner_get_task | — | |
| planner_create_task | — | |
| planner_update_task | — | |
| planner_update_task_details | — | |
| planner_delete_task | — |
Konfigurasi
MS_CLIENT_SECRETWajibRahasiaEntra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions)
MS_CLIENT_IDWajibEntra app registration client id
MS_TENANT_IDWajibMicrosoft Entra ID tenant id (GUID or domain)
PLANNER_ADVANCED_TOOLSETtrue/1 registers the advanced toolset (graph_get, graph_find_endpoint) — a read-only escape hatch limited to /planner, /groups, /users
| Nama | Deskripsi | Tipe |
|---|---|---|
| MS_CLIENT_SECRET | Entra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions) | WajibRahasia |
| MS_CLIENT_ID | Entra app registration client id | Wajib |
| MS_TENANT_ID | Microsoft Entra ID tenant id (GUID or domain) | Wajib |
| PLANNER_ADVANCED_TOOLSET | true/1 registers the advanced toolset (graph_get, graph_find_endpoint) — a read-only escape hatch limited to /planner, /groups, /users |
Pengecekan otomatis
Berjalan 13 Nov 2026Laporan lengkap →Lolos checks otomatis kami. Ini bukan audit keamanan: baca kodenya dan berikan server akses paling terbatas yang dibutuhkannya. Cara kerja checks
- Source repository terhubung dan dapat dijangkaumspstack/mcp-planner is public and reachablegithub.com/mspstack/mcp-planner ↗Lolos
- Nama paket mencantumkan repositori ini sebagai sumbernyamcp-planner names mspstack/mcp-planner as sourcenpmjs.com/package/mcp-planner ↗Lolos
- Provenance build (atestasi Sigstore)Sigstore attestation for mcp-plannernpmjs.com/package/mcp-planner/v/0.4.0#provenance ↗Lolos
- Lisensi open source (OSI)MITspdx.org/licenses/MIT.html ↗Lolos
- Ada commit atau release dalam satu tahun terakhirLast commit or release 2026-08-31github.com/mspstack/mcp-planner ↗Lolos
- OpenSSF ScorecardTidak diperiksa
- Nama package tidak mirip dengan package populerNo popular package one edit away from mcp-plannerLolos
- Tidak ada advisory kritis pada paket atau dependensinya99 resolved dependencies checked; no critical advisoryosv.dev ↗Lolos
- Tidak ada instruksi tersembunyi untuk model12 tool descriptions and the README read; no override phrases, credential paths or hidden charactersLolos
- Tools yang bersifat destruktif telah diberi labelNo tool named like delete, drop or execLolos
- Endpoint remote merespons handshake MCPTidak diperiksa
README
Lihat di GitHubmcp-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
| 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.
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-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
HTTP mode
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.
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
MS_REFRESH_TOKENinstead ofMS_CLIENT_SECRET(stdio), or thex-ms-refresh-tokenheader (HTTP). Behind the MCP gateway, register it as a personal credential (fieldx-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
docker build -t mcp-planner .
docker run -p 3000:3000 -e MS_TENANT_ID=... -e MS_CLIENT_ID=... -e MS_CLIENT_SECRET=... mcp-planner
Access model
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.
Notes
- Planner requires an
If-MatchETag on every update/delete — the tools fetch the current resource and pass its ETag automatically. On a 412 (concurrent change), just retry. - Priority mapping: urgent=1, important=3, medium=5, low=9 (Graph uses 0–10).
- Progress: not started (0), in progress (50), completed (100).
Development
npm install
npm run dev # stdio
npm run dev:http # http
npm test
npm run build
npm run bundle # Claude Desktop .mcpb
License
MIT
Pertanyaan tentang Microsoft Planner MCP
Bagaimana cara menambahkan Microsoft Planner MCP ke Claude Code?
Jalankan claude mcp add --env 'MS_CLIENT_SECRET=<YOUR_MS_CLIENT_SECRET>' --env 'MS_CLIENT_ID=<MS_CLIENT_ID>' --env 'MS_TENANT_ID=<MS_TENANT_ID>' mcp-planner -- npx -y mcp-planner di terminal Anda. Tambahkan --scope user agar tersedia di semua proyek.
Bagaimana cara menambahkan Microsoft Planner MCP ke Cursor?
Buka ~/.cursor/mcp.json dan tambahkan server di bawah mcpServers, menggunakan config Cursor yang ditunjukkan di bagian instalasi di atas.
Tool apa yang disediakan Microsoft Planner MCP?
Server ini menyediakan 12 tool, termasuk planner_search_groups, planner_find_user, planner_list_plans, planner_get_plan, planner_create_bucket.
Bagaimana server menangani concurrency di Microsoft Planner?
Server secara otomatis menangani ETag concurrency pada Planner dengan mengambil resource terbaru dan menyertakan ETag tersebut saat melakukan update atau penghapusan.
Izin apa saja yang diperlukan untuk registrasi aplikasi Entra ID?
Anda perlu menambahkan Application permissions untuk Tasks.ReadWrite.All, GroupMember.Read.All, dan User.Read.All, lalu berikan admin consent.