Skip to main content
Glama
Enhanced Todoist MCP Server Extended

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).

Inputs: taskIds (required), projectId, sectionId, parentId.

todoist_complete_taskC

Mark a task as complete by its ID

Inputs: taskId (required).

todoist_create_commentC

Create a new comment on a task or project

Inputs: content (required), taskId, projectId, attachment.

todoist_create_labelC

Create a new label.

Inputs: name (required), color, isFavorite, order.

todoist_create_projectC

Create a new project

Inputs: name (required), parentId, color, isFavorite, +1 more.

todoist_create_sectionC

Create a new section in a project

Inputs: name (required), projectId (required), order.

todoist_create_taskC

Create a new task in Todoist with comprehensive options including subtasks

Inputs: content (required), description, projectId, sectionId, +4 more.

todoist_delete_commentC

Delete a comment by its ID

Inputs: commentId (required).

todoist_delete_labelB

Delete a label by its ID.

Inputs: labelId (required).

todoist_delete_projectC

Delete a project by its ID

Inputs: projectId (required).

todoist_delete_sectionC

Delete a section by its ID

Inputs: sectionId (required).

todoist_delete_taskC

Delete a task by its ID

Inputs: taskId (required).

todoist_get_commentC

Get a specific comment by its ID

Inputs: commentId (required).

todoist_get_commentsA

Get comments for a task or project with pagination support

Inputs: taskId, projectId, cursor, limit.

todoist_get_labelC

Get a specific label by its ID.

Inputs: labelId (required).

todoist_get_labelsB

Get all labels. Supports pagination.

Inputs: cursor, limit.

todoist_get_projectB

Get a specific project by its ID

Inputs: projectId (required).

todoist_get_projectsB

Get all active projects with pagination support

Inputs: cursor, limit.

todoist_get_sectionsA

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

Inputs: projectId, cursor, limit.

todoist_get_taskC

Get a specific task by its ID

Inputs: taskId (required).

todoist_get_tasksC

Get tasks with comprehensive filtering and pagination support

Inputs: projectId, sectionId, parentId, label, +3 more.

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.

Inputs: taskId (required), projectId, sectionId, parentId.

todoist_quick_add_taskA

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

Inputs: text (required), note, reminder.

todoist_reopen_taskB

Reopen a completed task by its ID

Inputs: taskId (required).

todoist_search_tasksA

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

Inputs: query (required), projectId, limit.

todoist_update_commentC

Update an existing comment by its ID

Inputs: commentId (required), content (required).

todoist_update_labelC

Update an existing label by its ID.

Inputs: labelId (required), name, color, isFavorite, +1 more.

todoist_update_projectC

Update an existing project

Inputs: projectId (required), name, color, isFavorite, +1 more.

todoist_update_sectionC

Update an existing section

Inputs: sectionId (required), name (required).

todoist_update_taskC

Update an existing task by its ID

Inputs: taskId (required), content, description, dueString, +2 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    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 recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that integrates Claude with Todoist, enabling natural language task management including creating, updating, completing, and deleting tasks.
      5
      235 npm
      392
      MIT
    • A
      license
      B
      quality
      D
      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
      358 npm
      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.
      229 npm
      MIT