Add ticktick Plugin: official TickTick (international) MCP + task-management Skill - #19
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 65eb99a75b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ## Operating rules | ||
|
|
||
| 1. **Look before you change.** Before updating, completing, moving or deleting a task, locate it with `search_task` or `filter_tasks`, show the user exactly what you are about to do, then act. | ||
| 2. **Deletion is irreversible.** `delete_task` moves a task to the trash and `delete_project_group` dissolves every list inside the folder — always get explicit user confirmation first. |
There was a problem hiding this comment.
Require confirmation for every destructive tool
Expand this confirmation rule to cover delete_comment and delete_focus, which are exposed later in the same Skill but are not protected by either the task-specific lookup rule or this deletion rule. For requests such as cleaning up incorrect focus records or comments, the agent can currently invoke those irreversible tools without the explicit confirmation that the README promises for destructive operations.
Useful? React with 👍 / 👎.
hetaoBackend
left a comment
There was a problem hiding this comment.
@HopeYin 官方 TickTick endpoint 和 Skill 基本合格,但当前仍不能直接收录:
mcp.json只声明裸 URL,官方 endpoint 需要 OAuth/Bearer。MCode 当前 portable Plugin 没有 Plugin 级 secret/OAuth overlay,用户全局 MCP header 也不会覆盖插件私有连接池;安装后这条 MCP 连接无法鉴权。- 建议当前改成 Skill-only Plugin,要求用户在 MCode 全局 MCP 设置中配置官方 server 和 Bearer;或者等待 MCode 提供安全的 Plugin MCP credential overlay。
- PR 的端到端手测实际只在 dida365 sibling endpoint 上完成;TickTick 国际与 Dida365 数据不互通,需要国际账号和国际 endpoint 的真实验证。
- 最新 head 尚无 CI/CodeQL;首次贡献 workflow 仍待批准。
旧 review 提到的 delete_comment/delete_focus 确认门已在新 head 修复。完成上述修改后,这个 PR 可以优先复审。
…aged global MCP setup
|
@hetaoBackend 感谢 Review,已按建议完成 rework 并补齐国际端点实测:
请批准 workflow 运行并复审,谢谢! |
There was a problem hiding this comment.
已复核当前 head 24d055b。已移除无法鉴权的插件内 mcp.json,明确改为用户在全局 MCP 设置中配置官方端点与凭据;国际版账号边界、破坏性操作确认和数据流说明完整。候选分支本地完整检查 12/12 通过,当前 CI 与 CodeQL 全绿。批准合入。
Problem
TickTick (international, ticktick.com) users currently have no hosted Plugin connecting MiniMax Code to the official TickTick MCP server. This Plugin adds that connection plus a Skill that makes task management safe. China-version 滴答清单 (dida365.com) accounts are a separate system with no shared data — see the sibling
dida365Plugin (separate PR).What this Plugin contains
mcp.json— connects to the official TickTick MCP endpointhttps://mcp.ticktick.com(streamable-http). No credentials are shipped.ticktick— teaches the agent to operate the 40+ official tools safely: look up before mutating, require explicit confirmation before destructive actions, clarify ambiguous requests, split complex requests, and follow parameter conventions (priority scale 0/1/3/5, ISO 8601 datetimes with colon offsets, batch limits,delete_taskrequiring bothtask_idandproject_id).Example prompts
Expected result
The agent lists/creates/updates tasks, manages lists, checks in habits and reviews focus records through the official MCP, with confirmation gates before any destructive operation.
Dependencies and platforms
Authorizationheader in their client MCP config. The endpoint also supports OAuth discovery for clients that provide a native OAuth flow for remote MCP servers.Network and data behavior
https://mcp.ticktick.com(HTTPS), the official TickTick service.Test evidence
Automated:
npm run checkpasses (validator green; the 2 failing repo tests are Windows-environment issues unrelated to this Plugin — path separator expectation and symlink privilege).Manual (MiniMax Code on Windows, Bearer Token, 2026-08-15 — performed against the dida365 sibling endpoint, which shares the same official MCP implementation):
prioritysucceeds, confirming the server contract."priority": 5→"priority": "5") and the server rejectscreate_task/update_task/batch_update_taskswithmust be integer. MiniMax-M2.7 and Kimi-K2.7-Code produce correct types on identical input. The bundled Skill ships parameter rules plus a self-check (inspectReceived argumentsecho) to mitigate; worst case the user sets the priority flag in the app.