Skip to main content
Glama

Todoist MCP Server

by mikemc
README.md4.83 kB
# Todoist MCP Server (Python) A Todoist MCP server written in Python, using the [Todoist Python API](https://developer.todoist.com/rest/v2/?python). I first created the server by using Claude to translate this [TypeScript Todoist MCP server](https://github.com/abhiz123/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 * Python 3.10+ * UV package manager ([installation guide](https://docs.astral.sh/uv/getting-started/installation/)) * Todoist API token ### 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](https://block.github.io/goose/) and a local LLM provider: [LM Studio](https://lmstudio.ai/) or [Ollama](https://ollama.com/). 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](LICENSE) file for details.

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mikemc/todoist-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server