Skip to main content
Glama

mcp-todoist

todoist_tasks

Manage Todoist tasks with full CRUD operations - create, read, update, delete, complete, and query tasks using filters like priority, due dates, and labels.

Instructions

Comprehensive task management for Todoist - create, read, update, delete, and query tasks with full CRUD operations and batch support

Input Schema

NameRequiredDescriptionDefault
actionYesAction to perform
assignee_idNoAssignee user ID
batch_commandsNoBatch commands (for batch action)
contentNoTask content/title
cursorNoPagination cursor for next page (for list)
deadlineNoTask completion deadline in YYYY-MM-DD format (e.g., 2025-10-15). When work must be done by, distinct from due_date (when work should start). Use null to remove deadline. Past dates allowed (triggers reminder). Recurring tasks trigger warning (deadline stays static).
descriptionNoTask description
due_dateNoDue date (YYYY-MM-DD)
due_datetimeNoDue datetime (ISO 8601)
due_stringNoNatural language due date
label_idNoFilter by label ID (for list)
labelsNoLabel names (not IDs) - e.g., ["Work", "Important"]. Get available label names from todoist_labels tool.
langNoLanguage code for query parsing (for list)
limitNoNumber of results per page, max 200 (for list)
parent_idNoParent task ID
priorityNoPriority (1-4)
project_idNoProject ID (for create/update/list actions). When listing tasks, use this to filter by project including Inbox. Get project IDs from todoist_projects tool.
queryNoFilter query string (for list). Examples: "today" (due today), "tomorrow", "p1" (priority 1), "p2" (priority 2), "overdue", "no date", "#ProjectName" (tasks in project), "@LabelName" (tasks with label), "p1 & today" (high priority + due today). For content search use "search:" prefix: "search: meeting" (tasks containing "meeting"), "search: email & today" (tasks with "email" due today). For Inbox tasks, use project_id parameter instead of query.
section_idNoSection ID
task_idNoTask ID (required for get/update/delete/complete/uncomplete)

Input Schema (JSON Schema)

{ "properties": { "action": { "description": "Action to perform", "enum": [ "create", "get", "update", "delete", "list", "complete", "uncomplete", "batch" ], "type": "string" }, "assignee_id": { "description": "Assignee user ID", "type": "string" }, "batch_commands": { "description": "Batch commands (for batch action)", "items": { "type": "object" }, "type": "array" }, "content": { "description": "Task content/title", "type": "string" }, "cursor": { "description": "Pagination cursor for next page (for list)", "type": "string" }, "deadline": { "description": "Task completion deadline in YYYY-MM-DD format (e.g., 2025-10-15). When work must be done by, distinct from due_date (when work should start). Use null to remove deadline. Past dates allowed (triggers reminder). Recurring tasks trigger warning (deadline stays static).", "type": "string" }, "description": { "description": "Task description", "type": "string" }, "due_date": { "description": "Due date (YYYY-MM-DD)", "type": "string" }, "due_datetime": { "description": "Due datetime (ISO 8601)", "type": "string" }, "due_string": { "description": "Natural language due date", "type": "string" }, "label_id": { "description": "Filter by label ID (for list)", "type": "string" }, "labels": { "description": "Label names (not IDs) - e.g., [\"Work\", \"Important\"]. Get available label names from todoist_labels tool.", "items": { "type": "string" }, "type": "array" }, "lang": { "description": "Language code for query parsing (for list)", "type": "string" }, "limit": { "description": "Number of results per page, max 200 (for list)", "type": "number" }, "parent_id": { "description": "Parent task ID", "type": "string" }, "priority": { "description": "Priority (1-4)", "type": "number" }, "project_id": { "description": "Project ID (for create/update/list actions). When listing tasks, use this to filter by project including Inbox. Get project IDs from todoist_projects tool.", "type": "string" }, "query": { "description": "Filter query string (for list). Examples: \"today\" (due today), \"tomorrow\", \"p1\" (priority 1), \"p2\" (priority 2), \"overdue\", \"no date\", \"#ProjectName\" (tasks in project), \"@LabelName\" (tasks with label), \"p1 & today\" (high priority + due today). For content search use \"search:\" prefix: \"search: meeting\" (tasks containing \"meeting\"), \"search: email & today\" (tasks with \"email\" due today). For Inbox tasks, use project_id parameter instead of query.", "type": "string" }, "section_id": { "description": "Section ID", "type": "string" }, "task_id": { "description": "Task ID (required for get/update/delete/complete/uncomplete)", "type": "string" } }, "required": [ "action" ], "type": "object" }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shayonpal/mcp-todoist'

If you have feedback or need assistance with the MCP directory API, please join our Discord server