Todoist MCP 服务器

一个专为Todoist任务管理设计的Model Context Protocol (MCP)服务器,支持通过Docker部署,为Claude Desktop等MCP客户端提供任务创建、更新和查询功能。

  • by amattas
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 amattas/todoist-mcp

使用说明

Todoist MCP服务器

[!重要] 此项目已存档,不再维护。

Todoist现在提供 官方MCP服务器 主办地点: https://ai.todoist.net/mcp。它是一个具有OAuth身份验证的可流式HTTP服务器,不需要本地设置、Docker容器或API令牌管理。

请迁移到官方服务器。请参阅Todoist的设置指南: 将ChatGPT与Todoist结合使用同一端点适用于Claude和其他支持OAuth远程MCP服务器的MCP客户端。

此存储库仅供历史参考。将不提供进一步的更新、安全补丁或支持。


迁移到官方Todoist MCP服务器

[!提示] 请改用官方Todoist MCP服务器。

  • 端点: https://ai.todoist.net/mcp
  • 运输: 流式HTTP(无需本地安装)
  • 认证: 使用Todoist帐户的OAuth(没有要管理的API令牌)
  • 能力: 读取/创建/更新任务和项目,重新安排,在项目之间移动

对于ChatGPT: 设置→ Apps → 启用开发人员模式→ 添加自定义应用程序→ enter https://ai.todoist.net/mcp → 完整的OAuth。请参阅 官方指南.

对于Claude和其他MCP客户: 添加 https://ai.todoist.net/mcp 作为客户端配置中的远程MCP服务器,完成OAuth流程。

下面的文档描述了这个存档的项目,并保留以供参考。

用于Todoist任务管理的专用模型上下文协议(MCP)服务器。这个基于Docker的服务器使Claude Desktop和其他MCP客户端能够与Todoist交互,以创建、更新和查询任务。

特性

  • 任务管理:创建、更新、完成和删除任务
  • 智能查询:按项目、标签、优先级或筛选器获取任务
  • 项目和标签管理:高效地组织你的任务
  • Redis缓存:可选缓存以提高性能
  • Docker支持:使用Docker和Docker Compose轻松部署

先决条件

  • 码头工人 和 Docker Compose (用于集装箱化部署)
  • Todoist帐户: 注册Todoist
  • Todoist API代币:从以下位置获取令牌 Todoist集成设置
  • 克劳德桌面版 (可选):用于MCP客户端集成

快速开始

1.克隆和配置

cd todoist-mcp
cp .env.example .env.local

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

TODOIST_API_TOKEN=your-todoist-api-token-here
DEBUG=false

# Optional Redis caching
REDIS_HOST=
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_USE_SSL=false

2.使用Docker Compose运行

docker-compose up --build

服务器将以stdio模式启动,准备接受MCP连接。

3.连接到克劳德桌面

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

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

{
  "mcpServers": {
    "todoist": {
      "command": "docker",
      "args": ["compose", "-f", "/path/to/todoist-mcp/docker-compose.yml", "run", "--rm", "todoist-mcp"]
    }
  }
}

重新启动Claude Desktop以激活服务器。

配置

环境变量

变量 必填 默认 描述
TODOIST_API_TOKEN 是 - 您的Todoist API代币
DEBUG 没有 false 启用调试日志记录
REDIS_HOST 无 - Redis服务器主机名(用于缓存)
REDIS_PORT 没有 6379 Redis服务器端口
REDIS_PASSWORD 无 - Redis密码
REDIS_USE_SSL 没有 false 使用SSL进行Redis连接

可用的MCP工具

Todoist MCP服务器提供以下工具:

任务操作

  • create_task -创建新任务
  • update_task -更新现有任务
  • complete_task -将任务标记为已完成
  • delete_task -删除任务
  • uncomplete_task -重新打开已完成的任务

任务查询

  • get_tasks_today -获取今天到期的所有任务
  • get_overdue_tasks -获取所有逾期任务
  • get_tasks_by_project -从特定项目中获取任务
  • get_tasks_by_label -获取具有特定标签的任务
  • get_tasks_by_priority -按优先级获取任务
  • get_tasks_by_filter -使用Todoist筛选器语法查询任务

项目管理

  • get_projects -列出所有项目
  • create_project -创建新项目
  • update_project -更新项目
  • delete_project -删除项目

标签管理

  • get_labels -列出所有标签
  • create_label -创建新标签
  • update_label -更新标签
  • delete_label -删除标签

服务器管理

  • get_server_status -检查服务器运行状况
  • get_server_config -查看服务器配置
  • get_cache_stats -查看缓存性能指标
  • clear_cache -清除缓存数据
  • get_cache_info -查看Redis服务器信息

本地开发

没有Docker

  1. 创建虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 设置环境变量:
export TODOIST_API_TOKEN=your-api-token
  1. 运行服务器:
python server.py

使用Docker

构建并运行:

docker build -t todoist-mcp .
docker run -e TODOIST_API_TOKEN=your-token todoist-mcp

测试

测试服务器状态

您可以通过Claude Desktop连接并询问以下问题来测试服务器:

“我的Todoist服务器的状态如何?”

测试任务操作

“在我的收件箱中创建一个名为“测试任务”的任务” “显示今天到期的所有任务” “将任务ID 12345标记为已完成”

故障排除

“Todoist API令牌未配置”

解决方案:确保 TODOIST_API_TOKEN 设置在您的 .env.local 文件或环境变量。

连接问题

解决方案:

  • 验证您的API令牌是否正确
  • 检查您的互联网连接
  • 确保Docker容器具有网络访问权限

缓存不工作

解决方案:

  • 验证Redis连接设置
  • 确保Redis服务器正在运行
  • 检查Redis凭据和SSL设置

建筑

Todoist MCP服务器遵循以下架构:

Claude Desktop
     ↓ (stdio)
Docker Container
     ↓
MCP Server (FastMCP)
     ↓
Todoist Service
     ↓
Todoist API

可选的Redis缓存层通过减少API调用来提高性能。

安全说明

  • 永远不要承诺你的 .env.local 文件或API令牌到版本控制
  • 使用环境特定 .env 文件
  • 考虑在生产部署中使用Docker secrets
  • API令牌从不通过MCP工具响应暴露

许可证

本项目按原样提供供个人使用。

支持

有关Todoist API文档,请访问:https://developer.todoist.com/