How to integrate Todoist MCP with Claude Code

Manage your Todoist directly from Claude Code with zero worries about OAuth hassles, API-breaking issues, or reliability and security concerns. You can do this in two different ways: Via Composio Connect - Direct and easiest approach Via Composio SDK - Programmatic approach with more control

Todoist logoTodoist
Oauth2

Todoist is a task management app for to-do lists, projects, and reminders. Stay organized and on track with easy deadlines, collaboration, and cross-platform syncing.

76 Tools1 Triggers

Introduction

Manage your Todoist directly from Claude Code with zero worries about OAuth hassles, API-breaking issues, or reliability and security concerns.

You can do this in two different ways:

  1. Via Composio Connect - Direct and easiest approach
  2. Via Composio SDK - Programmatic approach with more control

Also integrate Todoist with

Why use Composio?

  • Only one MCP URL to connect multiple apps with Claude Code with zero auth hassles.
  • Programmatic tool calling allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
  • Handling Large tool responses out of LLM context to minimize context rot.
  • Dynamic just-in-time access to 20,000 tools across 1000+ other Apps for cross-app workflows. It loads the tools you need, so LLMs aren't overwhelmed by tools you don't need.

Connecting Todoist to Claude Code using Composio

1. Add the Composio MCP to Claude

Terminal

2. Start Claude Code

bash
claude

3. Open your MCP list

bash
/mcp

4. Select Composio and click on Authenticate

Select Composio and click Authenticate

5. This will redirect you to the Composio OAuth page. Complete the flow by authorizing Composio and you're all set.

Composio OAuth authorization page
Composio authorization complete
Ask Claude to connect to your account and authenticate via the link

What is the Todoist MCP server, and what's possible with it?

The Todoist MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Todoist account. It provides structured and secure access to your tasks, projects, and labels, so your agent can create tasks, manage projects, add comments, organize sections, and update your to-do lists on your behalf.

  • Task creation and scheduling: Instantly ask your agent to add new tasks with specific details, deadlines, priorities, or even as subtasks within projects or sections.
  • Project and workspace management: Let your agent create, organize, or delete projects and workspaces to keep your productivity system tidy and up-to-date.
  • Section and label organization: Direct your agent to create, delete, or update sections and labels, helping you structure your tasks and filter lists for better focus.
  • Task completion and commenting: Have your agent mark tasks as complete or add helpful comments and notes to specific tasks or projects for seamless collaboration.
  • Streamlined cleanup and maintenance: Empower your agent to remove unused projects, labels, or sections, ensuring your Todoist stays clutter-free and organized.

Connecting Todoist via Composio SDK

Composio SDK is the underlying tech that powers Rube. It's a universal gateway that does everything Rube does but with much more programmatic control. You can programmatically generate an MCP URL with the app you need (here Todoist) for even more tool search precision. It's secure and reliable.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step10 STEPS
1

Prerequisites

Before starting, make sure you have:
  • Claude Pro, Max, or API billing enabled Anthropic account
  • Composio API Key
  • A Todoist account
  • Basic knowledge of Python or TypeScript
2

Install Claude Code

bash
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash

# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

To install Claude Code, use one of the following methods based on your operating system:

3

Set up Claude Code

bash
cd your-project-folder
claude

Open a terminal, go to your project folder, and start Claude Code:

  • Claude Code will open in your terminal
  • Follow the prompts to sign in with your Anthropic account
  • Complete the authentication flow
  • Once authenticated, you can start using Claude Code
Claude Code initial setup showing sign-in prompt
Claude Code terminal after successful login
4

Set up environment variables

bash
COMPOSIO_API_KEY=your_composio_api_key_here
USER_ID=your_user_id_here

Create a .env file in your project root with the following variables:

  • COMPOSIO_API_KEY authenticates with Composio (get it from Composio dashboard)
  • USER_ID identifies the user for session management (use any unique identifier)
5

Install Composio library

npm install @composio/core dotenv

Install the Composio TypeScript library to create MCP sessions.

  • @composio/core provides the core Composio functionality
  • dotenv loads environment variables from your .env file
6

Generate Composio MCP URL

import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['todoist'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http todoist-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);

Create a script to generate a Composio MCP URL for Todoist. This URL will be used to connect Claude Code to Todoist.

What's happening

  • We import the Composio client and load environment variables
  • Create a Composio instance with your API key
  • Call create() to create a Tool Router session for Todoist
  • The returned mcp.url is the MCP server URL that Claude Code will use
  • The script prints this URL so you can copy it
