Gérez les tâches, les compartiments (buckets) et les plans Microsoft Planner en interagissant avec l'API Microsoft Graph.
Aussi connu sous mspstack/mcp-planner, mcp-planner
- Étoiles
- 4
- Outils
- 12
- Téléchargements, 30 jours
- —
- Dernière version
- 0.4.0
- Dernier commit
- 31 août 2026
- Licence
- MIT
Qu'est-ce que Microsoft Planner MCP ?
Microsoft Planner est un serveur MCP. Gérez les tâches, les compartiments (buckets) et les plans Microsoft Planner en interagissant avec l'API Microsoft Graph. Il expose 12 outils, comme planner_search_groups, planner_find_user, planner_list_plans.
Résumé généré à partir du README du projet
À propos du MCP server Microsoft Planner
Ce MCP server permet de gérer directement les tâches, les compartiments et les plans Microsoft Planner depuis un client IA. Il permet aux développeurs d'interagir avec l'API Microsoft Graph pour trouver des groupes Microsoft 365, localiser des utilisateurs spécifiques pour l'attribution de tâches et organiser le travail via des plans et des compartiments. Vous pouvez créer, mettre à jour ou supprimer des tâches pendant que le serveur gère automatiquement la concurrence ETag pour éviter les conflits lors des mises à jour.
Les utilisateurs peuvent configurer cela localement via stdio ou à distance en utilisant le transport HTTP. Le serveur nécessite un enregistrement d'application Entra ID avec des permissions spécifiques telles que Tasks.ReadWrite.All et GroupMember.Read.All. Il prend en charge l'authentification uniquement par application via un client secret ainsi que le mode délégué utilisant un refresh token pour agir au nom d'un utilisateur spécifique. Pour les besoins avancés, un ensemble d'outils optionnels offre une solution de repli en lecture seule pour accéder à d'autres parties de la surface Graph, y compris les groupes et les utilisateurs.
Ce que vous pouvez faire avec
- 1Assigner des tâches aux membres de l'équipeTrouvez un utilisateur spécifique par son nom et assignez-le à une nouvelle tâche Planner.
- 2Mettre à jour les listes de contrôle des tâchesModifiez la description d'une tâche ou ajoutez et cochez des éléments dans une liste de contrôle.
- 3Organiser le travail en compartimentsCréez de nouveaux compartiments au sein d'un plan existant pour catégoriser les tâches.
- 4Auditer la charge de travail des utilisateursRécupérez la liste de toutes les tâches actuellement assignées à une personne spécifique à travers tous les plans.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer Microsoft Planner MCP
Formats vérifiés le 10 nov. 2026Ajouter à CursorAjouter à GooseInstaller Microsoft Planner MCP dans 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-plannerInstaller Microsoft Planner MCP dans 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>"
}
}
}
}Installer Microsoft Planner MCP dans 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>"
}
}
}
}Installer Microsoft Planner MCP dans 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>"}}'Installer Microsoft Planner MCP dans 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>"
}
}
}
}Installer Microsoft Planner MCP dans 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-plannerInstaller Microsoft Planner MCP dans 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>"
Installer Microsoft Planner MCP dans 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-plannerInstaller Microsoft Planner MCP dans 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>"
}
}
}
}Outils MCP Microsoft Planner 12
Détectés depuis le 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 | — |
Configuration
MS_CLIENT_SECRETRequisSecretEntra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions)
MS_CLIENT_IDRequisEntra app registration client id
MS_TENANT_IDRequisMicrosoft 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
| Nom | Description | Type |
|---|---|---|
| MS_CLIENT_SECRET | Entra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions) | RequisSecret |
| MS_CLIENT_ID | Entra app registration client id | Requis |
| MS_TENANT_ID | Microsoft Entra ID tenant id (GUID or domain) | Requis |
| PLANNER_ADVANCED_TOOLSET | true/1 registers the advanced toolset (graph_get, graph_find_endpoint) — a read-only escape hatch limited to /planner, /groups, /users |
Vérifications automatisées
Exécuté le 13 nov. 2026Rapport complet →A passé nos vérifications automatisées. Il ne s'agit pas d'un audit de sécurité : lisez le code et donnez au serveur l'accès le plus restreint dont il a besoin. Fonctionnement des vérifications
- Dépôt source lié et accessiblemspstack/mcp-planner is public and reachablegithub.com/mspstack/mcp-planner ↗Réussi
- Le nom du package correspond au dépôt sourcemcp-planner names mspstack/mcp-planner as sourcenpmjs.com/package/mcp-planner ↗Réussi
- Provenance du build (attestation Sigstore)Sigstore attestation for mcp-plannernpmjs.com/package/mcp-planner/v/0.4.0#provenance ↗Réussi
- Licence open source (OSI)MITspdx.org/licenses/MIT.html ↗Réussi
- Commit ou version publiée au cours de l'année écouléeLast commit or release 2026-08-31github.com/mspstack/mcp-planner ↗Réussi
- OpenSSF ScorecardNon vérifié
- Nom du package non proche d'un package populaireNo popular package one edit away from mcp-plannerRéussi
- Aucun avis critique dans le package ou ses dépendances99 resolved dependencies checked; no critical advisoryosv.dev ↗Réussi
- Aucune instruction cachée destinée au modèle12 tool descriptions and the README read; no override phrases, credential paths or hidden charactersRéussi
- Les outils destructifs sont étiquetésNo tool named like delete, drop or execRéussi
- Le point de terminaison distant répond à la poignée de main MCPNon vérifié
README
Voir sur 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
Questions sur Microsoft Planner MCP
Comment ajouter Microsoft Planner MCP à Claude Code ?
Exécutez 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 dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter Microsoft Planner MCP à Cursor ?
Ouvrez ~/.cursor/mcp.json et ajoutez le serveur sous mcpServers, avec la configuration Cursor indiquée dans la section d'installation ci-dessus.
Quels outils Microsoft Planner MCP fournit-il ?
Il expose 12 outils, dont planner_search_groups, planner_find_user, planner_list_plans, planner_get_plan, planner_create_bucket.
Comment le serveur gère-t-il la concurrence dans Microsoft Planner ?
Le serveur gère automatiquement la concurrence via les ETag de Planner en récupérant la ressource actuelle et en transmettant son ETag lors des mises à jour ou des suppressions.
Quelles permissions sont requises pour l'enregistrement de l'application Entra ID ?
Vous devez ajouter les permissions d'application Tasks.ReadWrite.All, GroupMember.Read.All et User.Read.All, puis accorder le consentement de l'administrateur.