A Model Context Protocol (MCP) server that enables Claude to interact with your Todoist account.
# Install using UV
uvx mcp-todoist
# Add to your .env file or environment
TODOIST_API_TOKEN=your_api_token_here
// ~/.config/claude/claude_desktop_config.json or equivalent
{
"mcpServers": {
"mcp-todoist": {
"command": "uvx",
"args": ["mcp-todoist"]
}
}
}
Once configured, you can ask Claude to interact with your Todoist account:
list-tasks
- Retrieve and filter taskscreate-task
- Create a new taskupdate-task
- Update an existing taskcomplete-task
- Mark a task as completeddelete-task
- Delete a tasklist-projects
- Get all projectscreate-project
- Create a new projectupdate-project
- Update a projectdelete-project
- Delete a projectlist-labels
- Get all labelscreate-label
- Create a new labelupdate-label
- Update a labeldelete-label
- Delete a labelsearch
- Search across tasks with complex filteringRun the server in a terminal window:
# Set your API token
export TODOIST_API_TOKEN=your_api_token_here
# Run the server using UV
uvx mcp-todoist
# Alternative: Run from source
cd /path/to/mcp-todoist
uv run python -m mcp_todoist
Keep this terminal window open while using Claude Desktop.
Create a startup script that Claude Desktop can use to automatically start the server:
start-todoist-mcp.sh
with the following content:#!/bin/bash
# Set environment variables
export MCP_SERVER_NAME="mcp-todoist"
export MCP_LOG_LEVEL="INFO"
export MCP_DEBUG="true"
export TODOIST_API_TOKEN="your_todoist_api_token_here"
# Path to your Todoist MCP server
MCP_PATH="/path/to/mcp-todoist"
# Log file for debugging
LOG_FILE="${MCP_PATH}/todoist-mcp.log"
# Create log file or clear existing one
echo "Starting Todoist MCP server at $(date)" > "${LOG_FILE}"
# Navigate to the project directory
cd "${MCP_PATH}"
# Start the MCP server
echo "Starting MCP server from ${MCP_PATH}" >> "${LOG_FILE}"
uv run python -m mcp_todoist >> "${LOG_FILE}" 2>&1
chmod +x start-todoist-mcp.sh
{
"mcpServers": {
"mcp-todoist": {
"command": "/absolute/path/to/start-todoist-mcp.sh",
"args": []
}
}
}
This approach offers several advantages:
If using the startup script, check the log file:
cat /path/to/mcp-todoist/todoist-mcp.log
Set the MCP_DEBUG
environment variable to true
for more verbose logging:
export MCP_DEBUG=true
uvx mcp-todoist
Ensure your Todoist API token is correct and still valid:
# Test the token with a simple curl request
curl -X GET \
https://api.todoist.com/rest/v2/projects \
-H "Authorization: Bearer $TODOIST_API_TOKEN"
The MCP Inspector is a powerful tool for debugging MCP servers:
npx @modelcontextprotocol/inspector uvx mcp-todoist
This will open a web interface showing all communications between Claude and the MCP server.
# Clone the repository
git clone https://github.com/yourusername/mcp-todoist.git
cd mcp-todoist
# Install dependencies
uv sync
# Run tests
uv run pytest
For local development, you can create a .env
file with your Todoist API token:
TODOIST_API_TOKEN=your_api_token_here
Then run the server:
uv run python -m mcp_todoist
MIT License - see LICENSE file for details.
Todoist MCP server for Claude, using python Astral UV
No releases published
No packages published