Skip to main content
Glama
Todoist MCP Server

Todoist MCP Server

by Chrusic

Todoist MCP Server Extended

An MCP (Model Context Protocol) server implementation that integrates Claude - or any MCP compatible LLM if you're crafty - with Todoist, enabling natural language task management via MCP tools. The tools in this server allows Claude to interact with your Todoist tasks, projects, sections, and labels using everyday language, while also optimized for LLM workflow efficiency.

Features Overview

  • Task Management: Create, update, complete, and delete tasks using everyday language

  • Label Management: Create, update, and manage personal labels and task labels

  • Project Management: Create, update, and manage Todoist projects

  • Section Organization: Create and manage sections within projects

  • Smart Search: Find tasks and labels using partial name matches

  • Flexible Filtering: Filter tasks by project, section, due date, priority, and labels

  • Rich Task Details: Support for descriptions, due dates, priority levels, and project/section assignment

  • Batch Operations: Tools have built in batch operation support and custom parameters for efficient usage with LLM workflows

For a complete list of available tools as well as their usage, see tools.md.

Related MCP server: Todoist MCP Server Extended

Quick Installation Guide

Assuming you already have npm installed.

A more comprehensive installation guide can be found in the How-to Guide.

Installing via Smithery

To install Todoist MCP Server Extended for Claude Desktop via Smithery:

  1. Run following command in cmd\pwsh:

    npx -y @smithery/cli install @Chrusic/todoist-mcp-server-extended --client claude

Also compatible with cline or windsurf, by changing last parameter to --client cline or --client windsurf

Installing via npm

  1. Run following command in cmd\pwsh:

    npm install -g @chrusic/todoist-mcp-server-extended

Setup

Grab a Todoist API Token

  1. Log in to your Todoist account

  2. Navigate to Settings → Integrations

  3. Find your API token under Developer

  4. Press Copy API Token

For more information about the Todoist API, visit the official Todoist API documentation.

Add MCP Server and API Token Claude Desktop Client

  1. In your claude_desktop_config.json file, paste the following json snippet between: "mcpServers":{ }:

    "todoist": {
      "command": "npx",
      "args": ["-y", "@chrusic/todoist-mcp-server-extended"],
      "env": {
          "TODOIST_API_TOKEN": "PASTE-YOUR-API-TOKEN-HERE"
      }
    }
  2. When all put together, it should look something like this:

    {
    "mcpServers": {
        "todoist": {
        "command": "npx",
        "args": ["-y", "@chrusic/todoist-mcp-server-extended"],
        "env": {
            "TODOIST_API_TOKEN": "PASTE-YOUR-API-TOKEN-HERE"
        }
        }
    }
    }
  3. Claude Desktop client will then start the MCP server and load the tools on the next client (re)start.

Example Usage

Some simple suggestions on what to ask Claude. Note that sometimes you have to be very direct to get claude to use the tools:

  • "Using the MCP tool: todoist_get_tasks, list all my tasks for the day."

  • "Create task 'Review PR' in project 'Work' section 'To Do'"

  • "Add label 'Important' to task 'Review PR'"

  • "Show all tasks with label 'Important' in project 'Work'"

  • "Move task 'Documentation' to section 'In Progress'"

  • "Mark the documentation task as complete"

  • "Give me some suggestions for listed tasks I can do today as I'm going shopping in town."

  • "Break task X down in to smaller subtasks and add due dates, x, y, z."

Contributing

Contributions are welcome! Feel free to submit a Pull Request.

License

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

Issues and Support

If you encounter any issues or need support, please file an issue on the GitHub repository.

Available Tools

19 tools
todoist_complete_taskC

Mark one or more tasks as complete in Todoist

Inputs: tasks, task_id, task_name.

todoist_create_personal_labelC

Create one or more personal labels in Todoist

Inputs: labels, name, color, order, +1 more.

todoist_create_projectC

Create one or more projects with support for nested hierarchies

Inputs: projects, name, parent_id, color, +2 more.

todoist_create_project_sectionC

Create one or more sections in Todoist projects

Inputs: sections, project_id, name, order.

todoist_create_taskC

Create one or more tasks in Todoist with full parameter support

Inputs: tasks, content, description, project_id, +14 more.

todoist_delete_personal_labelC

Delete a personal label from Todoist

Inputs: label_id (required).

todoist_delete_taskC

Delete one or more tasks from Todoist

Inputs: tasks, task_id, task_name.

todoist_get_personal_labelB

Get a personal label by ID

Inputs: label_id (required).

todoist_get_personal_labelsB

Get all personal labels from Todoist

Inputs: no named parameters.

todoist_get_projectsC

Get projects with optional filtering and hierarchy information

Inputs: project_ids, include_sections, include_hierarchy.

todoist_get_project_sectionsC

Get sections from one or more projects in Todoist

Inputs: projects, project_id, project_name, include_empty.

todoist_get_shared_labelsC

Get all shared labels from Todoist

Inputs: omit_personal.

todoist_get_tasksC

Get a list of tasks from Todoist with various filters - handles both single and batch retrieval

Inputs: project_id, section_id, label, filter, +4 more.

todoist_remove_shared_labelsC

Remove one or more shared labels from Todoist tasks

Inputs: labels, name.

todoist_rename_shared_labelsC

Rename one or more shared labels in Todoist

Inputs: labels, name, new_name.

todoist_update_personal_labelC

Update one or more existing personal labels in Todoist

Inputs: labels, label_id, label_name, name, +3 more.

todoist_update_projectC

Update one or more projects in Todoist

Inputs: projects, project_id, name, color, +2 more.

todoist_update_taskC

Update one or more tasks in Todoist with full parameter support

Inputs: tasks, task_id, task_name, content, +14 more.

todoist_update_task_labelsC

Update the labels of one or more tasks in Todoist

Inputs: tasks, task_id, task_name, labels.

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 19 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific resources and actions, but there is some overlap between todoist_update_task and todoist_update_task_labels, which could cause confusion as both modify tasks. The descriptions clarify that one handles general updates while the other focuses on labels, but the boundaries are not entirely clear.

    Naming Consistency5/5

    All tool names follow a consistent pattern: 'todoist_' prefix, a verb (e.g., create, get, update, delete), and a noun (e.g., task, project, label). This uniformity makes the set predictable and easy to navigate, with no deviations in style or structure.

    Tool Count4/5

    With 19 tools, the count is slightly high but reasonable for a comprehensive Todoist integration covering tasks, projects, labels, and sections. It includes CRUD operations for each resource, which justifies the number, though it might feel a bit heavy for simpler use cases.

    Completeness5/5

    The tool set provides complete CRUD and lifecycle coverage for the Todoist domain, including tasks, projects, personal labels, shared labels, and sections. There are no obvious gaps; agents can perform all essential operations without dead ends, from creation to deletion and updates.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers