MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

Security-hardened MCP server for TickTick task management - Fork of jacepark12/ticktick-mcp with 9 security vulnerabilities fixed

Created 1/31/2026
Updated 2 days ago
Repository documentation and setup instructions

TickTick MCP Server

A security-hardened Model Context Protocol (MCP) server for TickTick that enables managing your tasks directly through any MCP-compatible client.

PyPI version

Works With Any MCP Client

This server works with any MCP-compatible client:

  • Claude Desktop
  • Cursor
  • Cline
  • Continue
  • Any MCP-compatible IDE or tool

Quick Start

1. Get TickTick API Credentials

  1. Go to TickTick Developer Center
  2. Create a new app with redirect URI: http://localhost:8080/callback
  3. Copy your Client ID and Client Secret

2. Authenticate (One-Time Setup)

Run this command and enter your credentials when prompted:

uvx ticktick-mcp-server auth

This opens your browser to authorize with TickTick. Your tokens are securely saved to ~/.config/ticktick-mcp/credentials.json.

3. Configure Your MCP Client

Add to your MCP client config:

{
  "mcpServers": {
    "ticktick": {
      "command": "uvx",
      "args": ["ticktick-mcp-server", "run"],
      "env": {
        "TICKTICK_CLIENT_ID": "your-client-id-here",
        "TICKTICK_CLIENT_SECRET": "your-client-secret-here"
      }
    }
  }
}
Config file locations

| Client | macOS | Windows | |--------|-------|---------| | Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json | %APPDATA%\Claude\claude_desktop_config.json | | Cursor | ~/.cursor/mcp.json | %USERPROFILE%\.cursor\mcp.json |

4. Restart Your Client

That's it! Now you can:

  • "Show me all my TickTick projects"
  • "What tasks are due today?"
  • "Create a task to buy groceries in my Shopping list"

Alternative Installation

Using pip

pip install ticktick-mcp-server
ticktick-mcp-server auth

Dida365 (滴答清单) Support

For the China version of TickTick, add these environment variables to your MCP config:

{
  "mcpServers": {
    "ticktick": {
      "command": "uvx",
      "args": ["ticktick-mcp-server", "run"],
      "env": {
        "TICKTICK_CLIENT_ID": "your-client-id",
        "TICKTICK_CLIENT_SECRET": "your-client-secret",
        "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"
      }
    }
  }
}

Register your app at Dida365 Developer Center.


Available Tools

Projects

| Tool | Description | |------|-------------| | get_projects | List all projects | | get_project | Get project details | | create_project | Create a new project | | delete_project | Delete a project |

Tasks

| Tool | Description | |------|-------------| | get_task | Get task details | | create_task | Create a new task | | update_task | Update a task | | complete_task | Mark task complete | | delete_task | Delete a task | | get_all_tasks | Get all tasks | | search_tasks | Search tasks |

Date Filters

| Tool | Description | |------|-------------| | get_tasks_due_today | Tasks due today | | get_tasks_due_tomorrow | Tasks due tomorrow | | get_tasks_due_this_week | Tasks due this week | | get_overdue_tasks | Overdue tasks |

GTD Workflow

| Tool | Description | |------|-------------| | get_engaged_tasks | High priority + overdue | | get_next_tasks | Medium priority + due tomorrow | | batch_create_tasks | Create multiple tasks |


Example Prompts

"Show me all my TickTick projects"
"What tasks do I have due today?"
"Create a high priority task 'Finish report' in my Work project"
"Mark 'Buy groceries' as complete"
"Show me everything that's overdue"
"Break down 'Plan vacation' into 5 subtasks"

Credential Storage

Tokens are stored securely in:

  • macOS/Linux: ~/.config/ticktick-mcp/credentials.json
  • Windows: %APPDATA%/ticktick-mcp/credentials.json

To re-authenticate, run uvx ticktick-mcp-server auth again.


Why This Fork?

This is a security-hardened fork of jacepark12/ticktick-mcp with 9 vulnerabilities fixed:

| Severity | Issue | Status | |----------|-------|--------| | Critical | CSRF in OAuth callback | Fixed | | High | Insecure credential file permissions | Fixed | | High | OAuth server binds to all interfaces | Fixed | | High | No explicit TLS verification | Fixed | | Medium | Sensitive data in error messages | Fixed | | Medium | No rate limiting on OAuth | Fixed | | Medium | Bare except catches signals | Fixed | | Medium | Path traversal in IDs | Fixed | | Medium | Race conditions in state | Fixed |


License

MIT License - see LICENSE file for details.

Credits

Fork of jacepark12/ticktick-mcp.