Microsoft Graph APIを介して、Microsoft Plannerのタスク、バケット、およびプランを管理します。
別名 mspstack/mcp-planner, mcp-planner
- スター
- 4
- ツール
- 12
- ダウンロード数(30日間)
- —
- 最新バージョン
- 0.4.0
- 最終コミット
- 2026年8月31日
- ライセンス
- MIT
Microsoft Planner MCPとは
Microsoft PlannerはMCPサーバーです。 Microsoft Graph APIを介して、Microsoft Plannerのタスク、バケット、およびプランを管理します。. 12個のツールを提供しており、planner_search_groups, planner_find_user, planner_list_plansなどがあります。
プロジェクトのREADMEから生成された概要
Microsoft Planner MCP server について
このMCP serverを使用すると、AIクライアントからMicrosoft Plannerのタスク、バケット、プランを直接管理できるようになります。開発者はMicrosoft Graph APIと連携して、Microsoft 365グループの検索、タスク割り当てのための特定のユーザーの特定、プランやバケットによる業務の整理を行うことができます。タスクの作成、更新、削除が可能であり、サーバーがETagによる並行性を自動的に処理するため、更新時の競合を防ぐことができます。
ユーザーは、stdioによるローカル設定、またはHTTPトランスポートを使用したリモート設定が可能です。サーバーの利用には、Tasks.ReadWrite.AllやGroupMember.Read.Allなどの特定の権限を持つEntra IDのアプリ登録が必要です。クライアントシークレットを使用したアプリケーション専用認証と、リフレッシュトークンを使用して特定のユーザーに代わって操作する委任モードの両方をサポートしています。高度なニーズに対応するため、オプションのツールセットにより、グループやユーザーを含むGraphの他の部分にアクセスできる読み取り専用のエスケープハッチが提供されます。
できること
- 1チームメンバーへのタスク割り当て名前で特定のユーザーを検索し、新しいPlannerタスクに割り当てます。
- 2タスクのチェックリスト更新タスクの説明を変更したり、チェックリストの項目の追加やチェックを行ったりします。
- 3バケットによる業務の整理既存のプラン内に新しいバケットを作成し、タスクをカテゴリ分けします。
- 4ユーザーの負荷監査すべてのプランにおいて、特定のユーザーに現在割り当てられているすべてのタスクのリストを取得します。
プロジェクトの README から作成されています。すべてのユースケースは、その引用と照らし合わせて確認されています。
Microsoft Planner MCPのインストール方法
フォーマット検証日 2026年11月10日Cursor に追加Gooseに追加Claude CodeにMicrosoft Planner MCPをインストール
$ 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-plannerCursorにMicrosoft Planner MCPをインストール
~/.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>"
}
}
}
}VS CodeにMicrosoft Planner MCPをインストール
.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>"
}
}
}
}VS Code CLIにMicrosoft Planner MCPをインストール
$ 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>"}}'Claude DesktopにMicrosoft Planner MCPをインストール
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>"
}
}
}
}CodexにMicrosoft Planner MCPをインストール
$ 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-plannerCodex config.tomlにMicrosoft Planner MCPをインストール
~/.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>"
Gemini CLIにMicrosoft Planner MCPをインストール
$ 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-plannerGemini settings.jsonにMicrosoft Planner MCPをインストール
~/.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>"
}
}
}
}Microsoft Planner MCPツール 12
READMEから検出planner_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 | — |
設定
MS_CLIENT_SECRET必須シークレットEntra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions)
MS_CLIENT_ID必須Entra app registration client id
MS_TENANT_ID必須Microsoft 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
| 名前 | 説明 | 種類 |
|---|---|---|
| MS_CLIENT_SECRET | Entra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions) | 必須シークレット |
| MS_CLIENT_ID | Entra app registration client id | 必須 |
| MS_TENANT_ID | Microsoft Entra ID tenant id (GUID or domain) | 必須 |
| PLANNER_ADVANCED_TOOLSET | true/1 registers the advanced toolset (graph_get, graph_find_endpoint) — a read-only escape hatch limited to /planner, /groups, /users |
自動チェック
実行日 2026年11月13日完全なレポート →自動チェックに合格しました。これはセキュリティ監査ではありません。コードを読み、サーバーに必要最小限のアクセス権を与えてください。 チェックの仕組み
- ソースリポジトリがリンクされており、アクセス可能mspstack/mcp-planner is public and reachablegithub.com/mspstack/mcp-planner ↗合格
- パッケージがこのリポジトリをソースとして指定mcp-planner names mspstack/mcp-planner as sourcenpmjs.com/package/mcp-planner ↗合格
- ビルドの来歴 (Sigstore 証明)Sigstore attestation for mcp-plannernpmjs.com/package/mcp-planner/v/0.4.0#provenance ↗合格
- オープンソースライセンス (OSI)MITspdx.org/licenses/MIT.html ↗合格
- 過去1年以内にコミットまたはリリースありLast commit or release 2026-08-31github.com/mspstack/mcp-planner ↗合格
- OpenSSF Scorecard未チェック
- パッケージ名が有名なパッケージに酷似していないNo popular package one edit away from mcp-planner合格
- パッケージおよびその依存関係に重大な勧告なし99 resolved dependencies checked; no critical advisoryosv.dev ↗合格
- モデルへの隠れた指示がない12 tool descriptions and the README read; no override phrases, credential paths or hidden characters合格
- 破壊的なツールがラベル付けされているNo tool named like delete, drop or exec合格
- リモートエンドポイントが MCP ハンドシェイクに応答未チェック
README
GitHubで見る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
| 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
Microsoft Planner MCPのよくある質問
Microsoft Planner MCPを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-plannerを実行します。すべてのプロジェクトで利用するには--scope userを追加します。
Microsoft Planner MCPをCursorに追加するには
~/.cursor/mcp.jsonを開き、上記のインストールセクションに示すCursor設定を使ってmcpServersの下にサーバーを追加します。
Microsoft Planner MCPが提供するツールは
12個のツールを提供しており、planner_search_groups, planner_find_user, planner_list_plans, planner_get_plan, planner_create_bucketなどがあります。
このサーバーはMicrosoft Plannerの並行性をどのように処理しますか?
サーバーは、現在のリソースを取得し、更新または削除時にそのETagを渡すことで、PlannerのETagによる並行性を自動的に処理します。
Entra IDのアプリ登録にはどの権限が必要ですか?
Tasks.ReadWrite.All、GroupMember.Read.All、およびUser.Read.Allのアプリケーション権限を追加し、管理者の同意を付与する必要があります。