A Model Context Protocol (MCP) server implementation that integrates Claude and other AI assistants with Todoist, enabling natural language task management.
- Complete Todoist API Integration: Access to the full Todoist REST API v2, and support for the Todoist Sync API through natural language
- Batch Processing: Client can process multiple tasks in a single request
- Search by name: AI can search for tasks, projects, and labels by name instead of ID
- Tasks: Create, update, close, reopen, move, and delete tasks using conversational language
- Projects: Create and manage projects and sections
- Comments: Add and manage comments on tasks and projects
- Labels: Create and manage personal and shared labels
- Prompt Support: You can easily provide information about your projects to client
You'll need a Todoist API token to use this MCP server.
- Log in to your Todoist account
- Navigate to Settings → Integrations
- Find your API token under "Developer"
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"todoist": {
"command": "npx",
"args": ["-y", "todoist-mcp"],
"env": {
"API_KEY": "your_todoist_api_token_here"
}
}
}
}
-
get_tasks_list
: Get tasks with optional filtering by project, section, label, etc. -
create_tasks
: Create new tasks with various attributes -
get_tasks
: Get specific tasks by ID or name -
update_tasks
: Update existing tasks -
close_tasks
: Mark tasks as complete -
reopen_tasks
: Reopen completed tasks -
delete_tasks
: Delete tasks -
move_tasks
: Move tasks to a different project or section
-
get_projects_list
: Get all projects -
create_projects
: Create new projects -
get_projects
: Get specific projects by ID or name -
update_projects
: Update existing projects -
delete_projects
: Delete projects -
get_collaborators
: Get all collaborators for a project -
move_projects
: Move projects to a different location or subproject
-
get_sections_list
: Get all sections or filter by project -
create_sections
: Create new sections -
get_sections
: Get specific sections by ID or name -
update_sections
: Update sections -
delete_sections
: Delete sections
-
get_comments_list
: Get comments for a project or task -
create_comments
: Create new comments -
get_comments
: Get specific comments by ID -
update_comments
: Update comments -
delete_comments
: Delete comments
-
get_labels_list
: Get all personal labels -
create_labels
: Create new personal labels -
get_labels
: Get personal labels by ID or name -
update_labels
: Update personal labels -
delete_labels
: Delete personal labels -
get_shared_labels
: Get all shared labels -
rename_shared_labels
: Rename shared labels -
remove_shared_labels
: Remove shared labels
-
utils_get_colors
: Get available colors for projects, labels, filters
-
projects_list
: Get list of projects with their sections and params in markdown format
Ask your AI assistant (like Claude) questions such as:
"What tasks do I have due today?"
"Create a task to review the quarterly report by next Friday"
"Make a new project called 'Home Renovation'"
"Add a comment to my meeting prep task"
"Show me all my high priority tasks"
"Create a label for 'Urgent' tasks with a red color"
"What projects do I have in my Todoist?"
"Mark my dentist appointment task as complete"
# Install dependencies
npm install
# Build the project and run inspector
npm run build && npx @modelcontextprotocol/inspector -e API_KEY=YOUR_API_KEY_HERE node dist/index.js
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or need support, please file an issue on the GitHub repository.