Planner MCP Server
This MCP server enables Claude to manage Microsoft Planner via the Microsoft Graph API. Key capabilities include:
Authentication
Initiate OAuth 2.0 device code flow (
auth_start) and poll for completion (auth_poll), with token persistence.
Plans
List all plans (
list_plans), retrieve plan details (get_plan), and get extended info including category/label descriptions (get_plan_details).
Buckets
List buckets within a plan (
list_buckets) and create new buckets (create_bucket).
Tasks
List (
list_tasks): Filter by plan, bucket, priority (Urgent/Important/Medium/Low), due/creation/completion dates, completion percentage, assigned users, categories, and search keywords; supports pagination.Get (
get_task): Retrieve detailed task info, optionally including description, checklist, and references.Create (
create_task): Add tasks with title, description, priority, due/start dates, assignments, categories, and checklist items.Update (
update_task): Modify title, description, priority, bucket, dates, completion percentage, assignments, categories, and checklist items.Delete (
delete_task): Permanently remove a task.Checklists: Add, update, or remove checklist items on tasks.
Users & Groups
Retrieve the signed-in user's profile (
get_me) and list members of a Microsoft 365 group (list_group_members), with filtering and search support.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Planner MCP Server Show my urgent tasks in the 'Project Alpha' plan."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Planner MCP Server
A Model Context Protocol (MCP) server that enables Claude to interact with Microsoft Planner through the Microsoft Graph API.
Features
Authentication: OAuth 2.0 device code flow for secure authentication
Plans Management: List and view Planner plans
Buckets Management: List, create, and manage buckets within plans
Tasks Management: Create, update, delete, and view tasks
Checklists: Add, update, and remove checklist items on tasks
Token Persistence: Stores access tokens across server restarts
Related MCP server: Office MCP Server
Prerequisites
Node.js 18+ or newer
npm or yarn
Microsoft account with access to Planner
Installation
Clone or download this repository
Install dependencies:
cd planner-mcp
npm installBuild the project:
npm run buildAuthentication
Before using the Planner tools, you need to authenticate:
Start the authentication flow by calling the
auth_starttoolVisit the displayed verification URL
Enter the provided code
Sign in with your Microsoft account
Use the
auth_polltool to check if authentication is complete
The access token will be saved locally and reused for future sessions.
Configuration
Option 1: Using CLI (Recommended)
claude mcp add --transport stdio planner node /path/to/planner-mcp/build/index.jsOption 2: Manual Configuration
Add this server to your Claude Desktop configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"planner": {
"command": "node",
"args": ["/path/to/planner-mcp/build/index.js"]
}
}
}Note: Replace
/path/to/planner-mcp/build/index.jswith the actual path to your cloned repository.
Available Tools
Authentication Tools
auth_start: Start the Planner authentication flow (device code)auth_poll: Check if authentication is complete
Plan Tools
list_plans: List all Microsoft Planner plans for the current userget_plan: Get detailed information about a specific plan
Bucket Tools
list_buckets: List all buckets in a plancreate_bucket: Create a new bucket in a plan
Task Tools
list_tasks: List tasks in a plan or bucket with filtering options (priority, due date, status, etc.)get_task: Get detailed information about a specific taskcreate_task: Create a new task in a bucket with title, description, priority, and due dateupdate_task: Update an existing task (title, description, priority, bucket, due date, checklist, etc.)delete_task: Delete a task
Checklist parameter (on create_task and update_task): pass checklist as an object keyed by item ID, same style as assignments:
To add an item, use any unique string as the key with
{"title": "...", "isChecked": false}To update an item, use its existing item ID (from
get_task/list_taskswithincludeDetails: true) with just the fields to changeTo remove an item, set its ID's value to
null
Example:
{
"taskId": "your-task-id",
"checklist": {
"buy-milk": { "title": "Buy milk", "isChecked": false },
"existing-item-id-from-get-task": { "isChecked": true },
"item-id-to-remove": null
}
}Checklist items are visible on any task fetched via get_task or list_tasks with includeDetails: true (under details.checklist, keyed by item ID).
Priority Levels:
1= Urgent (highest priority)3= Important (high priority)5= Medium (normal priority)9= Low (lowest priority)
Required Permissions
The Microsoft Graph API requires the following permissions for Planner:
Group.Read.All- To list plans and bucketsTasks.ReadWrite- To read, create, update, and delete tasks
Example Workflows
Create a new task
List plans:
list_plansList buckets in a plan:
list_bucketswith the plan IDCreate a task:
create_taskwith plan ID, bucket ID, title, and priority (1=urgent, 3=important, 5=medium, 9=low)
Example:
{
"planId": "your-plan-id",
"bucketId": "your-bucket-id",
"title": "Complete project proposal",
"description": "Write and submit the Q1 project proposal",
"priority": 1,
"dueDateTime": "2026-03-30T17:00:00Z"
}Move a task to another bucket
Get task details:
get_taskUpdate task:
update_taskwith the new bucket ID
Filter tasks by priority
List tasks with priority filter:
list_taskswith plan ID and priority parameter
Example:
{
"planId": "your-plan-id",
"priority": 1
}This will show only urgent tasks (priority 1).
Update task due date
Get task details:
get_taskUpdate task:
update_taskwith the new due date in ISO 8601 format (e.g., "2025-12-31T23:59:59Z")
Troubleshooting
Authentication Issues
If authentication fails, try these steps:
Delete the
.access-token.txtfileCall
auth_startagainMake sure you're using a Microsoft account that has access to Planner
"Not authenticated" Error
If you get a "Not authenticated" error:
Make sure you've completed the authentication flow
Check that the
.access-token.txtfile exists and contains a valid tokenIf the token has expired, run
auth_startagain
Permission Errors
If you get permission errors:
Make sure your Microsoft account has access to the specified plan
Check that the required permissions are granted in your Azure AD app
Development
Build
npm run buildWatch mode
npm run watchStart server
npm startLicense
ISC
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
Available Tools
14 toolsauth_pollA
Check if the authentication is complete. Only call this after auth_start returned a verification URL and the user has completed sign-in on the Microsoft website. Do NOT call this unless you just ran auth_start and it returned a code/URL for the user to visit.
Inputs: no named parameters.
auth_startA
Start the Planner authentication flow. IMPORTANT: Only call this tool when you receive an authentication error (e.g. 'Not authenticated') from another tool, or when the user explicitly requests re-authentication. Do NOT call this proactively before using other Planner tools - they automatically use the stored token. If a valid token already exists, this returns immediately without starting a new auth flow.
Inputs: force, clientId, tenantId.
create_bucketC
Create a new bucket in a plan
Inputs: name (required), planId (required).
create_taskC
Create a new task in a bucket
Inputs: title (required), planId (required), bucketId (required), priority, +6 more.
delete_taskB
Delete a task
Inputs: taskId (required).
get_meA
Get the current signed-in user's profile (id, displayName, mail, etc.)
Inputs: select.
get_planC
Get detailed information about a specific plan
Inputs: planId (required).
get_plan_detailsC
Get detailed information about a plan including category descriptions (labels)
Inputs: planId (required).
get_taskB
Get detailed information about a specific task
Inputs: taskId (required), includeDetails.
list_bucketsC
List all buckets in a plan
Inputs: planId (required).
list_group_membersB
List all members of a Microsoft 365 group (users, contacts, devices, service principals, and other groups)
Inputs: groupId (required), top, filter, search, +1 more.
list_plansA
List all Microsoft Planner plans for the current user
Inputs: no named parameters.
list_tasksA
List tasks in a plan or bucket with advanced filtering
Inputs: skip, limit, fields, planId, +16 more.
update_taskC
Update an existing task
Inputs: taskId (required), title, bucketId, priority, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Tools are generally distinct with clear purposes. There is slight overlap between get_plan and get_plan_details, but the latter includes category descriptions, reducing ambiguity. Other tools cover different resources (auth, user, plans, buckets, tasks) with no major confusion.
All tool names follow a consistent verb_noun pattern using underscores (e.g., create_task, list_buckets, get_plan). Auth tools use a verb_noun structure as well (auth_poll, auth_start). No mixing of conventions like camelCase.
14 tools cover the core functionality of a Planner server, including authentication, plans, buckets, tasks, user info, and group members. The count is well-scoped—not too many to overwhelm, yet sufficient for common operations.
Task CRUD is complete (create, read, update, delete), but bucket and plan operations are incomplete: missing create_plan, delete_plan, update_bucket, delete_bucket. No task assignment tool. These gaps may hinder some workflows.
Related MCP Connectors
Give Claude a second brain for your notes, tasks and contacts. OAuth; it can't delete anything.
1Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Manage Redbooth tasks, task lists, comments, tags and files from Claude and other AI assistants.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects Claude to Microsoft Outlook through the Microsoft Graph API, enabling email management (list, search, read, send) and calendar operations (list, create, accept, decline, delete events) via OAuth 2.0 authentication.1MIT
- AlicenseNot gradedqualityCmaintenanceConnects Claude with Microsoft 365 services such as Email, Calendar, Teams, OneDrive, and more through the Microsoft Graph API.81 npm17MIT
- FlicenseAqualityBmaintenanceEnables Claude to manage Outlook calendar events and Microsoft To Do tasks for a specific mailbox via Microsoft Graph API.7-
- AlicenseBqualityBmaintenanceEnables Claude to create, read, update and delete Microsoft To Do lists, tasks and checklist items, and Microsoft Planner plans, buckets and tasks, through Microsoft Graph as the signed-in user. Lists, plans and buckets can be referenced by ID or exact name, with destructive deletes requiring confirmation.31MIT