Todoist MCP Server
Provides tools to manage Todoist tasks and projects, including creating, reading, updating, completing tasks, listing with advanced filtering, searching by text, managing projects, and supporting labels, priorities, and natural language date parsing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Todoist MCP ServerCreate a task for team standup tomorrow at 9am"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Todoist MCP Server
A Model Context Protocol (MCP) server for Todoist task management, enabling Claude to interact with your Todoist tasks and projects.
Features
ā Create, read, update, and complete tasks
š List tasks with advanced filtering
š Search tasks by text content
š Manage projects
š·ļø Support for labels and priorities
š Natural language date parsing
ā” Rate limiting to stay within API limits
š”ļø Comprehensive error handling
Related MCP server: Todoist MCP Server
Installation
Prerequisites
Node.js >= 18.0.0
npm or yarn
A Todoist account with an API token
From Source
# Clone the repository
git clone <your-repo-url>
cd todoist-mcp
# Install dependencies
npm install
# Build the project
npm run buildConfiguration
1. Get Your Todoist API Token
Scroll down to "API token" section
Copy your personal API token
2. Set Up Environment Variables
Create a .env file in the project root:
cp .env.example .envEdit .env and add your Todoist API token:
TODOIST_API_TOKEN=your_actual_token_here
LOG_LEVEL=error3. Configure Claude Desktop
Add the server to your Claude Desktop configuration file:
Location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"todoist": {
"command": "node",
"args": ["/absolute/path/to/todoist-mcp/build/server.js"],
"env": {
"TODOIST_API_TOKEN": "your_actual_token_here"
}
}
}
}Important: Replace /absolute/path/to/todoist-mcp with the actual absolute path to your project directory.
4. Restart Claude Desktop
After updating the configuration, restart Claude Desktop for the changes to take effect.
Available Tools
todoist_create_task
Create a new task in Todoist with optional project, due date, priority, labels, and parent task for subtasks.
Parameters:
content(required): The task content/titledescription(optional): Task descriptionproject_id(optional): Project ID to add the task tosection_id(optional): Section ID within the projectdue_date(optional): Due date in natural language or YYYY-MM-DD formatpriority(optional): Priority level: 1 (normal), 2 (medium), 3 (high), 4 (urgent)labels(optional): Array of label namesparent_id(optional): Parent task ID to create a subtaskparent_task_name(optional): Parent task name to search for (alternative to parent_id)
Examples:
Create a task "Write report" due tomorrow with high priority
Create a task "Buy groceries" in the Shopping project
Create a task "Team meeting" due "next Monday at 2pm"
Create a subtask "Buy milk" under parent task "Go to the supermarket"
Create a subtask "Review slides" under task 8237492837
Add subtask "Call John" to the task "Prepare presentation"todoist_list_tasks
List active tasks with optional filters for project, section, label, or custom Todoist filter.
Parameters:
project_id(optional): Filter by project IDsection_id(optional): Filter by section IDlabel(optional): Filter by label namefilter(optional): Todoist filter query (e.g., "today", "overdue", "p1")limit(optional): Maximum number of tasks to return (default: 50, max: 200)
Examples:
List all my tasks
List tasks in project "Work"
List tasks due today
List all overdue tasks with limit 20todoist_get_task
Get detailed information about a specific task including all metadata.
Parameters:
task_id(required): The task ID to retrieve
Examples:
Get details for task 123456789
Show me task 987654321todoist_update_task
Update an existing task with new content, description, due date, priority, or labels.
Parameters:
task_id(required): The task ID to updatecontent(optional): New task contentdescription(optional): New task descriptiondue_date(optional): New due date (natural language or YYYY-MM-DD)priority(optional): New priority level (1-4)labels(optional): New labels array
Examples:
Update task 123 to have priority 4
Change task 456 due date to "next Friday"
Update task 789 content to "Revised meeting agenda"todoist_complete_task
Mark a task as completed.
Parameters:
task_id(required): The task ID to complete
Examples:
Complete task 123456
Mark task 789012 as donetodoist_list_projects
List all projects in Todoist, including inbox and shared projects.
Parameters: None
Examples:
List all my projects
Show me all my Todoist projectstodoist_search_tasks
Search for tasks by text in their content or description.
Parameters:
query(required): Text to search for in task content and descriptionlimit(optional): Maximum number of tasks to return (default: 50, max: 200)
Examples:
Search for tasks containing "meeting"
Find all tasks with "budget" in themDevelopment
Build
npm run buildDevelopment Mode (Watch)
npm run devRun Tests
npm testRun Tests in Watch Mode
npm run test:watchRate Limits
The server respects Todoist's API rate limit of 450 requests per 15 minutes. When the limit is exceeded, the API returns a 429 error which is caught and reported with a helpful error message. You can retry your request after waiting.
Error Handling
All errors are returned with descriptive messages. Common errors include:
Invalid API token: Check your
.envconfiguration or Claude Desktop configTask not found: Verify the task ID exists and hasn't been deleted
Rate limit exceeded: Wait 15 minutes or reduce request frequency
Network error: Check your internet connection
Validation error: Review the parameters you're providing to the tool
Natural Language Date Support
The server supports Todoist's natural language date parsing. You can use phrases like:
"tomorrow"
"next Monday"
"every Friday"
"in 3 days"
"next week"
"Dec 25"
You can also use standard date formats:
"2024-12-31"
"2024-12-31T14:30:00"
Project Structure
todoist-mcp/
āāā src/
ā āāā server.ts # Main MCP server entry point
ā āāā types/ # TypeScript type definitions
ā āāā api/ # Todoist API client and errors
ā āāā tools/ # MCP tool implementations
ā āāā utils/ # Utilities (logger, rate limiter)
āāā tests/
ā āāā unit/ # Unit tests
āāā build/ # Compiled JavaScript output
āāā package.json
āāā tsconfig.json
āāā .env.example
āāā README.mdPublishing & Registry
MCP name:
io.github.ecfaria/todoist-mcpNPM package:
@ecfaria/todoist-mcp-serverserver.json: see the root of this repo for the registry definition
Publishing flow
Update version numbers as needed (
npm version <patch|minor|major>).Build the distributable:
npm run build.Publish to npm:
npm publish --access public(scoped packages default to private).Validate registry metadata:
mcp-publisher validate.Publish to the MCP registry:
mcp-publisher publish.
Release notes (v1.0.0)
Added MCP registry metadata (
mcpName) topackage.json.Documented the publishing process and registry identity.
Introduced the canonical
server.jsonreference for registry publication.Adopted the scoped npm package name
@ecfaria/todoist-mcp-serverto avoid collisions.
Troubleshooting
Server not showing in Claude
Verify the path in
claude_desktop_config.jsonis absolute and correctCheck that you've built the project (
npm run build)Ensure the API token is set in the config
Restart Claude Desktop completely
API Token Invalid
Generate a new API token
Update your
.envfile or Claude Desktop configRestart the server/Claude Desktop
Tasks Not Showing Up
Verify you're using the correct project ID or filter
Check that tasks aren't already completed
Try listing all tasks without filters to see what's available
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Support
Acknowledgments
Built with:
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceIntegrates Claude with Todoist for natural language task management, supporting project and section organization, task creation, updating, completion, and deletion using everyday language.Last updated191623MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Todoist tasks and projects through natural language. Supports comprehensive task management including creating, updating, completing tasks, managing projects, and filtering by various criteria.Last updated11GPL 3.0
- AlicenseAqualityDmaintenanceEnables natural language task management with Todoist, supporting tasks, projects, sections, labels, smart search, and batch operations for efficient workflow integration with Claude and other MCP-compatible LLMs.Last updated1916MIT
- AlicenseAqualityCmaintenanceConnects Claude to Todoist for transforming meeting notes into actionable tasks with inferred due dates and priorities. It enables full task lifecycle management, including creating subtasks, listing projects, and completing tasks through natural language.Last updated7MIT
Related MCP Connectors
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Read, edit, publish, and preview your pepita websites from Claude.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ecfaria/todoist-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server