Todoist MCP Server
# Todoist MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with
Todoist, enabling AI assistants to manage tasks, projects, labels, sections, and
comments through the Todoist API.
## Configuration
This server requires a Todoist API token to function.
1. **Get your API token:**
- Go to
[Todoist Settings](https://app.todoist.com/app/settings/integrations/developer).
- Scroll down to the "API token" section.
- Copy your personal API token.
2. **Configure your MCP client:** Add the server to your MCP client
configuration, making sure to include your API token. For Claude Desktop, you
would add one of the following to your `claude_desktop_config.json`:
#### Docker
```json
{
"mcpServers": {
"todoist": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TODOIST_API_TOKEN=your_api_token_here",
"ghcr.io/ganievs/todoist-mcp-server:latest"
]
}
}
}
```
#### NPX
```json
{
"mcpServers": {
"todoist": {
"command": "npx",
"args": [
"-y",
"@ganiev/todoist-mcp-server"
],
"env": {
"TODOIST_API_TOKEN": "your_api_token_here"
}
}
}
}
```
## Usage
Once configured, you can use natural language to interact with Todoist through
your MCP client:
- "Create a task to buy groceries with high priority"
- "List all my projects"
- "Add a comment to the task about the meeting"
- "Create a new project for my vacation planning"
- "Show me all tasks with the 'urgent' label"
## Development
To set up the project for development:
1. **Clone the repository:**
```bash
git clone https://github.com/ganievs/todoist-mcp-server.git
cd todoist-mcp-server
```
2. **Install dependencies:**
```bash
npm install
```
3. **Run the linter:**
```bash
npm run lint
```
4. **Build the project:**
```bash
npm run build
```
## Support
For issues and feature requests, please use the
[GitHub Issues](https://github.com/ganievs/todoist-mcp-server/issues) page.
TDQS
Scored across 27 tools
Each tool targets a distinct resource and action. There is no overlap in purpose; for example, add_task and add_project operate on different resources, and get_task vs list_tasks are clearly separated.
All tool names follow a consistent verb_noun pattern (e.g., add_task, delete_comment, list_projects). The verbs and nouns are standardized, making it easy to predict the naming for any missing operation.
27 tools is on the higher end but appropriate given the number of resource types (task, project, section, label, comment) with full CRUD plus extras like close/reopen and collaborators. It could potentially be trimmed but is still well-scoped.
The set covers all major CRUD lifecycle for tasks, projects, sections, labels, and comments, plus close/reopen for tasks. Minor gaps exist (e.g., no move_task or assign_task) but the core workflows are complete.