Labsco
jdh747 logo

Todoist MCP

โ˜… 1

from jdh747

Interact with your Todoist account to manage tasks and projects.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

Todoist MCP

Note: predictably obsoleted by Todoist AI SDK, see here.


Connect this Model Context Protocol server to your LLM to interact with Todoist.

Functionality

This integration implements all the APIs available from the Todoist TypeScript Client, providing access to:

Task Management

  • Create tasks (with content, descriptions, due dates, priorities, labels, and more)
  • Create tasks with natural language (e.g., "Submit report by Friday 5pm #Work")
  • Retrieve tasks (individual, filtered, or all tasks)
  • Retrieve completed tasks (by completion date or due date)
  • Get productivity statistics
  • Update tasks
  • Move tasks (individually or in batches)
  • Close/reopen tasks
  • Delete tasks

Project Management

  • Create, retrieve, update, and delete projects

Section Management

  • Create, retrieve, update, and delete sections within projects

Comment Management

  • Add, retrieve, update, and delete comments for tasks or projects

Label Management

  • Create, retrieve, update, and delete labels
  • Manage shared labels

Collaboration

  • Get collaborators for projects

๐Ÿ” Security Features

This MCP server has been secured with enterprise-grade security measures:

  • Authentication Required: JWT Bearer tokens or API key authentication
  • Rate Limiting: Prevents abuse with configurable limits
  • Input Validation: Comprehensive request validation and sanitization
  • Security Headers: CORS, CSP, HSTS, and other security headers
  • Logging & Monitoring: Security event logging and request monitoring
  • Environment Configuration: Secure configuration via environment variables

See SECURITY.md for detailed security documentation.

Authentication

The server supports two authentication methods:

curl -X POST http://localhost:3000/mcp \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
curl -X POST http://localhost:3000/mcp \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'