OAuthBringer/todoist-mcp
If you are the rightful owner of todoist-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Todoist MCP Server is a middleware server that integrates with the Todoist API, providing a unified interface for managing tasks, projects, sections, labels, and comments.
Todoist MCP Server
MCP server for Todoist API integration. Published to PyPI
Status
✅ Full Functionality - Now using Todoist unified API v1 with proper pagination support
v0.4.0 - Major expansion: Sections support, Labels management, and Batch operations
Important API Notes
Todoist has numerous API versions with incompatible ID systems:
- v1 Unified API (Todoist official ): Uses alphanumeric IDs (e.g.,
69mF7QcCj9JmXxp8
) - v2 REST API: Uses numeric IDs (e.g.,
7246645180
)
This incompatibility means certain features like server-side search are not available in this MCP implementation, as search only exists in v2 but returns IDs incompatible with v1 operations.
Features
- Full cursor-based pagination for all endpoints
- Configurable limit parameter for all list endpoints
- Multi-auth support (environment, config file, runtime)
- Complete task and project management capabilities
- Sections support (v0.4.0): CRUD operations for project sections
- Labels management (v0.4.0): CRUD operations for labels
- Batch operations (v0.4.0): Move, update, complete multiple tasks at once
- Comment CRUD operations for tasks and projects
- Move tasks between projects, sections, and parents
- Error handling with detailed error messages
Limitations
- No server-side search (due to v1/v2 API incompatibility)
- Client-side filtering only for task queries
Installation
pip install todoist-mcp
Claude Desktop Configuration
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"todoist": {
"command": "uvx",
"args": ["todoist-mcp"],
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}
AmazonQ Developer CLI Configuration
Add to your .amazonq/mcp.json
:
{
"mcpServers": {
"todoist": {
"command": "uvx",
"args": ["todoist-mcp"],
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}
Alternative: Using mcp-gen
For complex MCP configuration management such as in providing configurations for different contexts ot teams, use mcp-gen with YAML:
See https://github.com/OAuthBringer/mcp-gen/examples for more full examples
# mcp-config.yaml
servers:
todoist:
command: uvx
args: [todoist-mcp]
env:
TODOIST_API_TOKEN: {{ secrets.TODOIST_API_TOKEN }}
```
Then generate your configuration:
```bash
`mcp-gen generate -c mcp-config.yaml -s secrets-file.yaml`
Configuration
Authentication options (in order of precedence):
- Runtime: Pass token when creating client
- Config file:
~/.config/todoist/config.json
with{"api_token": "your_token"}
- Environment: Set
TODOIST_API_TOKEN
Available Tools
Projects
get_projects
- List projects with pagination (limit, cursor)get_project
- Get single project by IDadd_project
- Create new project
Tasks
get_tasks
- List tasks with pagination and filtersget_task
- Get single task by IDadd_task
- Create new task with all propertiesupdate_task
- Update existing taskmove_task
- Move task to different project, section, or parent
Sections (v0.4.0)
get_sections
- List sections for a project with paginationget_section
- Get single section by IDadd_section
- Create new section in projectupdate_section
- Update section namedelete_section
- Delete a section
Labels (v0.4.0)
get_labels
- List all labels with paginationget_label
- Get single label by IDadd_label
- Create new labelupdate_label
- Update label propertiesdelete_label
- Delete a label
Batch Operations (v0.4.0)
batch_move_tasks
- Move multiple tasks to project/sectionbatch_update_labels
- Add/remove labels from multiple tasksbatch_update_tasks
- Update multiple tasks with same propertiesbatch_complete_tasks
- Complete multiple tasks at once
Comments
get_comments
- List comments for task/project with paginationget_comment
- Get single comment by IDadd_comment
- Add comment to task or projectupdate_comment
- Update existing commentdelete_comment
- Delete a comment
Technical Details
- Built with FastMCP v2.3.3+
- Python 3.11+
- Direct API v1 integration using httpx
- No dependency on todoist-api-python SDK
Development
# Clone repository
git clone https://github.com/OAuthBringer/todoist-mcp
cd todoist-mcp
# Create virtual environment
uv venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install dependencies
uv pip install -e .
uv pip install -e ".[dev]"
# Run tests
pytest