Ticktick MCP
MCP server for TickTick task management: field-preserving updates and completion tracking.
Connector by partymola · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/partymola-ticktick-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 6 read · 7 write · 1 delete
- Secrets
- 2 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Docker image
Tools by what they do 14
Read from the source code; the running server may list different tools.
Read 6 · Look things up without changing anything.
ticktick_convert_datetime_to_ticktick_formatticktick_filter_tasksticktick_get_allticktick_get_by_idticktick_get_tasks_from_projectticktick_get_unprocessed_completions
Write 7 · Create, change, send or run things.
ticktick_complete_taskticktick_create_taskticktick_make_subtaskticktick_mark_completion_processedticktick_move_taskticktick_syncticktick_update_task
Delete 1 · Delete, drop, revoke or wipe things.
ticktick_delete_tasks
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
TICKTICK_CLIENT_SECRETTICKTICK_PASSWORD
Other settings (environment variables or headers).
TICKTICK_CLIENT_IDTICKTICK_USERNAME
Tools (14)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
ticktick_complete_taskMark a task as completed. Completing a task here also records it as processed, so it does not come back from ``ticktick_get_unprocessed_completions``. That queue is for completions made elsewhere, where a note may be waiting to be read. There is no need to call ``ticktick_mark_completion_processed`` afterwards. Args: task_id (str): The task's full ID. Returns: JSON object containing the refetched task (status=2 on success). ``_verification_warnings`` is attached if the refetch shows the task is still open. ``completion_recorded`` reports whether the local record was …
ticktick_convert_datetime_to_ticktick_formatConvert an ISO 8601 datetime string into TickTick's storage format. TickTick uses ``YYYY-MM-DDTHH:MM:SS+0000`` (UTC offset, no colon). Args: datetime_iso_string (str): ISO 8601 datetime, e.g. ``"2026-04-13T20:45:00+01:00"``. Naive strings are accepted and interpreted in ``tz``. tz (str): IANA timezone name used for the UTC conversion, e.g. ``"Europe/London"`` or ``"America/Los_Angeles"``. Returns: On success: ``{"ticktick_format": "2026-04-13T19:45:00+0000"}``. On parse error: ``{"error": "Invalid datetime format...", "status": "error"}``. On any …
ticktick_create_taskCreate a new task. Args: title (str): Task title. Required. project_id (str, optional): Project ID or name. Defaults to inbox. Accepts the project's name as well as its ID (case-insensitive, trimmed; "Inbox" resolves to the inbox). Two projects sharing a name is an error, not a guess. content (str, optional): Long-form content (markdown supported). desc (str, optional): Short description / checklist subtitle. all_day (bool, optional): True for all-day tasks. start_date (str, optional): ISO 8601 start datetime, e.g. ``"2026-04-13T09:00:00…
ticktick_delete_tasksDelete one or more tasks. Args: task_ids (str | list[str]): A single task ID, or a list of IDs. An empty list returns an error. project_id (str, optional): Used to construct a minimal delete payload when ``get_by_id`` cannot find the task locally (typical for completed tasks). Accepts the project's name as well as its ID (case-insensitive, trimmed; "Inbox" resolves to the inbox). Two projects sharing a name is an error, not a guess. Returns: ``{"status": "success", "deleted_count": N, "tasks_deleted_ids": [...]}`` on success. Ta…
ticktick_filter_tasksReturn the tasks matching every supplied filter criterion. Supports any combination of project, priority, tag, status, and a date window applied to either the due date (open tasks) or the completion timestamp (completed tasks). Args: detail (str, optional): ``"compact"`` (default) or ``"full"``. Compact drops the heavy ``content``/``desc``/checklist ``items`` blobs and bulky sync metadata, keeping id, projectId, title, dueDate, startDate, priority, status, isAllDay, timeZone, tags plus a ``contentPreview`` (first ~200 chars of content) so keyword s…
ticktick_get_allDump everything of a single kind from the local sync state. Args: search (str): Either ``"tasks"``, ``"projects"`` or ``"tags"`` (case-insensitive). detail (str, optional): ``"compact"`` (default) or ``"full"``. Accepted for parity with the other list tools and validated here. It has no effect on the ``"projects"``/``"tags"`` searches (those return non-task records in full) nor on the currently inert ``"tasks"`` search -- for a compact task list use ``ticktick_filter_tasks`` or ``ticktick_get_tasks_from_project``. Returns: F…
ticktick_get_by_idLook up any object (task, project, tag) by its ID. Args: obj_id (str): The object's full ID. Returns: JSON object of the matching record, or an empty object ``{}`` if nothing has that id. Branch on emptiness. On failure: ``{"error": "...", "status": "error"}``. Freshness: Local state is synced from the server at most once per throttle window (default 15s, ``TICKTICK_MCP_SYNC_TTL_SECONDS``); an edit made elsewhere within that window may not be visible yet. Call ``ticktick_sync`` to force an immediate refresh. Example: ticktick_get_by_id(obj_id="60ca9dbc8f…
ticktick_get_tasks_from_projectReturn every open task in a project. Args: project_id (str): The project's ID or name. Accepts the project's name as well as its ID (case-insensitive, trimmed; "Inbox" resolves to the inbox). Two projects sharing a name is an error, not a guess. List them with ``ticktick_get_all(search="projects")``. detail (str, optional): ``"compact"`` (default) or ``"full"``. Compact drops the heavy ``content``/``desc``/checklist ``items`` blobs and bulky sync metadata, keeping id, projectId, title, dueDate, startDate, priority, status, isAllD…
ticktick_get_unprocessed_completionsReturns completed tasks for a project that have NOT yet been marked as processed by a domain agent. Could be called at the beginning of each conversation to check for new completions. After reviewing each returned task, call ticktick_mark_completion_processed to record that it has been handled. A task completed through ticktick_complete_task is recorded by that tool, so what this returns is what was completed elsewhere, in the TickTick app or on another client, where a note may be waiting to be read. One exception: no recurring completion is recorded, because it files its completed instance …
ticktick_make_subtaskNest ``child_task_id`` under ``parent_task_id``. Args: parent_task_id (str): The parent task's ID. child_task_id (str): The task to become a subtask. Must differ from ``parent_task_id`` and live in the same project. Returns: On success: ``{"status": "success", "updated_parent_task": ..., "api_response": ...}``. Missing child / parent: ``{"status": "not_found", "error": "..."}``. Cross-project: ``{"error": "...same project...", "child_project": "...", "parent_project": "..."}``. Example: ticktick_make_subtask( parent_task_id="60ca9dbc8f08516d9d…
ticktick_mark_completion_processedRecords that a domain agent has processed a completed task. Call this after reviewing each task returned by ticktick_get_unprocessed_completions. The task will no longer appear in future calls to that tool. Args: task_id (str): Full TickTick task ID. Required. project_id (str): Project ID or name the task belongs to. Required. Accepts the project's name as well as its ID (case-insensitive, trimmed; "Inbox" resolves to the inbox). Two projects sharing a name is an error, not a guess. title (str, optional): Task title (stored for human-readable audit trail).…
ticktick_move_taskMove a task into a different project. Args: task_id (str): The task's full ID. new_project_id (str): Destination project's ID or name. Accepts the project's name as well as its ID (case-insensitive, trimmed; "Inbox" resolves to the inbox). Two projects sharing a name is an error, not a guess. Returns: JSON object containing the moved task. If the target project cannot be looked up locally, the move is still attempted. Missing source task (no projectId field): ``{"status": "not_found", ...}``. Other failures: ``{"error": "...", "status": "er…
ticktick_syncForce an immediate refresh of TickTick state from the server. The active-read tools (``ticktick_get_by_id``, ``ticktick_get_tasks_from_project``, ``ticktick_filter_tasks``) already auto-refresh at most once per throttle window (default 15s, overridable via ``TICKTICK_MCP_SYNC_TTL_SECONDS``). Call this when you need an immediate refresh -- e.g. you just changed something in the TickTick app on another device, or a read looks stale and you want to be certain before acting. Returns: ``{"status": "synced", "task_count": N, "project_count": M}`` on success. ``{"status": "error", "detail":…
ticktick_update_taskUpdate an existing task without wiping unmodified fields. The TickTick API requires the entire editable task on every update; any omitted field is wiped server-side. To prevent that we fetch the current task, then overlay ONLY the fields the caller explicitly set (``exclude_unset=True``). Args: task_object (TaskObject): Must include ``id``. All other fields are optional; set only the ones you want to change. When ``dueDate`` is set you must also set ``expectedDayOfWeek``. Returns: JSON object containing the updated task. ``_verification_warnings`` is attached whe…
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit
- Oct 17, 2026 (11 days ago)
- Last release
- Sep 21, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.partymola/ticktick-mcp- Version
- 0.5.0
- Auth
- API key
- Packages
- oci
ghcr.io/partymola/ticktick-mcp:v0.5.0 - License
- GPL-3.0
- Repository
- github.com/partymola/ticktick-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from partymola
- 0.625score
Monzo MCP
partymola
Read-only MCP server for the Monzo banking API: OAuth, local transaction cache, spending analysis.
ConnectorAFreshness: ALocal★ 4Claude Code +5 - 0.613score
Google Health MCP
partymola
MCP server for the Google Health API, with a local SQLite cache and trend analysis.
ConnectorAFreshness: ALocal★ 1↓ 211/wkClaude Code +5 - 0.602score
Withings MCP
partymola
MCP server for the Withings Health API with OAuth, local SQLite cache, and trend analysis.
ConnectorAFreshness: ALocal★ 1↓ 82/wkClaude Code +5 - 0.582score
Bosch Flow MCP
partymola
MCP server for Bosch eBike Flow (BES3): battery health, charge cycles, components, and ride data.
ConnectorAFreshness: ALocal↓ 58/wkClaude Code +5
Cite this page
Ticktick MCP. Agent Mart. https://agentmart.dev/connectors/partymola-ticktick-mcp (last updated 2026-10-24)