Skip to main content
Glama
vitalio-sh

Enhanced Todoist MCP Server Extended

by vitalio-sh

Enhanced Todoist MCP Server Extended

Extended Version - Forked and enhanced by kydycode from the original @abhiz123/todoist-mcp-server

A comprehensive MCP (Model Context Protocol) server implementation that provides full integration between Claude and Todoist. This extended version includes additional features, improved compatibility, and enhanced functionality using the complete Todoist API with the latest MCP SDK (@doist/todoist-api-typescript@4.0.4). Completed tasks retrieval uses the Todoist REST API v1.

šŸ†• Extended Version Features

šŸ”§ Technical Improvements

  • Updated Todoist SDK: Now using @doist/todoist-api-typescript@4.0.4.

  • Updated MCP SDK Compatibility: Compatible with MCP SDK 0.5.0.

  • Enhanced Error Handling: Comprehensive error handling with detailed error messages.

  • Improved TypeScript Support: Better type safety and compatibility.

  • Optimized API Usage: Efficient use of Todoist API, including getTasksByFilter for robust search and moveTasks for semantic task movement.

  • Better Response Formatting: Enhanced task, project, and label formatting for better readability, including project names in search results.

✨ Enhanced Task Management (11 Tools)

  • Direct ID-based Operations: Efficient task operations using task IDs.

  • Comprehensive Task Creation: Support for subtasks, labels, projects, sections, priorities.

  • Quick Add Integration: Natural language task creation using Todoist's Quick Add.

  • Advanced Task Search: Robust keyword search using Todoist's filter engine (search: your query).

  • Task Movement Capabilities: Move tasks between projects, sections, or make them subtasks.

  • Bulk Task Operations: Move multiple tasks with subtasks in a single operation.

  • Task State Management: Complete, reopen, and manage task lifecycle.

  • Detailed Task Output: Search and get-task operations return more task details.

šŸ—‚ļø Complete Project Management (5 Tools)

  • Full Project CRUD: Create, read, update, delete projects with all properties.

  • Sub-project Support: Create hierarchical project structures.

  • Project Customization: Set colors, favorites, view styles (list/board).

  • Enhanced Project Listing: Improved project retrieval with pagination and detailed formatting.

šŸ“‹ Section Management (4 Tools)

  • Complete Section Operations: Create, read, update, delete sections.

  • Project-specific Sections: Filter and manage sections within projects.

  • Section Organization: Proper ordering and structure management.

šŸ·ļø Label Management (5 Tools)

  • Full Label CRUD: Create, read, update, delete labels.

  • Label Customization: Set names, colors, favorites, order.

  • Paginated Label Listing: Efficiently retrieve all labels.

šŸ’¬ Comment Management (5 Tools)

  • Complete Comment CRUD: Create, read, update, delete comments on tasks and projects.

  • Attachment Support: Add file attachments to comments with metadata.

  • Flexible Targeting: Comments can be attached to either tasks or projects.

  • Paginated Comment Retrieval: Efficiently browse through comment threads.

āœ… Completed Tasks History (1 Tool) šŸ†•

  • REST API v1 Integration: Access completed task history via Todoist API v1 (/api/v1/tasks/completed/by_completion_date). Migrated from deprecated Sync API v9.

  • Flexible Filtering: Filter by project, section, date range (since/until).

  • Cursor-based Pagination: Efficient retrieval of large histories.

  • Rich Metadata: Shows labels, priorities, descriptions, note counts, completion timestamps.

Related MCP server: Todoist MCP Server

šŸ› ļø Available Tools (Total 31)

Task Operations (11 tools)

Tool

Description

todoist_create_task

Create tasks with full options (subtasks, labels, projects, sections, priorities).

todoist_quick_add_task

Natural language task creation using Todoist's Quick Add syntax.

todoist_get_tasks

Retrieve tasks with filtering (project, section, parent, label, IDs) and pagination.

todoist_get_task

Get a specific task by its ID, with detailed information.

todoist_update_task

Update task properties (content, description, due date, priority, labels).

todoist_delete_task

Delete task by ID.

todoist_complete_task

Mark task complete.

todoist_reopen_task

Reopen completed task.

todoist_search_tasks

Search tasks using Todoist's filter engine (e.g., search: keyword).

todoist_move_task

Move a task to a different project, section, or make it a subtask.

todoist_bulk_move_tasks

Move multiple tasks with their subtasks to a project, section, or parent task.

Project Operations (5 tools)

Tool

Description

todoist_get_projects

List all active projects with pagination support.

todoist_get_project

Get a specific project by its ID.

todoist_create_project

Create new project (name, color, favorite, view style, sub-projects).

todoist_update_project

Update project properties.

todoist_delete_project

Delete project by ID.

Section Operations (4 tools)

Tool

Description

todoist_get_sections

List sections (all sections or project-specific).

todoist_create_section

Create section in project (name, project, ordering).

todoist_update_section

Update section name.

todoist_delete_section

Delete section by ID.

Label Operations (5 tools)

Tool

Description

todoist_create_label

Create a new label (name, color, favorite, order).

todoist_get_label

Get a specific label by its ID.

todoist_get_labels

List all labels with pagination support.

todoist_update_label

Update an existing label by its ID (name, color, favorite, order).

todoist_delete_label

Delete a label by its ID.

Comment Operations (5 tools)

Tool

Description

todoist_create_comment

Create a new comment on a task or project (with attachments).

todoist_get_comment

Get a specific comment by its ID.

todoist_get_comments

Get comments for a task or project with pagination support.

todoist_update_comment

Update an existing comment by its ID.

todoist_delete_comment

Delete a comment by its ID.

Completed Tasks Operations (1 tool) šŸ†•

Tool

Description

todoist_get_completed_tasks

Get completed tasks history with filtering by project, section, date range (since/until required), and cursor-based pagination. Uses Todoist REST API v1.

šŸš€ Installation & Setup

Local Development Setup

# Clone the extended repository
git clone https://github.com/kydycode/todoist-mcp-server-ext.git
cd todoist-mcp-server-ext

# Install dependencies
npm install

# Build the project
npm run build

Getting a Todoist API Token

  1. Log in to your Todoist account

  2. Navigate to Settings → Integrations → Developer

  3. Copy your API token

Usage with Claude Desktop

Add to your claude_desktop_config.json:

Option 1: Run locally built version

