一个用于TickTick的模型上下文协议(MCP)服务器,使您能够通过Claude和其他MCP客户端直接与您的TickTick任务管理系统进行交互。
克隆此仓库:
git clone https://github.com/jacepark12/ticktick-mcp.git
cd ticktick-mcp
使用uv安装:
# 如果还没有安装uv,请先安装
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建虚拟环境
uv venv
# 激活虚拟环境
# 在macOS/Linux上:
source .venv/bin/activate
# 在Windows上:
.venv\Scripts\activate
# 安装包
uv pip install -e .
与TickTick进行身份验证:
# 运行身份验证流程
uv run -m ticktick_mcp.cli auth
这将:
.env文件中测试您的配置:
uv run test_server.py
这将验证您的TickTick凭证是否正确工作。
该服务器使用OAuth2与TickTick进行身份验证。设置过程非常简单:
在TickTick开发者中心注册您的应用
http://localhost:8000/callback运行身份验证命令:
uv run -m ticktick_mcp.cli auth
按照提示输入您的客户端ID和客户端密钥
浏览器窗口将打开,让您授权应用与您的TickTick账户
授权后,您将被重定向回应用程序,并且您的访问令牌将自动保存到.env文件中
服务器会自动处理令牌刷新,除非您撤销访问或删除.env文件,否则无需重新认证。
Dida365是TickTick在中国的版本,其身份验证过程类似于TickTick。按照以下步骤设置Dida365身份验证:
在Dida365开发者中心注册您的应用
http://localhost:8000/callback向您的.env文件添加环境变量:
TICKTICK_BASE_URL='https://api.dida365.com/open/v1'
TICKTICK_AUTH_URL='https://dida365.com/oauth/authorize'
TICKTICK_TOKEN_URL='https://dida3_65.com/oauth/token'
按照与TickTick相同的认证步骤操作
编辑您的Claude for Desktop配置文件:
macOS:
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows:
notepad %APPDATA%\Claude\claude_desktop_config.json
添加TickTick MCP服务器配置,使用绝对路径:
{
"mcpServers": {
"ticktick": {
"command": "<绝对路径到uv>",
"args": ["run", "--directory", "<绝对路径到ticktick-mcp目录>", "-m", "ticktick_mcp.cli", "run"]
}
}
}
重启Claude for Desktop
连接后,您将在Claude中看到TickTick 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 |
| 工具 | 描述 | 参数 |
|---|---|---|
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 | 获取所有逾期任务 | 无 |
| 工具 | 描述 | 参数 |
|---|---|---|
get_engaged_tasks | 获取“参与”任务(高优先级或逾期) | 无 |
get_next_tasks | 获取“下一步”任务(中优先级或明天到期) | 无 |
batch_create_tasks | 一次创建多个任务 | tasks(任务字典列表) |
这里有一些示例提示,在连接TickTick MCP服务器后可以与Claude一起使用:
遵循David Allen的“Getting Things Done”框架,管理参与和下一步行动。
例如:
ticktick-mcp/
├── .env.template # 环境变量模板
├── README.md # 项目文档
├── requirements.txt # 项目依赖
├── setup.py # 包设置文件
├── test_server.py # 服务器配置测试脚本
└── ticktick_mcp/ # 主要包
├── __init__.py # 包初始化
├── authenticate.py # OAuth身份验证实用程序
├── cli.py # 命令行界面
└── src/ # 源代码
├── __init__.py # 模块初始化
├── auth.py # OAuth身份验证实现
├── server.py # MCP服务器实现
└── ticktick_client.py # TickTick API客户端
该项目实现了完整的TickTick OAuth 2.0流程:
.env文件中这简化了用户体验,通过编程方式处理整个OAuth流程。
欢迎贡献!请随时提交Pull Request。
git checkout -b feature/amazing-feature)git commit -m '添加一些惊人的功能')git push origin feature/amazing-feature)本项目根据MIT许可证发布 - 详情见LICENSE文件。