Provides comprehensive task management through Todoist, enabling the creation, organization, and tracking of tasks, projects, sections, and labels, along with productivity statistics and natural language task entry.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Todoist MCP ServerAdd a task to review the design doc tomorrow morning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Todoist MCP Server
An MCP (Model Context Protocol) server that provides comprehensive task management through Todoist. This enables AI assistants like Claude to create, manage, and organize tasks using natural language.
Features
Tools (21 total)
Tool | Description |
| List tasks with filtering (by project, priority, due date, etc.) |
| Get detailed task info including comments and subtasks |
| Create tasks with natural language due dates |
| Update task content, due date, priority, labels |
| Mark tasks complete (handles recurring) |
| Reopen completed tasks |
| Permanently delete tasks |
| Move tasks between projects/sections |
| List all projects |
| Create new projects |
| Update project name, color, view style |
| Permanently delete projects |
| List sections within projects |
| Create sections |
| Rename or collapse/expand sections |
| Move sections between projects |
| Permanently delete sections |
| List all labels |
| Create new labels |
| Update label name, color, order |
| Permanently delete labels |
| Add comments to tasks |
| Get completion statistics |
| Natural language task entry |
Resources
Resource | Description |
| Today's tasks including overdue |
| Tasks due in the next 7 days |
| All overdue tasks |
| Project overview with task counts |
| Labels and usage counts |
Prompts
Prompt | Description |
| Morning planning workflow |
| GTD-style weekly review |
| Rapid multi-task capture |
| Break large tasks into subtasks |
Setup
1. Get Your Todoist API Token
Go to https://todoist.com/app/settings/integrations/developer
Scroll to "API token"
Copy your token
2. Install Dependencies
cd todoist-mcp
npm install3. Build
npm run build4. Add to Claude Code
claude mcp add --transport stdio todoist \
--env TODOIST_API_TOKEN=your_token_here \
-- node /path/to/todoist-mcp/dist/index.jsOr add manually to your Claude Code configuration:
{
"mcpServers": {
"todoist": {
"command": "node",
"args": ["/path/to/todoist-mcp/dist/index.js"],
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}5. Verify Connection
In Claude Code, type /mcp to check the server is connected.
Usage Examples
Create a Task
"Add a task to review the budget report by Friday"The AI will use create_task with natural language due date parsing.
View Today's Tasks
"What do I need to do today?"Uses the todoist://today resource or list_tasks with dueToday: true.
Daily Planning
"Let's do my daily planning"Invokes the daily_planning prompt for a guided planning session.
Quick Capture
"Add these tasks: call dentist tomorrow, review PR by EOD, update docs"Uses quick_add or create_task for natural language entry.
Initialize GTD Structure (One-Time Setup)
Run the setup script to create a GTD-inspired structure:
TODOIST_API_TOKEN=your_token npx tsx scripts/setup-gtd-structure.tsThis creates:
Projects: Work, Personal (with sub-projects), Recurring, Someday/Maybe, Reference
Labels: Context (@computer, @phone), Energy (@high-energy), Time (@5min, @deep-work), Status (@waiting-for)
Natural Language Due Dates
Todoist supports flexible date parsing:
Input | Result |
| Today |
| Tomorrow |
| Tomorrow at 2:00 PM |
| Next Monday |
| 3 days from now |
| January 15 |
| Daily recurring |
| Weekly on Monday at 9 AM |
| Monday through Friday |
Priority Mapping
API Value | Display | Color |
| P1 (highest) | Red |
| P2 | Orange |
| P3 | Yellow |
| P4 (default) | None |
Rate Limiting
The server implements rate limiting to stay within Todoist's API limits:
Limit: 450 requests per 15 minutes
Caching: Projects and labels are cached for 5 minutes
Development
Run in Development Mode
npm run devThis runs TypeScript in watch mode.
Test with MCP Inspector
npm run inspectOpens the MCP Inspector for testing tools and resources.
Project Structure
todoist-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── types/ # TypeScript type definitions
│ ├── services/ # Todoist client, caching, rate limiting
│ ├── tools/ # MCP tool implementations
│ ├── resources/ # MCP resource implementations
│ └── prompts/ # MCP prompt implementations
├── dist/ # Compiled output
├── package.json
└── tsconfig.jsonTroubleshooting
"TODOIST_API_TOKEN environment variable is required"
Make sure you've set the token in your MCP configuration:
claude mcp add --env TODOIST_API_TOKEN=your_token ...Rate Limit Errors
The server automatically handles rate limiting, but if you hit limits:
Wait 15 minutes for the window to reset
Check
get_productivity_statsto see current rate limit usage
Tasks Not Appearing
Verify your API token is correct
Check that tasks aren't filtered out (completed, different project, etc.)
Use
list_taskswithout filters to see all tasks
Quick Add Project Assignment
The quick_add tool uses Todoist's natural language parser, which may not always parse project names with spaces correctly. For example, "Task #My Project" might not assign to the "My Project" project.
Workaround: Use create_task with explicit projectId for reliable project assignment, or use project names without spaces.
License
MIT