Todoist Mcp

io.github.ecfaria由 GitHub 帳號 ecfaria 發布v1.0.1更新於 Oct 24, 2026

MCP server for Todoist task management integration

發布方自己的服務:Todoist

已驗證STDIO僅桌面效率與工作流溝通與協作

概覽

AI 產生的概覽

讓助理透過 Todoist API 建立、列出、更新、完成與搜尋 Todoist 任務,並瀏覽專案。

可以做什麼
把 Todoist 任務管理包裝成 MCP 工具:建立任務(可指定專案、區段、到期日、優先順序、標籤或父任務)、依專案、區段、標籤或篩選條件列出進行中的任務、取得任務詳細資料、更新內容、描述、到期日、優先順序或標籤、完成任務、列出專案,以及依文字搜尋任務。支援「下週一」這類自然語言到期日,並做速率限制以符合 Todoist API 限制。
適用情境
適合想用對話方式管理 Todoist 帳號的情境:記錄任務、查看今天到期或已逾期的事項、更新或完成任務、搜尋既有任務,而不必切換到 Todoist 應用程式。
執行需求
以 npm 套件(@ecfaria/todoist-mcp-server)透過 stdio 在本機執行,需要 Node.js 18 或更新版本以及 npm 或 yarn。需要 Todoist 帳號與個人 API 權杖,權杖透過 TODOIST_API_TOKEN 環境變數提供(清單中記為 YOUR_API_KEY)。需要連線至 Todoist API 的網路。僅支援桌面用戶端設定。
安裝前請注意
此伺服器持有可存取帳號任務與專案的 Todoist API 權杖,應放在環境變數或用戶端設定中,不要寫入共用檔案。工具可以建立、修改與完成任務,助理操作會改動真實資料。請求會送往 Todoist API,並受 Todoist 每 15 分鐘 450 次請求的速率限制約束。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Todoist Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

bash
# Clone the repositorygit clone <your-repo-url>cd todoist-mcp
# Install dependenciesnpm install
# Build the projectnpm run build

Configuration

1. Get Your Todoist API Token

  1. Go to Todoist Integrations Settings
  2. Scroll down to "API token" section
  3. Copy your personal API token

2. Set Up Environment Variables

Create a .env file in the project root:

bash
cp .env.example .env

Edit .env and add your Todoist API token:

bash
TODOIST_API_TOKEN=your_actual_token_hereLOG_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:

json
{  "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/title
  • description (optional): Task description
  • project_id (optional): Project ID to add the task to
  • section_id (optional): Section ID within the project
  • due_date (optional): Due date in natural language or YYYY-MM-DD format
  • priority (optional): Priority level: 1 (normal), 2 (medium), 3 (high), 4 (urgent)
  • labels (optional): Array of label names
  • parent_id (optional): Parent task ID to create a subtask
  • parent_task_name (optional): Parent task name to search for (alternative to parent_id)

Examples:

Create a task "Write report" due tomorrow with high priorityCreate a task "Buy groceries" in the Shopping projectCreate 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 8237492837Add 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 ID
  • section_id (optional): Filter by section ID
  • label (optional): Filter by label name
  • filter (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 tasksList tasks in project "Work"List tasks due todayList 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 123456789Show 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 update
  • content (optional): New task content
  • description (optional): New task description
  • due_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 4Change 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 123456Mark task 789012 as done

todoist_list_projects

List all projects in Todoist, including inbox and shared projects.

Parameters: None

Examples:

List all my projectsShow 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 description
  • limit (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

bash
npm run build

Development Mode (Watch)

bash
npm run dev

Run Tests

bash
npm test

Run Tests in Watch Mode

bash
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 .env configuration 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

  1. Update version numbers as needed (npm version <patch|minor|major>).
  2. Build the distributable: npm run build.
  3. Publish to npm: npm publish --access public (scoped packages default to private).
  4. Validate registry metadata: mcp-publisher validate.
  5. Publish to the MCP registry: mcp-publisher publish.

Release notes (v1.0.0)

  • Added MCP registry metadata (mcpName) to package.json.
  • Documented the publishing process and registry identity.
  • Introduced the canonical server.json reference for registry publication.
  • Adopted the scoped npm package name @ecfaria/todoist-mcp-server to avoid collisions.

Troubleshooting

Server not showing in Claude

  1. Verify the path in claude_desktop_config.json is absolute and correct
  2. Check that you've built the project (npm run build)
  3. Ensure the API token is set in the config
  4. Restart Claude Desktop completely

API Token Invalid

  1. Go to Todoist Integrations Settings
  2. Generate a new API token
  3. Update your .env file or Claude Desktop config
  4. Restart the server/Claude Desktop

Tasks Not Showing Up

  1. Verify you're using the correct project ID or filter
  2. Check that tasks aren't already completed
  3. 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:

來源:README.md,提交 3bb7e6f

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Todoist 整合