{
  "mcpServers": {
    "todoist-mcp-server": {
      "command": "node",
      "args": ["/path/to/your/todoist-mcp-server-ext/dist/index.js"],
      "env": {
        "TODOIST_API_TOKEN": "your_api_token_here"
      }
    }
  }
}
{
  "mcpServers": {
    "todoist-mcp-server": {
      "command": "npx",
      "args": ["-y", "@kydycode/todoist-mcp-server-ext@latest"],
      "env": {
        "TODOIST_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Option 3: Install globally first

# Install the extended version globally
npm install -g @kydycode/todoist-mcp-server-ext@latest

# Then use in Claude Desktop config
{
  "mcpServers": {
    "todoist-mcp-server": {
      "command": "todoist-mcp-server-ext",
      "env": {
        "TODOIST_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

šŸ“– Usage Examples

šŸŽÆ Advanced Task Creation & Management

"Create task 'Team Meeting @Tomorrow #Work p1'"
"Add task 'Fix critical bug +KydyCode @DevProject L:Urgent L:Backend'"
"Quick add: 'Buy milk tomorrow at 2pm #shopping !p1'"
"Move task with ID {task_id} to project {project_id}"
"Search tasks: search: API deployment"

šŸ—‚ļø Project, Section, Label, and Comment Management

"List all my projects"
"Create project 'Q2 Planning' color:blue favorite:true view:board"
"Get sections for project {project_id}"
"Create label 'HighPriority' color:red isFavorite:true"
"List all labels"
"Add comment 'Great progress on this task!' to task {task_id}"
"Get all comments for project {project_id}"
"Update comment {comment_id} with new content"

āœ… Completed Tasks History šŸ†•

"Get completed tasks between 2024-01-01 and 2024-01-31"
"Show tasks completed since 2024-01-01 until today"
"Get completed tasks from project {project_id} since 2024-01-01 until 2024-12-31"
"Show last week's completed tasks"

šŸ†š Extended vs Original Comparison

Feature

Original

Extended Version (@kydycode/todoist-mcp-server-ext)

Todoist SDK Version

Older

āœ… @doist/todoist-api-typescript@4.0.4

MCP SDK Compatibility

Older version

āœ… Latest MCP SDK 0.5.0+

Error Handling

Basic

āœ… Comprehensive with detailed messages

TypeScript Support

Limited

āœ… Full type safety

Task Operations

Search-based, limited features

āœ… 11 Tools: Direct ID-based, moveTasks, bulk move, robust search, QuickAdd, full CRUD-like ops

Project Management

Limited

āœ… 5 Tools: Full CRUD operations, sub-projects, pagination

Section Management

Basic

āœ… 4 Tools: Complete section operations

Label Management

Not Available

āœ… 5 Tools: Full CRUD operations, pagination

Comment Management

Not Available

āœ… 5 Tools: Full CRUD operations, attachments, pagination

Completed Tasks History

Not Available

āœ… 1 Tool: REST API v1 integration, date filtering, cursor pagination

API Parameter Handling

Inconsistent

āœ… Proper parameter validation

Response Formatting

Basic

āœ… Enhanced readability, more details

Build System

Issues

āœ… Clean compilation

Search Functionality

Basic local filter

āœ… Robust getTasksByFilter (Todoist engine)

šŸ”§ Development

Project Structure

src/
ā”œā”€ā”€ index.ts          # Main server implementation with all tools
package.json      # Dependencies and scripts
tsconfig.json     # TypeScript configuration
README.md         # This file
local-instructions.md # Personal publishing guide
LICENSE
.gitignore
dist/             # Compiled JavaScript output (after `npm run build`)
    ā”œā”€ā”€ index.js
    └── index.d.ts

Building from Source

# Install dependencies
npm install

# Build TypeScript
npm run build

# Test the server (requires TODOIST_API_TOKEN)
# Example: Set token and pipe a list tools request
export TODOIST_API_TOKEN="your_actual_todoist_api_token"
echo '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}' | node dist/index.js

Development Scripts

npm run build     # Compile TypeScript and make output executable
npm run watch     # Watch for changes and rebuild (doesn't make output executable)
npm run prepare   # Pre-publish build (runs build)

šŸ¤ Contributing

Contributions are welcome! This extended version accepts contributions for:

  • Additional Todoist API endpoints

  • Enhanced error handling and validation

  • Performance optimizations

  • Documentation improvements

  • Bug fixes and compatibility updates

Please submit issues and pull requests to the extended repository.

šŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

šŸ™ Credits

šŸ› Issues and Support

Available Tools

30 tools
todoist_bulk_move_tasksA

Move multiple tasks (and their respective subtasks, if any; e.g., up to 10-20 parent tasks for best performance) to a different project, section, or make them subtasks of another task. Provide an array of taskIds and exactly one destination (projectId, sectionId, or parentId).

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdsYesAn array of task IDs to move.
projectIdNoThe ID of the destination project. (Optional, use only one of projectId, sectionId, parentId)
sectionIdNoThe ID of the destination section. (Optional, use only one of projectId, sectionId, parentId)
parentIdNoThe ID of the parent task to move these tasks under. (Optional, use only one of projectId, sectionId, parentId)

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool moves tasks and subtasks, includes a performance hint (10-20 parent tasks), and specifies the exclusive nature of destination parameters. However, it lacks details on permissions, error handling, or what happens to task metadata during the move, which are important 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 front-loaded with the core action, followed by important details (subtasks, performance, parameter constraints) in a single, efficient sentence. Every part earns its place without redundancy.

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 annotations and no output schema, the description is moderately complete for a mutation tool. It covers the action, parameters, and a performance note, but lacks information on return values, error cases, or side effects, which would be helpful for full contextual understanding.

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 schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying that exactly one destination parameter must be provided (projectId, sectionId, or parentId), which reinforces but goes beyond the schema's optional notes. It also mentions subtasks are included, which contextualizes the taskIds parameter.

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

Purpose5/5

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

The description clearly states the specific action ('move multiple tasks'), the resource ('tasks'), and scope ('and their respective subtasks'), distinguishing it from the sibling 'todoist_move_task' which presumably handles single tasks. It provides a comprehensive understanding of what the tool does.

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

Usage Guidelines4/5

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

The description provides clear context for usage by specifying the destination options (project, section, or parent task) and the performance recommendation (10-20 parent tasks). However, it does not explicitly state when to use this tool versus the sibling 'todoist_move_task' or other alternatives, which is a minor gap.

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

todoist_complete_taskC

Mark a task as complete by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe ID of the task to complete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('Mark as complete') which implies a mutation, but doesn't address critical aspects like whether this requires authentication, what happens if the task is already complete, if completion is reversible, or what the response looks like. 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 gets straight to the point with zero wasted words. It's front-loaded with the core action and resource, making it immediately scannable and understandable without any structural 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 mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address authentication requirements, error conditions (e.g., invalid task ID), what happens upon completion (e.g., task archiving), or return values. The agent would need to guess about these critical operational 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?

The schema description coverage is 100%, with the single parameter 'taskId' fully documented in the schema as 'The ID of the task to complete'. The description doesn't add any additional semantic context beyond what's already in the schema, so it meets the baseline for adequate but unenhanced parameter documentation.

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 ('task by its ID'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'todoist_reopen_task' or 'todoist_update_task' which could also modify task status, leaving some ambiguity about when this specific tool is the right choice.

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_reopen_task' (for undoing completion) or 'todoist_update_task' (which might also handle status changes). There's no mention of prerequisites (e.g., task must exist and be incomplete) or contextual cues for selection, leaving the agent to 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.

todoist_create_commentC

Create a new comment on a task or project

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content/text of the comment
taskIdNoTask ID to add comment to (provide either taskId or projectId, not both)
projectIdNoProject ID to add comment to (provide either taskId or projectId, not both)
attachmentNoOptional file attachment (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool creates a comment, implying a write/mutation operation, but doesn't cover permissions, rate limits, side effects (e.g., notifications), or response format. This is a significant gap 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 that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, 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 (mutation tool with 4 parameters and nested objects), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like permissions or side effects, nor does it explain return values or error conditions, leaving critical gaps for agent usage.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters (content, taskId, projectId, attachment) with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema, but the baseline is 3 when schema coverage is high.

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

Purpose4/5

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

The description clearly states the action ('Create a new comment') and the target resources ('on a task or project'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like todoist_update_comment or todoist_delete_comment, though the verb 'Create' implies distinction from update/delete 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. It doesn't mention prerequisites (e.g., needing an existing task/project), exclusions, or comparisons to related tools like todoist_update_comment or todoist_get_comments, leaving the agent without contextual usage cues.

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

todoist_create_labelC

Create a new label.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the label.
colorNoLabel color name or code (e.g., 'berry_red', '#FF0000') (optional).
isFavoriteNoWhether the label should be a favorite (optional).
orderNoThe order of the label in the list (optional).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Create a new label,' which implies a write operation, but doesn't disclose any behavioral traits such as authentication requirements, rate limits, error conditions, or what happens on success (e.g., returns a label ID). 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 ('Create a new label.') that is front-loaded and wastes no words. Every part of the sentence directly contributes to understanding the tool's purpose, making it appropriately concise for a simple creation 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 the complexity of a mutation tool (creating a label) with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a label object or ID), any side effects, or error handling. For a tool that modifies data, this lack of context makes it inadequate for safe and effective use by an AI agent.

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

Parameters3/5

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

The description adds no parameter information beyond what's already in the schema, which has 100% coverage with clear descriptions for all four parameters (name, color, isFavorite, order). Since schema_description_coverage is high, the baseline score is 3, as the schema adequately documents parameters without needing additional details 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 ('Create') and resource ('a new label'), making the purpose immediately understandable. It distinguishes from siblings like todoist_update_label or todoist_delete_label by specifying creation rather than modification or deletion. However, it doesn't explicitly differentiate from other creation tools like todoist_create_project or todoist_create_task, which would require mentioning it's specifically for labels.

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 Todoist account), when to choose this over updating an existing label, or how it relates to sibling tools like todoist_get_labels for listing labels. Without such context, the agent must 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.

todoist_create_projectC

Create a new project

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the project
parentIdNoParent project ID for creating a sub-project (optional)
colorNoProject color (optional)
isFavoriteNoWhether to mark as favorite (optional)
viewStyleNoProject view style: 'list' or 'board' (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. 'Create a new project' implies a write/mutation operation but doesn't specify permissions needed, whether it's idempotent, what happens on duplicate names, or what the response contains. 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 states the core purpose without any wasted words. It's appropriately sized for a simple creation operation and gets straight to the point.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after creation, what permissions are required, or how to handle errors. Given the complexity of creating a project with multiple optional parameters, more context about the operation's behavior 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 all parameters are documented in the schema. The description adds no additional parameter information beyond what's already in the structured schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param 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 'Create a new project' clearly states the verb ('Create') and resource ('project'), making the purpose immediately understandable. However, it doesn't differentiate this from sibling tools like 'todoist_create_task' or 'todoist_create_label', which follow the same pattern 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. With siblings like 'todoist_update_project' and 'todoist_get_projects', there's no indication of when creation is appropriate versus retrieval or modification. No prerequisites or exclusions are mentioned.

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

todoist_create_sectionC

Create a new section in a project

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the section
projectIdYesThe project ID where the section will be created
orderNoOrder of the section (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a section but doesn't mention any behavioral traits such as permissions required, whether it's idempotent, error conditions, or what happens on success (e.g., returns a section ID). This leaves significant 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 directly states the tool's purpose without any 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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a section object or ID), error handling, or side effects, which are critical for an agent to use it correctly in a Todoist 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?

The input schema has 100% description coverage, with clear documentation for all three parameters (name, projectId, order). The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline score of 3 for adequate but not enhanced parameter 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 the action ('Create') and resource ('new section in a project'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'todoist_create_project' or 'todoist_create_task', which would require mentioning it's specifically for organizing tasks within projects rather than creating 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 prerequisites (e.g., needing an existing project), exclusions, or comparisons to siblings like 'todoist_update_section' or 'todoist_get_sections', leaving the agent to infer usage context solely from the tool name and schema.

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

todoist_create_taskC

Create a new task in Todoist with comprehensive options including subtasks

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content/title of the task
descriptionNoDetailed description of the task (optional)
projectIdNoProject ID to create the task in (optional)
sectionIdNoSection ID to create the task in (optional)
parentIdNoParent task ID to create this as a subtask (optional)
dueStringNoNatural language due date like 'tomorrow', 'next Monday', 'Jan 23' (optional)
priorityNoTask priority from 1 (normal) to 4 (urgent) (optional)
labelsNoArray of label names to assign to the task (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Create a new task' which implies a write/mutation operation, but doesn't disclose behavioral traits like authentication requirements, rate limits, error conditions, or what happens on success (e.g., returns a task ID). For a mutation 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 that front-loads the core action ('Create a new task') and adds a useful qualifier ('with comprehensive options including subtasks'). 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?

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a task object or ID), error handling, or side effects. For a tool with 8 parameters and significant functionality, more context is needed to guide effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value by mentioning 'comprehensive options including subtasks', which hints at the 'parentId' parameter but doesn't provide additional semantics beyond what's in the schema. 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 ('new task in Todoist'), and mentions 'comprehensive options including subtasks' which adds specificity. However, it doesn't explicitly differentiate from sibling tools like 'todoist_quick_add_task' or 'todoist_update_task', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'todoist_quick_add_task' (which might be for simpler tasks) or 'todoist_update_task' (for modifications). There's no mention of prerequisites, constraints, or typical use cases beyond the basic action.

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

todoist_delete_commentC

Delete a comment by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
commentIdYesThe ID of the comment to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool deletes a comment, implying a destructive mutation, but lacks critical details: whether deletion is permanent, if it requires specific permissions, what happens on success/failure, or any rate limits. This leaves significant gaps for safe and effective use.

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, making it highly efficient and front-loaded. Every word ('Delete a comment by its ID') contributes essential information, achieving optimal conciseness 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 the tool's destructive nature (implied by 'Delete'), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral risks, response format, or error handling, which are crucial for a mutation tool. The high schema coverage doesn't compensate for these omissions in 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?

The schema description coverage is 100%, with the single parameter 'commentId' fully documented in the schema as 'The ID of the comment to delete'. The description adds no additional semantic context beyond what the schema provides, such as format examples or sourcing instructions, so it meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Delete') and target resource ('a comment by its ID'), making the purpose immediately understandable. It distinguishes from siblings like todoist_update_comment (which modifies) and todoist_get_comment (which retrieves), though it doesn't explicitly mention these alternatives in the description itself.

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. The description doesn't mention prerequisites (e.g., needing the comment ID from todoist_get_comment or todoist_get_comments first), nor does it clarify if deletion is permanent or reversible, leaving the agent to infer usage from context alone.

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

todoist_delete_labelB

Delete a label by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelIdYesThe ID of the label to delete.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It states the action is 'Delete,' which implies a destructive mutation, but doesn't specify whether deletion is permanent, reversible, requires specific permissions, or affects associated tasks. For a destructive 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, direct sentence with zero wasted words. It front-loads the core action ('Delete') and resource, making it highly efficient. Every word earns its place, adhering perfectly to conciseness principles.

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 this is a destructive mutation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like side effects, error conditions, or return values. For a tool that permanently removes data, more context is needed to ensure safe and correct usage.

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 minimal semantics beyond the input schema, which has 100% coverage and clearly describes the single parameter 'labelId.' However, with only one parameter and high schema coverage, the baseline is strong. The description reinforces the parameter's purpose but doesn't provide additional context like format examples or validation rules.

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 label by its ID'), making the purpose immediately understandable. It doesn't explicitly distinguish from sibling tools like todoist_delete_project or todoist_delete_task, but the specificity of 'label' provides adequate differentiation. This is clear but lacks explicit sibling comparison.

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), consequences of deletion, or when to choose this over other deletion tools like todoist_delete_project. Without such context, 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.

todoist_delete_projectC

Delete a project by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe ID of the project to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Delete' implies a destructive mutation, it doesn't specify whether this action is reversible, what permissions are required, whether it affects child resources (tasks/sections), or what happens on success/failure. This is inadequate for a destructive operation.

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 wasted words. It's front-loaded with the core action and resource, making it immediately scannable and understandable.

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 deletion tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens to associated tasks/comments, whether deletion is permanent, what the response looks like, or error conditions. Given the complexity and risk of deletion, 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 description mentions 'by its ID' which aligns with the single parameter 'projectId'. Since schema description coverage is 100% (the schema already documents 'The ID of the project to delete'), the description adds minimal value beyond what's in the structured schema. 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 'Delete a project by its ID' clearly states the verb (delete) and resource (project), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like todoist_delete_task or todoist_delete_section, but the resource specificity (project) provides implicit distinction.

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., project must exist), consequences (e.g., tasks within the project might be affected), or when to choose deletion over other operations like todoist_update_project.

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

todoist_delete_sectionC

Delete a section by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionIdYesThe ID of the section to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the destructive action ('Delete') but lacks critical details: whether deletion is permanent or reversible, what happens to tasks within the section, required permissions, or error handling. 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, direct sentence with zero wasted words, making it highly efficient and front-loaded. Every word earns its place by conveying the core action and target.

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

Completeness2/5

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

For a destructive tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like permanence, side effects on tasks, or response format, leaving significant gaps in understanding how to use it safely and 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%, with the parameter 'sectionId' fully documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., format examples or constraints), so it meets the baseline for high coverage without compensating value.

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

Purpose4/5

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

The description clearly states the action ('Delete') and resource ('a section by its ID'), making the purpose immediately understandable. However, it doesn't differentiate this from other deletion tools like todoist_delete_project or todoist_delete_task, which would require mentioning it specifically removes a section rather than 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 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. It doesn't mention prerequisites (e.g., needing an existing section ID), exclusions, or how it differs from similar tools like todoist_delete_project, leaving the agent to infer usage from context alone.

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

todoist_delete_taskC

Delete a task by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe ID of the task to delete

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool deletes a task, implying a destructive mutation, but doesn't mention permissions required, whether deletion is permanent or reversible, rate limits, or what happens to associated comments/labels. This leaves significant gaps for a destructive operation.

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 essential action and target, making it highly efficient and easy to parse.

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

Completeness2/5

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

For a destructive tool with no annotations and no output schema, the description is insufficient. It doesn't address behavioral aspects like permanence, permissions, or error conditions, nor does it explain what happens upon success (e.g., confirmation message or void return). Given the complexity of deletion operations, more context is needed.

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

Parameters3/5

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

The schema description coverage is 100%, with the single parameter 'taskId' fully documented in the schema. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline for adequate but not exceptional 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 target resource ('a task by its ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like todoist_delete_project or todoist_delete_section, which follow the same pattern but target 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?

No guidance is provided on when to use this tool versus alternatives. For example, it doesn't mention todoist_complete_task as an alternative for marking tasks done without deletion, or todoist_bulk_move_tasks for handling multiple tasks. The description only states what it does, not when it's appropriate.

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

todoist_get_commentC

Get a specific comment by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
commentIdYesThe ID of the comment to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') but doesn't clarify if this is a read-only operation, what permissions are required, how errors are handled, or the format of the returned data. For a 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 purpose without unnecessary words. It's appropriately sized for a simple retrieval tool and front-loaded with essential information.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., comment details, error responses) or behavioral aspects like rate limits or authentication needs. For a tool in a rich sibling set with no structured support, 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 input schema has 100% description coverage, with 'commentId' clearly documented. The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints on the ID format. 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 ('a specific comment by its ID'), making the purpose unambiguous. However, it doesn't differentiate from its sibling 'todoist_get_comments' (plural), which likely retrieves multiple comments, leaving some ambiguity about when to use one versus the other.

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 'todoist_get_comments' for retrieving multiple comments or other related tools like 'todoist_update_comment', leaving the agent to infer usage context from tool names alone.

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

todoist_get_commentsA

Get comments for a task or project with pagination support

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdNoTask ID to get comments for (provide either taskId or projectId, not both)
projectIdNoProject ID to get comments for (provide either taskId or projectId, not both)
cursorNoPagination cursor for next page (optional)
limitNoMaximum number of comments to return (optional)

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses pagination behavior ('with pagination support'), which is valuable beyond the input schema. However, it doesn't mention authentication requirements, rate limits, error conditions, or what the return format looks like (comments structure, metadata). For a read operation with 4 parameters, 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 front-loads the core purpose ('Get comments for a task or project') and adds essential behavioral context ('with pagination support'). Every word earns its place with zero redundancy or wasted verbiage.

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 4 parameters, no annotations, and no output schema, the description provides basic purpose and pagination context but lacks important details: no authentication/rate limit information, no return format description, and no guidance on error handling. For a moderately complex read operation in this context, the description is minimally adequate but has clear gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no parameter-specific information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in description, which applies here.

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 comments') and target resource ('for a task or project'), distinguishing it from sibling tools like todoist_get_comment (singular) and todoist_create_comment. However, it doesn't explicitly differentiate from other read operations like todoist_get_task or todoist_get_project, which reduces specificity.

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 comments with pagination, but provides no explicit guidance on when to use this versus alternatives like todoist_get_comment (singular) or general search tools. The input schema descriptions offer some parameter-level guidance (taskId vs projectId), but the tool description itself lacks context about typical use cases or exclusions.

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

todoist_get_labelC

Get a specific label by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelIdYesThe ID of the label to retrieve.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a label but doesn't cover aspects like error handling (e.g., what happens if the ID is invalid), authentication needs, rate limits, or response format. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded 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.

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. It doesn't explain what the tool returns (e.g., label details), error conditions, or behavioral traits, which are crucial for an agent to use it effectively. The high schema coverage helps but doesn't compensate for these gaps.

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

Parameters3/5

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

The schema description coverage is 100%, with the parameter 'labelId' clearly documented in the schema. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, so it meets the baseline of 3 for high schema coverage without extra value.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('a specific label by its ID'), making the purpose immediately understandable. However, it doesn't differentiate from its sibling 'todoist_get_labels' (plural), which presumably retrieves multiple labels, leaving some ambiguity about when to use one versus the other.

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 the sibling 'todoist_get_labels' for retrieving multiple labels or specify prerequisites like needing the label ID beforehand, leaving the agent to infer usage context.

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

todoist_get_labelsB

Get all labels. Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor for next page (optional).
limitNoMaximum number of labels to return (default: 50) (optional).

TDQS

B3.3/5.0
Behavior3/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 adds value by mentioning pagination support, which is not obvious from the input schema alone, but lacks details on permissions, rate limits, error handling, or what the output looks like (e.g., format of returned labels). For a read operation with no annotations, this is a minimal but not comprehensive disclosure.

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 two sentences that directly convey the core functionality and a key behavioral trait (pagination). It is front-loaded with the main purpose and wastes no words, making it efficient and easy 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?

Given the tool's low complexity (a read operation with two optional parameters) and 100% schema coverage, the description is somewhat complete but has gaps. It lacks output schema, so it doesn't explain return values (e.g., label structure), and with no annotations, it misses behavioral details like safety or constraints. The description covers basics but could be more informative for agent 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 schema description coverage is 100%, with both parameters ('cursor' and 'limit') well-documented in the schema. The description adds no additional parameter semantics beyond implying pagination through the phrase 'Supports pagination,' which loosely relates to the 'cursor' parameter but doesn't explain its usage or format. Baseline 3 is appropriate since 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 ('Get') and resource ('all labels'), making the purpose immediately understandable. It distinguishes from sibling tools like 'todoist_get_label' (singular) by specifying 'all labels', though it doesn't explicitly contrast with other list tools like 'todoist_get_projects' or 'todoist_get_tasks' beyond the resource 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?

The description provides no guidance on when to use this tool versus alternatives. It mentions pagination but doesn't specify scenarios where fetching all labels is appropriate over other operations or how it relates to sibling tools like 'todoist_get_label' for individual label retrieval. There are no explicit when/when-not instructions or named alternatives.

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

todoist_get_projectB

Get a specific project by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe ID of the project to retrieve

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves a project but doesn't describe what information is returned (e.g., project name, color, tasks), error handling (e.g., for invalid IDs), or any rate limits or authentication requirements. This leaves significant gaps for a read operation with no structured safety hints.

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 ('Get a specific project by its ID') with zero wasted words. It avoids redundancy and is appropriately sized for a simple retrieval tool, 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.

Completeness3/5

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

For a simple read tool with one parameter and no output schema, the description is minimally adequate but incomplete. It covers the basic action but lacks details on return values, error cases, or usage context. With no annotations and no output schema, the agent must rely on external knowledge or trial-and-error, leaving room for improvement in 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?

Schema description coverage is 100%, with the single parameter 'projectId' fully documented in the schema as 'The ID of the project to retrieve'. The description adds no additional meaning beyond this, such as format examples (e.g., numeric vs. string) or where to find the ID. Given the high schema coverage, a 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 ('Get') and resource ('a specific project by its ID'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'todoist_get_projects' (plural) by specifying retrieval of a single project, though it doesn't explicitly contrast with other read operations like 'todoist_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 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 project ID), contrast with 'todoist_get_projects' for listing all projects, or specify use cases like retrieving project details for updates. Without this context, the agent must 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.

todoist_get_projectsB

Get all active projects with pagination support

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor for next page (optional)
limitNoMaximum number of projects to return (default: 50, max: 200) (optional)

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses key behavioral traits: it retrieves 'all active projects' (implying it excludes archived/inactive ones) and has 'pagination support'. However, it doesn't cover other important aspects like authentication requirements, rate limits, error handling, or the format of returned data (e.g., what fields are included).

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 ('Get all active projects') and adds essential behavioral detail ('with pagination support'). There is no wasted wording, and every part of the sentence provides 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 the tool's moderate complexity (list operation with pagination), no annotations, and no output schema, the description is minimally adequate. It covers the scope ('active projects') and pagination, but lacks details on authentication, rate limits, error cases, or return format. For a read-only list tool, this is acceptable but leaves gaps an agent might need to infer.

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 two parameters (cursor and limit) with their types, optionality, and defaults. The description adds no additional parameter semantics beyond implying pagination through 'cursor' and 'limit', which is already clear from the schema. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Get') and resource ('all active projects'), making the purpose immediately understandable. It distinguishes from siblings like 'todoist_get_project' (singular) by specifying 'all active projects' with pagination, though it doesn't explicitly contrast with other list tools like 'todoist_get_labels' or 'todoist_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 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. It doesn't mention when to prefer this over 'todoist_get_project' for a single project, or how it relates to other list tools like 'todoist_get_tasks' or 'todoist_get_labels'. The description lacks context about use cases or prerequisites.

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

todoist_get_sectionsA

Get all sections, or sections for a specific project. Supports pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoFilter sections by project ID (optional).
cursorNoPagination cursor for next page (optional).
limitNoMaximum number of sections to return (default: 50) (optional).

TDQS

A3.5/5.0
Behavior3/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 discloses key behavioral traits: it supports pagination (via cursor and limit) and optional project filtering. However, it doesn't mention rate limits, authentication needs, error handling, or what the return format looks like (e.g., list of sections with fields). This leaves gaps for a read operation 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 front-loads the core purpose ('Get all sections, or sections for a specific project') and adds key context ('Supports pagination') without any waste. Every word earns its place, making it highly concise and well-structured.

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

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 (3 parameters, no output schema, no annotations), the description is partially complete. It covers the basic purpose and pagination support but lacks details on return values, error cases, or integration with sibling tools. Without an output schema, the description should ideally hint at the response structure, but it doesn't, leaving room for improvement.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters (projectId, cursor, limit) with descriptions. The description adds minimal value beyond the schema by implying that projectId filters sections and pagination is supported, but doesn't provide additional syntax, format details, or 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 verb ('Get') and resource ('sections'), specifying scope ('all sections, or sections for a specific project'). It distinguishes from siblings like todoist_get_projects (which gets projects) and todoist_get_tasks (which gets tasks), but doesn't explicitly differentiate from other section-related tools like todoist_create_section or todoist_update_section, which is why it's not a 5.

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

Usage Guidelines3/5

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

The description implies usage context by mentioning 'sections for a specific project' and 'pagination,' suggesting when to use it (e.g., for filtered or paginated retrieval). However, it lacks explicit guidance on when to use this versus alternatives like todoist_get_projects for project data or todoist_search_tasks for task-based queries, and no exclusions are provided.

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

todoist_get_taskC

Get a specific task by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe ID of the task to retrieve

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose if this is a read-only operation, what happens with invalid IDs (e.g., errors), authentication needs, rate limits, or response format, leaving significant gaps for an agent.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., task details, error handling), behavioral traits, or usage context, which are crucial for a tool that retrieves data by ID.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'taskId' fully documented in the schema as 'The ID of the task to retrieve'. The description adds no additional meaning beyond this, 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 action ('Get') and resource ('a specific task by its ID'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'todoist_get_tasks' (plural) which retrieves multiple tasks, leaving some ambiguity about when to use one versus the other.

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 doesn't mention using 'todoist_get_tasks' for listing multiple tasks or 'todoist_search_tasks' for filtered searches, nor does it specify prerequisites like needing a valid task ID.

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

todoist_get_tasksC

Get tasks with comprehensive filtering and pagination support

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoFilter tasks by project ID (optional)
sectionIdNoFilter tasks by section ID (optional)
parentIdNoFilter tasks by parent ID (get subtasks) (optional)
labelNoFilter tasks by label name (optional)
idsNoArray of task IDs to retrieve (optional)
cursorNoPagination cursor for next page (optional)
limitNoMaximum number of tasks to return (default: 50, max: 200) (optional)

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'comprehensive filtering and pagination support' which hints at capabilities but lacks critical behavioral details: it doesn't disclose authentication requirements, rate limits, whether it's read-only (implied by 'get' but not explicit), error handling, or what the return format looks like (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.

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. However, it could be more structured by explicitly separating filtering from pagination aspects, but it earns high marks for zero waste and clarity within its brevity.

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

Completeness2/5

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

Given the tool's complexity (7 parameters, no annotations, no output schema, and multiple sibling tools), the description is incomplete. It lacks details on authentication, rate limits, return format, error cases, and differentiation from siblings, making it inadequate for an agent to use confidently without additional 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 the schema fully documents all 7 parameters with descriptions. The description adds no additional meaning beyond the schema's details, such as explaining relationships between filters or pagination mechanics. 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.

Purpose3/5

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

The description states 'Get tasks with comprehensive filtering and pagination support' which indicates the verb (get) and resource (tasks) but is vague about scope and differentiation. It doesn't specify whether this retrieves all tasks, tasks for a specific user, or how it differs from sibling tools like 'todoist_get_task' (singular) or 'todoist_search_tasks'.

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

Usage 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. With siblings like 'todoist_get_task' (singular), 'todoist_search_tasks', and 'todoist_get_projects', the description offers no explicit or implied context for selection, leaving the agent to infer based on tool names alone.

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

todoist_move_taskA

Move a single task (and its subtasks, if any) to a different project, section, or make it a subtask of another task. Provide the taskId and exactly one of: projectId, sectionId, or parentId.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe ID of the task to move.
projectIdNoThe ID of the destination project. (Optional, use only one of projectId, sectionId, parentId)
sectionIdNoThe ID of the destination section. (Optional, use only one of projectId, sectionId, parentId)
parentIdNoThe ID of the parent task to move this task under. (Optional, use only one of projectId, sectionId, parentId)

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions the tool moves tasks (implying mutation) and includes subtasks, it doesn't disclose important behavioral traits like whether this requires specific permissions, if the move is reversible, what happens to task ordering or due dates, or potential rate limits. For a mutation 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 perfectly concise with two sentences: the first states the purpose and scope, the second provides critical parameter guidance. Every word earns its place, and the most important information (the exclusive parameter requirement) is front-loaded in the second sentence.

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 provides adequate basic information about what the tool does and parameter constraints. However, it lacks important contextual details about behavioral implications (permissions, reversibility, effects on task properties) and doesn't describe what the tool returns, which would be expected for a tool that modifies data.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds valuable semantic context by explaining the exclusive relationship between projectId, sectionId, and parentId ('exactly one of'), which isn't captured in the schema's individual parameter descriptions. This clarification significantly enhances parameter understanding beyond what the schema provides.

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 resource ('a single task'), specifies it includes subtasks, and identifies the destination options (different project, section, or as a subtask). It distinguishes from sibling 'todoist_bulk_move_tasks' by specifying 'a single task' rather than bulk operations.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool (moving a task with its subtasks to specific destinations) and implicitly distinguishes from 'todoist_bulk_move_tasks' by specifying single-task operation. However, it doesn't explicitly state when NOT to use this tool or provide alternative scenarios beyond the sibling distinction.

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

todoist_quick_add_taskA

Create a task using Todoist's Quick Add feature with natural language parsing

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesNatural language text for quick task creation (e.g., 'Buy milk tomorrow at 2pm #shopping')
noteNoAdditional note for the task (optional)
reminderNoReminder time (optional)

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'natural language parsing' but doesn't cover critical aspects like required permissions, error handling, rate limits, or what happens on success/failure. For a creation 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, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Create a task,' 'Todoist's Quick Add feature,' 'natural language parsing') contributes essential information, making it maximally concise and well-structured.

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 (creation with natural language parsing), no annotations, and no output schema, the description is minimally adequate. It covers the what and how but lacks details on behavioral traits, error cases, or output format, which would be needed for full contextual understanding.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, such as formatting examples for 'reminder' or constraints on 'text.' 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.

Purpose5/5

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

The description clearly states the specific action ('Create a task') using a specific method ('Todoist's Quick Add feature with natural language parsing'), which distinguishes it from the sibling 'todoist_create_task' that likely uses structured inputs. It specifies both the verb and resource with unique implementation details.

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

Usage Guidelines4/5

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

The description implies when to use this tool by mentioning 'natural language parsing,' suggesting it's for quick, informal task creation versus structured alternatives. However, it doesn't explicitly state when not to use it or name specific alternatives like 'todoist_create_task,' leaving some ambiguity.

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

todoist_reopen_taskB

Reopen a completed task by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe ID of the completed task to reopen

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the action but lacks behavioral details like permission requirements, whether it's reversible, rate limits, or what happens if the task isn't completed. This is a mutation tool with no safety or operational context disclosed.

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 action and key constraint ('completed task'). It is front-loaded and appropriately sized for a simple tool.

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 minimal but covers the basic action. It lacks details on behavioral traits, error conditions, or return values, making it adequate but with clear gaps given the complexity of a write operation.

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 parameter 'taskId' fully documented in the schema. The description adds no additional parameter meaning beyond implying it's for a completed task, which is already covered by the tool's purpose. Baseline 3 is appropriate as 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 ('Reopen') and resource ('a completed task'), specifying it acts on completed tasks by ID. It distinguishes from siblings like 'todoist_complete_task' by indicating opposite action, though not explicitly naming alternatives.

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?

Usage is implied by 'completed task'—it should be used when a task is completed and needs reopening. No explicit when-not or alternative guidance is provided, such as using 'todoist_update_task' for other modifications or noting it's only for completed tasks.

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

todoist_search_tasksA

Search for tasks by content/name (fallback for when ID is not known)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query to find tasks by content
projectIdNoLimit search to specific project (optional)
limitNoMaximum number of results (default: 10) (optional)

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions searching by content/name, which is useful, but lacks details on behavioral traits like pagination, rate limits, authentication needs, or what the search returns (e.g., partial matches, case sensitivity). For a search tool with 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.

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 ('Search for tasks by content/name') and adds context ('fallback for when ID is not known') without waste. Every word earns its place.

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 annotations, no output schema, and 3 parameters with full schema coverage, the description is minimally adequate. It covers the basic purpose and usage context but lacks behavioral details (e.g., return format, error handling) that would be helpful for a search operation, leaving gaps in 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?

Schema description coverage is 100%, so the schema already documents all parameters (query, projectId, limit). The description adds minimal value beyond the schema by implying the search is based on content/name, but doesn't provide additional syntax, format, or usage details for 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 ('Search') and resource ('tasks'), specifying it searches by content/name. It distinguishes from ID-based lookup by mentioning 'fallback for when ID is not known', but doesn't explicitly differentiate from other search-like siblings like 'todoist_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 provides clear context for usage ('fallback for when ID is not known'), which implicitly suggests using this when task IDs are unavailable. However, it doesn't explicitly state when not to use it or name alternatives among siblings (e.g., 'todoist_get_tasks' might also retrieve tasks).

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

todoist_update_commentC

Update an existing comment by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
commentIdYesThe ID of the comment to update
contentYesNew content/text for the comment

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Update an existing comment by its ID,' which implies a mutation operation but doesn't cover permissions needed, rate limits, whether the update is reversible, or what happens on success/failure. For a mutation tool with zero annotation coverage, this is inadequate, scoring a 2 for minimal 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, direct sentence: 'Update an existing comment by its ID.' It is front-loaded with the core action and resource, with zero wasted words. This is optimally concise and well-structured, earning a 5.

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), lack of annotations, and no output schema, the description is incomplete. It doesn't explain behavioral aspects like side effects, error handling, or return values. For a tool that modifies data, this minimal description is insufficient, scoring a 2 for significant gaps in 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?

The input schema has 100% description coverage, with clear parameter definitions (commentId and content). The description adds no additional meaning beyond what the schema provides, such as format examples or constraints. According to the rules, with high schema coverage (>80%), the baseline is 3, so this scores a 3 for adequate but no extra value.

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

Purpose4/5

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

The description clearly states the action ('Update') and target resource ('an existing comment'), which is specific and unambiguous. It distinguishes from siblings like todoist_create_comment (create) and todoist_delete_comment (delete), though it doesn't explicitly contrast with todoist_get_comment (read) beyond the verb difference. This earns a 4 for clear purpose with some sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing comment ID), exclusions, or comparisons to siblings like todoist_create_comment for new comments or todoist_get_comment for viewing. With only a basic statement of function, this scores a 2 for lacking usage context.

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

todoist_update_labelC

Update an existing label by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelIdYesThe ID of the label to update.
nameNoNew name for the label (optional).
colorNoNew color for the label (optional).
isFavoriteNoNew favorite status (optional).
orderNoNew order for the label (optional).

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an update operation but doesn't mention permission requirements, whether changes are reversible, error conditions, or what happens to unspecified fields. For a mutation tool, 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, clear sentence that gets straight to the point with no unnecessary words. It's appropriately sized for a straightforward update 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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error handling, or behavioral constraints. Given the complexity of updating a resource and the lack of structured metadata, more context is needed for effective agent 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 schema description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema, but the baseline score of 3 is appropriate since the schema adequately covers parameter documentation.

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 ('an existing label by its ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'todoist_update_task' or 'todoist_update_project' beyond the resource type, missing explicit sibling distinction.

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_create_label' for new labels or other update tools. It mentions the required 'labelId' parameter but offers no context about prerequisites or typical use cases.

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

todoist_update_projectC

Update an existing project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe ID of the project to update
nameNoNew name for the project (optional)
colorNoNew color for the project (optional)
isFavoriteNoWhether to mark as favorite (optional)
viewStyleNoProject view style: 'list' or 'board' (optional)

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'update' implying mutation, but doesn't mention permissions needed, whether changes are reversible, rate limits, or what happens to unspecified fields. 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 wasted words. It's appropriately sized and front-loaded with the essential action, 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?

For a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what happens on success/failure, return values, or behavioral constraints. The agent lacks crucial context for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond the schema's parameter documentation. 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.

Purpose3/5

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

The description 'Update an existing project' clearly states the verb ('update') and resource ('project'), but it's vague about what aspects can be updated and doesn't distinguish from sibling tools like todoist_update_task or todoist_update_label. It provides basic purpose but lacks specificity.

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_create_project or other update tools. The description doesn't mention prerequisites, context, 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.

todoist_update_sectionC

Update an existing section

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionIdYesThe ID of the section to update
nameYesNew name for the section

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'update' implies a mutation, the description doesn't specify whether this requires specific permissions, what happens to the existing section data, if changes are reversible, or any rate limits/error conditions. This leaves significant 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 with zero wasted words. It's front-loaded with the core action ('update an existing section'), making it immediately clear without unnecessary elaboration.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what the tool returns, error handling, or behavioral nuances like idempotency. Given the complexity of an update operation, more context is needed to guide the agent 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?

The schema description coverage is 100%, with both parameters ('sectionId' and 'name') clearly documented in the schema. The description adds no additional parameter semantics beyond what's in the schema, so it meets the baseline for high schema coverage without compensating value.

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

Purpose4/5

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

The description clearly states the verb ('update') and resource ('existing section'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'todoist_update_project' or 'todoist_update_task' beyond specifying 'section' as the target resource, which is why it doesn't reach 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 section ID), exclusions, or compare it to related tools like 'todoist_create_section' or 'todoist_delete_section', leaving the agent to infer usage from context alone.

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

todoist_update_taskC

Update an existing task by its ID

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesThe ID of the task to update
contentNoNew content/title for the task (optional)
descriptionNoNew description for the task (optional)
dueStringNoNew due date in natural language (optional)
priorityNoNew priority level from 1 (normal) to 4 (urgent) (optional)
labelsNoNew array of label names (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Update' implies a mutation, the description doesn't specify required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields (e.g., if they remain unchanged). It lacks critical context 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 that states the core purpose without waste. It's front-loaded and appropriately sized for a straightforward update operation, with every word earning 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 no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like error conditions, response format, or side effects. Given the complexity of updating tasks with multiple optional fields, more context is needed to guide effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain parameter interactions or provide 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 verb ('Update') and resource ('an existing task'), making the purpose immediately understandable. It distinguishes from siblings like 'todoist_create_task' by specifying 'existing task', but doesn't differentiate from other update operations like 'todoist_update_comment' or 'todoist_update_project' beyond the resource type.

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 task ID), when not to use it (e.g., for bulk updates), or alternatives like 'todoist_complete_task' for marking tasks as done. 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 30 tool updates
    • First observedtodoist_bulk_move_tasks
    • First observedtodoist_complete_task
    • First observedtodoist_create_comment
    • First observedtodoist_create_label
    • First observedtodoist_create_project
    • First observedtodoist_create_section
    • First observedtodoist_create_task
    • First observedtodoist_delete_comment
    • First observedtodoist_delete_label
    • First observedtodoist_delete_project
    • First observedtodoist_delete_section
    • First observedtodoist_delete_task
    • First observedtodoist_get_comment
    • First observedtodoist_get_comments
    • First observedtodoist_get_label
    • First observedtodoist_get_labels
    • First observedtodoist_get_project
    • First observedtodoist_get_projects
    • First observedtodoist_get_sections
    • First observedtodoist_get_task
    • First observedtodoist_get_tasks
    • First observedtodoist_move_task
    • First observedtodoist_quick_add_task
    • First observedtodoist_reopen_task
    • First observedtodoist_search_tasks
    • First observedtodoist_update_comment
    • First observedtodoist_update_label
    • First observedtodoist_update_project
    • First observedtodoist_update_section
    • First observedtodoist_update_task

TDQS

B3.4/5.0

Scored across 30 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific resource (task, project, section, label, comment) and action (create, get, update, delete, etc.), and even similar tools like todoist_move_task and todoist_bulk_move_tasks are clearly differentiated by single vs. bulk operations.

Naming Consistency5/5

All tools follow a perfect and consistent verb_noun pattern with the prefix 'todoist_' (e.g., todoist_create_task, todoist_get_projects, todoist_update_label). There are no deviations in naming conventions, making the set highly predictable and readable.

Tool Count3/5

With 30 tools, the count feels heavy for a Todoist server, bordering on excessive. While it covers many operations, it might overwhelm agents with its breadth, especially since some tools like todoist_move_task and todoist_bulk_move_tasks could potentially be consolidated or parameterized.

Completeness5/5

The tool surface provides complete CRUD/lifecycle coverage for all core Todoist resources (tasks, projects, sections, labels, comments), including advanced operations like bulk moves, quick add, search, and pagination. There are no obvious gaps, ensuring agents can handle full workflows without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that integrates Claude with Todoist, enabling natural language task management including creating, updating, completing, and deleting tasks.
    5
    376
    391
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    An MCP server that integrates with the Todoist REST API v2 to enable AI assistants to manage tasks, projects, sections, comments, and labels. It supports comprehensive operations including batch task creation, history tracking for completed tasks, and organized project management.
    33
    259
    1
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that provides AI assistants with full access to Todoist tasks, projects, labels, and filters. It enables comprehensive task management, project organization, and productivity tracking through a wide range of specialized tools.
    333
    MIT