Microsoft Planner

io.github.mspstack由 GitHub 账号 mspstack 发布v0.4.0更新于 Oct 24, 2026

Microsoft Planner MCP server — plans, buckets, tasks via Microsoft Graph, ETags handled

发布方自己的服务:Microsoft Learn MCP

已验证STDIO仅桌面效率与工作流开发者工具

概览

AI 生成的概览

让助手通过 Microsoft Graph 管理 Microsoft Planner 的计划、存储桶和任务,并自动处理 ETag 并发。

可以做什么
封装 Microsoft Graph 的 Planner 接口:按名称查找 Microsoft 365 组和用户,列出计划与存储桶,并按计划、存储桶或负责人列出任务。可创建、更新、分配、完成任务,也可永久删除任务,包括描述和清单项。可选的高级工具集提供一个只读的 Graph GET 通道,仅限 /planner、/groups 和 /users 路径。
适用场景
当助手需要操作 Microsoft 365 租户内的 Microsoft Planner 任务板时使用,例如查询计划与任务分配,或代表团队创建和更新任务。适合已在使用 Planner、希望从 AI 客户端而非 Planner 界面驱动任务管理的团队。
运行要求
通过 npx 以 stdio 在本地运行(需要 Node.js),也可用 HTTP 模式监听端口。需要一个 Entra ID 应用注册,具备应用程序权限 Tasks.ReadWrite.All、GroupMember.Read.All、User.Read.All 并授予管理员同意,以及环境变量 MS_TENANT_ID、MS_CLIENT_ID、MS_CLIENT_SECRET。委派模式改用公共客户端注册和 MS_REFRESH_TOKEN。仅支持桌面端。
安装前请注意
MS_CLIENT_SECRET 是机密,且应用注册所授予的 Graph 权限就是唯一的访问控制,权限过宽则影响范围过大。任务可被创建、修改和永久删除,写入会记在应用名下,委派模式下则记在登录用户名下。MS_REFRESH_TOKEN 以该用户身份行事,最后一次使用后约 90 天内仍有效。HTTP 模式可通过 x-ms-tenant-id、x-ms-client-id、x-ms-client-secret 或 x-ms-refresh-token 请求头按请求传入凭据。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Microsoft Planner,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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

ToolDescription
planner_search_groupsFind Microsoft 365 groups (Teams) by name → group ID
planner_find_userFind a user by name/UPN → user ID for assignments
planner_list_plansList plans owned by a group
planner_get_planPlan + its buckets
planner_create_bucketCreate a bucket in a plan
planner_list_tasksTasks in a plan or bucket (filter by assignee, open/completed)
planner_list_user_tasksAll tasks assigned to a user, across plans
planner_get_taskTask with description and checklist
planner_create_taskCreate task (bucket, due date, priority, assignees, description)
planner_update_taskUpdate title/bucket/due/priority/progress/assignees
planner_update_task_detailsUpdate description; add or (un)check checklist items
planner_delete_taskPermanently 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

  1. Entra admin center → App registrations → New registration
  2. API permissions → Application permissions → add Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All → Grant admin consent
  3. Certificates & secrets → New client secret — note the value

2. Run

bash
MS_TENANT_ID=<tenant> MS_CLIENT_ID=<client-id> MS_CLIENT_SECRET=<secret> npx -y mcp-planner

Claude Code:

bash
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

bash
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.

  1. 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).
  2. Each user signs in once via the device-code helper and keeps the printed refresh token:
bash
node scripts/device-login.mjs --tenant <tenant-id> --client <public-client-id>
  1. Use 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

bash
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-Match ETag 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

bash
npm installnpm run dev        # stdionpm run dev:http   # httpnpm testnpm run buildnpm run bundle     # Claude Desktop .mcpb

License

MIT

来源:README.md,提交 0d89d41

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.4.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Microsoft 集成