{"name":"io.github.selic/mcp-planner","slug":"selic-mcp-planner","title":"Microsoft Planner","description":"Microsoft Planner MCP server — plans, buckets, tasks via Microsoft Graph, ETags handled","url":"https://mcp.market/server/selic-mcp-planner","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":33,"stars":4,"forks":0,"downloads_week":52,"last_push_at":"2026-08-31T11:54:33.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/selic/mcp-planner","website":"https://github.com/selic/mcp-planner#readme","version":"0.2.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"mcp-planner","version":"0.2.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Microsoft Entra ID tenant id (GUID or domain)","isRequired":true,"name":"MS_TENANT_ID"},{"description":"Entra app registration client id","isRequired":true,"name":"MS_CLIENT_ID"},{"description":"Entra app registration client secret (app needs Tasks.ReadWrite.All, GroupMember.Read.All, User.Read.All application permissions)","isRequired":true,"isSecret":true,"name":"MS_CLIENT_SECRET"},{"description":"true/1 registers the advanced toolset (graph_get, graph_find_endpoint) — a read-only escape hatch limited to /planner, /groups, /users","default":"false","name":"PLANNER_ADVANCED_TOOLSET"}]}],"tools":[{"name":"graph_find_endpoint","description":"Discover which Microsoft Graph endpoint (and its query params) fits a task — search a curated catalog","write_action":false,"price_micros":0,"input_schema":null},{"name":"graph_get","description":"Read-only GET for any Microsoft Graph v1.0 path under /planner, /groups or /users. ALWAYS pass select","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_create_bucket","description":"Create a new bucket (column) in a plan.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planner_create_task","description":"Create a Planner task in a plan. Optionally set the bucket, due date, priority, assignees, and a description.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planner_delete_task","description":"Permanently delete a Planner task. This cannot be undone.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planner_find_user","description":"Find a user by display name or UPN/email to get the user ID needed for task assignments and planner_list_user_tasks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_get_plan","description":"Get a Planner plan and its buckets. Bucket IDs are needed to create or move tasks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_get_task","description":"Get a Planner task including its description and checklist. Also returns the etags needed by update tools (updates fetch them automatically).","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_list_plans","description":"List all Planner plans owned by a Microsoft 365 group. Get the group ID from planner_search_groups.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_list_tasks","description":"List Planner tasks in a plan (or a single bucket). Optionally filter by assignee user ID or open/completed state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_list_user_tasks","description":"List all Planner tasks assigned to a user across every plan they participate in. Get the user ID from planner_find_user.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_search_groups","description":"Search Microsoft 365 groups (Teams) by display name. Use this first to find the group ID required by planner_list_plans.","write_action":false,"price_micros":0,"input_schema":null},{"name":"planner_update_task","description":"Update a Planner task: title, bucket (move), due date, priority, progress (not started / in progress / completed), or assignees. Fetches the current etag automatically.","write_action":true,"price_micros":0,"input_schema":null},{"name":"planner_update_task_details","description":"Update a task's description, add checklist items, or check/uncheck existing checklist items (item IDs come from planner_get_task).","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-25T21:45:40.473Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:45:40.417Z","components":{"code":{"score":25,"max":25,"notes":["14 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 25 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"mcp-planner","version":"0.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-07-14T23:17:43.132Z","repositoryUrl":"git+https://github.com/selic/mcp-planner.git","weeklyDownloads":52}],"repo":{"found":true,"owner":"selic","repo":"mcp-planner","archived":false,"pushedAt":"2026-08-31T11:54:33Z","stars":4,"forks":0,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/305782245?v=4","ownerCreatedAt":"2010-09-19T12:24:05Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":4,"forks":0,"downloadsWeek":52,"license":"MIT","lastPushAt":"2026-08-31T11:54:33.000Z","score":33}}}},"grade_history":[],"reviews":[]}