TickTick MCP Server
alexarevalo9
README
TickTick MCP 服务器
⚠️ 注意: 本项目目前正在积极开发中。功能和文档可能不完整或 subject to change。
TickTick API 的 MCP 服务器,支持任务管理、项目组织、习惯跟踪等。
功能
- ✅ 任务管理: 创建、读取、更新和删除任务,支持所有可用属性
- 📊 项目管理: 创建、读取、更新和删除项目,支持自定义视图
- 📋 子任务支持: 完全支持管理父任务中的子任务
- 🔄 完整任务控制: 设置优先级、截止日期、提醒和重复规则
- 🔐 OAuth 身份验证: 完整的 OAuth2 实现,用于安全 API 访问
- ⚠️ 全面的错误处理: 针对常见问题的清晰错误消息
工具
-
get_task_by_ids
- 通过项目 ID 和任务 ID 获取特定任务
- 输入:
projectId
(字符串): 项目标识符taskId
(字符串): 任务标识符
- 返回: 完整的任务详细信息,包括子任务
-
create_task
- 在项目中创建新任务
- 输入:
title
(字符串): 任务标题projectId
(字符串): 项目标识符content
(可选字符串): 任务内容/描述desc
(可选字符串): 清单描述isAllDay
(可选布尔值): 全天标志startDate
(可选字符串): ISO 格式的开始日期和时间dueDate
(可选字符串): ISO 格式的截止日期和时间timeZone
(可选字符串): 日期时区reminders
(可选数组): 提醒触发器列表repeatFlag
(可选字符串): 任务的重复规则priority
(可选整数): 任务优先级 (0-5)sortOrder
(可选整数): 任务排序items
(可选数组): 子任务列表
- 返回: 创建的任务详细信息
-
update_task
- 更新现有任务
- 输入:
taskId
(字符串): 任务标识符id
(字符串): 任务 IDprojectId
(字符串): 项目标识符title
(可选字符串): 任务标题content
(可选字符串): 任务内容desc
(可选字符串): 清单描述isAllDay
(可选布尔值): 全天标志startDate
(可选字符串): 开始日期和时间dueDate
(可选字符串): 截止日期和时间timeZone
(可选字符串): 时区reminders
(可选数组): 提醒触发器列表repeatFlag
(可选字符串): 重复规则priority
(可选整数): 任务优先级sortOrder
(可选整数): 任务排序items
(可选数组): 子任务列表
- 返回: 更新的任务详细信息
-
complete_task
- 将任务标记为已完成
- 输入:
projectId
(字符串): 项目标识符taskId
(字符串): 任务标识符
- 返回: 成功确认
-
delete_task
- 从项目中删除任务
- 输入:
projectId
(字符串): 项目标识符taskId
(字符串): 任务标识符
- 返回: 成功确认
-
get_user_projects
- 获取已验证用户的所有项目
- 输入: 无
- 返回: 项目详细信息数组
-
get_project_by_id
- 通过 ID 获取特定项目
- 输入:
projectId
(字符串): 项目标识符
- 返回: 项目详细信息
-
get_project_with_data
- 获取项目详细信息以及任务和列
- 输入:
projectId
(字符串): 项目标识符
- 返回: 项目数据,包括任务和看板列
-
create_project
- 创建新项目
- 输入:
name
(字符串): 项目名称color
(可选字符串): 项目颜色 (例如, "#F18181")sortOrder
(可选整数): 排序值viewMode
(可选字符串): 视图模式 ("list", "kanban", "timeline")kind
(可选字符串): 项目类型 ("TASK", "NOTE")
- 返回: 创建的项目详细信息
-
update_project
- 更新现有项目
- 输入:
projectId
(字符串): 项目标识符name
(可选字符串): 项目名称color
(可选字符串): 项目颜色sortOrder
(可选整数): 排序值viewMode
(可选字符串): 视图模式kind
(可选字符串): 项目类型
- 返回: 更新的项目详细信息
-
delete_project
- 删除项目
- 输入:
projectId
(字符串): 项目标识符
- 返回: 成功确认
任务属性
创建或更新任务时,可以包含以下属性:
- 优先级:
0
: 无1
: 低3
: 中5
: 高
- 状态值:
0
: 正常 (未完成)2
: 已完成
- 提醒格式:
- 示例:
["TRIGGER:P0DT9H0M0S", "TRIGGER:PT0S"]
- 遵循 iCalendar TRIGGER 格式
- 示例:
- 重复规则 (repeatFlag):
- 示例:
"RRULE:FREQ=DAILY;INTERVAL=1"
- 使用 RFC 5545 重复规则
- 示例:
- 日期格式:
- ISO 8601 格式:
"yyyy-MM-dd'T'HH:mm:ssZ"
- 示例:
"2019-11-13T03:00:00+0000"
- ISO 8601 格式:
项目属性
创建或更新项目时,可以使用以下属性:
- 视图模式:
"list"
: 标准列表视图"kanban"
: 看板视图"timeline"
: 时间线视图
- 项目类型:
"TASK"
: 面向任务的项目"NOTE"
: 面向笔记的项目
设置
OAuth 身份验证
要启用与 TickTick 的 OAuth 身份验证,您需要注册您的应用程序并获取 API 凭据:
- 在 TickTick 开发者门户 上创建一个帐户
- 注册一个新应用程序
- 将 OAuth 重定向 URL 设置为:http://localhost:8000/callback
- 复制生成的客户端 ID (TICKTICK_CLIENT_ID) 和客户端密钥 (TICKTICK_CLIENT_SECRET)
首次授权流程
首次使用 TickTick MCP 服务器时:
- 系统将提示您授权该应用程序
- 将打开一个带有 TickTick 登录页面的浏览器窗口
- 登录后,系统会要求您授予权限
- 访问令牌将显示在页面中
- 复制此令牌并将其设置为 TICKTICK_ACCESS_TOKEN 环境变量
重新身份验证(令牌过期或首次身份验证失败)
如果令牌过期或首次身份验证不起作用,请按照以下步骤使用 npx
重新进行身份验证:
-
使用您的客户端 ID 和客户端密钥设置环境变量。如果您的凭据包含特殊字符,请使用单引号以防止 zsh 或 bash 解释它们,或者使用
.env
文件。选项 1:使用
export
和单引号(对于特殊字符):export TICKTICK_CLIENT_ID='<YOUR_CLIENT_ID>' export TICKTICK_CLIENT_SECRET='<YOUR_CLIENT_SECRET>'
选项 2:使用 .env 文件:
- 在您的项目目录中创建一个 .env 文件:
TICKTICK_CLIENT_ID="<YOUR_CLIENT_ID>" TICKTICK_CLIENT_SECRET="<YOUR_CLIENT_SECRET>"
- 通过运行以下命令加载环境变量:
source .env
-
设置环境变量后,运行以下 npx 命令以触发身份验证:
npx @alexarevalo9/mcp-server-ticktick ticktick-auth
这将:
- 提示您重新授权该应用程序
- 打开一个浏览器窗口进行登录
- 允许您再次授予请求的权限
- 显示新的访问令牌
-
身份验证后,复制新的访问令牌并将其设置为 TICKTICK_ACCESS_TOKEN 环境变量,以继续使用该应用程序。
与 Claude Desktop 一起使用
要将其与 Claude Desktop 一起使用,请将以下内容添加到您的 claude_desktop_config.json
:
NPX
{
"mcpServers": {
"ticktick": {
"command": "npx",
"args": ["-y", "@alexarevalo9/mcp-server-ticktick"],
"env": {
"TICKTICK_CLIENT_ID": "<YOUR_CLIENT_ID>",
"TICKTICK_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TICKTICK_ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>"
}
}
}
}
Docker
{
"mcpServers": {
"ticktick": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"TICKTICK_CLIENT_ID",
"-e",
"TICKTICK_CLIENT_SECRET",
"-e",
"TICKTICK_ACCESS_TOKEN",
"mcp/ticktick"
],
"env": {
"TICKTICK_CLIENT_ID": "<YOUR_CLIENT_ID>",
"TICKTICK_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>",
"TICKTICK_ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>"
}
}
}
}
构建
Docker 构建:
docker build -t mcp/ticktick -f src/ticktick/Dockerfile .
许可证
此 MCP 服务器已获得 MIT 许可证的许可。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。有关更多详细信息,请参阅项目存储库中的 LICENSE 文件。
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。