The shape of the tool set tells you how to use it: `get_tasks` returns ids, and update, complete and delete all take an id. So the working pattern is find-then-act — describe the task in words, let the listing tool resolve it, then operate on what came back. Dates take a plain YYYY-MM-DD, with deadline kept separate from due date.
A Python server over the Todoist API, covering task creation, retrieval and management. It handles the authentication and the data shaping so the conversation stays in terms of tasks rather than API payloads.
- A task created from its content, optionally with description, due date, priority, project, section and labels — `create_task`
- Tasks listed with ids and filters for project name or id, task name, priority, labels, overdue status and a limit — `get_tasks`
- An existing task updated by id: content, description, labels, priority, `due_date` and `deadline_date` — `update_task`
- A task completed or removed by id — `complete_task`, `delete_task`
A Todoist account and its API token in `TODOIST_API_TOKEN`, taken from User Settings → Integrations → Developer. Python 3.12 and uv. Runs straight from the repository with `uvx --from https://github.com/Johnxjp/todoist-mcp-python.git mcp-server-todoist`, so there is nothing to clone first.
One command plus a key — uvx --from https://github.com/Johnxjp/todoist-mcp-python.git mcp-server-todoist, then supply credentials
