Todoist MCP Server

Natural-language task management — capture, query and complete Todoist tasks without opening the app.

Local serverstdioTypeScriptMIT 800

What is the Todoist MCP server?

Todoist already understands natural language dates ("every other Friday at 3pm"), so a conversational interface is less a novelty than a homecoming. The Todoist MCP server connects your assistant to your task list with the core verbs: create, search, update, complete, delete — each accepting the descriptions, due dates, priorities and projects you'd set in the app.

Capture is the killer feature, as it always is with task systems. The tasks that never get filed are the ones that arrive mid-something-else; being able to say "add: renew the domain before the 15th, high priority" without breaking stride means the list stays trustworthy. The assistant handles the translation into Todoist's fields — including its natural-date syntax — so capture costs one sentence.

Retrieval-side, the server turns your list into something you can interrogate: "what's due today?", "what have I been postponing all week?", "clear everything in the errands project that mentions the car". Batch operations that would be a tedious sequence of taps become one instruction. And because the assistant sees task content, it can do light coaching — spotting the vague ("sort out insurance") and suggesting the actionable next step.

Setup is one API token from Todoist's integration settings. The widely used implementation (abhiz123/todoist-mcp-server) covers the essential loop in ~500 lines of auditable TypeScript; Doist also now maintains an official AI-focused server if you want fuller API coverage. Either way, this is among the lowest-effort, highest-daily-touch integrations in the directory.

Getting the most out of daily use

  • Priority is inverted between API and app — priority: 4 is the red P1 you see on screen — so ask for "urgent" and let the mapping happen.
  • Todoist's own filter grammar passes through verbatim: today | overdue, #Errands & @phone, no date all beat describing a filter in prose.
  • Updates and completions match by name search, so phrase them uniquely; "the dentist task" is safe, "the call" is a coin flip.
  • Regenerating the token under Settings → Integrations → Developer invalidates the old one immediately — the fastest kill switch if a config leaks.

What you can do with it

Zero-friction capture

Tasks filed mid-conversation with dates and priorities parsed for you.

Daily planning

"What's due today and what can slip?" answered from the real list.

List hygiene

Batch-complete, reschedule or delete by description instead of tap-by-tap.

Available tools

ToolWhat it does
todoist_create_taskCreate tasks with description, due date and priority
todoist_get_tasksList and filter tasks (due date, priority, project)
todoist_update_taskModify a task found by name search
todoist_complete_taskMark tasks done
todoist_delete_taskRemove tasks

How to install the Todoist MCP server

{
  "mcpServers": {
    "todoist": {
      "command": "npx",
      "args": ["-y", "@abhiz123/todoist-mcp-server"],
      "env": { "TODOIST_API_TOKEN": "your-todoist-api-token" }
    }
  }
}

Token from Todoist → Settings → Integrations → Developer.

Configuration

A Todoist account (free tier fine) and its API token. Node.js 18+.

VariableDescriptionRequired
TODOIST_API_TOKENPersonal API token from Todoist integration settingsYes

Example prompts to try

  • Add a task: send the invoice to Acme, due Friday, high priority.
  • What's overdue right now, and what's due before the weekend?
  • Mark everything about the conference as done and delete the duplicate grocery tasks.

Frequently asked questions

Doist maintains an official AI-tooling server with broad API coverage; the community abhiz123 server remains popular for its simplicity — five tools, small codebase, easy audit. Both work with the same API token.