什么是 io.github.ecfaria/todoist-mcp?
用于集成 Todoist 任务管理的 MCP 服务器,可让 AI 工具创建、查询与同步待办事项。
README
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
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 build
Configuration
1. Get Your Todoist API Token
- Go to Todoist Integrations Settings
- 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 .env
Edit .env and add your Todoist API token:
TODOIST_API_TOKEN=your_actual_token_here
LOG_LEVEL=error
3. Configure Claude Desktop
Add the server to your Claude Desktop configuration file:
Location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.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 20
todoist_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 987654321
todoist_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 done
todoist_list_projects
List all projects in Todoist, including inbox and shared projects.
Parameters: None
Examples:
List all my projects
Show me all my Todoist projects
todoist_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 them
Development
Build
npm run build
Development Mode (Watch)
npm run dev
Run Tests
npm test
Run Tests in Watch Mode
npm run test:watch
Rate 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 config - Task 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.md
Publishing & Registry
- MCP name:
io.github.ecfaria/todoist-mcp - NPM package:
@ecfaria/todoist-mcp-server - server.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 correct - Check 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
- Go to Todoist Integrations Settings
- Generate a new API token
- Update your
.envfile or Claude Desktop config - Restart 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:
常见问题
io.github.ecfaria/todoist-mcp 是什么?
用于集成 Todoist 任务管理的 MCP 服务器,可让 AI 工具创建、查询与同步待办事项。
相关 Skills
PDF处理
by anthropics
遇到 PDF 读写、文本表格提取、合并拆分、旋转加水印、表单填写或加解密时直接用它,也能提取图片、生成新 PDF,并把扫描件通过 OCR 变成可搜索文档。
✎ PDF杂活别再来回切工具了,文本表格提取、合并拆分到OCR识别一次搞定,连扫描件也能变可搜索。
Word文档
by anthropics
覆盖Word/.docx文档的创建、读取、编辑与重排,适合生成报告、备忘录、信函和模板,也能处理目录、页眉页脚、页码、图片替换、查找替换、修订批注及内容提取整理。
✎ 搞定 .docx 的创建、改写与精排版,目录、批量替换、批注修订和图片更新都能自动化,做正式文档尤其省心。
PPT处理
by anthropics
处理 .pptx 全流程:创建演示文稿、提取和解析幻灯片内容、批量修改现有文件,支持模板套用、合并拆分、备注评论与版式调整。
✎ 涉及PPTX的创建、解析、修改到合并拆分都能一站搞定,连备注、模板和评论也能处理,做演示文稿特别省心。
相关 MCP Server
文件系统
编辑精选by Anthropic
Filesystem 是 MCP 官方参考服务器,让 LLM 安全读写本地文件系统。
✎ 这个服务器解决了让 Claude 直接操作本地文件的痛点,比如自动整理文档或生成代码文件。适合需要自动化文件处理的开发者,但注意它只是参考实现,生产环境需自行加固安全。
by wonderwhy-er
Desktop Commander 是让 AI 直接执行终端命令、管理文件和进程的 MCP 服务器。
✎ 这工具解决了 AI 无法直接操作本地环境的痛点,适合需要自动化脚本调试或文件批量处理的开发者。它能让你用自然语言指挥终端,但权限控制需谨慎,毕竟让 AI 执行 rm -rf 可不是闹着玩的。
EdgarTools
编辑精选by dgunning
EdgarTools 是无需 API 密钥即可解析 SEC EDGAR 财报的开源 Python 库。
✎ 这个工具解决了金融数据获取的痛点——直接让 AI 读取结构化财报,比如让 Claude 分析苹果的 10-K 文件。适合量化分析师或金融开发者快速构建数据管道。但注意,它依赖 SEC 网站稳定性,高峰期可能延迟。