TickTick MCP Server
<div align="center">
[](https://ticktick.com)
# TickTick MCP Server 🎯
**[TickTick.com](https://ticktick.com)** | Manage Your Tasks with AI
</div>
A comprehensive MCP (Model Context Protocol) server for managing your TickTick tasks directly from Claude or any MCP-compatible AI assistant.
## Features ✨
- **Task Management**: Create, update, complete, and delete tasks
- **Project Management**: Create and manage projects/lists
- **Smart Scheduling**: Generate daily schedules based on task priorities and due dates
- **OAuth2 Authentication**: Secure authentication with TickTick's official API
- **Rich Formatting**: Beautiful markdown output for easy reading
## Prerequisites
- Python 3.10 or higher
- A TickTick account
- A TickTick Developer App (we'll create this below)
## Installation
### Step 1: Clone/Copy the Server
```bash
# Create directory
mkdir -p ~/ticktick-mcp
cd ~/ticktick-mcp
# Copy the files (ticktick_mcp.py and pyproject.toml)
```
### Step 2: Install Dependencies
```bash
# Using pip
pip install mcp httpx pydantic
# Or using the project
cd ~/ticktick-mcp
pip install -e .
```
### Step 3: Register a TickTick Developer App
1. Go to [TickTick Developer Portal](https://developer.ticktick.com/manage)
2. Log in with your TickTick account
3. Click **"+ App Name"** to create a new app
4. Enter a name (e.g., "Claude MCP Integration")
5. **Important**: Set the OAuth Redirect URL to: `http://127.0.0.1:8080/callback`
6. Click Save
7. Note down your **Client ID** and **Client Secret**
## Configuration
### For Claude Desktop
Add to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"ticktick": {
"command": "python",
"args": ["/path/to/ticktick-mcp/ticktick_mcp.py"],
"env": {}
}
}
}
```
**Using uv (recommended)**:
```json
{
"mcpServers": {
"ticktick": {
"command": "uv",
"args": ["run", "--directory", "/path/to/ticktick-mcp", "python", "ticktick_mcp.py"]
}
}
}
```
### For Other MCP Clients
Run the server directly:
```bash
python ticktick_mcp.py
```
## First-Time Setup (OAuth Authentication)
Once the MCP server is connected, use these tools in order:
### 1. Configure Credentials
Tell Claude:
> "Configure TickTick with my credentials: Client ID is `YOUR_CLIENT_ID` and Client Secret is `YOUR_CLIENT_SECRET`"
This will:
- Save your credentials securely
- Generate an authorization URL for you to visit
### 2. Authorize the App
1. Claude will provide an authorization URL
2. Open the URL in your browser
3. Log in to TickTick and click "Allow"
4. You'll be redirected to a URL like:
`http://127.0.0.1:8080/callback?code=ABCD1234&state=mcp_auth`
5. Copy the **code** parameter (`ABCD1234` in this example)
### 3. Complete Authorization
Tell Claude:
> "Complete TickTick authorization with code: ABCD1234"
You're now authenticated! The token is cached for ~6 months.
## Available Tools
### Authentication
| Tool | Description |
|------|-------------|
| `ticktick_configure` | Configure API credentials |
| `ticktick_authorize` | Complete OAuth flow |
| `ticktick_check_auth` | Check authentication status |
### Tasks
| Tool | Description |
|------|-------------|
| `ticktick_list_tasks` | List all incomplete tasks |
| `ticktick_get_task` | Get details of a specific task |
| `ticktick_create_task` | Create a new task |
| `ticktick_update_task` | Update an existing task |
| `ticktick_complete_task` | Mark a task as complete |
| `ticktick_delete_task` | Delete a task |
### Projects
| Tool | Description |
|------|-------------|
| `ticktick_list_projects` | List all projects/lists |
| `ticktick_create_project` | Create a new project |
| `ticktick_delete_project` | Delete a project |
### Scheduling
| Tool | Description |
|------|-------------|
| `ticktick_schedule_time` | Generate a daily schedule |
| `ticktick_get_today` | Quick view of today's tasks |
## Usage Examples
### List Your Tasks
> "Show me all my TickTick tasks"
### Create a Task
> "Create a TickTick task: Review Q4 report, due tomorrow, high priority"
### Schedule Your Day
> "Help me plan my day based on my TickTick tasks"
### Create a Project
> "Create a new TickTick project called 'Side Business Ideas'"
### Complete a Task
> "Mark task ID abc123 in project xyz as complete"
## Task Priority Levels
| Priority | Value | Emoji |
|----------|-------|-------|
| None | 0 | ⚪ |
| Low | 1 | 🟢 |
| Medium | 3 | 🟡 |
| High | 5 | 🔴 |
## File Locations
The server stores configuration and tokens in your home directory:
- **Configuration**: `~/.ticktick-mcp-config.json`
- **OAuth Token**: `~/.ticktick-mcp-token.json`
To reset authentication, delete these files.
## Troubleshooting
### "Not authenticated" Error
Run `ticktick_check_auth` to verify your authentication status, then re-run the OAuth flow if needed.
### "Token expired" Error
Delete `~/.ticktick-mcp-token.json` and re-authenticate.
### "Rate limit exceeded" Error
Wait a minute before making more requests. TickTick has API rate limits.
### "Resource not found" Error
Double-check the task ID and project ID. Use `ticktick_list_tasks` to see valid IDs.
## API Reference
This server uses TickTick's official Open API:
- [TickTick Developer Portal](https://developer.ticktick.com)
- [API Documentation](https://developer.ticktick.com/api#/openapi)
## Contributing
Feel free to extend this server! Some ideas:
- Add support for habits
- Add Pomodoro timer integration
- Add calendar view
- Add recurring task support
- Add tag management tools
## License
MIT License - feel free to use and modify!
---
Built with ❤️ for productivity enthusiasts using Claude and TickTick.
TDQS
Scored across 55 tools
The tools are generally well-differentiated by resource type (tasks, projects, habits, tags, focus) and action, but there is some overlap in functionality. For example, 'ticktick_get_task' and 'ticktick_list_tasks' serve distinct purposes, but 'ticktick_get_completed_tasks' and 'ticktick_get_today_habits' might be confused with broader listing tools. Descriptions help clarify, but the high tool count increases potential for misselection.
All tool names follow a consistent 'ticktick_verb_noun' pattern with snake_case throughout. The verbs are clear and appropriate (e.g., create, get, update, delete, list), and nouns consistently represent TickTick entities like tasks, projects, habits, tags, and focus. This uniformity makes the tool set predictable and easy to navigate.
With 55 tools, the count is excessive for a task management server, even considering TickTick's broad feature set. This many tools can overwhelm agents, leading to confusion and inefficiency. A more streamlined set, perhaps grouping related operations or reducing redundancy, would be more appropriate for the domain.
The tool set provides comprehensive coverage of TickTick's domain, including full CRUD operations for tasks, projects, habits, tags, and folders, plus advanced features like focus tracking, analytics, and OAuth authentication. There are no obvious gaps; agents can perform all core workflows from task management to productivity analysis without dead ends.