The TickTick MCP server provides a powerful interface between AI assistants and the TickTick task management platform. It enhances TickTick's capabilities by offering improved filtering and comprehensive access to task management functions through the Model Context Protocol (MCP).
Register a TickTick application to obtain API credentials:
Client ID
and Client Secret
OAuth Redirect URL
, enter something like http://localhost:8080/redirect
(which will be used during authentication)Configure environment variables:
~/.config/ticktick-mcp/
if it doesn't exist.env
file in this directory with the following content:TICKTICK_CLIENT_ID=your_client_id
TICKTICK_CLIENT_SECRET=your_client_secret
TICKTICK_REDIRECT_URI=your_redirect_uri
TICKTICK_USERNAME=your_ticktick_email
TICKTICK_PASSWORD=your_ticktick_password
The first time you run the server:
.token-oauth
file will be created to cache your authorization token (valid for ~6 months)The recommended way to run the server is via an MCP client:
Configure your MCP client (such as Claude Desktop or VS Code Agent Mode) with this configuration:
{
"mcpServers": {
"ticktick": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/jen6/ticktick-mcp.git",
"ticktick-mcp"
]
}
}
}
The server provides comprehensive tools for managing TickTick tasks:
// Create a new task
mcp.ticktick.ticktick_create_task({
title: "Complete project report",
content: "Include all quarterly metrics",
priority: 3,
dueDate: "2023-12-31T17:00:00"
});
// Update an existing task
mcp.ticktick.ticktick_update_task({
task_object: {
id: "task_id_here",
title: "Updated title",
priority: 5
}
});
// Mark a task as complete
mcp.ticktick.ticktick_complete_task({
task_id: "task_id_here"
});
// Move a task to a different project
mcp.ticktick.ticktick_move_task({
task_id: "task_id_here",
new_project_id: "project_id_here"
});
The server offers powerful options for retrieving and filtering tasks:
// Get all uncompleted tasks from a specific project
mcp.ticktick.ticktick_get_tasks_from_project({
project_id: "project_id_here"
});
// Filter tasks by various criteria
mcp.ticktick.ticktick_filter_tasks({
filter_criteria: {
status: "uncompleted",
priority: 5,
due_end_date: "2023-12-31",
tag_label: "important",
sort_by_priority: true
}
});
The server includes utilities to make working with TickTick's date format easier:
// Convert ISO datetime to TickTick format
mcp.ticktick.ticktick_convert_datetime_to_ticktick_format({
datetime_iso_string: "2023-12-31T17:00:00",
tz: "America/New_York"
});
You can create AI agents that use this server to help manage tasks. For example, a daily stand-up agent could:
This enables powerful AI-assisted task management workflows that integrate directly with your TickTick account.
There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json
file so that it is available in all of your projects.
If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json
file.
To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".
When you click that button the ~/.cursor/mcp.json
file will be opened and you can add your server like this:
{
"mcpServers": {
"cursor-rules-mcp": {
"command": "npx",
"args": [
"-y",
"cursor-rules-mcp"
]
}
}
}
To add an MCP server to a project you can create a new .cursor/mcp.json
file or add it to the existing one. This will look exactly the same as the global MCP server example above.
Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.
The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.
You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.