Управляйте задачами, корзинами и планами Microsoft Planner через Microsoft Graph API.
Также известен как mspstack/mcp-planner, mcp-planner
- Звёзды
- 4
- Инструменты
- 12
- Загрузки, 30 дней
- —
- Последняя версия
- 0.4.0
- Последний коммит
- 31 авг. 2026 г.
- Лицензия
- MIT
Что такое Microsoft Planner MCP?
Microsoft Planner — это MCP server. Управляйте задачами, корзинами и планами Microsoft Planner через Microsoft Graph API. Он предоставляет 12 инструментов, например planner_search_groups, planner_find_user, planner_list_plans.
Сводка сгенерирована из README проекта
О Microsoft Planner MCP server
Этот MCP server позволяет управлять задачами, корзинами и планами Microsoft Planner напрямую из AI-клиента. Он дает разработчикам возможность взаимодействовать с Microsoft Graph API для поиска групп Microsoft 365, нахождения конкретных пользователей для назначения задач и организации работы через планы и корзины. Вы можете создавать, обновлять или удалять задачи, при этом сервер автоматически обрабатывает конкурентность ETag, чтобы предотвратить конфликты при обновлениях.
Пользователи могут настроить сервер локально через stdio или удаленно с помощью HTTP transport. Для работы требуется регистрация приложения в Entra ID с определенными разрешениями, такими как Tasks.ReadWrite.All и GroupMember.Read.All. Сервер поддерживает как аутентификацию только для приложения (application-only) с использованием client secret, так и делегированный режим (delegated mode) с использованием refresh token для действий от имени конкретного пользователя. Для расширенных задач предусмотрен дополнительный набор инструментов с доступом только на чтение, позволяющий работать с другими разделами Graph, включая группы и пользователей.
Что вы можете с ним делать
- 1Назначение задач участникам командыНайдите конкретного пользователя по имени и назначьте его исполнителем новой задачи в Planner.
- 2Обновление чек-листов задачИзменяйте описание задачи, добавляйте пункты в чек-лист или отмечайте их выполнение.
- 3Организация работы по корзинамСоздавайте новые корзины внутри существующего плана для категоризации задач.
- 4Аудит рабочей нагрузки пользователейПолучайте список всех задач, назначенных конкретному человеку во всех планах.
Взято из README проекта. Каждый вариант использования проверен на соответствие цитате из него.
Как установить Microsoft Planner MCP
Форматы проверены 10 ноя 2026Добавить в CursorДобавить в GooseУстановка 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Установка Microsoft Planner MCP в 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>"
}
}
}
}Установка Microsoft Planner MCP в 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>"
}
}
}
}Установка Microsoft Planner MCP в 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>"}}'Установка Microsoft Planner MCP в 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>"
}
}
}
}Установка Microsoft Planner MCP в 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-plannerУстановка Microsoft Planner MCP в 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>"
Установка Microsoft Planner MCP в 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-plannerУстановка Microsoft Planner MCP в 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>"
}
}
}
}Инструменты Microsoft Planner MCP 12
Определено из 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 | — |
Конфигурация
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 |
Автоматические проверки
Запущено 13 нояб. 2026 г.Полный отчёт →Прошло наши автоматизированные проверки. Это не аудит безопасности: изучите код и предоставьте серверу минимально необходимый доступ. Как работают проверки
- Связанный и доступный исходный репозиторий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 ↗Пройдено
- Open source лицензия (OSI)MITspdx.org/licenses/MIT.html ↗Пройдено
- Коммит или релиз за последний год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
Открыть на 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
Вопросы о 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 и добавьте сервер в mcpServers, используя конфигурацию Cursor из раздела установки выше.
Какие инструменты предоставляет Microsoft Planner MCP?
Он предоставляет 12 инструментов, включая planner_search_groups, planner_find_user, planner_list_plans, planner_get_plan, planner_create_bucket.
Как сервер обрабатывает конкурентный доступ в Microsoft Planner?
Сервер автоматически обрабатывает конкурентность Planner через ETag, запрашивая текущий ресурс и передавая его ETag при обновлении или удалении.
Какие разрешения требуются для регистрации приложения в Entra ID?
Вам необходимо добавить разрешения Application для Tasks.ReadWrite.All, GroupMember.Read.All и User.Read.All, а затем подтвердить их через администратора (admin consent).