TickTick MCP服务器
](https://smithery.ai/server/@alexarevalo9/ticktick-mcp-server)
用于TickTick API的MCP服务器,实现任务管理、项目组织、习惯跟踪等功能。
特性
- ✅ 任务管理:使用所有可用属性创建、读取、更新和删除任务
- 📊 项目管理:使用可自定义的视图创建、读取、更新和删除项目
- 📋 子任务支持:完全支持在父任务中管理子任务
- 🔄 完成任务控制:设置优先级、截止日期、提醒和重复规则
- 🔐 OAuth身份验证:用于安全访问API的完整OAuth2实现
- ⚠️ 全面的错误处理:清除常见问题的错误消息
工具
get_task_by_ids
- 通过项目ID和任务ID获取特定任务 - 输入: - projectId (string):项目标识符 - taskId (string):任务标识符 - 返回:任务对象匹配 TickTickTaskSchema
create_task
- 在项目中创建新任务 - 输入: - title (string):任务标题 - projectId (string):项目id - content (可选字符串):任务内容 - desc (可选字符串):任务描述 - isAllDay (可选布尔值):全天任务 - startDate (可选字符串):任务开始日期,格式为“yyyy-MM-dd'TH:MM:ssZ” - dueDate (可选字符串):任务到期日期,格式为“yyyy-MM-dd'TH:MM:ssZ” - timeZone (可选字符串):任务时区(例如,“美洲/Los_Angeles”) - reminders (可选字符串\[\]):iCalendar格式的提醒触发器列表 - repeatFlag (可选字符串):iCalendar格式的任务重复标志 - priority (可选编号):任务优先级(无:0,低:1,中:3,高:5) - sortOrder (可选字符串):任务排序顺序 - items (可选数组):子任务列表,包括: - title (string):子任务项标题 - startDate (可选字符串):子任务日期,格式为“yyyy-MM-dd'TH:MM:ssZ” - isAllDay (可选布尔值):是全天子任务项 - sortOrder (可选编号):子任务项排序顺序 - timeZone (可选字符串):子任务时区 - status (可选编号):完成状态(正常:0,已完成:1) - completedTime (可选字符串):完成时间,格式为“yyyy-MM-dd'TH:MM:ssZ” - 返回:已创建任务对象匹配 TickTickTaskSchema
update_task
- 更新现有任务 - 输入: - taskId (string):任务标识符-路径 - id (string):任务标识符-正文 - projectId (string):项目id - 来自的所有可选字段 create_task - 返回:已更新任务对象匹配 TickTickTaskSchema
complete_task
- 将任务标记为已完成 - 输入: - taskId (string):任务标识符 - projectId (string):项目标识符 - 返回:void
delete_task
- 从项目中删除任务 - 输入: - taskId (string):任务标识符 - projectId (string):项目标识符 - 返回:void
get_user_projects
- 获取已验证用户的所有项目 - 输入:无 - 返回:匹配的项目对象数组 TickTickProjectSchema
get_project_by_id
- 按ID获取特定项目 - 输入: - projectId (string):项目标识符 - 返回:项目对象匹配 TickTickProjectSchema
get_project_with_data
- 获取项目详细信息以及任务和列 - 输入: - projectId (string):项目标识符 - 返回:对象包含: - project:项目对象匹配 TickTickProjectSchema - tasks:匹配的任务对象数组 TickTickTaskSchema - columns:列对象的可选数组,包括: - id (可选字符串) - projectId (可选字符串) - name (可选字符串) - sortOrder (可选编号)
create_project
- 创建新项目 - 输入: - name (string):项目名称 - color (可选字符串):项目颜色(默认值:“#4772FA”) - viewMode (可选字符串):查看模式(“列表”、“看板”、“时间线”)(默认值:“列表”) - kind (可选字符串):项目类型(“任务”、“注释”)(默认值:“任务”) - 返回:已创建项目对象匹配 TickTickProjectSchema
update_project
- 更新现有项目 - 输入: - projectId (string):项目标识符 - name (可选字符串):项目名称 - color (可选字符串):项目颜色 - sortOrder (可选编号):项目排序顺序 - viewMode (可选字符串):查看模式(“列表”、“看板”、“时间线”) - kind (可选字符串):项目类型(“询问”、“注释”) - 返回:已更新项目对象匹配 TickTickProjectSchema
delete_project
- 删除项目 - 输入: - projectId (string):项目标识符 - 返回:void
架构引用
TickTickTaskSchema:定义任务对象的结构,包括:
- 基本任务属性(id、标题、描述) - 日期和时间设置 - 优先级和状态 - 检查表项目和子任务
TickTickProjectSchema:定义项目对象的结构,包括:
- 项目标识和命名 - 显示设置(颜色、视图模式) - 权限和组织
任务属性
创建或更新任务时,可以包含以下属性:
- 优先级:
- 0:无 - 1:低 - 3:中等 - 5:高
- 状态值:
- 0:正常(未完成) - 2:已完成
- 提醒格式:
- 例子: ["TRIGGER:P0DT9H0M0S", "TRIGGER:PT0S"] - 遵循iCalendar触发器格式
- 重复规则(repeatFlag):
- 例子: "RRULE:FREQ=DAILY;INTERVAL=1" - 使用RFC 5545重复规则
- 日期格式:
- ISO 8601格式: "yyyy-MM-dd'T'HH:mm:ssZ" - 例子: "2019-11-13T03:00:00+0000"
项目属性
创建或更新项目时,可以使用以下属性:
- 视图模式:
- "list":标准列表视图 - "kanban":看板视图 - "timeline":时间线视图
- 项目类型:
- "TASK":任务导向型项目 - "NOTE":以注释为导向的项目
设置
OAuth身份验证
要使用TickTick启用OAuth身份验证,您需要注册应用程序并获取API凭据:
- 在上创建帐户 TickTick开发者门户
- 注册新应用程序
- 将OAuth重定向URL设置为:http://localhost:8000/callback
- 复制生成的客户端ID(TICKTIC_Client_ID)和客户端密钥(TICKITIC_Client_Secret)
首次授权流程
首次使用TickTick MCP服务器时:
- 系统将提示您授权该应用程序
- 浏览器窗口将打开TickTick登录页面
- 登录后,系统会要求您授予权限
- 访问令牌将显示在页面中
- 复制此令牌并将其设置为TICKTIC_ACCESS_token环境变量
生成访问令牌
当您需要生成新的访问令牌时(无论是首次设置还是令牌到期时),请按照以下步骤操作:
- 使用以下方法之一配置您的凭据:
#### 选项1:.env文件(推荐)
创建一个 .env 项目根目录中的文件:
TICKTICK_CLIENT_ID=""
TICKTICK_CLIENT_SECRET=""然后加载它:
source .env建议使用此方法,因为:
- 凭据在终端会话之间保持不变 - 更易于管理多种配置 - 不易发生外壳历史泄漏 - 可以轻松备份(记得从版本控制中排除)
#### 选项2:终端环境变量
如果您的凭据包含特殊字符,请使用单引号。请注意,这些变量只会持续存在于当前的终端会话中:
export TICKTICK_CLIENT_ID=''
export TICKTICK_CLIENT_SECRET=''- 运行身份验证命令:
如果使用已发布的软件包:
npx @alexarevalo.ai/mcp-server-ticktick ticktick-auth如果在本地运行MCP服务器:
npm run start:auth该过程将:
- 启动默认浏览器 - 引导您进入TickTick的登录页面 - 请求必要的权限 - 生成并显示您的访问令牌
- 保存访问令牌:
echo "TICKTICK_ACCESS_TOKEN=\"\"" >> .env
source .env安全提示: - 添加.env到你的.gitignore文件 - 从不将凭据提交到版本控制 - 访问令牌在180天后过期-您需要重新生成它们
使用Claude Desktop
要在Claude Desktop中使用此功能,请将以下内容添加到您的 claude_desktop_config.json:
NPX
{
"mcpServers": {
"ticktick": {
"command": "npx",
"args": ["-y", "@alexarevalo.ai/mcp-server-ticktick"],
"env": {
"TICKTICK_CLIENT_ID": "",
"TICKTICK_CLIENT_SECRET": "",
"TICKTICK_ACCESS_TOKEN": ""
}
}
}
}码头工人
{
"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": "",
"TICKTICK_CLIENT_SECRET": "",
"TICKTICK_ACCESS_TOKEN": ""
}
}
}
}通过Smithery安装
通过以下方式自动安装Claude Desktop的ticktick mcp服务器 史密瑟里:
npx -y @smithery/cli install @alexarevalo9/ticktick-mcp-server --client claude构建
Docker构建:
docker build -t mcp/ticktick -f src/ticktick/Dockerfile .许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。
