trackmcp
Back to directory
mikemc

todoist-mcp-server

View on GitHub

Todoist MCP server

9 stars PythonOthers Updated Apr 13, 2026

Documentation

Todoist MCP Server (Python)

A Todoist MCP server written in Python, using the Todoist Python API. I first created the server by using Claude to translate this TypeScript Todoist MCP server to Python. I'm gradually changing and adding functionality to suit my workflow as I experiment with using Claude to help with task management.

Installation

Prerequisites

Getting a Todoist API Token

1. Log in to your Todoist account

2. Go to Settings → Integrations

3. Find your API token under "Developer"

Configuration with Claude Desktop

Add the MCP server to your claude_desktop_config.json,

json
{
  "mcpServers": {
    "todoist": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/mikemc/todoist-mcp-server",
        "todoist-mcp"
      ],
      "env": {
        "TODOIST_API_TOKEN": "your_todoist_api_token"
      }
    }
  }
}

Or, to run from a local copy,

json
{
  "mcpServers": {
    "todoist": {
      "command": "uvx",
      "args": [
        "--from",
        "/absolute/path/to/todoist-mcp-server",
        "todoist-mcp"
      ],
      "env": {
        "TODOIST_API_TOKEN": "your_todoist_api_token"
      }
    }
  }
}

Configuration with Goose (and a local LLM)

You can use Goose and a local LLM provider: LM Studio or Ollama.

Configure the LLM you want Goose to use:

`$ goose configure`

This command will ask you whether you want to use a local model or a cloud hosted model. Ensure your model provider is running your model first. Specify the address of the model API, and the model name. Many locally deployed LLMs use a format compatible with `Ollama`, so for both `LM Studio` or `Ollama` LLMs, select `Ollama`.

bash
◇  Which model provider should we use?
│  Ollama 
│
◇  Provider Ollama requires OLLAMA_HOST, please enter a value
│  localhost:1234
│
◇  Model fetch complete
│
◇  Enter a model from that provider:
│  phi-4

Then run the same command again to configure the Todoist MCP:

`$ goose configure`

This time it will ask about extensions:

bash
◇  What would you like to configure?
│  Add Extension 
│
◇  What type of extension would you like to add?
│  Command-line Extension 
│
◇  What would you like to call this extension?
│  todoist
│
◇  What command should be run?
│  uvx git+https://github.com/mikemc/todoist-mcp-server
│
◇  Please set the timeout for this tool (in secs):
│  60
│
◇  Would you like to add a description?
│  No 
│
◇  Would you like to add environment variables?
│  Yes 
│
◇  Environment variable name:
│  TODOIST_API_TOKEN
│
◇  Environment variable value:
│  ▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
│
◇  Add another environment variable?
│  No 
│
└  Added todoist extension

Now you can run `goose` and ask it questions about your todo list, or make changes.

bash
$ goose          
starting session | provider: ollama model: phi-4
    logging to ******
    working directory: ******

Goose is running! Enter your instructions, or try asking what goose can do.

( O)> how many todo list tasks have I completed in the last 7 days

─── todoist_get_tasks | todoist ──────────────────────────
filter: last 7 days completed

...
*Ideally* You have been very busy this week. You have completed 15 tasks! Listed below are the tasks.
...

Available Tools

To see currently available tools, run

sh
# With GNU grep installed as ggrep (as with `brew install grep` on Mac)
ggrep -Po '(?<=^mcp.tool\(\)\()([^)]+)' src/main.py

As of 2025-05-26,

  • Projects
    • `todoist_get_projects`
    • `todoist_get_project`
    • `todoist_add_project`
    • `todoist_update_project`
    • `todoist_delete_project`
  • Sections
    • `todoist_get_sections`
    • `todoist_get_section`
    • `todoist_add_section`
    • `todoist_update_section`
    • `todoist_delete_section`
  • Tasks
    • `todoist_get_task`
    • `todoist_get_tasks`
    • `todoist_filter_tasks`
    • `todoist_add_task`
    • `todoist_update_task`
    • `todoist_complete_task`
    • `todoist_uncomplete_task`
    • `todoist_move_task`
    • `todoist_delete_task`
  • Comments
    • `todoist_get_comment`
    • `todoist_get_comments`
    • `todoist_add_comment`
    • `todoist_update_comment`
    • `todoist_delete_comment`

License

This project is licensed under the MIT License. See the LICENSE file for details.

Frequently asked questions

What is todoist-mcp-server?

todoist-mcp-server is Todoist MCP server

How do I install todoist-mcp-server?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is todoist-mcp-server open source?

Yes — it is hosted on GitHub at https://github.com/mikemc/todoist-mcp-server and has 9 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP