任务管理集成工具

TickTick MCP Server是一个与Claude集成的任务管理工具,提供完整的CRUD操作、智能查询、多条件过滤、批量操作和GTD支持,帮助用户通过自然语言管理任务系统。

  • by abdulhamid-n
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 Salen-Project/ticktick-mcp

使用说明

TickTick MCP服务器——Claude的完整TickTick集成

28个工具。完全CRUD。智能查询。多条件过滤器。批量操作。GTD支持。Dida365兼容。

将Claude连接到您的TickTick帐户,并通过自然对话管理您的整个任务系统——创建任务、跨项目搜索、检查过期内容、批量创建项目,并在不打开应用程序的情况下保持有序。

“什么逾期了?”-->立即显示每个项目中所有错过的截止日期。


为什么是这个?

功能 此服务器 TickTick官方MCP jacepark12
工具 28 22 ~20
多条件过滤器 是(优先级+标签+日期+项目) 是 否
在项目之间移动任务 是 是 否
批量完成 是(最多20个) 是(最多30个) 否
批量更新 是 是 否
已完成任务视图 是 是 否
跨项目搜索 全文搜索 是 是
子任务 是 否 否
GTD焦点视图 是(高优先级+到期+逾期) 否 部分
Dida365支持 是(可配置的基本URL) 否 是
异步(httpx) 是 N/A 否(同步请求)
Pydantic验证 是(键入输入) N/A 否
MCP注释 是(只读,破坏性提示) 不适用 否
自托管/开源 是 否(托管服务) 是
隐私 100%本地,仅限您的代币 通过TickTick服务器 100%本地

快速开始

先决条件

步骤1--克隆并安装

git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

第二步——注册TickTick开发者应用

  1. 首选 developer.ticktic.com
  2. 点击 新应用程序 并填写任何名称
  3. 集 OAuth重定向URL 致: http://localhost:8080/callback
  4. 复制您的 客户端ID 和 客户端密钥

步骤3——身份验证

TICKTICK_CLIENT_ID=your_id TICKTICK_CLIENT_SECRET=your_secret .venv/bin/python3 setup_auth.py

这将打开您的浏览器以授权该应用程序。点击 允许 --令牌保存到 ~/.ticktick_mcp/tokens.json 并自动刷新。

步骤4--使用Claude Code注册

claude mcp add ticktick \
  -e TICKTICK_CLIENT_ID=your_id \
  -e TICKTICK_CLIENT_SECRET=your_secret \
  -- /path/to/ticktick-mcp/.venv/bin/python3 /path/to/ticktick-mcp/server.py

适用于克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "ticktick": {
      "type": "stdio",
      "command": "/path/to/ticktick-mcp/.venv/bin/python3",
      "args": ["/path/to/ticktick-mcp/server.py"],
      "env": {
        "TICKTICK_CLIENT_ID": "your_id",
        "TICKTICK_CLIENT_SECRET": "your_secret"
      }
    }
  }
}

第5步——添加生产力技能(可选)

mkdir -p ~/.claude/skills/ticktick
cp skills/ticktick/SKILL.md ~/.claude/skills/ticktick/

Dida365支持

对于Dida365(TickTick的中文版本),设置以下环境变量:

TICKTICK_BASE_URL=https://api.dida365.com/open/v1
TICKTICK_TOKEN_URL=https://dida365.com/oauth/token

用法示例

你说 会发生什么
“提醒我周五给牙医打电话” 已创建有截止日期的任务
“将‘审查Q1报告’添加到工作中,高优先级” 工作项目中的任务,优先级5
“什么是过期的?” 显示项目中所有过期的任务
“我应该关注什么?” GTD观点:高优先级+今天到期+逾期
“搜索有关‘预算’的任何内容” 在所有项目中进行全文搜索
“显示所有高优先级任务” 按优先级筛选=5个项目
“本周到期的任务是什么?” 未来7天到期的任务
“创建任务:买牛奶、打电话给约翰、提交报告” 批量创建3个任务
“创建一个名为“度假计划”的项目” 已创建新项目
“在度假任务下添加子任务‘购买防晒霜’” 已创建子任务
“我完成了牙医任务” 标记为已完成的任务
“删除旧的Sprint项目” 项目和所有任务已删除

MCP工具参考

项目(5个工具)

工具 说明
ticktick_list_projects 列出所有带有ID、名称和颜色的项目
ticktick_get_project 获取特定项目的详细信息
ticktick_get_project_with_tasks 在一次通话中获取项目详细信息+所有未完成的任务
ticktick_create_project 创建新项目(名称、颜色、视图模式)
ticktick_update_project 更新项目的名称、颜色或视图模式
ticktick_delete_project 永久删除项目

任务——基本CRUD(7个工具)

工具 说明
ticktick_list_tasks 列出特定项目中的所有任务
ticktick_create_task 创建任务(标题、截止日期、优先级、项目、标签)
ticktick_get_task 获取特定任务的完整详细信息
ticktick_update_task 更新标题、内容、日期或优先级
ticktick_complete_task 将任务标记为已完成
ticktick_delete_task 永久删除任务
ticktick_create_subtask 在父任务下创建子任务

任务——智能查询(7个工具)

工具 说明
ticktick_get_all_tasks 获取所有活动项目中的所有任务
ticktick_search_tasks 跨标题、内容、子任务的全文搜索
ticktick_get_tasks_by_priority 按优先级筛选(无/低/中/高)
ticktick_get_tasks_due_today 所有项目今天到期的任务
ticktick_get_overdue_tasks 所有项目中所有逾期任务
ticktick_get_tasks_due_this_week 未来7天内到期的任务
ticktick_get_tasks_due_in_days N天后到期的任务

任务——批处理和生产力(5个工具)

工具 说明
ticktick_batch_create_tasks 一次创建多个任务
ticktick_batch_update_tasks 一次更新多个任务
ticktick_complete_tasks_bulk 一次最多标记20个任务为已完成
ticktick_move_task 将任务从一个项目移动到另一个项目
ticktick_get_focus_tasks GTD焦点视图:高优先级+今天到期+逾期

任务--高级过滤器(2个工具)

工具 说明
ticktick_filter_tasks 多条件过滤器:优先级+标签+日期范围+项目+状态
ticktick_get_completed_tasks 查看项目中已完成的任务

用户(1个工具)

工具 说明
ticktick_get_user_preferences 获取用户设置(时区、周开始时间等)

建筑

server.py              # 20 MCP tools, async httpx, Pydantic validation
setup_auth.py          # One-time OAuth 2.0 setup (browser-based)
~/.ticktick_mcp/       # Token storage (auto-refreshed)
skills/ticktick/       # Claude skill for natural task language

设计选择:

  • 异步无处不在 -- httpx.AsyncClient 用于非阻塞API调用
  • Pydantic输入模型 --类型安全、经过验证的输入,带有清晰的错误消息
  • MCP注释 -- readOnlyHint, destructiveHint 为了更安全地使用工具
  • 自动令牌刷新 --令牌以60秒的缓冲区透明刷新

故障排除

“给定的客户端ID不匹配” --在developer.ticktick.com上仔细检查您的客户ID。

端口8080已在使用中 -- lsof -ti:8080 | xargs kill -9 然后重试。

令牌已过期 --重新运行 setup_auth.py 以获得新的代币。

克劳德看不到工具 --快跑 claude mcp list 以验证注册。


贡献

欢迎投稿!请先打开一个问题,讨论您想更改的内容。

git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
# Make your changes to server.py
# Test: python3 -c "from server import mcp; print(len(mcp._tool_manager._tools), 'tools')"

链接


许可证

麻省理工学院(c) Salen项目