TickTick MCP Server
TickTick MCP Server -- 为 Claude 提供的完整 TickTick 集成
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
快速开始
前提条件
TickTick 账户
Python 3.10+
Claude Code 或 Claude Desktop
第 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 开发者应用
点击 New App 并填写任意名称
将 OAuth 重定向 URL 设置为:
http://localhost:8080/callback复制您的 Client ID 和 Client 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 个工具)
工具 | 描述 |
| 列出所有项目及其 ID、名称、颜色 |
| 获取特定项目的详细信息 |
| 一次调用获取项目详细信息 + 所有未完成任务 |
| 创建新项目(名称、颜色、视图模式) |
| 更新项目的名称、颜色或视图模式 |
| 永久删除项目 |
任务 -- 基本 CRUD(7 个工具)
工具 | 描述 |
| 列出特定项目中的所有任务 |
| 创建任务(标题、截止日期、优先级、项目、标签) |
| 获取特定任务的完整详细信息 |
| 更新标题、内容、日期或优先级 |
| 将任务标记为已完成 |
| 永久删除任务 |
| 在父任务下创建子任务 |
任务 -- 智能查询(7 个工具)
工具 | 描述 |
| 获取所有活动项目中的所有任务 |
| 跨标题、内容、子任务进行全文搜索 |
| 按优先级筛选(无/低/中/高) |
| 所有项目中今天到期的任务 |
| 所有项目中所有逾期任务 |
| 未来 7 天内到期的任务 |
| 恰好 N 天后到期的任务 |
任务 -- 批量与生产力(5 个工具)
工具 | 描述 |
| 一次创建多个任务 |
| 一次更新多个任务 |
| 一次将最多 20 个任务标记为已完成 |
| 将任务从一个项目移动到另一个项目 |
| GTD 焦点视图:高优先级 + 今日到期 + 逾期 |
任务 -- 高级筛选(2 个工具)
工具 | 描述 |
| 多条件筛选:优先级 + 标签 + 日期范围 + 项目 + 状态 |
| 查看项目中的已完成任务 |
用户(1 个工具)
工具 | 描述 |
| 获取用户设置(时区、每周起始日等) |
架构
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 注解 -- 使用
readOnlyHint、destructiveHint以确保更安全的工具使用自动令牌刷新 -- 令牌以 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
This server cannot be installed
Maintenance
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
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Manage your ClickUp workspace by creating, updating, and organizing tasks, lists, folders, and tag…
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for TickTick using the official OAuth 2.0 API. Create, list, update, complete, and delete tasks just by talking to Claude.73MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage TickTick tasks through natural language, including creating, updating, completing, and deleting tasks, as well as managing projects.14MIT
- FlicenseNot gradedqualityDmaintenanceEnables interacting with TickTick tasks and projects through natural language via Claude and other MCP clients.
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage TickTick tasks including listing, creating, updating, completing, and deleting tasks, as well as searching and filtering.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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