Skip to content
Agentmart
Submit a tool

Ticktick MCP

MCP server for TickTick task management: field-preserving updates and completion tracking.

Connector by partymola · GitHub account verified by the MCP Registry

IndexedGPL-3.0Local (stdio)★ 1
Write a review

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.

We use your email only for this newsletter. Privacy

About

MCP server for TickTick task management: field-preserving updates and completion tracking.

No 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_format
  • ticktick_filter_tasks
  • ticktick_get_all
  • ticktick_get_by_id
  • ticktick_get_tasks_from_project
  • ticktick_get_unprocessed_completions

Write 7 · Create, change, send or run things.

  • ticktick_complete_task
  • ticktick_create_task
  • ticktick_make_subtask
  • ticktick_mark_completion_processed
  • ticktick_move_task
  • ticktick_sync
  • ticktick_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_SECRET
  • TICKTICK_PASSWORD

Other settings (environment variables or headers).

  • TICKTICK_CLIENT_ID
  • TICKTICK_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_task

    Mark 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_format

    Convert 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_task

    Create 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_tasks

    Delete 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_tasks

    Return 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_all

    Dump 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_id

    Look 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_project

    Return 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_completions

    Returns 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_subtask

    Nest ``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_processed

    Records 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_task

    Move 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_sync

    Force 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_task

    Update 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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from partymola

Cite this page

Ticktick MCP. Agent Mart. https://agentmart.dev/connectors/partymola-ticktick-mcp (last updated 2026-10-24)