Provides comprehensive task and project management capabilities, allowing users to create, update, complete, and delete tasks, manage projects and sections, and filter tasks by various criteria using Todoist's REST API v2.
Todoist MCP Server
A Model Context Protocol (MCP) server that integrates with Todoist, allowing Claude and other MCP-compatible AI assistants to interact with your Todoist tasks and projects.
Features
Task Management: Create, read, update, complete, and delete tasks
Project Management: List and manage projects
Filtering: Filter tasks by project, section, labels, or natural language queries
Full API Support: Comprehensive coverage of Todoist's REST API v2
Installation
Prerequisites
Python 3.12 or higher
pip (Python package installer)
A Todoist account and API token
Step 1: Get Your Todoist API Token
Scroll down to the "API token" section
Copy your API token (you'll need this later)
Step 2: Install the MCP Server
Clone the repository:
Install the package:
Note: If you want to install it in a virtual environment:
Create a
.envfile with your API token:
Replace your_api_token_here with the token you copied in Step 1.
Step 3: Configure Claude Desktop
The Claude Desktop configuration file is located at:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Option A: Using Virtual Environment (Recommended for Development)
If you installed in a virtual environment, use the full path to the todoist-mcp command:
To find the full path, run:
Option B: Global Installation
If you installed globally (without a virtual environment), you can use:
Important Notes:
The MCP server will automatically load the
TODOIST_API_TOKENfrom the.envfile in thetodoist-mcpdirectoryYou do NOT need to specify the token in the Claude Desktop config if you're using a
.envfileAfter updating the config, fully restart Claude Desktop (quit the app completely, don't just close the window)
Step 4: Verify Installation
Restart Claude Desktop completely (use Quit from the menu)
Open Claude Desktop
Look for the MCP server indicator (usually in the bottom corner or settings)
You should see "todoist" listed as an available MCP server
Try asking Claude: "Show me my Todoist tasks"
Troubleshooting
"Could not connect to MCP server" or "spawn todoist-mcp ENOENT"
Make sure you used the full path to
todoist-mcpif using a virtual environmentVerify the command exists by running
which todoist-mcp(macOS/Linux) orwhere todoist-mcp(Windows)Check that your
.envfile exists in thetodoist-mcpdirectory with the correct token
"TODOIST_API_TOKEN environment variable not set"
Ensure your
.envfile is in thetodoist-mcpdirectory (same directory aspyproject.toml)Verify the
.envfile contains:TODOIST_API_TOKEN=your_actual_tokenCheck for typos in the variable name
Server keeps disconnecting
Verify your API token is valid at https://todoist.com/app/settings/integrations/developer
Check that you've fully restarted Claude Desktop
Look at Claude Desktop logs for specific error messages
Usage
With Claude Desktop
Once configured, you can interact with Claude using natural language:
"Show me all my tasks for today"
"Create a task to review the quarterly report due tomorrow"
"Mark task ID 12345 as completed"
"List all my projects"
"Create a new project called 'Home Renovation'"
"Show me all high-priority tasks"
As a Standalone Server (Advanced)
You can also run the MCP server directly for testing or integration with other MCP clients:
Available Tools
Task Operations
get_tasks- List tasks with optional filteringget_task- Get details of a specific taskcreate_task- Create a new taskupdate_task- Update an existing taskcomplete_task- Mark a task as completedreopen_task- Reopen a completed taskdelete_task- Delete a task
Project Operations
get_projects- List all projectsget_project- Get details of a specific projectcreate_project- Create a new project
Section Operations
get_sections- List sections within projects
Example Interactions
Once connected, you can interact with Claude using natural language:
"Show me all my tasks for today"
"Create a task to review the quarterly report due tomorrow"
"Mark task ID 12345 as completed"
"List all my projects"
"Create a new project called 'Home Renovation'"
Development
Project Structure
Running Tests
(Tests would be added here in the future)
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
License
This project is licensed under the terms specified in the LICENSE file.