Skip to main content
Glama

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 build

Usage with Claude Code

Add the MCP server to Claude Code:

claude mcp add microsoft-planner-mcp node /path/to/microsoft-planner-mcp/dist/index.js

Or 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-plans

List all Planner plans accessible to the current user

list-buckets

List all buckets in a plan

list-tasks

List all tasks in a Planner plan

get-task

Get details of a specific task

get-task-details

Get extended task details (description, checklist, references)

create-task

Create a new task in a plan

update-task

Update task properties (title, progress, assignments, categories)

update-task-details

Update task description (supports GitHub links)

delete-task

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:

  1. Use list-plans to discover all accessible plans and their IDs

  2. Use list-buckets with your Plan ID to get bucket IDs

  3. Or 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 tools
create-taskC

Create a new task in a Planner plan

ParametersJSON Schema
NameRequiredDescriptionDefault
planIdYesThe plan ID
bucketIdYesThe bucket ID
titleYesTask title

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID to delete

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
planIdYesThe Planner plan ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
planIdYesThe Planner plan ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID
titleNoNew title
percentCompleteNoProgress 0-100
assignUserIdNoUser ID to assign
categoryNoCategory to apply (category1-category25)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe task ID
descriptionYesTask description (supports markdown, include GitHub URLs)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    14
    16
    MIT

Latest Blog Posts

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