ticktick-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TICKTICK_SITE | No | Site to use: ticktick (default) or dida365. | ticktick |
| TICKTICK_TOKEN | No | Just the t= value from the cookie. Combine with TICKTICK_CSRF_TOKEN and TICKTICK_USER_ID. | |
| TICKTICK_COOKIE | No | Full Cookie: header (simplest). Grab it once from a logged-in browser — DevTools → Network → any api.ticktick.com request → Request Headers → cookie — and pass the whole value. | |
| TICKTICK_USER_ID | No | ap_user_id value. | |
| TICKTICK_MCP_HOME | No | Runtime directory, default ~/.ticktick-mcp. | ~/.ticktick-mcp |
| TICKTICK_CSRF_TOKEN | No | _csrf_token value — sent as x-csrftoken on writes. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tasksB | Lists the tasks in a project. Use |
| get_taskC | Gets a single task by id. |
| create_taskC | Creates a task in a project. |
| update_taskA | Updates fields on an existing task. Only the supplied fields change. |
| complete_taskB | Marks a task as completed (status=2). |
| uncomplete_taskB | Reopens a completed task (status=0). |
| delete_taskA | Deletes a task. By default it moves to the trash; set |
| move_taskC | Moves a task from one project to another. |
| list_completed_tasksA | Lists completed tasks within a date range, for one project or across all projects. |
| list_trashB | Lists trashed tasks. |
| restore_taskC | Restores a task from the trash. |
| batch_tasksA | Creates, updates and/or deletes many tasks in one request. Note: some accounts are gated and receive 403 for batch writes. |
| search_tasksB | Full-text search across tasks, comments and other content. |
| list_projectsA | Lists all projects (lists) for the signed-in user. Works in both cookie and API-token mode. |
| get_projectB | Gets a single project by id. |
| get_project_with_dataC | Gets a project with its tasks and columns. |
| create_projectC | Creates a project (list). |
| update_projectC | Updates a project's name, color, view mode or kind. |
| delete_projectB | Deletes a project. This is destructive and not reversible. |
| list_tagsB | Lists all tags. Works in both modes. |
| rename_tagC | Renames a tag. Web mode only. |
| merge_tagsB | Merges one tag into another. Web mode only. |
| delete_tagB | Deletes a tag. Web mode only. |
| list_columnsA | Lists kanban columns for a project (or all columns in web mode). |
| get_current_userA | Gets the signed-in user's profile. In web mode returns id, inbox id, plan and registration info; in API-token mode returns the account time zone preference. |
| sync_checkA | Offline-first delta pull of the whole account (web mode only): tasks, projects, tags and columns. Pass checkPoint=0 for a full snapshot, then reuse the returned checkPoint for incremental pulls. |
| get_preferencesB | Gets user preferences (matrix rules, quick-add, etc.). Web mode only. |
| list_templatesA | Lists task templates. Web mode only. |
| list_countdownsC | Lists countdowns. Works in both modes. |
| list_habitsC | Lists habits. Works in both modes. |
| list_habit_sectionsB | Lists habit sections (groups). Works in both modes. |
| query_habit_checkinsA | Queries habit check-in records. Web mode takes { habitIds, from, to }; API-token mode takes no args. |
| list_calendar_accountsA | Lists connected third-party calendar accounts. Web mode only. |
| list_calendar_subscriptionsA | Lists calendar subscriptions. Web mode only. |
| list_calendar_eventsB | Lists events bound from connected calendars. Web mode only. |
| list_project_groupsA | Lists project groups. API-token mode only. |
| list_focusA | Lists focus (pomodoro) records. API-token mode only. |
| create_focusB | Creates a focus (pomodoro) record. API-token mode only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 38 tools
Most tools target a distinct resource+action (e.g. list_projects vs get_project vs get_project_with_data), and descriptions clarify subtle overlaps. Slight confusion remains between batch_tasks and the individual task CRUD tools, and between list_focus/create_focus and the broader list_* read-only tools, but boundaries are mostly clear.
Names overwhelmingly follow a consistent snake_case verb_noun pattern (list_projects, create_task, update_task, delete_task, complete_task, move_task, etc.). Minor deviations like sync_check (noun_verb) and get_project_with_data (verb_noun_phrase) prevent a perfect score.
38 tools is heavy, though the breadth of the TickTick domain (tasks, projects, tags, habits, focus, calendar, templates, countdowns, sync) distributes them across many resources. Several tools are narrow single-purpose read operations, making the surface feel somewhat bloated.
Task and project CRUD/lifecycle coverage is strong, but several domains are read-only with obvious gaps: tags have rename/merge/delete but no create_tag; habits, calendar, templates, countdowns and preferences lack create/update/delete operations. These gaps would force agents to work around missing operations.