Microsoft Graph API ile etkileşime girerek Microsoft Planner görevlerini, bucket'larını ve planlarını yönetin.
Ayrıca bilinen adı mspstack/mcp-planner, mcp-planner
- Yıldızlar
- 4
- Araçlar
- 12
- İndirmeler, 30 gün
- —
- En son sürüm
- 0.4.0
- Son commit
- 31 Ağu 2026
- Lisans
- MIT
Microsoft Planner MCP nedir?
Microsoft Planner bir MCP sunucusudur. Microsoft Graph API ile etkileşime girerek Microsoft Planner görevlerini, bucket'larını ve planlarını yönetin. 12 araç sunar; örneğin planner_search_groups, planner_find_user, planner_list_plans.
Özet, projenin README dosyasından oluşturuldu
Microsoft Planner MCP sunucusu hakkında
Bu MCP server, Microsoft Planner görevlerini, bucket'larını ve planlarını doğrudan bir AI istemcisi üzerinden yönetmenize olanak tanır. Geliştiricilerin Microsoft Graph API ile etkileşime girerek Microsoft 365 gruplarını bulmalarını, görev atamaları için belirli kullanıcıları tespit etmelerini ve planlar ile bucket'lar aracılığıyla iş akışlarını organize etmelerini sağlar. Güncellemeler sırasında çakışmaları önlemek için sunucu ETag eşzamanlılığını otomatik olarak yönetirken siz görevleri oluşturabilir, güncelleyebilir veya silebilirsiniz.
Kullanıcılar bu kurulumu stdio aracılığıyla yerel olarak veya HTTP transport kullanarak uzaktan gerçekleştirebilir. Sunucu, Tasks.ReadWrite.All ve GroupMember.Read.All gibi belirli izinlere sahip bir Entra ID uygulama kaydı gerektirir. Hem bir client secret kullanarak uygulama düzeyinde kimlik doğrulamayı hem de belirli bir kullanıcı adına işlem yapmak için bir refresh token kullanarak yetkilendirilmiş (delegated) modu destekler. Gelişmiş ihtiyaçlar için, isteğe bağlı bir araç seti; gruplar ve kullanıcılar dahil olmak üzere Graph yüzeyinin diğer kısımlarına erişim için salt okunur bir kaçış yolu sunar.
Neler yapabilirsiniz
- 1Görevleri ekip üyelerine atayınBelirli bir kullanıcıyı ismiyle bulun ve yeni bir Planner görevine atayın.
- 2Görev kontrol listelerini güncelleyinBir görevin açıklamasını değiştirin veya bir kontrol listesindeki öğeleri ekleyip işaretleyin.
- 3İşleri bucket'lara göre organize edinGörevleri kategorize etmek için mevcut bir plan içinde yeni bucket'lar oluşturun.
- 4Kullanıcı iş yüklerini denetleyinTüm planlar genelinde belirli bir kişiye şu anda atanmış olan tüm görevlerin listesini alın.
Projenin README dosyasından alınmıştır. Her kullanım durumu, oradaki bir alıntı ile kontrol edilir.
Microsoft Planner MCP nasıl yüklenir
Biçimler 10 Kas 2026 tarihinde doğrulandıCursor'a ekleGoose'a ekleMicrosoft Planner MCP'yi Claude Code içine yükleyin
$ 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-plannerMicrosoft Planner MCP'yi Cursor içine yükleyin
~/.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'yi VS Code içine yükleyin
.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'yi VS Code CLI içine yükleyin
$ 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'yi Claude Desktop içine yükleyin
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'yi Codex içine yükleyin
$ 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-plannerMicrosoft Planner MCP'yi Codex config.toml içine yükleyin
~/.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'yi Gemini CLI içine yükleyin
$ 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-plannerMicrosoft Planner MCP'yi Gemini settings.json içine yükleyin
~/.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 araçları 12
README dosyasından algılandı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 | — |
Yapılandırma
MS_CLIENT_SECRETGerekliGizliEntra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions)
MS_CLIENT_IDGerekliEntra app registration client id
MS_TENANT_IDGerekliMicrosoft 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
| Ad | Açıklama | Sunucu |
|---|---|---|
| MS_CLIENT_SECRET | Entra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions) | GerekliGizli |
| MS_CLIENT_ID | Entra app registration client id | Gerekli |
| MS_TENANT_ID | Microsoft Entra ID tenant id (GUID or domain) | Gerekli |
| PLANNER_ADVANCED_TOOLSET | true/1 registers the advanced toolset (graph_get, graph_find_endpoint) — a read-only escape hatch limited to /planner, /groups, /users |
Otomatik kontroller
Çalıştırıldı 13 Kas 2026Tam rapor →Otomatik kontrollerimizden geçti. Bu bir güvenlik denetimi değildir: kodu okuyun ve sunucuya ihtiyaç duyduğu en dar erişimi verin. Kontroller nasıl çalışır
- Kaynak deposu bağlantılı ve erişilebilirmspstack/mcp-planner is public and reachablegithub.com/mspstack/mcp-planner ↗Geçti
- Paket, bu depoyu kaynağı olarak gösteriyormcp-planner names mspstack/mcp-planner as sourcenpmjs.com/package/mcp-planner ↗Geçti
- Derleme kökeni (Sigstore onayı)Sigstore attestation for mcp-plannernpmjs.com/package/mcp-planner/v/0.4.0#provenance ↗Geçti
- Açık kaynak lisansı (OSI)MITspdx.org/licenses/MIT.html ↗Geçti
- Son bir yıl içinde commit veya sürüm mevcutLast commit or release 2026-08-31github.com/mspstack/mcp-planner ↗Geçti
- OpenSSF ScorecardKontrol edilmedi
- Paket adı popüler bir pakete yakın değilNo popular package one edit away from mcp-plannerGeçti
- Pakette veya bağımlılıklarında kritik uyarı yok99 resolved dependencies checked; no critical advisoryosv.dev ↗Geçti
- Modele yönelik gizli talimat yok12 tool descriptions and the README read; no override phrases, credential paths or hidden charactersGeçti
- Yıkıcı araçlar etiketlenmişNo tool named like delete, drop or execGeçti
- Uzak uç nokta MCP el sıkışmasına yanıt veriyorKontrol edilmedi
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 soruları
Microsoft Planner MCP'yi Claude Code'a nasıl eklerim?
Terminalinizde 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 komutunu çalıştırın. Her projede kullanılabilir olması için --scope user ekleyin.
Microsoft Planner MCP'yi Cursor'a nasıl eklerim?
~/.cursor/mcp.json dosyasını açın ve yukarıdaki yükleme bölümünde gösterilen Cursor yapılandırmasını kullanarak sunucuyu mcpServers altına ekleyin.
Microsoft Planner MCP hangi araçları sunar?
12 araç sunar; bunlar arasında planner_search_groups, planner_find_user, planner_list_plans, planner_get_plan, planner_create_bucket yer alır.
Sunucu, Microsoft Planner'daki eşzamanlılığı nasıl yönetiyor?
Sunucu, güncellemeler veya silme işlemleri sırasında mevcut kaynağı getirip ETag bilgisini ileterek Planner'ın ETag eşzamanlılığını otomatik olarak yönetir.
Entra ID uygulama kaydı için hangi izinler gereklidir?
Tasks.ReadWrite.All, GroupMember.Read.All ve User.Read.All için Uygulama (Application) izinlerini eklemeniz ve ardından yönetici onayı vermeniz gerekir.