Skip to main content
Glama
MAG-Cie

MCP for Microsoft To Do

by MAG-Cie

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.2.2

  • Disambiguation5/5

    Each tool has a clearly distinct purpose, with names that directly indicate their function. Batch operations are clearly separated from single operations, and tools for different resources (tasks, checklist items, linked resources, extensions) are easily distinguishable.

    Naming Consistency5/5

    Tool names consistently follow a verb_noun pattern with underscores, using lowercase. Prefixes like batch_, list_, create_, delete_, update_ are used predictably, making the naming scheme intuitive and easy to navigate.

    Tool Count4/5

    With 28 tools, the server covers a comprehensive set of operations for Microsoft To Do, including batch operations and exports. While a bit on the higher side, the count is justifiable given the domain's complexity and the need to support multiple resource types.

    Completeness4/5

    The tool set covers nearly all core workflows: CRUD for tasks, checklist items, linked resources, and extensions; batch operations; search; export; and summary. Minor gaps include the absence of tools to create, update, or delete task lists themselves.

  • Average 3.4/5 across 28 of 28 tools scored. Lowest: 2.4/5.

    See the Tool Scores section below for per-tool breakdowns.

    • 0 of 1 community issues answered or closed in the last 6 months
    • 0 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 passing
  • 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.json to 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

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description is consistent with annotations (readOnlyHint=true) but adds no additional behavioral details, such as error handling, authentication needs, or the impact of the verbose parameter. Annotations already cover basic safety aspects.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single short sentence, which is concise but omits important details. It is not verbose, but it sacrifices clarity for brevity.

    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?

    The description does not explain what the fetched 'detail' includes, lacks output schema, and fails to differentiate from sibling tools. Given the complexity and no output schema, more context is needed.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is low (33%), and the description does not clarify the purpose of list_id, task_id, or verbose. The phrase 'by ID' is ambiguous and fails to specify which parameter corresponds to the task ID.

    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 ('fetch'), the resource ('task detail'), and the method ('by ID'), which is sufficient for basic understanding. However, it does not explicitly mention the need for both list_id and task_id, which are required parameters.

    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 list_tasks or search_tasks. The description lacks any indication of appropriate contexts or exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations provide idempotentHint=true and readOnlyHint=false, but the description adds no behavioral context beyond 'mark as completed'. No mention of success/failure, side effects, or authentication needs.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Single sentence is concise but under-specified. Could include additional context without being verbose.

    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 and lack of output schema, the description should mention return value, error conditions, or prerequisites. It does not, leaving the agent inadequately informed.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Description does not mention any parameters. Schema description coverage is low (33%), and required parameters list_id and task_id lack descriptions. The verbose parameter is described in schema, but the description adds no value.

    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?

    Description 'Shortcut to mark a task as completed' clearly indicates the tool's purpose of completing a task. However, 'shortcut' is vague and does not specify that it sets task status to completed, nor does it differentiate from similar tools like update_task.

    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 on when to use this tool vs alternatives (e.g., update_task, batch_complete_tasks). The description does not mention 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.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds minimal context beyond stating the action, but does not contradict annotations. It does not disclose side effects, auth needs, or rate limits, which are partially covered by 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence that gets straight to the point. It is concise and front-loaded, but might benefit from slightly more detail without becoming verbose.

    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 has 7 parameters (2 required), no output schema, and a minimal description, the agent lacks sufficient context to understand the full operation, especially parameter roles and expected return format. The description is too sparse for a tool of this complexity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is only 14% (only 'verbose' described). The description does not mention any parameters, leaving the agent with no added meaning for the six undocumented parameters. This is a significant gap given the low 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 ('Attach a linked resource') and target ('to a task'), with an additional hint about resource type (URL or external ref). However, it does not differentiate from sibling tools like list_linked_resources or delete_linked_resource, which would benefit from explicit 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, nor does it mention any prerequisites or context for usage. The agent is left without information about scenarios where this tool is appropriate.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide destructiveHint and idempotentHint. Description adds no additional behavioral context, such as error handling, side effects, or what happens if resource does not exist.

    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?

    Single sentence is concise and front-loaded, but sacrifices necessary detail. Could be considered too terse for the information needed.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given 3 undocumented parameters, a destructive action, and no output schema, the description is far from complete. Lacks context on usage, results, and error conditions.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, yet description does not explain the meaning of list_id, task_id, or resource_id. Parameters are completely opaque.

    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 action 'Delete' and the resource 'linked resource from a task', which is specific and distinguishes it from sibling tools like delete_checklist_item.

    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 information about when to use this tool vs alternatives, no prerequisites or conditions mentioned. Siblings like create_linked_resource exist but no guidance.

    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 provide destructiveHint=true and idempotentHint=true, which the description's mention of 'permanently' aligns with but does not significantly extend. The description adds minimal behavioral context beyond what annotations offer.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is very short (one sentence), which is concise but arguably too minimal. It front-loads the core action but omits useful details about preconditions or results, implying a trade-off between brevity and informativeness.

    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 an output schema and 0% parameter description coverage, the description alone provides insufficient context. Important aspects like success/error behavior, idempotency implications, and required permissions are absent.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has two required parameters (list_id, task_id) with 0% description coverage. The description does not clarify what these parameters represent or their expected format/values, failing to compensate for the schema deficiency.

    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 ('Delete') and the resource ('a task'), with the qualifier 'permanently' indicating irreversibility. This is specific and distinct from sibling tools like 'complete_task' or 'move_task', though it does not explicitly differentiate from 'batch_delete_tasks'.

    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 vs. alternatives like 'batch_delete_tasks' or 'complete_task'. No when-to-use or when-not-to-use context is given.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate readOnlyHint=false and idempotentHint=true. Description adds no extra behavioral context (e.g., effect on omitted fields, permissions needed, rate limits).

    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?

    Single sentence, concise. No wasted words, but could benefit from a bit more structure (e.g., bullet points for key parameters).

    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?

    Complex tool with 14 parameters, nested objects, and no output schema. Description fails to explain behavior on omitted fields, error scenarios, or return value. Incomplete for effective use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is low (29%). Description mentions only a subset of parameters (title, status, recurrence, reminder), ignoring others like importance, due_date, categories. Does not fully compensate for schema gaps.

    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?

    Description clearly states the tool updates an existing task (verb+resource) and lists common fields like title, status, recurrence, reminder. It distinguishes from create/delete/batch siblings.

    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 on when to use this tool vs alternatives like batch_update or complete_task. No 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.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already signal destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds no additional behavioral context (e.g., effect on related entities, error handling). It does not contradict annotations, so a 3 is appropriate.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness3/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single sentence, but it sacrifices necessary detail for brevity. It could be slightly longer to include behavioral notes without becoming verbose.

    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 destructive nature (destructiveHint=true) and lack of output schema, the description should clarify what happens upon deletion (e.g., success behavior, persistence, return value). It omits critical context for safe use.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, and the description provides no explanation for the three required parameters (list_id, task_id, item_id). Without clarification, the agent must infer meanings from parameter names alone, which may be insufficient.

    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 'Delete a sub-item' uses a specific verb and resource, clearly indicating the action. It is distinguishable from sibling tools like delete_task and create_checklist_item, though it could explicitly name 'checklist item' instead of 'sub-item'.

    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 on when to use this tool versus alternatives (e.g., delete_task, batch_delete_tasks). No prerequisites or context for usage are provided, leaving the agent without decision criteria.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior1/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already indicate readOnlyHint and openWorldHint. The description adds no additional behavioral context such as rate limits, result format, or dependencies. It relies solely on 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence that efficiently states the tool's purpose. No unnecessary words.

    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?

    Despite having no output schema, the description does not explain the return format. It omits details about pagination behavior and verbose output, which are only hinted in schema descriptions. For a listing tool with multiple parameters, the description is incomplete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Only 50% of parameters have schema descriptions; the tool description does not explain the undocumented parameters (list_id, task_id). It implicitly ties task_id to the parent task but offers no clarity on list_id. The schema descriptions for verbose and paginate are present but not reinforced.

    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 uses specific verb 'list' and resource 'sub-items (checklist) of a task', clearly distinguishing from sibling tools like create/delete/update checklist items or list tasks.

    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 alternative listing tools (e.g., list_tasks, list_all_tasks). No exclusions or context are given.

    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 indicate non-read, non-destructive write (readOnlyHint=false, destructiveHint=false). The description adds that the tool 'Supports recurrence and reminder,' but does not elaborate on behavioral traits like whether recurrence creates instances, or if reminder sets an alert. This is acceptable but minimal.

    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, concise sentence that delivers the core purpose and two notable features. It is front-loaded with the primary action. However, it lacks any structural elements (e.g., bullet points) that could improve scannability for an agent.

    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 complexity (12 parameters, nested objects, no output schema), the description is incomplete. It does not explain return values (except via verbose parameter), error scenarios, or prerequisites like existing list. The openWorldHint suggests unknown side effects, but the description adds no clarity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With only 33% schema description coverage, the description should compensate. It mentions recurrence and reminder, but fails to explain key parameters like list_id, title, importance, categories, or time_zone. The schema already describes recurrence in detail, but the overall parameter context is insufficient for effective invocation.

    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 'Create a new task in a To Do list,' providing a specific verb and resource. It also mentions support for recurrence and reminder, which hints at additional capabilities. However, it does not explicitly differentiate from sibling tools like 'batch_create_tasks' or 'update_task', which could help the agent choose the right tool.

    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 explicit guidance on when to use this tool versus alternatives (e.g., batch_create_tasks for multiple tasks, update_task for modifications). The description implies use for single task creation, but fails to provide context on when not to use it or mention prerequisites like an existing list.

    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 openWorldHint=true. The description adds no further behavioral context (e.g., pagination behavior is only in parameter descriptions). With annotations covering safety, a 3 is appropriate.

    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?

    A single sentence of 12 words, entirely to the point with no wasted text.

    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?

    Missing information about return format or what exactly a linked resource contains; with no output schema and 4 parameters, the description is too sparse for full understanding.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 50% (list_id and task_id lack descriptions). The tool description adds no parameter-level information to compensate for the undocumented parameters.

    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 verb 'list' and the resource 'linked resources (external URLs, third-party app refs) of a task', distinguishing it from sibling tools like create_linked_resource and delete_linked_resource.

    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 such as list_extensions or search_tasks, nor any exclusions or prerequisites.

    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 openWorldHint=true. Description adds that it lists 'custom JSON metadata' but doesn't disclose additional behavioral traits beyond 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Single sentence, concise and front-loaded. Could be slightly more informative but no wasted words.

    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?

    With no output schema and only partial parameter descriptions, the description is minimal. It doesn't explain return format, pagination behavior, or how to interpret results.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 50% (required parameters list_id and task_id lack descriptions). The description does not add any parameter-specific meaning to compensate for this gap.

    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 verb 'List' and the resource 'open extensions (custom JSON metadata) attached to a task.' It distinguishes from sibling tools like set_extension and delete_extension.

    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 on when to use this tool vs alternatives. No when-to-use or when-not-to-use context is provided.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Only mentions batch HTTP call and limit; does not add behavioral info beyond annotations (destructive, idempotent).

    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?

    Single sentence, front-loaded, no fluff.

    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?

    Adequate for simple tool but missing parameter guidance and behavioral nuance; output schema absent.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    No description of parameters; schema has 50% coverage, but description fails to clarify required 'items' structure.

    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?

    Clear verb 'delete', resource 'tasks', and constraint 'batch up to 100 items' differentiate from siblings like 'delete_task'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Implicitly suggests use for bulk deletion; lacks explicit when-not-to-use but context is clear.

    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 indicate this is not read-only, not destructive, and not idempotent. The description adds no extra behavioral context (e.g., does creation affect task state, any side effects). Adequate but minimal.

    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, front-loaded sentence with no wasted words. However, it is somewhat under-specified, barely above a tautology.

    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?

    With no output schema and 5 parameters (3 required), the description is too sparse. It does not clarify the return format beyond the verbose parameter hint, nor does it explain ordering, error conditions, or relationship to the parent task.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is only 20% (just verbose). The description does not elaborate on parameters like list_id, task_id, display_name, or is_checked, failing to add meaning beyond the schema for the majority of parameters.

    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 verb 'Add' and the resource 'a sub-item (checklist) to a task,' explicitly differentiating it from siblings like create_task and update_checklist_item.

    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 for adding a checklist item but provides no guidance on when to use this tool versus alternatives like delete_checklist_item or batch creation tools. No explicit context or exclusions are given.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide idempotentHint=true and safety info. Description adds that metadata persists in Microsoft Graph, but does not disclose additional behavioral traits beyond annotations. 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Description is two concise sentences, front-loaded with the main action and benefit, with no superfluous information.

    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?

    Despite rich annotations, the description omits parameter details for list_id and task_id. For a tool with 5 parameters, the description is adequate but not fully complete.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Only 60% schema coverage; key parameters list_id and task_id lack descriptions in both schema and description. Description does not compensate for missing parameter meaning.

    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?

    Description clearly states the tool creates or updates an open extension on a task (upsert), specifying verb and resource. It distinguishes from sibling tools like delete_extension and list_extensions.

    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?

    Description implies usage for attaching arbitrary JSON metadata to a task, but does not explicitly mention when to use vs alternatives like list_extensions or delete_extension, nor provide exclusions.

    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 provide idempotentHint and destructiveHint. The description adds the batch call nature and size limit, but does not disclose error behavior or state changes beyond 'completed'. With annotations present, the added value is moderate.

    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 sentence, concise and front-loaded, but could include minimal parameter hints without becoming verbose.

    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?

    For a batch mutation tool with no output schema, the description covers the limit and call type but omits error handling, idempotency details (though annotations cover it), and return format information, leaving some gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 50% description coverage, with 'items' parameter lacking any description. The description does not explain the 'items' or 'verbose' parameters, missing a chance to clarify the required list_id/task_id fields or the output format toggle.

    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 uses the specific verb 'Mark' and resource 'tasks', and clearly states 'several tasks' and 'batch HTTP call', distinguishing it from the sibling 'complete_task' for single tasks and other batch siblings.

    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 for batch operations with a 100-item limit, but does not explicitly state when to use it vs the single-task sibling 'complete_task' or when not to use it. No alternatives are named.

    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 provide destructiveHint and idempotentHint. Description adds 'open extension' specifier but no additional behavioral context beyond annotations.

    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?

    Single sentence, direct, no redundancy. Every word adds value.

    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?

    Missing context: no guidance on how list_id or task_id are used, no return behavior, no error cases. For a destructive tool, description is incomplete without parameter details.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, and description does not explain parameters (list_id, task_id, extension_name). Only mentions 'open extension' implicitly tying to extension_name.

    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?

    Description clearly states it deletes an open extension from a task, effectively distinguishing from sibling tools like set_extension and list_extensions.

    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?

    No explicit guidance on when to use this tool vs alternatives (e.g., delete_task). The purpose is implied but no when-not-to-use or alternatives mentioned.

    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 indicate readOnlyHint=false, destructiveHint=false, idempotentHint=true. Description adds the concrete actions (rename, check/uncheck) but does not disclose additional behavior like error conditions or side effects. This is adequate but not exceptional.

    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 sentence that conveys the core function efficiently. No wasted words, front-loaded with the action.

    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?

    Despite having 6 parameters and no output schema, the description is too brief. It does not explain the effect of omitted optional fields, return format, or behavior on duplicate updates. The annotations add some context, but the description lacks necessary detail for a complex tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With only 17% schema coverage, the description should compensate but only hints at the role of display_name and is_checked via 'rename or check/uncheck'. It does not explain list_id, task_id, item_id, or verbose beyond what the schema provides. The verbose parameter has its own description, but others lack clarity.

    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?

    Description clearly states 'Update a sub-item' with specific examples 'rename or check/uncheck'. It effectively distinguishes this from sibling tools like create_checklist_item, delete_checklist_item, and list_checklist_items.

    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 when to use (to modify a checklist item) but does not explicitly state when not to use or suggest alternatives. No mention of prerequisites or conditions.

    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 openWorldHint. The description adds useful context: it lists all tasks across every list and mentions the OData filter syntax. However, it does not disclose potential limits like pagination or the effect of top_per_list on 'ALL tasks'.

    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 very concise (two sentences), front-loading the purpose and providing a useful OData syntax hint. However, it could be slightly more structured to cover all parameters without becoming verbose.

    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?

    With 4 parameters and no output schema, the description inadequately explains top_per_list and include_completed, and creates ambiguity with 'ALL tasks'. It fails to clarify the output format beyond the verbose parameter's schema description.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Only the verbose parameter has a description in the schema (25% coverage). The description adds OData filter details for category but fails to explain top_per_list and include_completed. Moreover, 'List ALL tasks' contradicts the limiting effect of top_per_list.

    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 verb (list) and resource (tasks), specifies scope (across every list), and provides the OData filter syntax. It distinguishes itself from siblings like list_all_tasks or search_tasks by focusing on category filtering.

    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 when to use (when filtering by category) but does not explicitly mention when not to use or suggest alternatives like list_all_tasks or search_tasks for other filtering needs.

    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 indicate readOnlyHint and openWorldHint. Description adds no extra behavioral context (e.g., no side effects, no rate limits). It does not contradict annotations.

    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?

    Single sentence, front-loaded with key information, no redundant words. Highly efficient.

    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?

    No output schema, but description omits return format details beyond verbose parameter. Functional for a simple list tool, but could mention that result is a list of list objects.

    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?

    Input schema covers both parameters with descriptions. The description does not add meaning beyond the schema, so baseline 3 applies.

    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 verb 'list' and the resource 'all the user's To Do lists', including examples like Tasks, Inbox, custom lists. It distinguishes from sibling tools like list_tasks that handle individual 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/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No explicit guidance on when to use this versus alternatives. However, it is the only tool for listing task lists, so usage is implied. Missing conditions like 'prefer this for overview tasks'.

    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 openWorldHint. The description adds concrete behavioral details beyond annotations, such as pagination 'follows @odata.nextLink up to 20 pages (≈2000 items max)' and verbosity options, which significantly aids agent understanding.

    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 two sentences, starting with the core purpose. It is concise but could be more structured by separating features and parameters. No unnecessary information is present.

    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?

    The description covers core behavior and pagination limits but lacks details on filter syntax, orderby format, and the structure of the return value. With no output schema, the agent must infer the response format, which is a gap given the tool's complexity.

    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 coverage is 33% (only verbose and paginate have descriptions). The description mentions filter, orderby, top, and pagination but does not provide syntax or format details for filter or orderby. It partially compensates for low coverage but leaves gaps.

    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 'List the tasks of a To Do list,' specifying the resource and verb. It mentions supported operations like OData filter, $orderby, $top, and pagination, which distinguishes it from sibling tools like list_all_tasks or list_overdue_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/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for listing tasks from a specific list but does not provide explicit guidance on when to use this tool versus siblings like list_overdue_tasks or search_tasks. No when-not-to-use or alternative recommendations are given.

    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 indicate readOnlyHint=true, and the description adds behavioral details like conversion of recurrence to RRULE and reminders to VALARM. No contradictions; the description enhances transparency beyond annotations.

    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?

    Three sentences efficiently cover the tool's core functionality and important details (format, target apps, conversion specifics). No redundant information; well-structured and front-loaded.

    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?

    Despite clear purpose, the description lacks parameter descriptions and output format details. With no output schema and 3 undocumented parameters, the tool definition is incomplete 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.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, yet the description provides no explanation of the three parameters (list_ids, include_completed, top_per_list). The AI agent must infer their meaning from names alone, which is insufficient.

    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 tool exports tasks to iCalendar format, specifying the MIME type and target applications. It includes details about conversion of recurrence and reminders, making its purpose distinct from sibling tools which focus on CRUD operations.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for exporting tasks to calendar apps but does not explicitly state when to use or avoid this tool. Since there are no sibling export tools, differentiation is not required, but guidance on parameter use is missing.

    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 indicate readOnlyHint and openWorldHint. The description adds that results are aggregated via Promise.all, hinting at parallel requests and potential performance characteristics. It could mention pagination or size limits, but adds value beyond annotations.

    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?

    Two sentences with no filler. The first sentence states purpose and filter, the second adds implementation detail. Front-loaded and efficient.

    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?

    The description is adequate for a simple list tool with annotations, but it lacks explanation of top_per_list and expected output format beyond the verbose parameter's schema description. Missing pagination info.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The description does not explain top_per_list at all, leaving its meaning unclear. verbose is described in the schema, but with schema coverage at 50%, the description should compensate. It does not.

    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 'List ALL overdue tasks' with explicit filter conditions (status ne completed and dueDateTime < today) and scope across every list. This distinguishes it from siblings like list_all_tasks, list_tasks, and search_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/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for retrieving all overdue tasks across all lists. It doesn't explicitly state when not to use or offer alternatives, but the name and filter make context 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?

    The description discloses the 2-phase batch process (GET then PATCH) and partial error handling ('Per-item errors, no global fail'), adding significant behavioral context beyond the annotations. Annotations only indicate idempotency and non-destructive nature.

    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?

    Two sentences with no fluff. The first sentence states the purpose, and the second adds critical process and error details. Every word earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the complexity (batch, 2-phase, error handling, no output schema), the description covers the process and error behavior. It also mentions the verbose flag for output format. Missing minor details like idempotency implications or ordering, but overall sufficient.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is only 25% (only 'verbose' has a description). The description mentions 'add' and 'remove' categories but does not clarify the structure of 'refs' (list_id, task_id) or how add/remove interact. The low coverage demands more detailed parameter explanation.

    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 action (Add/remove categories) on multiple tasks ('several tasks in one operation'), which distinguishes it from siblings like 'update_task' (single task) or 'list_tasks_by_category' (read-only).

    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 for bulk category updates but does not explicitly state when to use versus alternatives or when not to use. It provides context ('add/remove categories on several tasks') but lacks exclusion guidance.

    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?

    Discloses internal use of Graph $batch, default exclusion of completed tasks, and conditional inclusion. Annotations already indicate read-only and open-world; description adds significant behavioral context beyond annotations.

    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?

    Two sentences, no redundancy. First sentence states purpose and internal detail, second provides usage guidance and parameter behavior.

    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?

    Covers main purpose, filter usage, and default behavior. However, misses explanation of top_per_list and output format (no output schema), and does not address when to use versus other list/search siblings.

    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?

    Describes filter as OData and default include_completed behavior, but top_per_list is not explained. Schema coverage is low (25%), so description partially compensates but leaves a gap.

    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?

    Clearly states it fetches every active task across all lists in a single round-trip, distinguishing it from multiple list_tasks calls. The verb 'Fetch' and resource 'every active task across every list' are specific.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly says to use for 'what are all my tasks?' instead of N×list_tasks, and explains default filtering behavior. Does not list all alternatives but provides clear context.

    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 openWorldHint. The description adds value by specifying case-sensitive search and default exclusion of completed tasks, which are not evident from annotations. This enhances the agent's understanding of 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?

    Two concise sentences, front-loaded with key action and scope. Every word adds value—no fluff. The structure efficiently conveys the core function and a key behavioral nuance.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the read-only, open-world annotations and four parameters with no output schema, the description covers essential aspects: search scope, case-sensitivity, default filter. It omits details like default values for top_per_list or return format, but the 'verbose' parameter schema partially covers that. Overall sufficient for an agent to use correctly.

    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 25% description coverage. The description partially compensates by mentioning case-sensitivity (query) and default exclusion (include_completed), but does not describe top_per_list or verbose beyond the schema's own 'verbose' description. More explicit parameter mapping would help.

    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 tool searches a term in task titles across all lists, with specific behavioral details (case-sensitive, default exclude completed). This distinguishes it from sibling tools like list_all_tasks or list_tasks_by_category, which are for listing or filtering, not searching by term.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explains the default behavior (exclude completed) and scope (across all lists), giving agents context on when to use this tool. However, it lacks explicit guidance on when not to use it or direct comparison to alternatives like list_all_tasks or search within a single list.

    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 indicate readOnlyHint=true and openWorldHint=true. Description adds that output is aggregated per list and includes overdue tasks. No contradictions. Brief but sufficient for a read-only summary 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/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with purpose and usage. No extraneous words. Highly efficient.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple tool with two optional parameters, no output schema, and read-only semantics, the description adequately covers purpose and usage. The output format dependency on verbose is noted. More detail on the aggregated structure would be helpful but not necessary.

    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 coverage is 50% (verbose has description, time_zone lacks). Description does not add meaning for time_zone beyond schema's lack of description. For verbose, it clarifies the impact on output format. Does not fully compensate for missing time_zone parameter description.

    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?

    Description clearly states it summarizes tasks due today and overdue, aggregated per list, directly answering the question 'what do I have to do today?'. This distinguishes it from sibling tools like list_all_tasks or list_overdue_tasks which provide raw lists.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly states it is useful for the daily summary question, providing clear usage context. Does not explicitly mention when not to use or alternatives, but the purpose is specific enough.

    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 show readOnlyHint=false and destructiveHint=false, indicating creation. Description adds return format (status/result/error per item in order) and auto-chunking. No contradictions.

    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?

    Three sentences, front-loaded with main action, no redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Covers core issues: what, limits, return format, efficiency. Lacks details on per-item error structure, but sufficient for selection.

    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?

    Schema covers verbose parameter with description. Description adds meaning by explaining return structure related to verbose. Items parameter not detailed in schema but description clarifies batch behavior.

    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?

    Description clearly states it creates tasks in batch via Graph $batch, with limit 100 and auto-chunking. Distinguishes from create_task by highlighting efficiency.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly says more efficient than multiple create_task calls, implying use for multiple tasks. Also specifies constraints (100 items, chunked by 20). Lacks explicit when-not-to-use, but 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?

    The description adds significant behavioral context beyond annotations: it explains the recreate-then-delete mechanism, lists preserved fields, flags unsupported items (checklistItems, linkedResources), and notes that the task ID changes. Contradicts no annotations.

    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?

    Two sentences plus a note, all essential information. No wasted words; front-loaded with the core action.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with no output schema, the description covers key invocation details (parameters, behavior, limitations). It omits return value format (though 'verbose' parameter hints at it), but overall is sufficient for an agent to use correctly.

    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?

    Only one parameter ('verbose') is described in the schema; the three required parameters (source_list_id, task_id, target_list_id) have no descriptions. The tool description indirectly clarifies their roles but does not provide explicit semantics. Schema description coverage is low (25%), but the description partially compensates.

    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 explicitly states the action ('move a task from one list to another') and lists preserved fields, distinguishing it from create/delete pairs and sibling tools like 'create_task' or 'delete_task'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description clearly indicates the tool is for moving tasks between lists, but does not mention when not to use it (e.g., if preserving checklist items is important) or provide explicit alternatives.

    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

MCP for Microsoft To Do MCP server – quality and maintenance score on Glama

Copy to your README.md:

Score Badge

MCP for Microsoft To Do MCP server – quality and maintenance score on Glama

Copy to your README.md:

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/MAG-Cie/mcp-microsoft-todo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server