v0.1.0
First stable release: MCP server for TickTick task management.
Added
- Tools: create, update, complete, move, delete, filter, get-by-id, get-all, get-from-project, make-subtask, datetime conversion.
- Completion tracking: idempotent processing of completed tasks via local SQLite (
get_unprocessed_completions,mark_completion_processed). - Field-preserving partial updates (omitted fields are not cleared on the TickTick side).
- Day-of-week validation on
dueDateto catch date/day-name mismatches. - Read-after-write verification (
_verification_warningson mutated tasks). - Dateless-task warning (tasks created without a
dueDateget a warning that they will not trigger reminders). - On-demand freshness: active-read tools and the read step of mutations re-sync server state, throttled (default 15s,
TICKTICK_MCP_SYNC_TTL_SECONDS), so edits made in the TickTick app on other devices are visible without restarting the server. Sync failures are fail-soft (last-known state is served). ticktick_synctool: force an immediate refresh and report task/project counts.- Recurring-aware completion:
ticktick_complete_taskreturnsoutcome: "completed_recurring"andnext_occurrence_idwhen a recurring task rolls forward, instead of a misleading "status still indicates open" warning. - Silent no-op detection:
ticktick_update_taskreturnsoutcome: "no_op"with re-read guidance when the API echoes an empty response and a re-read confirms the change did not apply. - Routable-reopen guidance:
ticktick_update_taskreturnsoutcome: "needs_project_id"when the target id is not in local sync state and noprojectIdwas supplied. - Recurring reopen guard:
ticktick_update_taskreturnsoutcome: "reopen_no_effect"when the only substantive change isstatus:0on a recurring task that has already rolled forward.