使用说明
TickTick MCP服务器
A. 模型上下文协议(MCP) TickTick服务器,允许直接通过Claude和其他MCP客户端与您的TickTick任务管理系统进行交互。
特性
- 📋 查看您的所有TickTick项目和任务
- ✏️ 通过自然语言创建新项目和任务
- 🔄 更新现有任务详细信息(标题、内容、日期、优先级)
- ✅ 将任务标记为已完成
- 🗑️ 删除任务和项目
- 🔄 与TickTick的开放式API完全集成
- 🔌 与Claude和其他MCP客户无缝集成
先决条件
- Python 3.10或更高版本
- 紫外线 -快速Python包安装程序和解析器
- 具有API访问权限的TickTick帐户
- TickTick API凭据(客户端ID、客户端机密、访问令牌)
安装
-
克隆此存储库:
git clone https://github.com/jacepark12/ticktick-mcp.git cd ticktick-mcp -
使用uv进行安装:
# Install uv if you don't have it already curl -LsSf https://astral.sh/uv/install.sh | sh # Create a virtual environment uv venv # Activate the virtual environment # On macOS/Linux: source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install the package uv pip install -e . -
使用TickTick进行身份验证:
# Run the authentication flow uv run -m ticktick_mcp.cli auth这将:
- 询问您的TickTick客户端ID和客户端密码
- 打开浏览器窗口,让您登录TickTick
- 自动将您的访问令牌保存到
.env文件
-
测试您的配置:
uv run test_server.py这将验证您的TickTick凭据是否正常工作。
使用TickTick进行身份验证
此服务器使用OAuth2通过TickTick进行身份验证。设置过程很简单:
-
在以下网址注册您的申请 TickTick开发者中心
- 将重定向URI设置为
http://localhost:8000/callback - 记下您的客户端ID和客户端密码
- 将重定向URI设置为
-
运行身份验证命令:
uv run -m ticktick_mcp.cli auth -
按照提示输入您的客户端ID和客户端密码
-
浏览器窗口将打开,供您使用TickTick帐户授权应用程序
-
授权后,您将被重定向回应用程序,您的访问令牌将自动保存到
.env文件
服务器会自动处理令牌刷新,因此除非您撤销访问权限或删除您的 .env 文件。
使用Dida365进行身份验证
滴答清单 - Dida365 是TickTick的中国版本,认证过程与TickTick相似。按照以下步骤设置Dida365身份验证:
-
在以下网址注册您的申请 Dida365开发者中心
- 将重定向URI设置为
http://localhost:8000/callback - 记下您的客户端ID和客户端密码
- 将重定向URI设置为
-
将环境变量添加到您的
.env文件:TICKTICK_BASE_URL='https://api.dida365.com/open/v1' TICKTICK_AUTH_URL='https://dida365.com/oauth/authorize' TICKTICK_TOKEN_URL='https://dida365.com/oauth/token' -
遵循与TickTick相同的身份验证步骤
使用Claude for Desktop
-
安装 Claude桌面版
-
编辑您的Claude for Desktop配置文件:
macOS:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json视窗:
notepad %APPDATA%\Claude\claude_desktop_config.json -
使用绝对路径添加TickTick MCP服务器配置:
{ "mcpServers": { "ticktick": { "command": "<absolute path to uv>", "args": ["run", "--directory", "<absolute path to ticktick-mcp directory>", "-m", "ticktick_mcp.cli", "run"] } } } -
重新启动桌面版的Claude
连接后,您将看到Claude中可用的TickTick MCP服务器工具,如🔨 (工具)图标。
可用的MCP工具
| 工具 | 说明 | 参数 |
|---|---|---|
get_projects |
列出您的所有TickTick项目 | 无 |
get_project |
获取特定项目的详细信息 | project_id |
get_project_tasks |
列出项目中的所有任务 | project_id |
get_task |
获取特定任务的详细信息 | project_id, task_id |
create_task |
创建新任务 | title, project_id, content (可选), start_date (可选), due_date (可选), priority (可选) |
update_task |
更新现有任务 | task_id, project_id, title (可选), content (可选), start_date (可选), due_date (可选), priority (可选) |
complete_task |
将任务标记为已完成 | project_id, task_id |
delete_task |
删除任务 | project_id, task_id |
create_project |
创建新项目 | name, color (可选), view_mode (可选) |
delete_project |
删除项目 | project_id |
特定任务的MCP工具
任务检索和搜索
| 工具 | 说明 | 参数 |
|---|---|---|
get_all_tasks |
从所有项目中获取所有任务 | 无 |
get_tasks_by_priority |
按优先级筛选任务 | priority_id (0:无,1:低,3:中,5:高) |
search_tasks |
按标题、内容或子任务搜索任务 | search_term |
基于日期的任务检索
| 工具 | 说明 | 参数 |
|---|---|---|
get_tasks_due_today |
获取今天到期的所有任务 | 无 |
get_tasks_due_tomorrow |
获取明天到期的所有任务 | 无 |
get_tasks_due_in_days |
在X天内完成任务 | days (0=今天,1=明天,以此类推) |
get_tasks_due_this_week |
获取未来7天内到期的任务 | 无 |
get_overdue_tasks |
获取所有逾期任务 | 无 |
完成工作(GTD)框架
| 工具 | 说明 | 参数 |
|---|---|---|
get_engaged_tasks |
获得“参与”任务(高优先级或逾期) | 无 |
get_next_tasks |
获取“下一个”任务(中等优先级或明天到期) | 无 |
batch_create_tasks |
一次创建多个任务 | tasks (任务字典列表) |
克劳德提示示例
以下是连接TickTick MCP服务器后与Claude一起使用的一些示例提示:
将军
- “显示我的所有TickTick项目”
- “在我的工作项目中以高优先级创建一个名为“完成MCP服务器文档”的新任务”
- “列出我个人项目中的所有任务”
- “将“购买杂货”任务标记为已完成”
- “创建一个名为“假期计划”的蓝色新项目”
- “我在TickTick的下一个截止日期是什么时候?”
任务筛选查询
- “我今天有什么任务要交?”
- “让我看看所有过期的东西”
- “显示本周到期的所有任务”
- “搜索有关‘project alpha’的任务”
- “显示标题或描述中带有“客户端”的所有任务”
- “显示我的所有高优先级任务”
GTD工作流程
遵循David Allen的“完成任务”框架,管理参与度和下一步行动。
- Engaged将检索今天到期或逾期的高优先级任务。
- Next将检索中等优先级或明天到期。
- 使用batch_creation将复杂操作分解为较小的操作
例如:
- “从下午2点到8点,用我的待办事项列表中的项目来安排我一天的剩余时间”
- “引导我完成下一步行动,并帮助我确定明天应该关注什么?”
- “将此项目分解为5个较小的可操作任务”
发展
项目结构
ticktick-mcp/
├── .env.template # Template for environment variables
├── README.md # Project documentation
├── requirements.txt # Project dependencies
├── setup.py # Package setup file
├── test_server.py # Test script for server configuration
└── ticktick_mcp/ # Main package
├── __init__.py # Package initialization
├── authenticate.py # OAuth authentication utility
├── cli.py # Command-line interface
└── src/ # Source code
├── __init__.py # Module initialization
├── auth.py # OAuth authentication implementation
├── server.py # MCP server implementation
└── ticktick_client.py # TickTick API client
身份验证流程
该项目为TickTick实现了完整的OAuth 2.0流程:
- 初始设置:用户提供TickTick API客户端ID和机密
- 浏览器授权:用户被重定向到TickTick以授予访问权限
- 代币接收:本地服务器接收带有授权码的OAuth回调
- 代币交换:代码用于交换访问和刷新令牌
- 令牌存储:令牌安全地存储在本地
.env文件 - 令牌刷新:客户端在访问令牌过期时自动刷新访问令牌
这通过以编程方式处理整个OAuth流简化了用户体验。
贡献
欢迎投稿!请随时提交拉取请求。
- 复刻仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。