Thanks to visit codestin.com
Credit goes to github.com

Skip to content

RaiconY/ticktick-mcp

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

58 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TickTick MCP Server

A powerful Model Context Protocol (MCP) server that enables seamless integration between Claude Desktop and TickTick task management system.

License Python Platform

✨ Features

πŸ”₯ New Enhanced Features

  • 🌍 Smart Timezone Support - Automatic timezone detection with manual override options
  • ⚑ Batch Operations - Create/update multiple tasks simultaneously
  • πŸ” Advanced Search - Find tasks by title, content, or project with filters
  • πŸ“Š Analytics & Insights - Project statistics, overdue tracking, productivity metrics
  • πŸ“… Smart Scheduling - Get today's tasks, upcoming deadlines, overdue items

πŸ“‹ Core Task Management

  • Full CRUD Operations - Create, read, update, delete tasks and projects
  • Priority Management - Set and modify task priorities (None, Low, Medium, High)
  • Date & Time Handling - Start dates, due dates with timezone awareness
  • Project Organization - Manage multiple projects with different view modes
  • Task Completion - Mark tasks as complete with automatic timestamps

πŸ”„ Seamless Integration

  • Natural Language Commands - Control TickTick through conversational Claude interface
  • Real-time Synchronization - Changes reflect immediately in TickTick apps
  • OAuth2 Authentication - Secure, token-based authentication with auto-refresh
  • Error Handling - Robust error recovery and user-friendly messages

πŸš€ Quick Start

Prerequisites

  • Python 3.10+
  • uv - Fast Python package manager
  • Claude Desktop
  • TickTick Account with API access

Installation

  1. Clone the repository

    git clone https://github.com/jacepark12/ticktick-mcp.git
    cd ticktick-mcp
  2. Create and activate virtual environment

    uv venv
    # On Windows:
    .venv\Scripts\activate
    # On macOS/Linux:
    source .venv/bin/activate
  3. Install dependencies

    uv pip install -e .
    uv pip install tzdata  # For timezone support
  4. Set up TickTick API credentials

    Register your application at TickTick Developer Center:

    • Set redirect URI to: http://localhost:8000/callback
    • Note your Client ID and Client Secret
  5. Authenticate with TickTick

    uv run -m ticktick_mcp.cli auth

    This will:

    • Prompt for your Client ID and Client Secret
    • Open browser for TickTick authorization
    • Automatically save tokens to .env file
  6. Test the setup

    uv run test_server.py

Claude Desktop Configuration

  1. Find uv path

    # Windows
    where uv
    # macOS/Linux  
    which uv
  2. Edit Claude Desktop config

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json

    {
      "mcpServers": {
        "ticktick": {
          "command": "/path/to/uv",
          "args": ["run", "--directory", "/path/to/ticktick-mcp", "-m", "ticktick_mcp.cli", "run"]
        }
      }
    }
  3. Restart Claude Desktop

🎯 Usage Examples

Basic Operations

"Show me all my TickTick projects"
"Create a task 'Buy groceries' in my Personal project"
"List all tasks in my Work project"
"Mark task 'Complete report' as done"

Advanced Features

"Create 5 tasks for my morning routine in Personal project"
"Show me all overdue tasks"
"Find all tasks containing 'meeting'"
"What tasks do I have due today?"
"Show statistics for my Work project"
"Get upcoming tasks for next 7 days"

Batch Operations

"Create multiple tasks: 'Review code', 'Write tests', 'Deploy to staging' all in Development project"
"Update all overdue tasks to be due tomorrow with high priority"

Analytics & Insights

"Show project statistics for Work"
"Which tasks are overdue across all projects?"
"What's my completion rate this month?"
"Show me upcoming deadlines for next week"

πŸ›  Available Tools

