A Model Context Protocol (MCP) server that provides complete CRUD operations for Todoist tasks, projects, comments, and labels.
This MCP server provides a secure interface for AI assistants to manage your Todoist tasks, projects, and more through natural language commands. It wraps the Todoist REST API v2 in a secure, Docker-based MCP server.
create_task- Create new tasks with content, description, due dates, priority, and labelslist_tasks- List all tasks with optional filtering by project, label, or custom filterget_task- Get detailed information about a specific taskupdate_task- Update task content, description, due date, priority, or labelscomplete_task- Mark a task as completedreopen_task- Reopen a completed taskdelete_task- Permanently delete a task
create_project- Create new projects with name, color, favorite status, and view stylelist_projects- List all projects in your accountget_project- Get detailed information about a specific projectupdate_project- Update project name, color, favorite status, or view styledelete_project- Permanently delete a project
create_comment- Add comments to taskslist_comments- List all comments for a task or project
create_label- Create new labels with name and colorlist_labels- List all labels in your account
- Docker Desktop with MCP Toolkit enabled
- Docker MCP CLI plugin (
docker mcpcommand) - Todoist account with API token
- Go to https://app.todoist.com/app/settings/integrations/developer
- Scroll down to find "API token"
- Copy the 40-character hexadecimal token
- Keep this token secure - it provides full access to your Todoist account
See the step-by-step instructions provided with the files.
In Claude Desktop, you can ask:
- "Create a task 'Buy groceries' due tomorrow with priority 2"
- "List all my tasks"
- "Show me tasks in project 12345"
- "Complete task 98765"
- "Update task 12345 to have priority 4 and due date 'next Monday'"
- "Delete task 98765"
- "Create a new project called 'Work Projects' with color blue"
- "List all my projects"
- "Update project 12345 to be a favorite"
- "Delete project 67890"
- "Add a comment 'Need to review this' to task 12345"
- "List comments for task 12345"
- "Create a label 'urgent' with color red"
- "Show me all my labels"
Claude Desktop → MCP Gateway → Todoist MCP Server → Todoist REST API v2
↓
Docker Desktop Secrets
(TODOIST_API_TOKEN)
# Set environment variable for testing
export TODOIST_API_TOKEN="your-api-token"
# Run directly
python todoist_server.py
# Test MCP protocol
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python todoist_server.py- Add the function to
todoist_server.py - Decorate with
@mcp.tool() - Update the catalog entry with the new tool name
- Rebuild the Docker image
- Verify Docker image built successfully:
docker images | grep todoist-mcp-server - Check catalog and registry files
- Ensure Claude Desktop config includes custom catalog
- Restart Claude Desktop
- Verify API token with
docker mcp secret list - Ensure secret name is exactly
TODOIST_API_TOKEN - Test token at https://developer.todoist.com/rest/v2/
- Todoist allows 1000 requests per 15 minutes per user
- If you hit limits, wait 15 minutes before retrying
- All credentials stored in Docker Desktop secrets
- Never hardcode API tokens
- Running as non-root user
- API tokens never logged
- All communication over HTTPS
This server uses Todoist REST API v2:
- Documentation: https://developer.todoist.com/rest/v2/
- Base URL: https://api.todoist.com/rest/v2