Sponsored by Deepsite.site

Ticktick-MCP-Enhanced

Created By
Code-MonkeyZhang2 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.
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.
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.
Serper MCP ServerA Serper MCP Server
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
WindsurfThe new purpose-built IDE to harness magic
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
ChatWiseThe second fastest AI chatbot™
Tavily 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"
Amap Maps高德地图官方 MCP Server
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
DeepChatYour AI Partner on Desktop
CursorThe AI Code Editor
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
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.
Playwright McpPlaywright MCP server