
Todoist
โ 9from mikemc
Manage your Todoist tasks and projects using the Todoist Python API.
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.
Available Tools
To see currently available tools, run
# With GNU grep installed as ggrep (as with `brew install grep` on Mac)
ggrep -Po '(?<=^mcp.tool\(\)\()([^)]+)' src/main.pyAs of 2025-05-26,
- Projects
todoist_get_projectstodoist_get_projecttodoist_add_projecttodoist_update_projecttodoist_delete_project
- Sections
todoist_get_sectionstodoist_get_sectiontodoist_add_sectiontodoist_update_sectiontodoist_delete_section
- Tasks
todoist_get_tasktodoist_get_taskstodoist_filter_taskstodoist_add_tasktodoist_update_tasktodoist_complete_tasktodoist_uncomplete_tasktodoist_move_tasktodoist_delete_task
- Comments
todoist_get_commenttodoist_get_commentstodoist_add_commenttodoist_update_commenttodoist_delete_comment
โ 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 extensionBefore it works, you'll need: TODOIST_API_TOKEN
Installation
Prerequisites
- Python 3.10+
- UV package manager (installation guide)
- Todoist API token
Getting a Todoist API Token
- Log in to your Todoist account
- Go to Settings โ Integrations
- Find your API token under "Developer"
Configuration with Claude Desktop
Add the MCP server to your claude_desktop_config.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,
{
"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.
โ 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-4Then run the same command again to configure the Todoist MCP:
$ goose configure
This time it will ask about extensions:
โ 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 extensionNow you can run goose and ask it questions about your todo list, or make changes.
$ 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.
...No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MITโ you can use, modify, and redistribute it under that license's terms.
License
This project is licensed under the MIT License. See the LICENSE file for details.