Skip to content

Blog

Todoist MCP setup: OAuth, projects and tasks

Connect Todoist, then verify one known task in the intended project.

Published on · by tracevero · Reading time 4 minutes (634 words)

Choose an existing test task in Todoist. Record its title, project and displayed due date. If it includes a time, record the time zone as well. This gives you a reference for distinguishing a connection failure from a narrow search or a timestamp displayed differently. Avoid using a task whose content changes during the test.

Choose HTTP or a local process

Doist documents the hosted endpoint https://ai.todoist.net/mcp with Streamable HTTP and OAuth. This guide uses that connection. A separate local package, @doist/todoist-mcp, expects an API key through TODOIST_API_KEY. Both connect to Todoist, but their authentication and runtime requirements differ.

Add the connection in VS Code

Run “MCP: Add Server”, select HTTP and enter the endpoint below. If you already use the VS Code configuration format, this complete entry belongs in .vscode/mcp.json. Replace an existing entry with the same name so that two connections using different accounts do not operate side by side.

{
  "servers": {
    "todoist": {
      "type": "http",
      "url": "https://ai.todoist.net/mcp"
    }
  }
}

Start the server in your client and complete browser OAuth with the intended Todoist account. The hosted connection does not need an API key in your project file. The VS Code setup guide explains other configuration formats. After signing in, inspect the tools actually offered before running a request.

From account to the intended task 1. Account Sign in 2. Project Select 3. Task Read
Project context makes the first comparison reproducible.

Read and compare one task

  1. Choose a read operation from the tool list. Specify the project name and the exact title of the task prepared for this test.

  2. Compare the task identifier and project with the Todoist interface. A similar title in another project is not a matching result.

  3. Check due date, time and time zone separately. If a date filter returns nothing, begin with a direct search for the known task.

  4. Record result and time. Repeat the same request after restarting the client before relying on the connection for regular work.

Interpret empty responses and interruptions

From symptom to the next check
ObservationCheck
Authentication failsVerify the endpoint, selected account and completed OAuth flow in the client.
Task is missingCompare project and title directly; temporarily omit the date filter.
The date appears shiftedDistinguish a date without a time from a timestamp and check the time zone.
A session disconnectsReconnect in the client and repeat the same read test.

The first trial should not create, complete or move anything. Those are separate operations with different consequences. A request to read is not a technical restriction on account permissions, however. Record the enabled tools in the access planner. The Todoist registry search helps compare provider, package and source. Switching to a local package is not an automatic fix for every authentication issue: check its documented runtime and key handling separately.

Do I need an API key for HTTP?
The hosted connection described here uses OAuth. An API key belongs to the separately documented local package and is not part of this JSON file.
Why can I find a task without a date filter but not with it?
Compare the exact time range and due-date representation. Check the same record in Todoist before concluding that the connection is faulty.
Should I complete a task to test the connection?
Begin with a read. Completing a task changes its status and may affect subsequent work; reserve that action for a deliberately planned change test.
What makes the test repeatable?
Record account, project identifier, task identifier, filters, time and expected fields. Keep the note separate from credentials and limit personal information included in it.

Find more project tools in the app directory.

Vendor documentation checked on 2 October 2026. The checks are a suggested procedure for your environment, not an authenticated account test.

  1. Doist: Todoist MCP
    Show retrieval commandcurl -s https://github.com/Doist/todoist-mcp
  2. Doist: MCP server setup
    Show retrieval commandcurl -s https://github.com/Doist/todoist-mcp/blob/main/docs/mcp-server.md
  3. VS Code: MCP configuration
    Show retrieval commandcurl -s https://code.visualstudio.com/docs/agent-customization/mcp-servers

Put it into practice

All posts

tracevero · https://tracevero.com/blog/todoist-mcp-setup