FastMCP server for Todoist API integration
Project description
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.jsonwith{"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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file todoist_mcp-0.4.0.tar.gz.
File metadata
- Download URL: todoist_mcp-0.4.0.tar.gz
- Upload date:
- Size: 30.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
953e6b8ac26d4ae45e5c205f1656b4d18cb6c5af1e96a21d8f13e9c68a4c1b48
|
|
| MD5 |
08ad8978aeb7e04c8205eabf39e68e23
|
|
| BLAKE2b-256 |
6c5c01b4cb29c65a27044e7a829fd318fd73d89f7c45f66fa12a3351b5684b44
|
File details
Details for the file todoist_mcp-0.4.0-py3-none-any.whl.
File metadata
- Download URL: todoist_mcp-0.4.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51e5e3af23afa30506a5b688aa2cb28033ee7410b7d96c9784cd4fbf21ccea1d
|
|
| MD5 |
4753beca00480b8569b776260ea1a63d
|
|
| BLAKE2b-256 |
903c89d04658608b6194a7f7e12b56d0692580d962a506a3b4176bece0805728
|