Skip to main content
Glama
jawello
by jawello

TickTick MCP Server -- 为 Claude 提供的完整 TickTick 集成

License: MIT Version Python Tools Glama

28 个工具。完整的 CRUD。智能查询。多条件筛选。批量操作。GTD 支持。兼容 Dida365。

将 Claude 连接到您的 TickTick 账户,通过自然对话管理您的整个任务系统——创建任务、跨项目搜索、查看逾期事项、批量创建条目,无需打开应用即可保持井井有条。

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


为什么选择这个?

功能

本服务器

TickTick Official MCP

jacepark12

工具

28

22

~20

多条件筛选

是(优先级 + 标签 + 日期 + 项目)

跨项目移动任务

批量完成

是(最多20个)

是(最多20个)

批量更新

已完成任务视图

跨项目搜索

全文搜索

子任务

GTD 焦点视图

是(高优先级 + 到期 + 逾期)

部分

Dida365 支持

是(可配置的基础 URL)

异步(httpx)

不适用

否(同步请求)

Pydantic 验证

是(类型化输入)

不适用

MCP 注解

是(readOnly、destructive 提示)

不适用

自托管 / 开源

否(托管服务)

隐私

100% 本地,仅您的令牌

通过 TickTick 服务器

100% 本地


Related MCP server: TickTick MCP

快速开始

前提条件

第 1 步 -- 克隆并安装

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

第 2 步 -- 注册 TickTick 开发者应用

  1. 前往 developer.ticktick.com

  2. 点击 New App 并填写任意名称

  3. OAuth 重定向 URL 设置为:http://localhost:8080/callback

  4. 复制您的 Client IDClient Secret

第 3 步 -- 进行身份验证

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

这将打开您的浏览器以授权该应用。点击 Allow -- 令牌将保存到 ~/.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

添加到您的 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

获取用户设置(时区、每周起始日等)


架构

ticktick_mcp/server.py # All MCP tools, async httpx, flat tool arguments
server.py              # Thin entry point re-exporting the package
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 调用

  • 扁平工具参数 -- 每个参数使用 Annotated[T, Field(...)],而不是单个 params 对象:代理能可靠地生成扁平参数,并且通常会丢弃包装器

  • MCP 注解 -- 使用 readOnlyHintdestructiveHint 以确保更安全的工具使用

  • 自动令牌刷新 -- 令牌以 60 秒缓冲透明地刷新


故障排除

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

端口 8080 已被占用 -- 运行 lsof -ti:8080 | xargs kill -9 然后重试。

令牌已过期 -- 重新运行 setup_auth.py 以获取新令牌。

Claude 看不到工具 -- 运行 claude mcp list 以验证注册。


贡献

欢迎贡献!请先打开一个 issue 来讨论您想要更改的内容。

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')"

链接


许可证

MIT (c) Salen-Project

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jawello/ticktick-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server