Skip to main content

Security-hardened MCP server for TickTick task management

Project description

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"],
      "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"],
      "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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ticktick_mcp_server-0.3.1.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ticktick_mcp_server-0.3.1-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file ticktick_mcp_server-0.3.1.tar.gz.

File metadata

  • Download URL: ticktick_mcp_server-0.3.1.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.12

File hashes

Hashes for ticktick_mcp_server-0.3.1.tar.gz
Algorithm Hash digest
SHA256 c8618afb4178e50254948fa0d27a8b1a4d1ee2006a5e1b3f7c6d45945ca5e27e
MD5 6a61a6b5bb4ec5bcf8e21a4d581dc54f
BLAKE2b-256 37b14173f26a1d17a10af688a6897c96030ce903976f792af9a3c39ed0ea7973

See more details on using hashes here.

File details

Details for the file ticktick_mcp_server-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ticktick_mcp_server-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 da7a0769482fe2b6adbebbc2acee4d2a7910f91ec96fe4d5ac152bc34187ed0a
MD5 5785f2b6025672d4358192c7664e699d
BLAKE2b-256 0176f2b95913bd284f06b585258e6cb72a2ab0f71ba64d221787f7b7795ae6dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page