Microsoft Planner MCP
Enables management of Microsoft Planner tasks with support for including GitHub repository links in task descriptions and integrating GitHub PR references with Planner workflows.
Click on "Install 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., "@Microsoft Planner MCPlist all tasks in the marketing campaign 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.
microsoft-planner-mcp
Lightweight MCP (Model Context Protocol) server for Microsoft Planner that uses az rest for authentication instead of complex OAuth flows.
What This Is
A minimal MCP server that enables Claude Code to interact with Microsoft Planner tasks directly. It leverages Azure CLI's existing authentication (az login) to make Graph API calls, eliminating the need for app registrations or token management.
Related MCP server: MCP DevOps Plan Server
Prerequisites
Node.js (v18 or later)
Azure CLI installed and authenticated:
az login
Installation
git clone https://github.com/vyente-ruffin/microsoft-planner-mcp.git
cd microsoft-planner-mcp
npm install
npm run buildUsage with Claude Code
Add the MCP server to Claude Code:
claude mcp add microsoft-planner-mcp node /path/to/microsoft-planner-mcp/dist/index.jsOr add directly to your MCP settings file:
{
"mcpServers": {
"microsoft-planner-mcp": {
"command": "node",
"args": ["/path/to/microsoft-planner-mcp/dist/index.js"]
}
}
}Available Tools
Tool | Description |
| List all Planner plans accessible to the current user |
| List all buckets in a plan |
| List all tasks in a Planner plan |
| Get details of a specific task |
| Get extended task details (description, checklist, references) |
| Create a new task in a plan |
| Update task properties (title, progress, assignments, categories) |
| Update task description (supports GitHub links) |
| Delete a Planner task |
Claude Code Agent (Optional)
For enhanced automation, create a Claude Code agent at ~/.claude/agents/microsoft-planner.md with:
Auto-assignment: Automatically assign tasks to a default user
Auto-labeling: Apply default categories/labels to tasks
Status Intelligence: Infer task bucket and progress from conversation context
GitHub Integration: Include repository links in task descriptions
See the agent template for configuration details.
Finding Your IDs
To use the MCP tools, you'll need your Planner Plan ID and Bucket IDs:
Use
list-plansto discover all accessible plans and their IDsUse
list-bucketswith your Plan ID to get bucket IDsOr find your Plan ID from the Planner web URL:
https://tasks.office.com/...planId=YOUR_PLAN_ID
Example Usage
Once configured, use natural language with Claude Code:
"List all my planner plans"
"List all tasks in the planner"
"Create a task called 'Review PR #123' in the backlog bucket"
"Mark task XYZ as complete"
"Add a description with the GitHub PR link to the task"How It Works
This server uses az rest to make Microsoft Graph API calls. The Azure CLI handles all authentication, so as long as you're logged in with az login, the server can access Planner data your account has permissions for.
All Planner operations that require ETags (update, delete) automatically fetch the current ETag before making changes.
License
ISC
Available Tools
9 toolscreate-taskC
Create a new task in a Planner plan
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | The plan ID | |
| bucketId | Yes | The bucket ID | |
| title | Yes | Task title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a task, implying a mutation operation, but doesn't mention permissions required, whether the creation is idempotent, error handling, or what the response looks like. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with every word contributing to clarity, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, error cases, or return values, leaving the agent with insufficient context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters (planId, bucketId, title) documented in the schema. The description doesn't add any meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new task') and the resource ('in a Planner plan'), providing specific verb+resource pairing. However, it doesn't differentiate from sibling tools like 'update-task' or 'delete-task' beyond the basic operation type, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'update-task' or 'list-tasks'. The description lacks context about prerequisites, such as needing an existing plan and bucket, or exclusions for when not to use it, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-taskB
Delete a Planner task. Auto-fetches ETag.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions 'Auto-fetches ETag' (which hints at concurrency control), it doesn't address critical aspects like required permissions, whether deletion is permanent/reversible, error conditions, or what happens upon success. For a destructive operation with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two short sentences with zero wasted words. It is front-loaded with the core purpose ('Delete a Planner task') and adds only essential behavioral context ('Auto-fetches ETag'), making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is insufficient. It lacks details on permissions, side effects, return values, error handling, and how it differs from siblings like 'update-task'. The 'Auto-fetches ETag' hint is helpful but doesn't compensate for the broader contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'taskId' fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline for high schema coverage without adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete') and resource ('a Planner task'), distinguishing it from sibling tools like 'create-task', 'get-task', and 'update-task'. It provides a complete verb+resource combination that leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives like 'update-task' or 'create-task', nor does it mention prerequisites (e.g., needing an existing task ID) or exclusions. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-taskC
Get details of a specific Planner task
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Get details'), which is helpful, but doesn't mention potential error conditions, authentication requirements, rate limits, or what format/details are returned. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what details are returned, potential errors, or how this differs from 'get-task-details'. For a tool in a context with multiple similar siblings and no structured output documentation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'taskId' clearly documented in the schema. The description doesn't add any additional meaning about the parameter beyond implying it's needed for a 'specific' task, which the schema already covers. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and resource ('specific Planner task'), making the purpose immediately understandable. However, it doesn't distinguish this tool from the sibling 'get-task-details' tool, which appears to serve a similar function based on naming alone, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get-task-details' or 'list-tasks'. It mentions retrieving details for a 'specific' task, which implies you need a task ID, but doesn't explicitly state prerequisites or contrast with other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-task-detailsC
Get extended task details including description and checklist
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves information ('Get'), implying a read-only operation, but doesn't disclose behavioral traits such as authentication needs, rate limits, error conditions, or what happens if the taskId is invalid. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the purpose ('Get extended task details') and specifies included data ('description and checklist'). There is no wasted text, making it appropriately sized for its function, though it could be slightly more structured with usage hints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the purpose and data returned but lacks context on usage, behavioral details, or output format. For a read operation with no complex schema, this is acceptable but leaves room for improvement in guiding the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'taskId' documented as 'The task ID'. The description adds no additional meaning beyond this, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('extended task details'), specifying what information is included ('description and checklist'). It distinguishes from the simpler 'get-task' sibling by mentioning 'extended' details. However, it doesn't explicitly contrast with 'update-task-details' or other siblings beyond the verb difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get-task' (which likely returns basic details) or 'list-tasks' (for multiple tasks). The description implies usage for retrieving detailed task information but offers no explicit context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-bucketsC
List all buckets in a Planner plan
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | The Planner plan ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'lists' buckets but doesn't describe what a 'bucket' is in Planner context, whether this is a read-only operation, what permissions are needed, or what the output format looks like. The description provides minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple list operation and front-loads the essential information without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what a 'bucket' is in Planner context, what the return format looks like, or provide any behavioral context. The description leaves too many questions unanswered for proper agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the single parameter 'planId' well-documented in the schema. The description doesn't add any additional parameter semantics beyond what the schema provides, but with complete schema coverage, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all buckets') and resource ('in a Planner plan'), providing specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'list-plans' or 'list-tasks' which also list resources, missing explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'list-plans' and 'list-tasks' available, there's no indication of when buckets should be listed versus other resources, nor any prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-plansB
List all Planner plans accessible to the current user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool lists plans but doesn't disclose behavioral traits such as pagination, rate limits, authentication needs, or response format. For a read operation with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary details. It uses minimal words to convey the essential action and scope, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema) and lack of annotations, the description is incomplete. It doesn't cover behavioral aspects like response format or limitations, which are crucial for a list operation. This leaves gaps in understanding how to effectively use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds no parameter information, which is appropriate here. Baseline is 4 for zero parameters, as no additional semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('Planner plans'), specifying scope as 'all... accessible to the current user'. It distinguishes from siblings like 'list-tasks' and 'list-buckets' by focusing on plans. However, it doesn't explicitly differentiate from potential overlapping tools, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list-tasks' or 'list-buckets', nor does it mention prerequisites or exclusions. It implies usage for retrieving plans but lacks explicit context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-tasksC
List all tasks in a Planner plan
| Name | Required | Description | Default |
|---|---|---|---|
| planId | Yes | The Planner plan ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'List all tasks' implies a read-only operation, the description doesn't specify whether this returns all tasks at once or uses pagination, what format the output takes, whether authentication is required, or any rate limits. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence that directly states the tool's purpose. There's no wasted language or unnecessary elaboration. The structure is front-loaded with the core functionality immediately apparent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficiently complete. For a list operation that likely returns multiple items, the description should address pagination behavior, output format, or at minimum acknowledge these as considerations. The single-sentence description leaves too many operational questions unanswered for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter-specific information beyond what's already in the schema (which has 100% coverage). The schema fully documents the 'planId' parameter with its type and description. The description mentions 'in a Planner plan' which aligns with the parameter but doesn't provide additional context about format, sourcing, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all tasks') and the resource ('in a Planner plan'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'get-task' or 'get-task-details' which also retrieve task information, leaving some ambiguity about when to use this tool versus those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get-task' (retrieves a single task) and 'get-task-details' (likely retrieves detailed information about a specific task), the agent has no indication whether this tool should be used for bulk retrieval versus single-item lookups, or what distinguishes it from other list operations like 'list-buckets' and 'list-plans'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-taskC
Update task properties (title, progress, assignments, categories). Auto-fetches ETag.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID | |
| title | No | New title | |
| percentComplete | No | Progress 0-100 | |
| assignUserId | No | User ID to assign | |
| category | No | Category to apply (category1-category25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'Auto-fetches ETag' which adds some context about implementation details, but doesn't cover critical aspects like required permissions, whether updates are reversible, error handling, or rate limits for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the core functionality. The second sentence about ETag adds implementation detail but could potentially be omitted for pure conciseness. Overall efficient with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens on success/failure, return values, error conditions, or how partial updates work. The ETag mention is helpful but insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description lists the properties that can be updated, which aligns with the schema but doesn't add meaningful semantic context beyond what's already in the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('task properties'), and specifies which properties can be updated (title, progress, assignments, categories). However, it doesn't explicitly differentiate from sibling tools like 'update-task-details' or 'create-task', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'update-task-details' or 'create-task'. It mentions auto-fetching ETag, which hints at a technical requirement but doesn't explain when this tool is appropriate versus other update operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-task-detailsA
Update task description (use for GitHub links). Auto-fetches ETag.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID | |
| description | Yes | Task description (supports markdown, include GitHub URLs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the 'Auto-fetches ETag' behavior, which is useful context beyond basic update functionality. However, it lacks details on permissions, error handling, or response format, leaving gaps for a mutation tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded, using just two phrases that efficiently convey purpose and key behavior. Every word earns its place, with no redundant or unnecessary information, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with no annotations and no output schema, the description is somewhat incomplete. It covers the core purpose and ETag behavior but misses details like response format, error conditions, or side effects. For a 2-parameter update tool, this is minimally adequate but leaves room for improvement in contextual richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('taskId' and 'description'). The description adds minimal value by hinting at GitHub URL support in descriptions, but doesn't provide additional syntax or format details beyond what the schema implies. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('task description'), specifying it's for updating task descriptions with GitHub links. It distinguishes from siblings like 'update-task' (likely general update) and 'get-task-details' (read-only), though not explicitly named. However, it doesn't fully differentiate from 'update-task' which might handle other fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('use for GitHub links'), suggesting this tool is specialized for descriptions with GitHub URLs. It doesn't explicitly state when to use this vs. 'update-task' or other alternatives, nor does it provide exclusions or prerequisites, leaving some ambiguity about its specific role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools are clearly distinct, but 'get-task' and 'get-task-details' could cause confusion as they both retrieve task information. The descriptions help clarify that one gets basic details and the other extended details, but an agent might initially misselect between them.
All tool names follow a consistent verb_noun pattern with hyphens (e.g., create-task, list-tasks). The naming is predictable and readable throughout the set, with no deviations in style.
With 9 tools, this server is well-scoped for managing Microsoft Planner tasks and plans. Each tool serves a clear purpose, such as CRUD operations for tasks and listing plans/buckets, making the count appropriate for the domain.
The tool set provides strong coverage for task management, including create, read, update, and delete operations, plus listing plans and buckets. A minor gap is the lack of tools for managing buckets or plans beyond listing, but agents can still handle core workflows effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Plan Salesforce deploys, open pull requests and trigger pipelines from your AI client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables comprehensive Microsoft To Do task management through Microsoft Graph API with Entra ID OAuth authentication. Supports creating, updating, and managing todo lists, tasks, reminders, and due dates through natural language.
- AlicenseAqualityDmaintenanceEnables work item management in DevOps Plan systems, allowing users to create, retrieve, filter, and delete work items, as well as manage applications, projects, components, and work item types through natural language.1416MIT
- AlicenseAqualityAmaintenanceEnables AI coding agents to read Microsoft Planner and To Do tasks across multiple M365 tenants with proper authentication, and supports optional write operations limited to tasks the agent created.14MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create and manage Microsoft Planner tasks, including comments, subtasks, and bucket operations, via a Node.js MCP server wrapping a Python CLI.113MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vyente-ruffin/microsoft-planner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server