7

Run the script and copy the MCP URL

node --loader ts-node/esm generate_mcp_url.ts
# or if using tsx
tsx generate_mcp_url.ts

Run your TypeScript script to generate the MCP URL.

  • The script connects to Composio and creates a Tool Router session
  • It prints the MCP URL and the exact command you need to run
  • Copy the entire claude mcp add command from the output
8

Add Todoist MCP to Claude Code

bash
claude mcp add --transport http todoist-composio "YOUR_MCP_URL_HERE" --headers "X-API-Key:YOUR_COMPOSIO_API_KEY"

# Then restart Claude Code
exit
claude

In your terminal, add the MCP server using the command from the previous step. The command format is:

  • claude mcp add registers a new MCP server with Claude Code
  • --transport http specifies that this is an HTTP-based MCP server
  • The server name (todoist-composio) is how you'll reference it
  • The URL points to your Composio Tool Router session
  • --headers includes your Composio API key for authentication

After running the command, close the current Claude Code session and start a new one for the changes to take effect.

9

Verify the installation

bash
claude mcp list

Check that your Todoist MCP server is properly configured.

  • This command lists all MCP servers registered with Claude Code
  • You should see your todoist-composio entry in the list
  • This confirms that Claude Code can now access Todoist tools

If everything is wired up, you should see your todoist-composio entry listed:

Claude Code MCP list showing the toolkit MCP server
10

Authenticate Todoist

The first time you try to use Todoist tools, you'll be prompted to authenticate.

  • Claude Code will detect that you need to authenticate with Todoist
  • It will show you an authentication link
  • Open the link in your browser (or copy/paste it)
  • Complete the Todoist authorization flow
  • Return to the terminal and start using Todoist through Claude Code

Once authenticated, you can ask Claude Code to perform Todoist operations in natural language. For example:

  • "Add a high-priority task for today"
  • "Create a new project called 'Team Offsite'"
  • "Close all completed tasks from this week"

Complete Code

Here's the complete code to get you started with Todoist and Claude Code:

import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['todoist'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http todoist-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);

Conclusion

You've successfully integrated Todoist with Claude Code using Composio's MCP server. Now you can interact with Todoist directly from your terminal using natural language commands.

Key features of this setup:

  • Terminal-native experience without switching contexts
  • Natural language commands for Todoist operations
  • Secure authentication through Composio's managed MCP
  • Tool Router for dynamic tool discovery and execution

Next steps:

  • Try asking Claude Code to perform various Todoist operations
  • Add more toolkits to your Tool Router session for multi-app workflows
  • Integrate this setup into your development workflow for increased productivity

You can extend this by adding more toolkits, implementing custom workflows, or building automation scripts that leverage Claude Code's capabilities.

TOOLS & TRIGGERS

Supported Tools and Triggers

Every Todoist action and event your agent gets out of the box.

Add Workspace

Tool to create a new workspace in Todoist.

Archive Project (API v1)

Tool to archive a project using Todoist API v1.

Bulk Create Tasks

Create many tasks in one request using Todoist's Sync batching.

Close Task (API v1)

Tool to close (complete) a task in Todoist using API v1.

Create Comment (API v1)

Tool to create a new comment on a project or task using Todoist API v1.

Create Label (API v1)

Tool to create a new personal label using API v1.

Create Project (API v1)

Tool to create a new project in Todoist using the unified API v1.

Create Section (API v1)

Tool to create a new section within a project using API v1.

Create task

Create a new task in Todoist using the unified API v1.

Delete Comment

Tool to delete a specific comment from Todoist by its ID.

Delete Label (V1)

Tool to delete a personal label using API v1.

Delete Project (API v1)

Tool to delete a project and all of its sections and tasks using Todoist API v1.

Delete Section (v1)

Tool to delete a section and all tasks within it.

Delete Task

Tool to delete a specific task from Todoist.

Delete Upload

Tool to delete an uploaded file from Todoist.

Export Template As File

Tool to export a Todoist project as a CSV template file.

Export Template As URL

Tool to export a Todoist project as a shareable template URL.

Filter Tasks

Tool to get all tasks matching the filter.

Get All Comments

This tool retrieves all comments associated with a specific task or project in Todoist.

Get all projects

Get all projects from a user's Todoist account.

Get All Tasks

Fetches all INCOMPLETE tasks from Todoist and returns their details.

Get Backups

Tool to list all available backup archives for the user.

Get Comment (V1)

Tool to retrieve a single comment by ID using the v1 API.

