Todoist MCP Server
MCP server that connects Claude to Todoist, enabling full CRUD operations on tasks, projects, sections, comments, and labels.
README
⚠️ ARCHIVED: This project has been retired and is no longer maintained. Reason: Replaced by the official Todoist MCP plugin in the Claude connector registry. Retired: 2026-03-22
Todoist MCP Server
MCP server that connects Claude Desktop, Cowork, and Claude Code to your Todoist account. Full CRUD for tasks, projects, sections, comments, and labels.
Tools (25 total)
Tasks
todoist_list_tasks— List/filter tasks (by project, section, label, or Todoist filter syntax)todoist_get_task— Get a single task by IDtodoist_create_task— Create with due dates, priority, labels, recurring schedulestodoist_update_task— Update any task fieldtodoist_close_task— Mark complete (advances recurring tasks)todoist_reopen_task— Reopen a completed tasktodoist_delete_task— Permanently delete
Projects
todoist_list_projects/todoist_get_project/todoist_create_project/todoist_update_project/todoist_delete_project
Sections
todoist_list_sections/todoist_create_section/todoist_update_section/todoist_delete_section
Comments
todoist_list_comments/todoist_create_comment/todoist_update_comment/todoist_delete_comment
Labels
todoist_list_labels/todoist_create_label/todoist_update_label/todoist_delete_label
Prerequisites
- Todoist API Token — Get from: Todoist → Settings → Integrations → Developer
- Python 3.12+ (for local use) or Docker (for VPS deployment)
Quick Start — Local (stdio)
# Clone and install
git clone https://github.com/alobarquest/todoist-mcp.git
cd todoist-mcp
pip install -r requirements.txt
# Set your token
export TODOIST_API_TOKEN="your_token_here"
# Run (stdio mode for local clients)
python -m src.server
Local Development
Run Tests
pip install -r requirements.txt
python -m pytest tests/ -v
Lint
ruff check src/ tests/
Claude Desktop Configuration
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"todoist": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/todoist-mcp",
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}
Claude Code Configuration
Add to your project's .mcp.json or global ~/.claude/settings.json:
{
"mcpServers": {
"todoist": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/todoist-mcp",
"env": {
"TODOIST_API_TOKEN": "your_token_here"
}
}
}
}
Remote Server (VPS via Coolify)
When deployed to the VPS, the server runs in streamable HTTP mode.
Connect Claude Desktop to the remote server:
{
"mcpServers": {
"todoist": {
"url": "https://todoist-mcp.devonwatkins.com/mcp/"
}
}
}
Environment variables for Coolify:
| Variable | Description |
|---|---|
TODOIST_API_TOKEN |
Your Todoist API token (from BWS) |
MCP_TRANSPORT |
streamable_http (set in Dockerfile) |
MCP_PORT |
8000 (set in Dockerfile) |
Deployment — Coolify/Hetzner VPS
This follows Flavor A from Devon's Infra Standards (lightweight, single container).
However, since we use GHCR image pulls (not source build), the CI/CD follows the Flavor B pattern:
- Push to
main→ GitHub Actions builds image → pushes toghcr.io/alobarquest/todoist-mcp - Coolify webhook triggers redeploy → pulls latest image
Coolify Setup
- Build type: Docker Image
- Image:
ghcr.io/alobarquest/todoist-mcp:latest - Port: 8000
- Domain:
todoist-mcp.devonwatkins.com - Health check:
http://127.0.0.1:8000/health/ready - Environment:
TODOIST_API_TOKENfrom BWS
GitHub Repo Secrets
COOLIFY_WEBHOOK_URL— Coolify deploy webhook for this resourceCOOLIFY_API_TOKEN— Coolify API bearer token
Health Checks
Two endpoints are available for health monitoring:
/health/live— Liveness check. Always returns 200 OK. Use to verify the server is running./health/ready— Readiness check. Returns 200 OK ifTODOIST_API_TOKENis set, 503 Service Unavailable otherwise. Use in Coolify health check configuration.
CI/CD
All commits to main are validated by GitHub Actions before deployment:
- Lint:
ruff check src/ tests/— code formatting and style - Tests:
python -m pytest tests/ -v— all tests must pass
The build-and-push job only runs after the validate job passes. PRs are also validated before merging.
Rate Limits
Todoist allows 1000 requests per user per 15 minutes. The server returns a clear error message if you hit this limit.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.