Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Tools are clearly separated by action (create, read, update, delete, close, reopen, move) and input method (ID vs. name-based variants like `complete_task_by_name` vs `close_task`). Some overlap exists between name-based and ID-based tools for the same action, which may cause confusion if the agent doesn't check arguments, but descriptions clarify the distinction.

    Naming Consistency5/5

    All tools use a consistent `verb_noun` pattern in snake_case (e.g., `create_task`, `list_projects`, `get_comments`). The `by_name` suffix is uniformly applied to name-based variants. Naming is predictable and easy to navigate.

    Tool Count4/5

    With 28 tools, the count is above average but appropriate for a full-featured Todoist integration. The inclusion of both ID- and name-based variants for key operations slightly inflates the count, but each tool serves a distinct use case for agents that may or may not have IDs.

    Completeness4/5

    The tool surface covers all major Todoist entities (projects, sections, tasks, labels, comments, configuration) and supports core CRUD plus close/reopen/move operations. Minor gaps exist: no delete or update for labels, no update or delete for comments, and no project sharing functionality.

  • Average 3.6/5 across 28 of 28 tools scored. Lowest: 2.6/5.

    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 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?

    With no annotations, the description must convey safety and behavior. It merely says 'Get detailed information' without indicating read-only nature, authentication needs, or potential effects. The agent is left guessing whether this modifies data.

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

    Conciseness2/5

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

    While short, the description is not optimally concise: it repeats schema info in an 'Args' section without adding insights. A single sentence stating purpose and implying a required ID would be more efficient.

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

    Completeness2/5

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

    Given a single parameter and the presence of an output schema, the description still lacks completeness by omitting usage context, behavioral guarantees, and parameter details. It is minimal but insufficient for confident use.

    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 description adds no value to the schema: it simply restates 'ID of the task', which is already clear from the parameter name and type. Since schema coverage is 0%, the description fails to provide examples or valid formats.

    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 ('Get detailed information') and resource ('a single task'), clearly distinguishing it from sibling tools like create_task or get_tasks which serve different purposes.

    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 such as get_tasks or search_task_by_name. The description does not clarify that it retrieves only one task by ID, assuming the agent knows the difference.

    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 provided, and the description does not disclose behavioral traits such as error handling, success indicators, or idempotency. Minimal disclosure beyond the creation action.

    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 concise but lacks a structured summary. It is not verbose, but the two-sentence format with Args list is adequate for a simple tool.

    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 low schema coverage and no annotations, the description is incomplete. It does not explain the output schema, error conditions, or any side effects, leaving the agent underinformed.

    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?

    With 0% schema description coverage, the description simply restates parameter names without adding any meaning (e.g., format of project_id, constraints on name). No additional value beyond the schema.

    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 ('Create a new section') and the resource ('within a project'), distinguishing it from siblings like delete_section or update_section.

    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, no prerequisites mentioned, and no context about project existence or naming conventions.

    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, the description must bear the full burden of behavioral disclosure. It only says 'Close (complete) a task,' failing to mention important traits like whether the action is irreversible, required permissions, or effects if the task is already closed. Lacking such details, the agent has insufficient insight into the tool's consequences.

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

    Conciseness5/5

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

    The description is extremely concise and front-loaded, with a clear one-line purpose statement followed by a brief parameter listing. Every sentence earns its place; there is no superfluous information. For a simple tool, this level of conciseness is ideal.

    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 single parameter and the presence of an output schema (which presumably describes the return value), the description is minimally adequate for a 'close' operation. However, it lacks any error handling, preconditions, or postcondition details. For a straightforward action, this may suffice but leaves room for improvement.

    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 0% description coverage, so the description must compensate. However, it merely restates the parameter name and purpose ('task_id: ID of the task to close') without adding any extra meaning such as format, constraints, or examples. This redundancy does little to enhance understanding beyond the schema's title and type.

    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 tool's purpose: 'Close (complete) a task.' This verb+resource combination is unambiguous. However, it does not explicitly distinguish from the sibling 'complete_task_by_name', which also completes a task but by a different identifier method. The name 'close_task' and the parameter 'task_id' imply completion by ID, but the description lacks an explicit differentiation, preventing a top 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 others, such as 'complete_task_by_name' or 'reopen_task'. It simply states what the tool does without any contextual advice on prerequisites, typical scenarios, or when to avoid using it. This omission significantly hinders correct 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 bears full responsibility for behavioral disclosure. It only states 'Create a new personal label,' omitting details such as whether creation is idempotent, what happens on duplicates, required permissions, or what the response contains. The presence of an output schema partially mitigates the need to describe return values, but other safety and behavioral aspects are missing.

    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 concise and front-loaded with the purpose. It avoids unnecessary verbosity. The Args section is acceptable but adds little beyond the schema; still, overall it is efficient.

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

    Completeness2/5

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

    Given the complexity (simple two-parameter creation), the description is minimal. It lacks guidance on usage context, behavioral traits, and does not leverage the presence of output schema to explain response structure. The sibling list_labels tool suggests a complementary action, but no hint is given. The description is incomplete for optimal agent decision-making.

    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 some value beyond the schema by providing example color values ('berry_red', 'blue', 'charcoal'), which are not enumerated in the schema. However, it does not explain the purpose of the label or the semantics of 'personal,' and the name parameter is merely restated. Given 0% schema description coverage, the description compensates slightly but insufficiently.

    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 'Create a new personal label.' This specifies the action (create) and resource (new personal label), distinguishing it from sister tools like list_labels, create_task, or create_comment. The purpose is immediately clear.

    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. For example, it does not mention that creating a label is appropriate for categorizing tasks, nor does it warn against using it if only existing labels need to be listed. The agent must infer usage from context.

    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, the description carries full burden. It does not disclose idempotency, side effects, return behavior, or error conditions. The existence of an output schema is not utilized in the description.

    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 concise with a clear bullet list. It repeats 'Optional' for two params, but otherwise efficient. Could be more front-loaded with the primary action.

    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?

    Adequately describes parameters for creation. Missing context on error handling, dependencies, and the output structure. While output schema exists, the description does not reference it. Medium 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?

    Despite 0% schema description coverage, the description explains each parameter's meaning, including an optional color with examples and parent_id for sub-projects. This adds significant value over the raw schema.

    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 project' which is a specific verb+resource. It distinguishes from siblings like update_project and delete_project. However, it does not elaborate on the scope or uniqueness of the project.

    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 like update_project or create_task. No prerequisites or conditions (e.g., required permissions, duplicate handling) are 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?

    The term 'Permanently' indicates irreversibility, which is a key behavioral trait. However, with no annotations provided, the description does not fully disclose other aspects like required permissions, cascading effects, or whether the action can be undone.

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

    Conciseness5/5

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

    The description is extremely concise, with a single sentence and an argument list. Every word is purposeful and there is no fluff. It is front-loaded with the core action.

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

    Completeness3/5

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

    For a simple tool with one parameter and an output schema, the description covers the essential fact that deletion is permanent. However, it omits details about return values, side effects, or any prerequisites, leaving the agent somewhat underinformed.

    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 simply repeats the parameter name and type ('ID of the task to delete') without adding meaningful details beyond the input schema's title. Schema coverage is 0%, indicating no descriptions in the schema itself, so the description partially compensates but does not enrich understanding.

    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 'Permanently delete a task' with a specific verb and resource. It is not a tautology, but it does not explicitly differentiate from the sibling 'delete_task_by_name' tool, though it implies deletion by ID.

    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 'delete_task_by_name' or 'close_task'. There is no mention of prerequisites or context for use.

    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, and the description is minimal. It does not disclose behaviors such as pagination, error handling, rate limits, or side effects. For a read-only listing tool, more detail is expected.

    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 concise and front-loaded with the main action. The args section is clearly structured, though it could be slightly more efficient by combining lines.

    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 has an output schema, return values are covered. However, the description lacks common list-tool details like sorting, pagination, or limits, making it adequate but with gaps.

    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?

    Despite 0% schema description coverage, the description adds value by explaining that the project_id parameter is optional and filters results. This goes beyond the schema which only provides a default and type.

    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 that the tool lists sections with optional filtering by project. It distinguishes itself from sibling tools like create_section or update_section, but does not explicitly differentiate from other list tools like list_projects.

    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. There is no mention of when-not-to-use or exclusions, leaving the agent to infer appropriateness 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?

    No annotations provided, so the description carries full burden. It only says 'reopen a previously completed task' without disclosing side effects (e.g., status changes, permissions). Minimal added value beyond the name.

    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?

    Very concise (two sentences), no fluff. However, the structure could be improved by including a return value section or usage hints.

    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 simple tool with one parameter, the description is sparse. It lacks context about return values, error conditions, or when to use it among many sibling tools.

    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 a brief explanation for the single parameter 'task_id' ('ID of the task to reopen'), but schema coverage is 0%, so description must compensate. It does, but minimally.

    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 (reopen) and the resource (task), and specifies it applies to 'previously completed' tasks, distinguishing it from siblings like close_task or complete_task_by_name.

    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., when a task is completed vs not). 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.

  • Behavior2/5

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

    No annotations are provided, so the description must fully disclose behavior. It only lists parameters without mentioning side effects, partial vs full update, auth requirements, or error conditions. 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.

    Conciseness4/5

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

    The description is concise, with a one-line purpose followed by a well-structured Args block. No unnecessary words.

    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 complexity (12 parameters) and existence of output schema, the description covers parameter meanings but omits overall behavior (e.g., partial update, idempotency) and prerequisites. Adequate but not comprehensive.

    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?

    Input schema has 0% description coverage, so the description compensates by explaining each parameter (e.g., 'New due date in natural language' for due_string). However, it could be more precise about constraints like priority range or label format.

    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 'Update an existing task,' which identifies the verb and resource. It distinguishes from siblings like create_task and delete_task, but not explicitly from update_task_by_name, which uses task name instead of ID.

    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 like update_task_by_name. Does not specify prerequisites or context for use.

    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, the description should disclose behavioral traits. It only says 'Update an existing project', implying mutation, but does not explain behavior on missing project, partial updates, idempotency, or return value despite an output schema being present.

    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 concise with no unnecessary words. It front-loads the main action and lists parameters efficiently, though the docstring-style parameter list is somewhat redundant with the schema.

    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 simple update tool, the description covers the basic payload but omits output details, error handling, and behavioral nuances (e.g., overwrite vs. merge). Given the presence of output schema and sibling tools, it is adequate but not thorough.

    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 0%, so the description adds value by listing parameters with brief explanations (e.g., 'New name for the project'). However, it does not specify formats or constraints, providing only basic semantics.

    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 'Update an existing project' using a specific verb and resource, distinguishing it from sibling tools like create_project (create) and delete_project (delete).

    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 such as create_project or delete_project. It does not specify prerequisites or conditions (e.g., project must exist).

    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 renames a section (a mutation), but does not mention any side effects, required permissions, or the structure of the response. The output schema exists but its content is not described.

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

    Conciseness5/5

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

    The description is extremely concise, consisting of a one-line purpose and two parameter definitions. It is front-loaded and contains no unnecessary words or tangents.

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

    Completeness3/5

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

    Given the tool's simplicity (rename with two string parameters) and the existence of an output schema, the description is adequate but lacks context such as prerequisites (e.g., the section must exist) or relationship to sibling tools like create_section. It meets the minimum but misses opportunities to enhance 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?

    Although schema description coverage is 0%, the description adds meaning by labeling section_id as 'ID of the section to update' and name as 'New name for the section.' This clarifies the parameters' roles, but no additional constraints (e.g., format, length) are provided.

    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 'Rename an existing section,' which clearly identifies the action (rename) and the resource (section). This distinguishes it from sibling tools like create_section, delete_section, and list_sections.

    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 when the section does not exist or when other update operations might be needed. No exclusions or prerequisites are mentioned.

    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 provided, so description carries full burden. Only says it retrieves comments, missing details on pagination, ordering, or permissions.

    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?

    Two sentences plus bullet-style args; concise and front-loaded. Could be slightly more structured but efficient.

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

    Completeness2/5

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

    No annotations, no parameter descriptions in schema, and description omits retrieval details (pagination, filtering). Output schema exists but unknown content.

    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%, so description must compensate. It merely restates parameter names as 'ID of the task/project', adding no format or retrieval context.

    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 verb 'Get comments' and resource 'for a task or project', distinguishing it from sibling tools like create_comment or get_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?

    Explicitly states 'Must provide either task_id or project_id', giving a clear usage condition. Lacks explicit contrast with alternatives but inferred.

    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, the description must disclose behavioral traits. It only states the basic action and lists parameters but does not mention side effects (e.g., subtask handling), reversibility, or permission requirements.

    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 relatively short and front-loaded, but the Args block repeats information already in the schema, which could be omitted. Still, it is concise overall.

    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 basic usage but lacks clarity on parameter constraints (e.g., whether project_id, section_id, parent_id are mutually exclusive or optional) and assumes the user knows the implications of moving tasks.

    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 Args block provides descriptions for each parameter, but they are essentially restatements of the parameter names (e.g., 'ID of the task to move'). This adds minimal value beyond the schema titles, especially since schema coverage is 0%.

    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 'Move' and the resource 'task', and lists specific targets (project, section, parent task). It distinguishes from sibling tools like move_task_by_name by focusing on ID-based movement.

    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 mentions 'cross-project task organization' which implies when to use, but it does not explicitly state when not to use or compare to alternatives like move_task_by_name. No prerequisites 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?

    With no annotations, the description must fully disclose behavior. It mentions fuzzy matching and case-insensitivity but omits critical details like whether results are paginated, ordered, or limited. The return format is not described beyond 'returns all tasks', which could imply unbounded results.

    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 concise and front-loaded with the main purpose. The args list is clean. However, the statements about matching are slightly redundant ('partial/fuzzy' vs 'contains'). Overall 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?

    Given the output schema exists, return values need not be detailed. The tool is simple with one parameter. The description covers core functionality, but could mention pagination or limits for completeness. Still, for a basic search, it's adequate.

    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 description adds meaning to the 'query' parameter beyond the schema, specifying it matches against task titles and is case-insensitive. With 0% schema coverage, this is valuable. However, it could further clarify expected format (e.g., no wildcards needed).

    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 it searches tasks by name with partial/fuzzy matching, and specifies it returns all tasks with matching titles. This distinguishes it from sibling tools like get_tasks (likely lists all tasks) and complete_task_by_name (completes a 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 versus alternatives. There is no mention of when not to use it or comparison to other search methods like get_tasks or filtering by other criteria.

    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?

    The description discloses that tasks are moved to the parent project, which is a behavioral trait beyond deletion. However, it does not explicitly state that the deletion is permanent or irreversible, nor mention any required permissions or side effects.

    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 concise with two sentences: one functional statement and one parameter list. No redundant information; front-loaded with the key behavior.

    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 delete operation with one parameter and an output schema available, the description covers the core function and parameter adequately. Minor omission: could mention that deletion is irreversible.

    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 'Args' section provides a brief description for the single parameter ('ID of the section to delete'), adding basic meaning beyond the schema. However, with 0% schema coverage, more detail (e.g., format, source) would improve 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?

    The description clearly states the action 'Delete a section' and its side effect 'move its tasks to the parent project', distinguishing it from siblings like create_section, update_section, and list_sections.

    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, no prerequisites or exclusions provided. The description only states the function without context for selection.

    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?

    With no annotations, the description must disclose behavioral traits. It indicates the tool reads and displays config status, but does not explicitly state it is read-only or discuss side effects. Adequate for a simple status 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?

    Single, front-loaded sentence with no unnecessary words. Every part adds value.

    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 no parameters and an output schema exists, the description is adequate but vague ('etc.'). It could list all returned fields for completeness, but remains functional.

    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?

    No parameters exist, so schema coverage is 100% and baseline is 4. Description adds meaning by listing what the tool shows (token, URL), though no further param details are needed.

    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 a specific verb 'Show' and clearly identifies the resource 'current configuration status' with concrete examples (API token, base URL). It effectively distinguishes from siblings like set_api_token.

    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. The context of reading configuration is implied, but no when-not or sibling differentiation 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?

    No annotations are provided, so the description carries full burden for behavioral transparency. It only states 'Add a comment', a write operation, but does not disclose potential errors, side effects, return format, or behavior when both IDs are provided.

    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 concise, with two sentences and an Args list, all essential. It front-loads the purpose and avoids redundancy, making it efficient for an agent to parse.

    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 tool with an output schema, but it omits usage examples, error handling, and return value details. Given the tool's mutation nature and no annotations, more completeness would improve agent decision-making.

    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?

    With 0% schema coverage, the description adds significant value by listing parameters and explaining the mutual exclusivity of task_id and project_id. It clarifies context beyond the schema, though it lacks details on content format or default values for IDs.

    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 'comment to a task or project', and includes the crucial constraint about providing one of task_id or project_id. It distinguishes itself from sibling tools like get_comments.

    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 specifies when to use the tool (to add a comment) and the prerequisite of providing either task_id or project_id. However, it does not explicitly discuss when not to use it or mention alternative tools for reading comments.

    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?

    Discloses partial matching and multi-match listing, but lacks details on authorization, side effects, or behavior on no match. Adequate for basic understanding but could be more transparent.

    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?

    Concise one-sentence purpose, behavior note, and argument list. No redundant information. 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?

    Covers main behavior (partial match, multi-match handling) and argument roles. With output schema present, return values are not needed. Reasonably complete for a move 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?

    Adds meaning to task_name (partial match) and lists target parameters, but lacks details on optionality, interactions, or constraints. With 0% schema coverage, description partially compensates but not fully.

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

    Purpose5/5

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

    Clearly states verb 'move', resource 'task', and method 'by name'. Distinguishes from siblings like move_task (presumably ID-based) and search_task_by_name (just searches).

    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 mentions partial name matching and listing multiple matches for user choice, guiding when to use this tool. Does not explicitly exclude alternatives 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?

    No annotations provided, so description carries full burden. Discloses partial matching and multi-match listing, but omits behavior for no match, already completed tasks, or side effects. Adequate but incomplete.

    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?

    Description is brief and front-loaded, with two sentences of behavior and an args doc line. The args doc is redundant but not harmful. Every sentence serves a purpose.

    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?

    With an output schema present, the description need not explain return values, but it doesn't mention success confirmation or error handling. For a task completion tool, this is adequate but not rich.

    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?

    Single parameter 'task_name' is described as 'Name/content of the task to find and complete', adding meaning beyond the schema's type-only definition. With 0% schema description coverage, the description compensates well.

    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 completes a task by name search, using partial matching. This distinguishes it from sibling tools like delete_task_by_name, update_task_by_name, and reopen_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?

    Explicitly mentions handling multiple matches by listing them, providing guidance for ambiguous cases. Does not explicitly compare to alternative approaches like completing by ID, but context from sibling tools implies the intended use.

    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 full burden. It indicates a read-like operation but does not disclose safety, authentication needs, or potential limits. The brief statement lacks behavioral details beyond the obvious.

    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 two concise sentences, front-loaded with action. Every word adds value, and there is 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?

    Given no parameters and an output schema, the description is adequate for understanding the tool's purpose and output scope. It could mention inclusion of task counts, which it does, making it fairly complete.

    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?

    With zero parameters and 100% schema coverage, the description does not need to add parameter info. The baseline score of 4 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 it retrieves a comprehensive overview of all projects including sections and task counts, which distinguishes it from sibling tools like list_projects or get_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 suggests using it before organizing tasks, providing clear context. However, it does not explicitly mention when not to use it or alternatives for specific filters.

    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?

    No annotations are provided, so the description carries full burden. It states 'Get all active tasks,' implying a read-only operation. However, it does not disclose potential issues like rate limits, pagination, or whether all tasks are returned in a single response.

    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 concise: two brief sentences followed by a structured Args list. Every sentence adds value, and the information is front-loaded. No redundant or verbose language.

    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?

    The tool has three optional parameters and an output schema (not shown but indicated). The description covers the main behavior and parameter semantics, but lacks details on pagination, sorting, or default behavior for active task filtering. Given the simplicity, this is mostly sufficient.

    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 coverage is 0% (no parameter descriptions in schema). The description compensates by explaining each parameter: project_id as optional project filter, label as optional label name, filter_str as Todoist filter string with examples like 'today' and 'overdue'. This adds meaningful context beyond the bare schema.

    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 'Get all active tasks' with filter options, specifying the verb (get), resource (tasks), and scope (active). This distinguishes it from siblings like close_task or 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 Guidelines3/5

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

    The description mentions filtering options but does not provide explicit guidance on when to use this tool versus alternatives like get_task, search_task_by_name, or list_projects. Some context is implied but not spelled out.

    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?

    Without annotations, the description effectively discloses key behaviors: partial matching and handling of multiple matches. It could mention what happens if no task is found, but for a simple deletion tool this is sufficient.

    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 concise with a clear action verb and a bulleted argument. It could be slightly more structured, but it efficiently conveys the core logic.

    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 one-parameter tool with an output schema, the description covers the main behavioral nuances. It lacks details on error handling but overall is adequate.

    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 parameter 'task_name' gets a brief description ('Name/content of the task to find and delete'), which adds some clarity beyond the schema but is minimal. Given 0% schema coverage, it 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 clearly states the tool deletes a task by name with partial matching. It distinguishes from sibling 'delete_task' which likely uses an ID, making the purpose unambiguous.

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

    Usage Guidelines4/5

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

    Provides clear context: uses partial name matching, lists multiple matches for user selection. However, does not explicitly contrast with 'delete_task' (by ID) or specify when not to use this tool.

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

  • Behavior3/5

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

    No annotations exist, so the description must convey behavioral traits. It states 'List' implying a read-only operation with no side effects, but omits potential details like pagination or limits. It is minimally adequate.

    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, clear sentence with no extraneous words. Every part of the description serves a purpose.

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

    Completeness5/5

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

    For a simple list tool with no parameters and an existing output schema, the description is complete. It tells the agent exactly what the tool does without needing further elaboration.

    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?

    There are no parameters (0 params, 100% schema coverage). The description does not need to add parameter information, and the baseline for zero parameters is 4.

    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 personal labels in the user's Todoist account', leaving no ambiguity about the tool's function. It distinguishes from siblings since no other tool deals with labels.

    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 guidelines on when to use or not use this tool are provided. However, given its simplicity and uniqueness among siblings (only create_label exists), the usage context is implicitly clear.

    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?

    The description discloses that deleting a project also deletes all its tasks, a key behavioral side effect. No annotations exist, so this is helpful for understanding the tool's impact.

    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?

    Very concise: two sentences that front-load the purpose. No wasted words.

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

    Completeness5/5

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

    For a simple delete tool with one parameter and an output schema (likely unused), the description covers the key cascading behavior. Complete enough for its complexity.

    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?

    Only one parameter, project_id, with a brief description in Args. Schema has 0% description coverage, so the description adds value by explaining the parameter's role.

    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 deletes a project and all its tasks, using a specific verb and resource. It distinguishes from sibling tools like delete_task or delete_section.

    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 or not use this tool versus alternatives. The purpose is straightforward, so it's implied, but lacks exclusions or context.

    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?

    No annotations are provided, so the description carries full burden for behavioral traits. It states the return values, but does not explicitly mention that the operation is read-only, whether authentication is required, or any other behavioral constraints. The description is adequate for a simple list tool but could be more explicit.

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

    Conciseness5/5

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

    The description is extremely concise—two short sentences that front-load the purpose and immediately follow with output details. Every word adds value with no redundancy.

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

    Completeness5/5

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

    Given the low complexity (no parameters, simple list operation) and the presence of an output schema, the description is complete. It covers what the tool does and what it returns. No additional context is necessary.

    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 no parameters, and the schema coverage is 100% (empty). The description adds no parameter information because none is needed. Baseline score of 4 applies for zero-parameter tools.

    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 'list' and the resource 'all projects', and additionally mentions the returned fields (names, IDs, colors), making the purpose unambiguous and distinct from sibling tools like create_project or update_project.

    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 provides clear context that this tool is for listing all projects, but does not explicitly state when not to use it or mention alternatives like get_project_overview. However, given the tool's simplicity and lack of parameters, the context is sufficient.

    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?

    With no annotations, the description carries the full burden of behavioral disclosure. It explains each parameter's effect (e.g., due_string for natural language dates, priority scale). However, it does not mention edge cases like invalid project_id or limitiations, so it's slightly incomplete.

    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 efficiently structured with a clear opening statement followed by a labeled list of parameters. Every sentence adds value, and the format makes it easy for an AI to scan.

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

    Completeness5/5

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

    Given the tool's complexity (9 parameters) and the presence of an output schema, the description covers all parameter semantics adequately. It does not need to explain return values as those are in the output schema.

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

    Parameters5/5

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

    Schema description coverage is 0%, so the description must compensate. It explains every parameter's purpose and format (e.g., 'due_string: Optional due date in natural language', 'priority: Priority from 1 (normal) to 4 (urgent)'). This adds substantial meaning beyond the schema's name and type.

    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 'Create a new task in Todoist', specifying the verb (create) and resource (task). This distinguishes it from sibling tools like update_task, delete_task, close_task, etc.

    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 implicitly conveys that this tool is for creating tasks, but it does not provide explicit guidance on when to use it versus alternatives, nor does it mention when not to use it or any prerequisites.

    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 partial matching and multi-match handling. Lacks details on no-match behavior or side effects, but adequate given 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?

    Very concise: purpose in first sentence, then behavior, then args list. No superfluous text.

    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 key aspects for a tool with output schema. Missing edge cases (no match) but sufficient for typical use.

    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?

    With 0% schema description coverage, description adds clear meaning to each param (e.g., due_string as natural language). Could be more precise.

    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 'Update a task' by name, with partial matching. Distinct from siblings like 'update_task' (ID-based) and others.

    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?

    Provides context for use (search by name, partial match, listing multiple). Implicitly excludes ID-based updates, but no explicit when-not-to-use.

    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?

    No annotations are provided, so the description carries full burden. It discloses that the token persists only for the current session, a key behavioral trait. However, it omits details on error cases or side effects.

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

    Conciseness5/5

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

    The description is extremely concise (4 sentences) with no redundant information. It front-loads the purpose and benefit, then adds necessary behavioral and parameter details efficiently.

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

    Completeness5/5

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

    For a simple configuration tool with one parameter and an existing output schema, the description covers all needed aspects: purpose, usage context, parameter source, and session persistence. It is complete.

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

    Parameters5/5

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

    The schema only defines 'token' as a string with no description. The description adds critical value by specifying where to obtain the token ('get from https://...'), making the parameter's meaning and usage clear.

    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 ('Set or update the Todoist API Token at runtime') and the resource ('API Token'), distinguishing it from all sibling tools which deal with tasks, projects, and other entities.

    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 benefit ('switch accounts without restarting') and implies use when needing to change accounts dynamically, but does not explicitly state when not to use or compare with alternatives (there are none).

    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-helper MCP server

Copy to your README.md:

Score Badge

todoist-mcp-helper 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/LittlePeter52012/todoist-mcp-helper'

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