任务管理集成服务

一个将Todoist任务管理与Claude集成的MCP服务器,支持通过对话管理任务,适用于高压力工作环境、批量任务操作和ADHD友好的任务管理。

  • by gekitsuu
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 gekitsuu/todoist-mcp-server

使用说明

Todoist MCP服务器

一个将Todoist任务管理与Claude集成在一起的模型上下文协议(MCP)服务器。以对话方式管理您的Todoist任务,无需切换上下文!

特性

  • 获取任务:按项目、标签或自定义筛选器获取和筛选任务
  • 创建任务:添加具有优先级、截止日期和标签的新任务
  • 更新任务:修改现有任务、更改优先级、推迟日期
  • 完成任务:将任务标记为已完成
  • 列出项目:查看您的所有Todoist项目
  • 列表标签:查看您的所有Todoist标签

非常适合:

  • 在高压力工作期间管理任务
  • 批量任务操作(推迟、优先、组织)
  • 快速任务分类,无需离开与克劳德的对话
  • 具有对话界面的ADHD友好任务管理

先决条件

  • Python 3.10或更高版本
  • Todoist帐户
  • Todoist API令牌(拿过来)

安装

1.克隆存储库

git clone https://github.com/yourusername/todoist-mcp-server.git
cd todoist-mcp-server

2.创建虚拟环境(推荐)

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

3.安装包装

pip install -e .

4.配置您的API令牌

创建一个 .env 项目根目录中的文件:

cp .env.example .env

编辑 .env 并添加您的Todoist API令牌:

TODOIST_API_TOKEN=your_actual_token_here

从以下位置获取您的令牌:https://todoist.com/app/settings/integrations/developer

Claude代码的配置

选项1:在Claude Desktop中配置(推荐)

将此添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "todoist": {
      "command": "python",
      "args": ["-m", "todoist_mcp.server"],
      "env": {
        "TODOIST_API_TOKEN": "your_token_here"
      }
    }
  }
}

选项2:与Claude Code CLI一起使用

如果与一起使用 claude-code CLI:

# Set environment variable
export TODOIST_API_TOKEN=your_token_here

# Run the server
python -m todoist_mcp.server

或者在您的MCP设置文件中为Claude Code进行配置。

重新启动克劳德

配置后,重新启动Claude Desktop或Claude Code以加载MCP服务器。

使用示例

配置后,您可以通过与Claude的自然对话与Todoist进行交互:

查看今天的任务

You: "Show me my tasks for today"

Claude will use todoist_get_tasks with filter="today"

任务

You: "Create a task to review the infrastructure PR, priority 4, due tomorrow"

Claude will use todoist_create_task with appropriate parameters

批量延迟任务

You: "I'm overwhelmed. Show me all my tasks for today, then defer everything
      except priority 4 items to next week"

Claude will:
1. Use todoist_get_tasks to see today's tasks
2. Use todoist_update_task to defer non-urgent items

按项目组织

You: "Show me my projects, then move all high-priority tasks to the 'Sprint' project"

Claude will:
1. Use todoist_get_projects to list projects
2. Use todoist_update_task to move tasks

完成任务

You: "I just finished the deployment. Mark that task as complete"

Claude will use todoist_complete_task

可用工具

todoist_gets

使用可选筛选器获取任务。

参数:

  • project_id (可选):按项目ID筛选
  • label (可选):按标签名称筛选
  • filter (可选):Todoist过滤查询(例如,“今天”、“过期”、“优先级1”)

todoist_create_task

创建新任务。

参数:

  • content (必填):任务标题/内容
  • description (可选):任务描述
  • project_id (可选):要向其中添加任务的项目
  • priority (可选):1-4(4为最高值)
  • due_string (可选):人类可读的截止日期(“明天”、“下周一”等)
  • labels (可选):标签名称数组

todoist_update_task

更新现有任务。

参数:

  • task_id (必填):要更新的任务ID
  • content (可选):新任务内容
  • description (可选):新描述
  • priority (可选):新优先级(1-4)
  • due_string (可选):新的截止日期
  • labels (可选):新标签数组(替换现有标签)

todoist_complete_task

将任务标记为已完成。

参数:

  • task_id (必填):要完成的任务ID

todoist_get-projects

列出所有项目(不需要参数)。

todoist_getlabels

列出所有标签(无需参数)。

故障排除

“未设置TODOIST_API_TOKEN”错误

  • 确保您已创建 .env 使用您的令牌进行归档
  • 或者在shell/Claude配置中设置环境变量
  • 从以下位置获取您的令牌:https://todoist.com/app/settings/integrations/developer

服务器未出现在Claude中

  • 检查你的 claude_desktop_config.json 语法正确
  • 完全重新启动克劳德桌面
  • 检查克劳德的MCP连接错误日志

API错误

  • 验证您的令牌是否有效且未过期
  • 检查您的互联网连接
  • 某些操作需要Todoist Premium(如标签)

发展

运行测试

pip install -e ".[dev]"
pytest

代码格式化

black src/
ruff check src/

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢

链接

支持

有关问题和功能请求,请 打开一个问题.

测试

该项目包括一个全面的测试套件,以确保可靠性。

运行测试

# Install test dependencies
pip install pytest pytest-asyncio

# Run all tests
PYTHONPATH=src pytest tests/ -v

测试覆盖率

测试套件包括:

  • API方法验证:确保我们正在调用有效的Todoist API方法(将捕获 close_task 对比 complete_task 程序错误
  • 处理器功能测试:使用模拟API调用对所有MCP处理程序进行单元测试
  • 错误处理测试:验证正确的错误处理和用户友好的消息

看 测试/README.md 了解更多详情。