A Model Context Protocol (MCP) server that integrates Todoist task management with AI models, enabling natural language task management through AI assistants like Claude, Gemini, Cursor, and other MCP-compatible tools.
- Complete Task Management: Add, list, update, delete, and complete tasks
- Project Organization: Create, manage, and organize projects hierarchically
- Label Management: Create and manage labels with color coding
- Hierarchical Data: Maintains parent-child relationships for tasks and projects
- GTD Integration: Built with Getting Things Done methodology in mind
- Universal AI Compatibility: Works with any MCP-compatible AI assistant
- Node.js v18.0.0 or higher
- npm (comes with Node.js)
- Todoist account and API token
npm install -g todoist-mcp-cli
git clone https://github.com/rkrohk/todoist-mcp-cli.git
cd todoist-mcp-cli
npm install
npm run build
npm install -g .
- Go to Todoist Settings > Integrations
- Find the "API token" section
- Copy your API token
Create a .env
file in your project directory:
TODOIST_API_TOKEN=your_actual_api_token_here
Add to your Claude Desktop configuration (~/.claude/config.json
):
{
"mcpServers": {
"todoist": {
"command": "todoist-mcp-cli",
"env": {
"TODOIST_API_TOKEN": "your_api_token"
}
}
}
}
- Open Cursor Settings
- Navigate to MCP Servers configuration
- Add new server:
- Command:
todoist-mcp-cli
- Environment:
TODOIST_API_TOKEN=your_token
- Command:
Use the command todoist-mcp-cli
with your Todoist API token in the environment.
Add a new task to Todoist.
Parameters:
content
(string): Task descriptionlabels
(array, optional): Label names to applyprojectId
(string, optional): Target project IDparentId
(string, optional): Parent task ID for subtasks
List tasks with optional filtering.
Parameters:
label
(string, optional): Filter by label nameprojectId
(string, optional): Filter by project ID
Update an existing task.
Parameters:
taskId
(string): Task ID to updateoptions
(object): Update optionscontent
(string, optional): New task contentdueString
(string, optional): Due date in natural languagepriority
(number, optional): Priority level (1-4)labels
(array, optional): New label set
Mark task(s) as complete.
Parameters:
taskId
(string, optional): Single task ID to completetaskIds
(array, optional): Multiple task IDs to complete
Delete a task.
Parameters:
taskId
(string): Task ID to delete
Move a task to a different project (GTD processing).
Parameters:
taskId
(string): Task to moveprojectId
(string): Destination project ID
List all projects in hierarchical structure.
Create a new project.
Parameters:
name
(string): Project nameparentId
(string, optional): Parent project IDcolor
(string, optional): Color nameisFavorite
(boolean, optional): Mark as favorite
Get detailed information about a specific project.
Parameters:
projectId
(string): Project ID
Delete a project.
Parameters:
projectId
(string): Project ID to delete
List all available labels.
Create a new label.
Parameters:
name
(string): Label namecolor
(string, optional): Color nameisFavorite
(boolean, optional): Mark as favorite
For projects and labels, you can use these colors:
berry_red
, red
, orange
, yellow
, lime_green
, green
, mint_green
, teal
, sky_blue
, blue
, grape
, violet
, lavender
, magenta
, salmon
, charcoal
, grey
, taupe
"Add a task 'Buy groceries' with label 'personal'"
"Show me all tasks in my Work project"
"Complete the task about finishing the report"
"Update my presentation task to be due tomorrow"
"Create a new project called 'Home Renovation'"
"Show me all my projects"
"Move the 'Call contractor' task to my Home project"
"Show me my inbox tasks that need processing"
"List all tasks with the 'next_actions' label"
"Move this task from inbox to my Personal project"
# Install dependencies
npm install
# Run MCP server in development
npm run start:mcp
# Run tests
npm test
# Build project
npm run build
├── src/
│ ├── mcp_server.ts # MCP server implementation (main executable)
│ ├── tools.ts # Core Todoist API functions
│ └── index.ts # CLI entry point
├── build/ # Compiled TypeScript output
└── package.json # Project configuration
"API Token Invalid"
- Verify your API token in Todoist Settings
- Check the token is correctly set in your environment
- Ensure no extra spaces in the token
"Command Not Found"
- Reinstall globally:
npm install -g todoist-mcp-cli
- Check your PATH includes npm global bin directory
- Try using
npx todoist-mcp-cli
MCP Connection Issues
- Verify environment variables are accessible to your AI client
- Check that the server command is correct in your AI client config
- Try restarting both the server and AI client
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
MIT License - see the LICENSE file for details.
- Built with the Model Context Protocol
- Powered by the Todoist API
- Inspired by Getting Things Done methodology