Sponsored by Deepsite.site

Ticktick-MCP-Enhanced

Created By
Code-MonkeyZhang4 months ago
A Model Context Protocol (MCP) server that allows you to manage your daily routine TickTick tasks with LLMs!
Content

TickTick MCP Server


A Model Context Protocol (MCP) server that allows you manage your daily routine TickTick task with LLMs!

✨ Key Enhancements

This enhanced version builds upon the original ticktick-mcp with significant improvements:

  • 🚀 Complete API Coverage - Full support for TickTick's latest Open API with all available task parameters (reminders, repeat rules, subtasks, etc.)
  • 📥 Access Inbox - ticktick-mcp can now access to tasks in inbox with special project ID "inbox"
  • 🌍 Timezone Fix - Correctly handles task due dates across different timezones
  • 📦 Batch Operations - All task and project operations (create, update, delete, complete) support both single and batch processing
  • 🎯 Simplified Tool Set
  • 🏗️ Modular Architecture

Features

  • 📋 View & Search all your TickTick projects and tasks
  • ✏️ Create new projects, tasks, and subtasks through natural language
  • 🔄 Update existing task details (title, content, dates, priority)
  • 🗑️ Delete tasks and projects (single or batch)
  • 🔌 Seamless integration with Claude Desktop and other LLM applications

Prerequisites

  • Python 3.10 or higher
  • uv - Fast Python package installer and resolver
  • TickTick account with API access
  • TickTick API credentials (Client ID, Client Secret)

Authentication

You need to have a TickTick account to use this MCP.

Register your application at the TickTick Developer Center. If you are using Chinese version, at Dida Developer Center.

  • Click "New App"
  • Set the redirect URI to http://localhost:8000/callback
  • Note your Client ID and Client Secret

Installation

  1. Clone this repository:

    git clone https://github.com/Code-MonkeyZhang/ticktick-mcp-enhanced
    cd ticktick-mcp
    
  2. Install with uv:

    # Install uv if you don't have it already
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Create a virtual environment
    uv venv
    
    # Activate the virtual environment
    # On macOS/Linux:
    source .venv/bin/activate
    # On Windows:
    .venv\Scripts\activate
    
    # Install the package
    uv pip install -e .
    
  3. Authenticate with TickTick:

    # Run the authentication flow
    uv run -m ticktick_mcp.cli auth
    

    This will:

    • Ask for your TickTick Client ID and Client Secret
    • Open a browser window for you to log in to TickTick
    • Automatically save your access tokens to a .env file
  4. Test your configuration:

    uv run test_server.py
    

Use MCP in Claude Desktop and other LLM applicaitons

  1. Install Claude for Desktop

  2. Edit your Claude configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. Add the TickTick MCP server configuration:

    {
      "mcpServers": {
        "ticktick": {
          "command": "<absolute path to uv>",
          "args": [
            "run",
            "--directory",
            "<absolute path to ticktick-mcp directory>",
            "-m",
            "ticktick_mcp.cli",
            "run"
          ]
        }
      }
    }
    
  4. Restart Claude for Desktop

Available Tools

All 10 MCP tools in one place:

CategoryToolDescriptionKey Parameters
Projectsget_all_projectsList all TickTick projectsNone
get_project_infoGet project details with all tasksproject_id (use "inbox" for inbox)
create_projectCreate a new projectname, color, view_mode
delete_projectsDelete one or more projectsprojects (ID or list of IDs)
Taskscreate_tasksCreate one or more taskstasks (dict or list of dicts)``Required: title, project_idOptional: priority, due_date, content, etc.
update_tasksUpdate one or more taskstasks (dict or list of dicts)``Required: task_id, project_idOptional: title, priority, due_date, etc.
complete_tasksMark tasks as completetasks (dict or list of dicts)``Required: project_id, task_id
delete_tasksDelete one or more taskstasks (dict or list of dicts)``Required: project_id, task_id
create_subtasksCreate one or more subtaskssubtasks (dict or list of dicts)``Required: subtask_title, parent_task_id, project_id
Queryquery_tasksUnified query with multi-dimensional filterstask_id, project_id, priority ("high", "medium", "low", "none"), date_filter ("today", "tomorrow", "overdue", "next_7_days"), custom_days, search_term

Example Usage

Query Examples:

# All tasks
query_tasks()

# Inbox tasks
query_tasks(project_id="inbox")

# High priority tasks due today
query_tasks(priority="high", date_filter="today")

# Search for meetings
query_tasks(search_term="meeting")

# Specific task lookup
query_tasks(task_id="abc123", project_id="xyz789")

Batch Operations:

# Create multiple tasks
create_tasks([
    {"title": "Task 1", "project_id": "inbox", "priority": "high"},
    {"title": "Task 2", "project_id": "work", "priority": "medium"}
])

# Update multiple tasks
update_tasks([
    {"task_id": "abc", "project_id": "123", "priority": "high"},
    {"task_id": "def", "project_id": "123", "title": "Updated"}
])

# Complete multiple tasks
complete_tasks([
    {"project_id": "inbox", "task_id": "abc"},
    {"project_id": "work", "task_id": "def"}
])

Example Prompts

General:

  • "Show me all my TickTick projects"
  • "What's in my inbox?"
  • "Create a task 'Buy groceries' with high priority"
  • "Show me all high priority tasks due today"
  • "Create these three tasks: 'Buy groceries', 'Call mom', and 'Finish report'"
  • "Mark all overdue tasks as complete"
  • "Delete all completed tasks from archive"
  • "Show me high priority tasks in my Work project"
  • "Find all tasks with 'meeting' due this week"
  • "What tasks are overdue in my inbox?"

Project Structure

ticktick-mcp/
├── ticktick_mcp/
│   ├── src/
│   │   ├── server.py          # MCP server core (45 lines)
│   │   ├── config.py          # Configuration management
│   │   ├── ticktick_client.py # TickTick API client
│   │   ├── auth.py            # OAuth implementation
│   │   ├── tools/             # MCP tools (modular)
│   │   │   ├── project_tools.py
│   │   │   ├── task_tools.py
│   │   │   └── query_tools.py
│   │   └── utils/             # Utilities
│   │       ├── timezone.py
│   │       ├── formatters.py
│   │       └── validators.py
│   ├── cli.py                 # CLI interface
│   └── authenticate.py        # Auth utility
├── test/                      # Comprehensive tests
├── doc/
│   └── CUROR_MEMORY.md        # Development history
├── README.md
├── requirements.txt
└── setup.py

Contributing

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

License

This project is licensed under the MIT License.

Attribution

This project is inspired by and contains code derived from:

Server Config

{
  "mcpServers": {
    "ticktick": {
      "command": "<absolute path to uv>",
      "args": [
        "run",
        "--directory",
        "<absolute path to ticktick-mcp directory>",
        "-m",
        "ticktick_mcp.cli",
        "run"
      ]
    }
  }
}
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
WindsurfThe new purpose-built IDE to harness magic
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Tavily Mcp
DeepChatYour AI Partner on Desktop
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
Playwright McpPlaywright MCP server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
CursorThe AI Code Editor
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Serper MCP ServerA Serper MCP Server
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
ChatWiseThe second fastest AI chatbot™
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Amap Maps高德地图官方 MCP Server