使用说明
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开发者应用
- 首选 developer.ticktic.com
- 点击 新应用程序 并填写任何名称
- 集 OAuth重定向URL 致:
http://localhost:8080/callback - 复制您的 客户端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项目