πŸ“ Task Management
Tool Description Parameters
get_task Get specific task details project_id, task_id
create_task Create new task title, project_id, content?, start_date?, due_date?, priority?
update_task Update existing task task_id, project_id, title?, content?, start_date?, due_date?, priority?
complete_task Mark task as complete project_id, task_id
delete_task Delete task project_id, task_id
πŸ“ Project Management
Tool Description Parameters
get_projects List all projects None
get_project Get specific project project_id
get_project_tasks Get all tasks in project project_id
create_project Create new project name, color?, view_mode?
delete_project Delete project project_id
⚑ Batch Operations
Tool Description Parameters
create_multiple_tasks Create multiple tasks efficiently tasks (array of task objects)
update_task_batch Update multiple tasks at once updates (array of update objects)
πŸ” Search & Analytics
Tool Description Parameters
search_tasks Search tasks by content/title query, project_id?, include_completed?
get_overdue_tasks Get all overdue tasks project_id?
get_today_tasks Get tasks due today project_id?
get_upcoming_tasks Get tasks due in next N days days?, project_id?
get_project_stats Get detailed project statistics project_id

βš™οΈ Configuration

Timezone Settings

Set your timezone in .env file:

TICKTICK_USER_TIMEZONE=America/New_York  # Eastern Time
TICKTICK_USER_TIMEZONE=Europe/London     # GMT
TICKTICK_USER_TIMEZONE=Asia/Tokyo        # JST

Auto-detection: If not set, the system will attempt to detect your timezone automatically.

Dida365 Support

For users of Dida365 (Chinese version of TickTick):

  1. Register at Dida365 Developer Center
  2. Add to your .env file:
    TICKTICK_BASE_URL=https://api.dida365.com/open/v1
    TICKTICK_AUTH_URL=https://dida365.com/oauth/authorize
    TICKTICK_TOKEN_URL=https://dida365.com/oauth/token

πŸ”§ Troubleshooting

Common Issues

"Server disconnected" in Claude Desktop

Solutions:

  1. Check uv path: where uv (Windows) or which uv (macOS/Linux)
  2. Verify config file uses correct absolute paths
  3. Use forward slashes / in JSON paths
  4. Completely restart Claude Desktop
  5. Check logs: Click "Open Logs Folder" in Claude Desktop
"Access token expired"

Solution:

cd ticktick-mcp
source .venv/bin/activate  # or .venv\Scripts\activate on Windows
uv run -m ticktick_mcp.cli auth
"ZoneInfoNotFoundError"

Solution:

uv pip install tzdata
"No virtual environment found"

Solution:

cd ticktick-mcp
uv venv
.venv\Scripts\activate  # Windows
# or
source .venv/bin/activate  # macOS/Linux
uv pip install -e .

πŸ—οΈ Project Structure

ticktick-mcp/
β”œβ”€β”€ .env.template           # Environment variables template
β”œβ”€β”€ README.md              # This file
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ setup.py              # Package setup
β”œβ”€β”€ test_server.py         # Connection test script
└── ticktick_mcp/          # Main package
    β”œβ”€β”€ __init__.py
    β”œβ”€β”€ authenticate.py    # OAuth authentication utility
    β”œβ”€β”€ cli.py            # Command-line interface
    └── src/              # Source code
        β”œβ”€β”€ __init__.py
        β”œβ”€β”€ auth.py       # OAuth implementation
        β”œβ”€β”€ server.py     # MCP server implementation
        └── ticktick_client.py  # TickTick API client

πŸ“Š What's New in v2.0

  • 🌍 Enhanced Timezone Support - Smart detection + manual override
  • ⚑ Batch Operations - Process multiple tasks simultaneously
  • πŸ” Advanced Search - Find tasks across projects with filters
  • πŸ“Š Analytics Dashboard - Project statistics and productivity insights
  • πŸ“… Smart Scheduling - Today's tasks, upcoming deadlines, overdue tracking
  • πŸ”„ Improved Error Handling - Better user feedback and recovery
  • πŸš€ Performance Optimizations - Faster task processing and API calls

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


About

MCP server that interacts with TickTick via the TickTick Open API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%