Get Completed Tasks By Completion Date

Tool to retrieve completed tasks within a specified completion date window.

Get ID Mappings

Tool to translate IDs between Todoist API v1 and v2.

Get Personal Label

Tool to retrieve a personal label by its ID.

Get Productivity Stats

Tool to retrieve comprehensive productivity statistics for the authenticated user.

Get Project (API v1)

Tool to retrieve a specific project by its ID using Todoist API v1.

Get Full Project Data

Tool to retrieve full project data including all sections, tasks, and collaborators.

Get Project Permissions

Tool to retrieve all available roles and their associated actions in Todoist projects.

Get Section (v1 API)

Tool to retrieve a specific section by its ID using Todoist v1 API.

Get Special Backups

Tool to list special backup archives for the authenticated user's projects.

Get Task (API v1)

Tool to retrieve a single active (non-completed) task by ID using API v1.

Get User

Tool to retrieve information about the currently authenticated user.

Get Workspace Plan Details

Tool to retrieve details about a workspace's current plan and usage.

Import Template Into Project By ID

Tool to import a template from Todoist's template gallery into an existing project.

Import Template Into Project From File

Tool to import a CSV template into an existing Todoist project from a file.

Invite Project Collaborator

Tool to invite a collaborator to a Todoist project by email.

List Activities

Tool to get activity logs from Todoist.

List All Workspace Invitations

Tool to return a list containing details of all pending invitations to a workspace.

List Archived Projects

Tool to get all archived projects from Todoist.

List Archived Sections

Tool to retrieve all archived sections for a specific project in Todoist.

List Archived Workspace Projects

Tool to list all archived projects in a workspace.

List Completed Tasks

Tool to retrieve all completed tasks with optional project filtering.

List Completed Tasks By Due Date

Tool to retrieve completed tasks within a specified due date range (up to 6 weeks).

List Filters

Tool to list all filters for the authenticated user.

List Joinable Workspaces

Tool to get workspaces the user can join.

List Labels

Tool to get all user labels with pagination support.

List Pending Workspace Invitations

Tool to list pending invitation emails in a workspace.

List Project Collaborators

Tool to get all collaborators for a given project with cursor-based pagination.

List Sections

Tool to get all active sections for the user, with optional filtering by project.

List Shared Labels

Tool to retrieve shared label names from active tasks with pagination support.

List Workspace Active Projects

Tool to list all active workspace projects.

List Workspace Archived Projects

Tool to get archived projects in a workspace.

List Workspace Invitations

Tool to list user emails with pending invitations to a workspace.

List Workspace Users

Tool to list users in workspace(s).

Move Task

Tool to move a task to another project, section, or parent task while preserving task identity and metadata.

Move Task (REST API)

Tool to move a task to another project, section, or parent task using the REST API.

Quick Add Task

Tool to add tasks using natural language parsing similar to the official Todoist clients.

Remove Shared Label (API v1)

Tool to remove a shared label from all active tasks using API v1.

Rename Shared Labels (API v1)

Tool to rename a shared label across all active tasks using API v1.

Reopen Task (API v1)

Tool to reopen a completed task in Todoist using API v1.

Reorder Tasks

Reorder tasks deterministically by updating child_order in bulk via the Sync API item_reorder command.

Search Labels

Tool to search user labels by name with case-insensitive matching.

Search Projects

Search active user projects by name with support for wildcards and pagination.

Search Sections

Tool to search active sections by name, optionally filtered by project.

Todoist Sync

Tool to sync data with Todoist server, supporting both read and write operations.

Unarchive Project (API v1)

Tool to unarchive a previously archived Todoist project using API v1.

Update Comment (v1)

Tool to update a comment by ID and return its content via v1 API.

Update Label (API v1)

Tool to update an existing label using API v1.

Update Notification Setting

Tool to update notification settings for the current user.

Update Project (API v1)

Tool to update a project's properties using Todoist API v1.

Update Section (v1)

Tool to update an existing section by its ID using Todoist v1 API.

Update Task

Tool to update an existing task's properties.

Update Workspace Logo

Tool to upload an image as the workspace logo or delete the existing logo.

Upload File

Tool to upload a file to Todoist.

FAQ

Frequently asked questions

With a standalone Todoist MCP server, the agents and LLMs can only access a fixed set of Todoist tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Todoist and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. Claude Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Todoist tools.

Yes, absolutely. You can configure which Todoist scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Todoist data and credentials are handled as safely as possible.

Start with Todoist.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Todoist tool your agent needs.Free to start.

Start building