TickTick Task Manager
STDIOMCP Server for TickTick API, enabling task management and project organization.
MCP Server for TickTick API, enabling task management and project organization.
MCP Server for the TickTick API, enabling task management, project organization, habit tracking, and more.
get_task_by_ids
projectId
(string): Project identifiertaskId
(string): Task identifierTickTickTaskSchema
create_task
title
(string): Task titleprojectId
(string): Project idcontent
(optional string): Task contentdesc
(optional string): Task descriptionisAllDay
(optional boolean): Is all day taskstartDate
(optional string): Task start date in "yyyy-MM-dd'T'HH:mm:ssZ" formatdueDate
(optional string): Task due date in "yyyy-MM-dd'T'HH:mm:ssZ" formattimeZone
(optional string): Task time zone (e.g., "America/Los_Angeles")reminders
(optional string[]): List of reminder triggers in iCalendar formatrepeatFlag
(optional string): Task repeat flag in iCalendar formatpriority
(optional number): Task priority (None: 0, Low: 1, Medium: 3, High: 5)sortOrder
(optional string): Task sort orderitems
(optional array): List of subtasks with:
title
(string): Subtask item titlestartDate
(optional string): Subtask date in "yyyy-MM-dd'T'HH:mm:ssZ" formatisAllDay
(optional boolean): Is all day subtask itemsortOrder
(optional number): Subtask item sort ordertimeZone
(optional string): Subtask timezonestatus
(optional number): Completion status (Normal: 0, Completed: 1)completedTime
(optional string): Completion time in "yyyy-MM-dd'T'HH:mm:ssZ" formatTickTickTaskSchema
update_task
taskId
(string): Task identifier - Pathid
(string): Task identifier - BodyprojectId
(string): Project idcreate_task
TickTickTaskSchema
complete_task
taskId
(string): Task identifierprojectId
(string): Project identifierdelete_task
taskId
(string): Task identifierprojectId
(string): Project identifierget_user_projects
TickTickProjectSchema
get_project_by_id
projectId
(string): Project identifierTickTickProjectSchema
get_project_with_data
projectId
(string): Project identifierproject
: Project object matching TickTickProjectSchema
tasks
: Array of task objects matching TickTickTaskSchema
columns
: Optional array of column objects with:
id
(optional string)projectId
(optional string)name
(optional string)sortOrder
(optional number)create_project
name
(string): Project namecolor
(optional string): Project color (default: '#4772FA')viewMode
(optional string): View mode ('list', 'kanban', 'timeline') (default: 'list')kind
(optional string): Project kind ('TASK', 'NOTE') (default: 'TASK')TickTickProjectSchema
update_project
projectId
(string): Project identifiername
(optional string): Project namecolor
(optional string): Project colorsortOrder
(optional number): Project sort orderviewMode
(optional string): View mode ('list', 'kanban', 'timeline')kind
(optional string): Project kind ('TASK', 'NOTE')TickTickProjectSchema
delete_project
projectId
(string): Project identifierTickTickTaskSchema
: Defines the structure for task objects including:
TickTickProjectSchema
: Defines the structure for project objects including:
When creating or updating tasks, you can include these properties:
0
: None1
: Low3
: Medium5
: High0
: Normal (not completed)2
: Completed["TRIGGER:P0DT9H0M0S", "TRIGGER:PT0S"]
"RRULE:FREQ=DAILY;INTERVAL=1"
"yyyy-MM-dd'T'HH:mm:ssZ"
"2019-11-13T03:00:00+0000"
When creating or updating projects, you can use these properties:
"list"
: Standard list view"kanban"
: Kanban board view"timeline"
: Timeline view"TASK"
: Task-oriented project"NOTE"
: Note-oriented projectTo enable OAuth authentication with TickTick, you'll need to register your app and obtain API credentials:
When using the TickTick MCP server for the first time:
When you need to generate a new access token (either for first-time setup or when the token expires), follow these steps:
Configure your credentials using one of these methods:
Create a .env
file in your project root:
TICKTICK_CLIENT_ID="<YOUR_CLIENT_ID>" TICKTICK_CLIENT_SECRET="<YOUR_CLIENT_SECRET>"
Then load it:
source .env
This method is recommended because:
Use single quotes if your credentials contain special characters. Note that these variables will only persist in your current terminal session:
export TICKTICK_CLIENT_ID='<YOUR_CLIENT_ID>' export TICKTICK_CLIENT_SECRET='<YOUR_CLIENT_SECRET>'
Run the authentication command:
If using the published package:
npx @alexarevalo.ia/mcp-server-ticktick ticktick-auth
If running the MCP server locally:
npm run start:auth
The process will:
Save the access token:
echo "TICKTICK_ACCESS_TOKEN=\"<GENERATED_TOKEN>\"" >> .env source .env
Security Tips:
- Add
.env
to your.gitignore
file- Never commit credentials to version control
- Access tokens expire after 180 days - you'll need to regenerate them
To use this with Claude Desktop, add the following to your claude_desktop_config.json
:
{ "mcpServers": { "ticktick": { "command": "npx", "args": ["-y", "@alexarevalo.ai/mcp-server-ticktick"], "env": { "TICKTICK_CLIENT_ID": "<YOUR_CLIENT_ID>", "TICKTICK_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>", "TICKTICK_ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>" } } } }
{ "mcpServers": { "ticktick": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "TICKTICK_CLIENT_ID", "-e", "TICKTICK_CLIENT_SECRET", "-e", "TICKTICK_ACCESS_TOKEN", "mcp/ticktick" ], "env": { "TICKTICK_CLIENT_ID": "<YOUR_CLIENT_ID>", "TICKTICK_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>", "TICKTICK_ACCESS_TOKEN": "<YOUR_ACCESS_TOKEN>" } } } }
To install ticktick-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @alexarevalo9/ticktick-mcp-server --client claude
Docker build:
docker build -t mcp/ticktick -f src/ticktick/Dockerfile .
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.