使用说明
Todoist MCP服务器
Todoist API的综合模型上下文协议(MCP)服务器。提供对任务、项目、标签、节和注释的完全访问,并支持所有任务属性,包括优先级、截止日期、标签、子任务等。
特性
- 完成任务管理:创建、读取、更新、删除、完成和重新打开任务
- 完整任务属性支持:内容、描述、截止日期(自然语言或特定)、优先级(1-4)、标签、工期估计、子任务、受让人等
- 项目管理:使用颜色、层次结构和视图样式创建和管理项目
- 标签管理:为跨项目任务分类创建和组织标签
- 科室管理:使用章节组织项目内的任务
- 评论管理:添加和管理对任务和项目的评论
- 速率限制:内置速率限制处理(每15分钟450个请求)
- 错误处理:全面的错误处理,带有有意义的错误消息
安装
先决条件
- Node.js(v18或更高版本)
- npm
- 带有API令牌的Todoist帐户
获取您的Todoist API代币
- 登录您的Todoist帐户
- 前往设置→ 集成→ 开发者
- 复制您的API令牌
- 将其设置为环境变量:
TODOIST_API_TOKEN
安装服务器
# Clone or download this repository
cd todoist-mcp
# Install dependencies
npm install
# Build the project
npm run build
配置
适用于克劳德桌面
将此添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"todoist": {
"command": "node",
"args": [
"E:\\my drive\\programs and files\\dev\\todoist MCP\\build\\index.js"
],
"env": {
"TODOIST_API_TOKEN": "your_api_token_here"
}
}
}
}
将路径替换为实际安装路径,并添加Todoist API令牌。
对于其他MCP客户端
设置 TODOIST_API_TOKEN 环境变量并运行:
node build/index.js
可用工具
任务管理
list_tasks
使用可选筛选获取所有活动任务。
参数:
project_id(可选):按项目筛选section_id(可选):按部分筛选label(可选):按标签名称筛选filter(可选):自定义筛选字符串(例如,“今天”、“p1”、“过期”)lang(可选):用于过滤器解析的语言代码
例子:
{
"filter": "today",
"project_id": "2203306141"
}
get_task
按ID获取具有所有属性的单个任务。
参数:
task_id(必填):任务ID
create_task
创建具有综合属性的新任务。
参数:
content(必填):任务标题description(可选):任务描述project_id(可选):项目IDsection_id(可选):节IDparent_id(可选):子任务的父任务IDpriority(可选):1-4,其中4为紧急labels(可选):标签名称数组due_string(可选):自然语言截止日期(例如,“明天14:00”)due_date(可选):YYYY-MM-DD格式due_datetime(可选):RFC3339格式due_lang(可选):用于解析due_string的语言assignee_id(可选):要分配的用户IDduration(可选):持续时间金额duration_unit(可选):“分钟”或“天”
例子:
{
"content": "Buy groceries",
"description": "Milk, eggs, bread",
"priority": 3,
"labels": ["shopping", "urgent"],
"due_string": "tomorrow at 14:00"
}
update_task
更新现有任务。
参数:
task_id(必填):任务ID- 所有其他参数来自
create_task(可选)
complete_task
将任务标记为已完成。重复任务移动到下一个事件。
参数:
task_id(必填):任务ID
reopen_task
重新打开已完成的任务。
参数:
task_id(必填):任务ID
delete_task
永久删除任务。
参数:
task_id(必填):任务ID
项目管理
list_projects
获取所有项目。
get_project
按ID获取单个项目。
参数:
project_id(必填):项目ID
create_project
创建一个新项目。
参数:
name(必填):项目名称parent_id(可选):嵌套项目的父项目IDcolor(可选):颜色名称(例如,“蓝色”、“红色”)is_favorite(可选):布尔值view_style(可选):“列表”或“板”
update_project
更新现有项目。
参数:
project_id(必填):项目ID- 所有其他参数来自
create_project(可选)
delete_project
永久删除项目及其所有任务。
参数:
project_id(必填):项目ID
标签管理
list_labels
获取所有标签。
get_label
按ID获取单个标签。
参数:
label_id(必填):标签ID
create_label
创建新标签。
参数:
name(必填):标签名称color(可选):颜色名称order(可选):列表中的位置is_favorite(可选):布尔值
update_label
更新现有标签。
参数:
label_id(必填):标签ID- 所有其他参数来自
create_label(可选)
delete_label
永久删除标签。
参数:
label_id(必填):标签ID
科室管理
list_sections
获取所有部分,可选择按项目筛选。
参数:
project_id(可选):项目ID
get_section
按ID获取单个部分。
参数:
section_id(必填):节ID
create_section
创建一个新部分。
参数:
name(必填):节名称project_id(必填):项目IDorder(可选):项目中的职位
update_section
更新现有部分。
参数:
section_id(必填):节IDname(必填):新节名称
delete_section
删除一个部分(任务不会被删除)。
参数:
section_id(必填):节ID
评论管理
list_comments
获取任务或项目的评论。
参数:
task_id(可选):任务IDproject_id(可选):项目ID
get_comment
按ID获取单个评论。
参数:
comment_id(必填):评论ID
create_comment
创建新评论。
参数:
content(必填):评论文本task_id(可选):任务IDproject_id(可选):项目IDattachment(可选):文件附件对象
update_comment
更新现有评论。
参数:
comment_id(必填):评论IDcontent(必填):更新评论文本
delete_comment
永久删除评论。
参数:
comment_id(必填):评论ID
发展
# Watch mode for development
npm run watch
# Build
npm run build
速率限制
Todoist API有以下费率限制:
- 每位用户每15分钟450个请求
服务器会自动跟踪请求,如果超过限制,则会抛出错误。
错误处理
当操作失败时,所有工具都会提供有意义的错误消息。常见错误包括:
- API令牌丢失或无效
- 请求频率超限
- 任务/项目/标签ID无效
- 参数值无效
许可证
麻省理工学院
贡献
欢迎投稿!请随时提交问题或拉取请求。
API版本
此服务器使用Todoist REST API v2。
致谢
使用 模型上下文协议SDK 和那个 Todoist REST API.