Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific resources (tasks, projects, labels, sections) and actions (create, get, update, delete, complete, rename, remove). There is no ambiguity or overlap; for example, todoist_update_task and todoist_update_task_labels are clearly separated for different update operations.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with the prefix 'todoist_' and snake_case throughout. The naming is predictable and readable, such as todoist_create_task, todoist_get_projects, and todoist_update_personal_label, with no deviations in style.

    Tool Count4/5

    With 19 tools, the count is slightly high but reasonable for a comprehensive Todoist integration covering tasks, projects, labels, and sections. It feels well-scoped for the domain, though it borders on being heavy; each tool earns its place by addressing specific operations without redundancy.

    Completeness5/5

    The tool set provides complete CRUD/lifecycle coverage for Todoist's core domain: tasks (create, get, update, delete, complete), projects (create, get, update), labels (personal and shared with create, get, update, delete, rename, remove), and sections (create, get). There are no obvious gaps, and agents can handle full workflows without dead ends.

  • Average 2.9/5 across 19 of 19 tools scored.

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

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • 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.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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates labels but lacks critical details: it doesn't specify whether this is a write operation (implied but not explicit), what permissions are required, if there are rate limits, how errors are handled, or what the return value looks like (no output schema). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose ('Create one or more personal labels in Todoist') with zero wasted words. It's appropriately sized for a tool with a well-documented schema, making it easy for an agent to parse quickly.

    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 (a mutation operation with 5 parameters, no annotations, and no output schema), the description is incomplete. It doesn't address behavioral aspects like authentication needs, error handling, or return values, which are crucial for an agent to invoke it correctly. The high schema coverage helps with parameters, but the overall context for safe and effective use is lacking.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents all 5 parameters, including optionality, data types, and enum values for color. The description adds no parameter-specific information beyond implying batch capability ('one or more'), which is already covered by the 'labels' array parameter in the schema. This meets the baseline of 3 when the schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Create') and resource ('personal labels in Todoist'), specifying it can handle batch operations ('one or more'). It distinguishes from sibling tools like todoist_update_personal_label or todoist_get_personal_labels by focusing on creation. However, it doesn't explicitly differentiate from todoist_create_project or todoist_create_task, which are similar creation operations for different resources.

    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. It doesn't mention prerequisites (e.g., authentication needs), when to use batch vs. single creation, or how it differs from related tools like todoist_update_personal_label for modifications. The agent must infer usage from the tool name and schema alone.

    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?

    With no annotations provided, the description carries full burden but offers minimal behavioral disclosure. It mentions 'nested hierarchies' which hints at parent-child relationships, but doesn't cover important aspects like permissions needed, whether creation is idempotent, error handling, or what happens when parent_name doesn't exist. For a creation tool with zero annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core functionality ('Create one or more projects') and adds key features ('with support for nested hierarchies'). Every word earns its place with no redundancy or unnecessary elaboration.

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

    Completeness2/5

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

    For a creation tool with 6 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, authentication requirements, or how batch operations interact with nested hierarchies. The schema provides parameter details but the description lacks necessary behavioral context.

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

    Parameters3/5

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

    Schema description coverage is 100%, providing comprehensive parameter documentation. The description adds minimal value beyond the schema by mentioning 'nested hierarchies' (relating to parent_id/parent_name) and 'batch operations' (relating to the projects array), but doesn't explain parameter interactions or usage patterns. Baseline 3 is appropriate when schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb ('Create') and resource ('projects'), specifying support for batch operations and nested hierarchies. It distinguishes from siblings like 'todoist_update_project' by focusing on creation rather than modification, but doesn't explicitly contrast with 'todoist_get_projects' for retrieval.

    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 'todoist_update_project' for modifying existing projects or 'todoist_get_projects' for retrieval. The description mentions batch operations and nested hierarchies but doesn't specify when these features are 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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Create one or more sections' but doesn't clarify if this is a write operation (implied), what permissions are required, whether it's idempotent, or what happens on failure (e.g., partial batch creation). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by clearly stating the action and resource, making it easy for an agent to parse quickly.

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

    Completeness2/5

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

    Given the complexity of a mutation tool with batch/single modes and no annotations or output schema, the description is insufficient. It doesn't explain the dual input modes (sections array vs. individual fields), potential side effects, error handling, or return values. This leaves critical gaps for an agent to invoke the tool correctly in varied scenarios.

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

    Parameters3/5

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

    The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond the schema's details about project_id, project_name, name, order, and the sections array. This meets the baseline of 3 where the schema does the heavy lifting, but the description doesn't compensate with extra context like format examples or constraints.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Create') and resource ('sections in Todoist projects'), making the purpose immediately understandable. It distinguishes this tool from siblings like todoist_create_project or todoist_create_task by specifying it creates sections within projects. However, it doesn't specify whether this is for single or batch creation (though the schema clarifies this), keeping it from a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing project), compare it to todoist_get_project_sections for retrieval, or explain why one might choose batch vs. single creation. This leaves the agent without context for tool selection.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates tasks but doesn't mention authentication requirements, rate limits, error handling, or what happens on success (e.g., returns task IDs). For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves operationally.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that front-loads the core purpose ('Create one or more tasks in Todoist') and adds qualifying details ('with full parameter support') without unnecessary elaboration. Every word serves a purpose, making it appropriately concise.

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

    Completeness2/5

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

    For a mutation tool with 18 parameters, no annotations, and no output schema, the description is insufficient. It doesn't cover behavioral aspects like permissions, side effects, or response format, and while the schema documents parameters well, the description fails to compensate for the lack of other structured information. This leaves the agent poorly equipped to use the tool effectively.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents all 18 parameters. The description adds minimal value beyond the schema by mentioning 'full parameter support' and implying batch capability via 'one or more tasks', but doesn't explain parameter interactions (e.g., how 'tasks' array relates to individual field parameters) or provide usage examples. Baseline 3 is appropriate when the schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Create') and resource ('tasks in Todoist'), and specifies it supports 'one or more tasks' with 'full parameter support'. However, it doesn't explicitly differentiate from sibling tools like 'todoist_update_task' or 'todoist_complete_task' beyond the creation aspect.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'todoist_update_task' for modifying existing tasks or 'todoist_get_tasks' for retrieval. It mentions batch operations but doesn't clarify when batch creation is preferred over single-task creation or how to choose between the 'tasks' array parameter and individual field parameters.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive operation, it doesn't specify whether deletion is permanent, reversible, requires specific permissions, or affects associated tasks. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized for a simple deletion operation and front-loads the essential information.

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

    Completeness2/5

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

    For a destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after deletion (success response, error conditions), whether the action affects other entities, or provide any safety warnings. The context demands more completeness for a mutation tool.

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

    Parameters3/5

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

    The description adds no parameter information beyond what's already in the schema (which has 100% coverage). The schema fully documents the single required 'label_id' parameter. Since schema_description_coverage is high, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.

    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 resource ('a personal label from Todoist'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'todoist_delete_task' or 'todoist_remove_shared_labels', which also perform deletion operations on different resources.

    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. It doesn't mention prerequisites (like needing an existing label ID), distinguish from 'todoist_remove_shared_labels' (for shared vs personal labels), or indicate when deletion is appropriate versus updating with 'todoist_update_personal_label'.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. It states the destructive action ('Delete') but doesn't mention whether deletions are permanent or reversible, what happens to subtasks or comments, if there are confirmation prompts, rate limits, or authentication requirements. For a destructive operation with zero annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that states exactly what the tool does with zero wasted words. It's appropriately sized for a straightforward deletion operation and front-loads the core 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?

    For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after deletion (success/failure responses), whether deletions cascade, or important behavioral constraints. Given the complexity of a tool that can delete multiple tasks via different identification methods, more context is needed.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already fully documents all 3 parameters and their relationships (batch vs single operations, ID vs name lookup). The description adds no parameter-specific information beyond what's in the schema, meeting the baseline for high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Delete') and resource ('tasks from Todoist'), making the purpose immediately understandable. It specifies 'one or more tasks' which adds useful scope information. However, it doesn't differentiate this from sibling 'todoist_complete_task' which also removes tasks but in a different way.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'todoist_complete_task' or 'todoist_update_task' with a deleted status. There's no mention of prerequisites, permissions needed, or consequences of deletion versus completion. The agent must infer usage from the name alone.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('Get'), which implies non-destructive behavior, but doesn't cover critical aspects like authentication requirements, error handling (e.g., what happens if the ID is invalid), rate limits, or response format. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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

    Conciseness5/5

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

    The description is a single, clear sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient. Every word earns its place by conveying essential information without redundancy or fluff.

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

    Completeness2/5

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

    For a read tool with no annotations and no output schema, the description is incomplete. It lacks details on authentication, error cases, return values (e.g., label properties returned), and how it differs from sibling tools. While concise, it doesn't provide enough context for an agent to use it effectively without additional assumptions or trial-and-error.

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

    Parameters3/5

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

    Schema description coverage is 100%, with the single parameter 'label_id' documented as 'ID of the label to retrieve'. The description adds no additional semantic context beyond this, such as where to find label IDs or format examples. Given the high schema coverage, a baseline score of 3 is appropriate as the schema handles the parameter documentation adequately.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb ('Get') and resource ('a personal label by ID'), making the purpose immediately understandable. It distinguishes from sibling tools like 'todoist_get_personal_labels' (plural) by specifying retrieval of a single label. However, it doesn't explicitly contrast with other read operations like 'todoist_get_shared_labels' beyond the 'personal' qualifier.

    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. It doesn't mention prerequisites (e.g., needing a valid label ID), compare it to 'todoist_get_personal_labels' for listing all labels, or indicate scenarios where fetching a single label is preferable. Usage is implied but not explicitly stated.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the output takes. The mention of 'optional filtering and hierarchy information' hints at some behavior but lacks crucial operational details for a tool with no output schema.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that immediately communicates the core functionality. Every word earns its place: 'Get projects' establishes the action, 'with optional filtering' indicates parameterization, and 'hierarchy information' specifies additional capabilities. There's no wasted verbiage or redundancy.

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

    Completeness2/5

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

    For a read operation with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'projects' are in this context, what data they contain, how hierarchy information is structured, or what the return format looks like. The agent would need to guess about the output structure and behavioral constraints.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already fully documents all three parameters. The description mentions 'optional filtering' (which maps to project_ids) and 'hierarchy information' (which maps to include_hierarchy and include_sections), adding minimal semantic context beyond what the schema provides. This meets the baseline for high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'Get' and resource 'projects', making the purpose immediately understandable. It specifies optional filtering and hierarchy information, which distinguishes it from simple listing operations. However, it doesn't explicitly differentiate from sibling tools like 'todoist_get_tasks' or 'todoist_get_project_sections', which prevents a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when filtering by project IDs is appropriate versus using other tools, nor does it explain the relationship between this tool and sibling tools like 'todoist_get_tasks' or 'todoist_get_project_sections'. The agent receives no usage context beyond the basic purpose.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Get' implies a read-only operation, the description doesn't clarify whether this requires authentication, how results are returned (e.g., format, pagination), or potential errors (e.g., invalid project IDs). For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

    Conciseness4/5

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

    The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It could be slightly improved by adding a brief note on usage context, but it avoids redundancy and wastes no space, making it easy to parse quickly.

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

    Completeness3/5

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

    Given the tool's moderate complexity (batch operations, optional parameters) and lack of annotations or output schema, the description is minimally adequate. It states what the tool does but doesn't address behavioral aspects like authentication needs, error handling, or return format. For a read operation with no output schema, more detail on expected results would enhance completeness.

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

    Parameters3/5

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

    The input schema has 100% description coverage, thoroughly documenting all parameters (projects, project_id, project_name, include_empty) and their relationships (anyOf logic). The description adds no additional parameter semantics beyond what the schema provides, such as explaining batch operation benefits or clarifying 'include_empty' implications. With high schema coverage, a baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Get sections') and resource ('from one or more projects in Todoist'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'todoist_get_projects' or 'todoist_get_tasks', which would require mentioning that this specifically retrieves sections (subdivisions within projects) rather than projects or tasks themselves.

    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. It doesn't mention sibling tools like 'todoist_get_projects' (which might list projects without sections) or 'todoist_get_tasks' (which retrieves tasks, not sections), nor does it specify prerequisites (e.g., needing existing projects). Without this context, an agent must infer usage from the tool name and parameters alone.

    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?

    With no annotations provided, the description carries the full burden of behavioral disclosure but only states the basic action. It doesn't mention whether this is a read-only operation, if it requires authentication, potential rate limits, error conditions, or the format of returned data (e.g., list of label objects). This leaves significant gaps for a tool that presumably interacts with an external API.

    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, direct sentence with zero wasted words. It's front-loaded with the core purpose and efficiently communicates the essential action without unnecessary elaboration, making it easy for an agent to parse quickly.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns structured data from an external service. It doesn't explain what 'shared labels' entail (e.g., workspace vs. project scope), the response format, or error handling, leaving the agent with insufficient context for reliable use.

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

    Parameters3/5

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

    The description adds no parameter information beyond what the input schema provides, which has 100% coverage for the single parameter 'omit_personal'. Since the schema fully documents this parameter, the baseline score of 3 is appropriate—the description doesn't add value but doesn't need to compensate for 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?

    The description clearly states the verb ('Get') and resource ('all shared labels from Todoist'), making the purpose immediately understandable. It distinguishes from sibling tools like todoist_get_personal_labels by specifying 'shared' labels, though it doesn't explicitly contrast with all 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?

    The description provides no guidance on when to use this tool versus alternatives like todoist_get_personal_labels or todoist_remove_shared_labels. It lacks context about prerequisites, timing, or exclusions, leaving the agent to infer usage from the tool name alone.

    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?

    With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this is a destructive operation (likely yes), what permissions are required, whether labels are removed from all tasks or specific ones, what happens if labels don't exist, or what the response looks like. For a mutation tool with zero annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a straightforward tool and front-loads the essential information.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'remove' means operationally (from which tasks? permanently?), what happens on success/failure, or provide any context about shared labels versus personal labels. The agent would need to guess about important behavioral aspects.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already fully documents both parameters (labels array for batch operations, name for single operation) and their structure. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline for high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Remove') and target ('shared labels from Todoist tasks'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'todoist_rename_shared_labels' or 'todoist_update_task_labels', but the verb 'remove' provides some distinction from other label operations.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'todoist_update_task_labels' (which might add/remove labels) or 'todoist_rename_shared_labels'. There's no mention of prerequisites, constraints, or typical scenarios for removing shared labels versus personal labels.

    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?

    With no annotations provided, the description carries full burden but lacks behavioral details. It states the action ('rename') but doesn't disclose permissions required, whether the operation is destructive (likely yes, as renaming modifies data), error handling, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.

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

    Conciseness5/5

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

    The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without redundancy. It's appropriately sized and front-loaded, making it easy to parse quickly.

    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 (mutation operation with batch/single modes, no annotations, and no output schema), the description is incomplete. It doesn't address behavioral aspects like side effects, return values, or error conditions, leaving significant gaps for an AI agent to understand how to invoke it 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?

    Schema description coverage is 100%, so the schema fully documents the three parameters and their anyOf logic for batch vs. single operations. The description adds no parameter semantics beyond what's in the schema, such as explaining the relationship between 'labels' array and individual 'name'/'new_name' fields. Baseline 3 is appropriate when schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb ('rename') and resource ('shared labels in Todoist'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'todoist_update_personal_label' or 'todoist_remove_shared_labels', which handle similar label operations but for different label types or actions.

    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. It doesn't mention prerequisites (e.g., needing existing shared labels), compare to sibling tools like 'todoist_update_personal_label' for personal labels, or specify scenarios for batch versus single operations. Usage is implied but not explicitly stated.

    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?

    With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states it's an update operation but doesn't disclose permissions needed, whether changes are reversible, error handling for invalid inputs, or what the response contains. For a mutation tool with zero annotation coverage, this is inadequate.

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

    Conciseness5/5

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

    The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and includes the batch operation detail, which is valuable context. Every word earns its place.

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

    Completeness2/5

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

    For a mutation tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens on success/failure, how to handle conflicts, or provide examples. The high schema coverage helps, but behavioral context is critically lacking.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema fully documents all 7 parameters and their constraints. The description adds no additional parameter semantics beyond implying batch capability, which is already covered in the schema's 'labels' array description. Baseline 3 is appropriate when schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Update') and resource ('existing personal labels in Todoist'), and specifies it can handle batch operations ('one or more'). However, it doesn't explicitly differentiate from sibling tools like todoist_rename_shared_labels or todoist_update_task_labels, which also involve label modifications.

    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 todoist_rename_shared_labels or todoist_update_task_labels. The description mentions batch operations but doesn't clarify prerequisites, such as needing existing labels or when to use batch vs single updates.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. 'Update' implies a mutation operation, but the description doesn't specify required permissions, whether changes are reversible, rate limits, error conditions, or what happens when optional fields are omitted. This leaves significant behavioral gaps for a mutation tool.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded with the essential information, making it easy for an agent to parse quickly.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, authentication requirements, or side effects. Given the complexity of batch/single update modes and multiple optional parameters, more context is needed for proper agent usage.

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

    Parameters3/5

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

    The schema has 100% description coverage, providing detailed documentation for all 6 parameters including enums and conditional logic. The description adds no parameter information beyond what's in the schema, so it meets the baseline of 3 where the schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb ('Update') and resource ('one or more projects in Todoist'), making the purpose immediately understandable. It distinguishes from sibling tools like todoist_create_project (creation) and todoist_get_projects (read), though it doesn't explicitly differentiate from todoist_update_task (different 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. It doesn't mention prerequisites (e.g., needing existing projects), when batch vs single updates are appropriate, or how it relates to sibling tools like todoist_update_task or todoist_create_project for project management workflows.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an update operation but doesn't mention authentication requirements, rate limits, error conditions, or what happens when multiple tasks match a 'task_name' search. The phrase 'full parameter support' is vague and doesn't clarify behavioral aspects like whether updates are partial or complete replacements of task data.

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

    Conciseness4/5

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

    The description is a single, efficient sentence that states the core purpose. However, it could be more front-loaded with critical usage information rather than ending with the vague 'full parameter support' phrase. There's no wasted text, but it's arguably too concise given the tool's complexity.

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

    Completeness2/5

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

    For a mutation tool with 18 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the batch versus single-task operation modes, doesn't clarify the relationship between 'tasks' array and individual parameters, and provides no information about return values or error handling. The complexity of the input schema demands more descriptive context.

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

    Parameters3/5

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

    Schema description coverage is 100%, so all parameters are documented in the schema. The description adds minimal value beyond this - 'full parameter support' vaguely suggests comprehensive updatable fields but doesn't provide specific semantic context that isn't already in the schema descriptions. The baseline of 3 is appropriate when the schema does the heavy lifting.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb ('Update') and resource ('tasks in Todoist'), and specifies 'full parameter support' which indicates comprehensive functionality. However, it doesn't distinguish this from sibling tools like 'todoist_update_task_labels' or 'todoist_update_project', which are also update operations on Todoist resources.

    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. There's no mention of when to use batch operations (via 'tasks' array) versus single-task updates, or when to prefer this over more specialized update tools like 'todoist_update_task_labels'. No prerequisites, exclusions, or context for selection are 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?

    With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Update' implies mutation, the description doesn't specify whether this operation overwrites existing labels or adds to them, what permissions are required, whether changes are reversible, or what happens if a task doesn't exist. For a mutation tool with zero annotation coverage, this is insufficient.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized and front-loaded with the essential information.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, how errors are handled, whether the operation is atomic for batch updates, or the relationship between the 'tasks' array parameter and the individual 'task_id'/'task_name' parameters. Given the complexity of the input schema with multiple parameter options, more context is needed.

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

    Parameters3/5

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

    The schema description coverage is 100%, meaning all parameters are documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema. According to the scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter info in the description.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Update') and resource ('labels of one or more tasks in Todoist'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'todoist_update_task' (which presumably updates other task properties), leaving some ambiguity about when to use each.

    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. There's no mention of prerequisites, when to use batch operations vs single task updates, or how this differs from sibling tools like 'todoist_update_task' or 'todoist_remove_shared_labels'.

    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?

    With no annotations provided, the description carries full burden for behavioral disclosure. While 'Mark as complete' implies a mutation, it doesn't specify whether this is reversible, what permissions are required, whether it triggers notifications, or what happens to recurring tasks. The batch capability is mentioned but without details on limits or error handling.

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

    Conciseness5/5

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

    The description is a single, efficient sentence that communicates the core functionality without unnecessary words. It's appropriately sized for a straightforward tool and gets directly to the point with zero wasted text.

    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 mutation tool with no annotations and no output schema, the description is minimally adequate but lacks important context. It doesn't explain what 'complete' means in Todoist's system, whether tasks are archived or deleted, what the return value looks like, or error conditions. The batch capability is mentioned but without operational details.

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

    Parameters3/5

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

    Schema description coverage is 100%, so the schema already fully documents all 3 parameters and their relationships. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score for high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Mark as complete') and resource ('tasks in Todoist'), making the purpose immediately understandable. It specifies 'one or more tasks' which indicates batch capability, but doesn't differentiate from sibling tools like todoist_update_task which might also modify task status.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With siblings like todoist_update_task that might also handle task completion, there's no indication of when to choose this specific completion tool or what makes it distinct from other task modification tools.

    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?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets' data, implying a read-only operation, but doesn't mention any behavioral traits like rate limits, authentication needs, response format, or pagination. For a tool with zero annotation coverage, this is a significant gap.

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

    Conciseness5/5

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

    The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.

    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 no annotations, no output schema, and a simple tool (0 parameters), the description is minimal. It states the purpose but lacks behavioral context (e.g., what data is returned, any constraints). For a tool in a set with many siblings, more guidance would improve completeness.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The description doesn't add parameter semantics, but that's appropriate here, earning a baseline score of 4 for tools with no parameters.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb ('Get') and resource ('all personal labels from Todoist'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'todoist_get_personal_label' (singular) or 'todoist_get_shared_labels', which would be needed for a perfect score.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like 'todoist_get_personal_label' (singular) or 'todoist_get_shared_labels'. The description only states what it does, not when it's appropriate or what distinguishes it from similar tools.

    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?

    No annotations are provided, so the description carries the full burden. It mentions 'handles both single and batch retrieval', which adds some behavioral context, but fails to disclose critical traits like whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior, or error handling. For a tool with 8 parameters and no annotations, this is a significant gap.

    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 is front-loaded with the core purpose. It's efficient with no wasted words, though it could be slightly more structured by explicitly listing key filter types. It earns its place by conveying essential information concisely.

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

    Completeness2/5

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

    Given the complexity (8 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral traits, return format, error cases, or usage scenarios. While the schema covers parameters well, the description doesn't compensate for missing annotations or output schema, making it inadequate for full agent understanding.

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

    Parameters3/5

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

    Schema description coverage is 100%, meaning all parameters are documented in the schema. The description adds minimal value by mentioning 'various filters' and 'both single and batch retrieval', which loosely relates to parameters like 'filter' and 'ids', but doesn't provide additional semantics beyond what the schema already specifies. Baseline 3 is appropriate given high schema coverage.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the action ('Get a list of tasks') and resource ('from Todoist'), and mentions the filtering capability. It distinguishes itself from siblings like todoist_get_projects or todoist_get_personal_labels by focusing on tasks. However, it doesn't explicitly differentiate from todoist_get_personal_labels or todoist_get_shared_labels in terms of resource type beyond the name.

    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 retrieving tasks with filters, including batch retrieval via 'ids', but doesn't specify when to use this versus alternatives like todoist_get_projects for projects or todoist_get_personal_labels for labels. It mentions 'handles both single and batch retrieval' which provides some context, but lacks explicit guidance on scenarios or exclusions.

    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

todoist-mcp-server-extended MCP server

Copy to your README.md:

Score Badge

todoist-mcp-server-extended MCP server

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/HitmanLy007/todoist-mcp-server-extended'

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