microsoft-tasks-mcp
Server Quality Checklist
Latest release: v0.7.0
- Disambiguation5/5
Each tool targets a distinct resource or action: Planner plans/buckets/tasks, To Do lists/tasks, cross-source views, search, incremental changes, and authentication. No overlap in purpose.
Naming Consistency5/5All tools follow a consistent verb_noun pattern with underscores (e.g., planner_plan_get, tasks_assigned_to_me, todo_lists), making them predictable for an agent.
Tool Count5/514 tools is well-scoped for a task management server covering two surfaces (Planner and To Do) plus cross-source views and authentication. Each tool earns its place.
Completeness2/5The tool set is almost entirely read-only; no create, update, or delete operations for tasks or lists are provided. This is a significant gap for a task management server, limiting agents to observation only.
Average 4.3/5 across 14 of 14 tools scored. Lowest: 3.6/5.
See the Tool Scores section below for per-tool breakdowns.
- 32 of 33 community issues answered or closed in the last 6 months
- 11 commits in the last 12 weeks
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI is failing
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds value by detailing derived fields (status from percentComplete, web_url from tid claim) and listing all returned fields. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with a clear front-loaded purpose. Although it lists many fields, it remains readable and not overly verbose. Could be slightly more structured, but it is concise enough.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema existing, the description's enumeration of return fields is somewhat redundant but adds clarity. However, it misses crucial context like pagination behavior (limit without continuation token) and how to obtain the required plan_id. This leaves the agent potentially uncertain about full usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains bucket_id and status_filter with valid values and defaults, but does not describe plan_id (how to obtain) or limit (pagination behavior). This leaves gaps for half of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List tasks within a Planner plan,' which is a specific verb+resource combination. It distinguishes from sibling tools like 'planner_task_get' (single task) and 'tasks_assigned_to_me' (personal tasks) by focusing on plan-level tasks, but does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains optional filtering by 'bucket_id' and 'status_filter', but does not provide guidance on when to use this tool versus alternatives like 'tasks_assigned_to_me' or 'planner_task_get'. No explicit when-not or context for choosing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds 'Read-only', confirming the annotations, and notes output shape similarity. No additional behavioral traits (e.g., rate limits, permission requirements) are disclosed, but given strong annotation coverage, the description adds marginal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, contains zero fluff, and conveys essential purpose and relationship. Every word earns its place, and the structure is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, read-only, with output schema and annotations), the description covers the core operation. However, the lack of parameter description and missing usage guidelines or error conditions leaves minor gaps, making it borderline complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter semantics. However, the description only says 'by id' without explaining the parameter name (`list_id`) or its format. The parameter name is self-descriptive, but the description adds no additional meaning beyond the schema field name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'a single Microsoft To Do list by id'. It explicitly distinguishes from sibling `todo_lists` by noting the same shape as an entry from that endpoint, making the tool's unique purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to fetch a single list by ID) but does not provide explicit guidance on when not to use it or mention alternatives beyond the implicit sibling relationship. The phrase 'Same shape as an entry returned by `todo_lists`' offers context but falls short of explicit usage rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds useful behavioral detail: the order_hint follows Microsoft Graph's lexicographic scheme and buckets are pre-ordered. This goes beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one for purpose, one for output fields and a behavioral note. No fluff, each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description doesn't need to explain returns. It covers purpose, key behavior, and parameter context. Missing explicit usage guidance, but overall adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain the parameter. It only mentions 'within a Planner plan', which weakly implies plan_id is a plan identifier. It fails to specify format, source, or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List') and resource ('buckets (columns) within a Planner plan'). It lists key output fields, distinguishing it from sibling tools that list plans or tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by requiring a plan_id, but does not explicitly state when to use this tool over alternatives (e.g., planner_tasks for tasks within buckets). No exclusionary guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds 'Read-only' and shape reference, but no additional behavioral details like auth needs or rate limits. Adequate but minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, 20 words total, no redundancy. Front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with one parameter and an output schema present, the description is reasonably complete. It covers purpose, shape, and read-only nature. Could mention error handling or prerequisites but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (plan_id) with 0% schema description coverage. The description mentions 'by id' but does not explain the format, source, or meaning of the plan_id parameter, leaving the agent with insufficient guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch one Microsoft Planner plan by id' with a specific verb and resource, and distinguishes itself from the sibling tool 'planner_plans' by referencing its shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context ('by id', 'Read-only') and implies usage for fetching a single plan, but does not explicitly state when NOT to use it or list alternative tools beyond planner_plans.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=true. The description adds value by detailing the return fields, default behavior for status_filter, and limit, without contradicting annotations. It could mention pagination or rate limits but is sufficient for a read-only list 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the action and then listing return fields concisely. It could be slightly shorter by omitting obvious field names, but it earns its space by providing context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description's detailed enumeration of return fields adds context. However, it lacks guidance on error handling (e.g., invalid list_id) and performance (e.g., limit implications), which are minor gaps for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains status_filter defaults and limit, but the required parameter list_id is not described as input (only mentioned in return fields). This leaves a gap for agents without schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List tasks in a Microsoft To Do list' with a specific verb and resource, and it distinguishes itself from sibling tools like todo_task_get (single task) and todo_lists (list resources) by detailing the unified envelope and behavior specific to task listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by specifying defaults and filter options, but it does not explicitly state when to use this tool vs alternatives (e.g., for bulk listing vs. individual retrieval), nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses internal behavior (enumerates groups via /me/memberOf, aggregates plans), permission requirements, and read-only nature. Annotations already indicate readOnlyHint and idempotentHint, and description aligns and adds context (fields returned, OAuth app specifics). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each serving a purpose: main action, two behavioral cases, output fields. Efficient but could be slightly tighter (e.g., combine last two sentences).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main behaviors, output fields, and permission context. Has output schema (not shown). Missing details like pagination behavior (limit implies pagination), error handling, or rate limits, but adequate for a list tool with annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
group_id parameter is well-explained (function with vs without). However, limit parameter (default 50) is not described at all, leaving its purpose vague. Schema coverage is 0%, so description partially compensates but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' on resource 'Microsoft Planner plans'. Differentiates behavior with and without group_id. Distinct from sibling tools like planner_plan_get (single plan).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use each parameter (without group_id aggregates across groups, with group_id lists within one). Mentions required permission (Group.Read.All) and that it's pre-granted. However, does not explicitly exclude alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds behavioral context by explaining the extra round-trip for include_details, which goes beyond annotations. However, it does not discuss permissions or rate limits, which is acceptable for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and efficiently conveys key details without redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema documented as same shape as planner_tasks), the description covers the return shape, the optional details behavior, and the read-only nature. No gaps are present for a get-by-id tool with annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains both parameters: task_id is implied by 'by id', and include_details is explicitly described with the additional data it fetches (description, checklist, references, preview_type) and the extra round-trip. This adds significant meaning beyond the schema, which has 0% description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch one Planner task by id', specifying the verb and resource. It distinguishes from sibling tools like planner_tasks which lists tasks, and todo_task_get for Todo tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a task ID, but does not explicitly compare with alternatives like planner_tasks or tasks_search. It mentions include_details option but lacks guidance on when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds valuable context: the search is client-side due to lack of server-side $search, and performance is fine for typical volumes. This goes beyond the annotations and helps set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise, front-loading the core purpose and then adding parameter details and behavioral notes. Every sentence adds value, though it could be slightly shorter. It is well-structured and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, annotations covering safety and idempotency, and the description covering parameters and client-side behavior, the description is fully complete for an agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description details the meaning of each parameter: 'query' is the substring, 'source' narrows to todo/planner/all, 'limit' caps results. This adds necessary semantics beyond the raw schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'case-insensitive substring search' across tasks from To Do and Planner, matching against 'title' and 'body_preview'. It distinguishes itself from sibling tools like 'tasks_assigned_to_me' or 'planner_tasks' by being a search operation, and mentions parameters like 'source' and 'limit'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (search across tasks) and notes it is read-only. It provides context on the client-side implementation and performance expectations. However, it does not explicitly mention when not to use it or list alternative tools, though sibling names are provided separately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description confirms 'Read-only — does not modify anything' and adds useful behavioral details about the data structure (e.g., well-known list names, etag). This additional context justifies a score above 3, though not a 5 because the annotations already cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: first states purpose, second details return fields, third clarifies read-only nature and usage alternative. No fluff; front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, existing output schema, and sibling tool context, the description is fully complete. It covers purpose, behavior, fields, and when to use an alternative. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one optional parameter 'limit' with default 50. The description does not mention this parameter, and schema description coverage is 0%. While the parameter is simple and self-explanatory, the description does not add any meaning beyond the schema, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List the signed-in user's Microsoft To Do lists' with specific verb and resource. It distinguishes from sibling tools like todo_tasks by noting that to list tasks, pass the returned id to todo_tasks. It also enumerates returned fields, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Read-only — does not modify anything' and provides a direct alternative: 'To list tasks within a list, pass the returned id to todo_tasks.' This tells the agent when to use this tool versus its sibling todo_tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond annotations by detailing the polling mechanism, cursor state management, file system interactions, and scope tracking. It explains edge cases like removed entries with null titles and the cursor file location and permissions. Annotations provide readOnlyHint and non-idempotent, which are consistent and supplemented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that front-loads the purpose and then systematically explains behavior, scope options, edge cases, and file details. Every sentence adds value, though a bullet-point structure could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (stateful incremental diff, multiple scope types, file system writes, output envelope format), the description is remarkably complete. It covers all key aspects including removed entry structure, cursor initialization, and security (file mode 0o600). The output schema exists but is not shown; however, the description explains the return format adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The scope parameter is extensively described with three possible kinds (plan, assigned_to_me, registry) and their semantics, including cursor key derivation. The max_results parameter is not mentioned in the description, but it has a default of 200 and is a simple integer. With 0% schema description coverage, the description compensates well for scope but not fully for max_results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it provides an incremental diff of Microsoft Planner tasks since the last call, detailing the output format and scope mechanisms. It clearly distinguishes itself from sibling tools like planner_tasks or tasks_search by focusing on change tracking rather than full listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (for polling incremental changes) and describes first-call vs subsequent-call behavior. It does not explicitly state when not to use it or mention alternatives, but the context of incremental sync is well-established.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: read-only, sorting by due_date, include_completed behavior, best-effort profile handling with _skipped_profiles. Annotations already indicate read-only and idempotence; description enriches with concrete 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but informative. Every sentence adds value, though it could be slightly more concise. It front-loads the core purpose and then details parameters and return format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (two sources, merging, profile handling) and the presence of an output schema (not shown but mentioned), the description covers return format, error handling (_skipped_profiles), and routing hints. It is complete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description bears full burden. It explains include_completed (default false), limit (implicitly), and profiles (fan-out across tenants, best-effort skipping). Each parameter's effect is described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a cross-source view merging Microsoft To Do and Planner tasks, with sorting and source tags. This distinguishes it from sibling tools like todo_tasks and planner_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool for cross-source listing and describes profile fan-out. While it does not explicitly state when not to use it or list alternatives, the context and sibling tool names imply differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds value by explaining the return shape (unified task envelope, same as todo_tasks) and the reason for requiring both IDs, providing transparency beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, each serving a clear purpose: stating the action, explaining parameter necessity, and describing the output. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple get-by-id operation, the description covers all needed context: required parameters, return shape, and API limitation. With annotations and output schema, it is complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description compensates by explaining why both list_id and task_id are required due to API constraints. It adds meaning, though could be more detailed on format or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches one Microsoft To Do task by ID within its list, distinguishing it from sibling tools like todo_tasks by specifying the need for both list_id and task_id. The mention of the API limitation adds clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that both parameters are required and why, implying this tool is for fetching a single task. It could be more explicit about when not to use it (e.g., for listing tasks), but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds further detail: it actively probes the token store and performs at most one /me round-trip to learn the UPN. The pending state behavior and payload fields are fully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive but slightly verbose due to detailed AGENT_INSTRUCTIONS. However, every sentence adds value, and the purpose is clearly stated in the first sentence. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the availability of an output schema (context signal), the description need not explain return values. It fully covers the tool's behavior, states, and agent instructions, making it complete for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100%. According to the rubric, 0 parameters yields a baseline of 4. The description does not need to add parameter information, as there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: return the current sign-in status for Microsoft 365. It enumerates the three possible states and their meanings, and clearly distinguishes from sibling tools like tasks_login_begin by referencing it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool and when to call alternatives: when status is 'none' the agent should call tasks_login_begin, and when 'pending' it should present the verification code and URL. It also clarifies that a signed_in token may exist from prior logins.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior5/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses non-blocking, polling in background, expiry ~15 min, idempotent, and error behavior. Annotations include `idempotentHint=true` and `readOnlyHint=false`, which match. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
Description is comprehensive but somewhat lengthy. However, it is front-loaded with a clear summary and every sentence adds value, including agent instructions and example. Could be slightly more concise but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of OAuth flow and the presence of an output schema, the description covers initiation, polling, parameters, errors, agent actions, and example. It references sibling `tasks_login_status` for follow-up.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions (0% coverage). Description fully explains `account_type` with values 'personal' and 'work_or_school', including implications for URL and functionality. It also explains `force` flag and its effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Drive the OAuth Device Code flow as an MCP tool.' It further explains it initiates login and returns immediately. It differentiates from sibling `tasks_login_status` which polls for completion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (for login), specifies required parameter `account_type` with guidance to ask user if unsure, describes idempotent behavior and `force` flag, and provides agent instructions for presenting the code and URL.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
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/XMV-Solutions-GmbH/microsoft-tasks-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server