Todoist MCP Server
Unofficial MCP server for Todoist that allows agents to create, and list tasks in your Todoist account.
Features
- Create tasks with descriptions, due dates, priorities, and labels and projects.
- List tasks List completed or uncompleted tasks with filtering by project or Todoist filters.
Works with Claude Desktop, Cursor, and other MCP clients
Installation
pip install todoist-mcp-server
Setup
1. Get Your Todoist API Token
- Go to Todoist Integrations Settings
- Scroll down to "API token"
- Copy your API token (keep it secure!)
2. Configure Your MCP Client
Usage Examples
Here are some examples of how to use the Todoist MCP server with different clients:
Claude Desktop
Add this to your claude_desktop_config.json file: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows)
{
"mcpServers": {
"todoist": {
"command": "todoist-mcp-server",
"env": {
"TODOIST_API_TOKEN": "your-api-token-here"
}
}
}
}
Cursor
Add this to your Cursor settings:
- Open Cursor Settings (
Cmd/Ctrl + ,) - Search for "MCP"
- Add the MCP server configuration:
{
"mcpServers": {
"todoist": {
"command": "todoist-mcp-server",
"env": {
"TODOIST_API_TOKEN": "your-api-token-here"
}
}
}
}
Other MCP Clients
For any MCP-compatible client, use:
- Command:
todoist-mcp-server - Environment Variable:
TODOIST_API_TOKEN=your-token
3. Restart Your Client
Restart Claude Desktop, Cursor, or your MCP client to load the server.
Usage
Once configured, you can interact with Todoist using natural language:
Creating Tasks
- "Create a task to buy groceries"
- "Add a task 'Call dentist' due tomorrow with high priority"
- "Create a task to finish the report with description 'Include Q4 metrics' due next Friday"
Listing Tasks
- "Show me my tasks for today"
- "List all my high priority tasks"
- "What tasks do I have in my Work project?"
Available Tools
create_task
Create a new task in Todoist.
Parameters:
content(required): Task title/contentdescription(optional): Task descriptionproject_name(optional): Project name to add task todue_string(optional): Due date in natural language ("tomorrow", "next monday")priority(optional): Priority level 1-4 (1=low, 2=medium, 3=high, 4=urgent)labels(optional): List of label names
list_active_tasks
List active tasks from Todoist.
Parameters:
project_name(optional): Filter by project namefilter_string(optional): Todoist filter ("today", "overdue", "p1")limit(optional): Maximum number of tasks (default: 50)
Troubleshooting
"Server disconnected" Error
- Make sure you've installed the package:
pip install todoist-mcp-server - Verify your API token is correct
- Check that the config file is in the right location
- Restart your MCP client completely
"Command not found" or "ENOENT" Error
The most common cause is that your MCP client can't find the todoist-mcp-server command in its PATH.
Solution: Use the full path to the command
-
Find where the command is installed:
which todoist-mcp-server -
Use the full path in your MCP config:
{ "mcpServers": { "todoist": { "command": "/full/path/to/todoist-mcp-server", "env": { "TODOIST_API_TOKEN": "your-api-token-here" } } } }
Other fixes:
- Ensure the package is installed in the same Python environment your MCP client uses
- Try reinstalling:
pip uninstall todoist-mcp-server && pip install todoist-mcp-server
API Token Issues
- Get a fresh token from Todoist Integrations
- Make sure there are no extra spaces in your config file
- Verify the token has the necessary permissions
Development
To contribute or run from source:
git clone https://github.com/mehularora8/todoist-mcp
cd todoist-mcp
pip install -e .
Security
- Your API token is stored locally and only used to communicate with Todoist's API
- No data is sent to third parties
- The MCP server runs locally on your machine
License
MIT License - see LICENSE file for details.
Support
- 🐛 Issues: Report bugs or request features
- 📖 Todoist API: Official Documentation
- 🔧 MCP Protocol: Model Context Protocol
Note: This is an unofficial integration and is not affiliated with Todoist or Doist Inc.
Metadata
Release files for todoist-mcp-server 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| todoist_mcp_server-0.1.3.tar.gz | 35.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| todoist_mcp_server-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.1 kB
Release files / todoist_mcp_server-0.1.3.tar.gz
| Download URL | todoist_mcp_server-0.1.3.tar.gz |
|---|---|
| Size | 35.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f549095532f4fc9f633aea2c6de882dc6e13b07b9c9f24482bf3ae3382f408be
|
|
BLAKE2b-256 checksum How to use checksums |
9867bf8c8ee419ce382cd93743e333ffe710284d56edd49131a6c4033fe94a7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Release files / todoist_mcp_server-0.1.3-py3-none-any.whl
| Download URL | todoist_mcp_server-0.1.3-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e273c565151c55daa5fab4db92725e5e85b8074b5d824561a7360ccfb6870db5
|
|
BLAKE2b-256 checksum How to use checksums |
557a6eb37cee8c35e503cbe357110c5eb27051cc4f1f26cbf409c3fb824eeacd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Security for todoist-mcp-server 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.