A clean, reliable MCP (Model Context Protocol) server for Todoist — built on the **Todoist unified API v1**.
todoist-v1-mcp-server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A clean, reliable MCP (Model Context Protocol) server for Todoist — built on the **Todoist unified API v1**.
Why this exists
The official Todoist web MCP (todoist-ai) has a known persistent disconnection bug on the Anthropic side that requires reconnecting daily. Community alternatives are either built on the deprecated REST API v2 or have schema validation bugs that cause failures when Todoist returns additional fields as their API evolves.
This server:
- Targets the **current Todoist API v1** (not deprecated v2)
- Uses **stdio transport** — no cloud dependency, no daily reconnections
- Uses the **modern MCP SDK registerTool() API** (not the deprecated setRequestHandler pattern)
- **Never enforces strict output schemas** on API responses — Todoist can add new fields freely without breaking anything
- Zero SDK wrapper dependency — direct HTTP calls via axios, so there's no intermediary library drifting from the API
Tools (31 total)
Tasks
| Tool | Description |
|------|-------------|
| todoist_get_tasks | List/filter tasks — supports Todoist filter strings like "today", "overdue", "p1", "#ProjectName", "7 days" |
| todoist_get_task | Get a single task by ID |
| todoist_create_task | Create a task with natural language due dates ("tomorrow", "every monday", etc.) |
| todoist_update_task | Update any field; pass clear_due_date: true to remove a due date |
| todoist_complete_task | Mark a task as done |
| todoist_reopen_task | Reopen a completed task |
| todoist_delete_task | Permanently delete a task |
Projects
| Tool | Description |
|------|-------------|
| todoist_get_projects | List all projects |
| todoist_get_project | Get a single project by ID |
| todoist_create_project | Create a project (with color, view style, parent) |
| todoist_update_project | Update a project |
| todoist_delete_project | Permanently delete a project and all its tasks |
Sections
| Tool | Description |
|------|-------------|
| todoist_get_sections | List sections within a project |
| todoist_create_section | Create a section |
| todoist_update_section | Rename a section |
| todoist_delete_section | Delete a section |
Labels
| Tool | Description |
|------|-------------|
| todoist_get_labels | List all personal labels |
| todoist_create_label | Create a label |
| todoist_update_label | Update a label |
| todoist_delete_label | Delete a label |
Comments
| Tool | Description |
|------|-------------|
| todoist_get_comments | List comments on a task or project (paginated) |
| todoist_get_comment | Get a single comment by ID |
| todoist_create_comment | Add a comment to a task or project (Markdown supported) |
| todoist_update_comment | Edit an existing comment's content |
| todoist_delete_comment | Permanently delete a comment |
Completed tasks (Pro)
| Tool | Description |
|------|-------------|
| todoist_get_completed_tasks | Query completed tasks by completion date (≤3mo) or due date (≤6wk). Pro-only. |
Reminders (Pro)
| Tool | Description |
|------|-------------|
| todoist_get_reminders | List reminders, optionally filtered by task_id. Pro-only. |
| todoist_get_reminder | Get a single reminder by ID. Pro-only. |
| todoist_create_reminder | Create a relative (minute_offset before due) or absolute reminder. Pro-only. |