
How to add Todoist MCP (official, Doist) to Windsurf
Doist's official Todoist MCP server — manage tasks, projects, and labels on your behalf. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.
Last updated June 15, 2026 · 510★ · stdio · apikey · official
Windsurf config for Todoist MCP (official, Doist)
npx -y @doist/todoist-mcp{
"mcpServers": {
"todoist-mcp-official-doist": {
"command": "npx",
"args": [
"-y",
"@doist/todoist-mcp"
],
"env": {
"TODOIST_API_KEY": "<your-todoist-api-key>"
}
}
}
}Setup steps
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the Todoist MCP (official, Doist) config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 5Todoist MCP (official, Doist)'s tools become available to Cascade.
Before you start
- Node.js (an .nvmrc pins the supported version; Node 18+ recommended) if running the npm package locally
- A Todoist account
- For local/stdio use: a Todoist API token from Todoist → Settings → Integrations → Developer, set as the TODOIST_API_KEY environment variable
- For the hosted remote endpoint (https://ai.todoist.net/mcp): no token needed — OAuth runs in the browser on first use
What Todoist MCP (official, Doist) can do in Windsurf
add-tasksCreate one or more tasks with content, due dates, priority, labels, and project/section.
find-tasksFind tasks by query, filtering by project, label, or other attributes.
find-tasks-by-dateFind tasks scheduled for a given date or date range.
update-tasksUpdate existing tasks (content, due date, priority, etc.).
complete-tasksMark tasks as complete (and uncomplete-tasks to reopen them).
reschedule-tasksMove tasks to new due dates.
add-projects / find-projects / update-projectsCreate, list, and edit projects; project-move and project-management for restructuring.
add-sections / update-sections / find-sectionsManage sections within projects.
Security
The TODOIST_API_KEY grants full read/write access to your tasks and projects, so store it in env vars and revoke it from Todoist settings if leaked. The hosted ai.todoist.net option uses OAuth and avoids storing the key locally.
Todoist MCP (official, Doist) + Windsurf FAQ
Where is the Windsurf config file?
Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Todoist MCP (official, Doist) config there under the "mcpServers" key and restart the client.
Is Todoist MCP (official, Doist) safe to use with Windsurf?
The TODOIST_API_KEY grants full read/write access to your tasks and projects, so store it in env vars and revoke it from Todoist settings if leaked. The hosted ai.todoist.net option uses OAuth and avoids storing the key locally.
Is this the official Todoist MCP server?
Yes. It's published under the @doist npm scope and maintained by Doist, the company that makes Todoist.
Do I need an API token, or can I use OAuth?
Both work. The local npm package uses a TODOIST_API_KEY from Settings → Integrations → Developer; the hosted endpoint at ai.todoist.net/mcp uses browser OAuth on first use.
What's the npm package name?
@doist/todoist-mcp. It was previously published as @doist/todoist-ai.