CLI and MCP Server for TickTick task management. Integrates with Claude Code, Gemini CLI, and other MCP-compatible clients.
# Install
pipx install git+https://github.com/USER/ticktick-access.git
# Setup credentials (one-time)
ticktick client set # Enter client ID/secret from developer.ticktick.com
ticktick auth # OAuth flow to get access token
# Configure MCP for Claude Code
claude mcp add --scope user ticktick -- ticktick-mcp --stdio
# Configure MCP for Gemini CLI
gemini mcp add ticktick ticktick-mcp --stdio --scope user- CLI Tool (
ticktick) - Manage authentication and credentials - MCP Server (
ticktick-mcp) - Task management for LLM clients - Central Config - Credentials stored in
~/.ticktick-access/ - No Docker Required - Native Python installation via pipx
- Python 3.10+
- pipx - For isolated installation (install pipx)
- TickTick Developer Account - Register at developer.ticktick.com
pipx install git+https://github.com/USER/ticktick-access.gitThis installs both the ticktick CLI and ticktick-mcp server commands.
pipx upgrade ticktick-accesspipx uninstall ticktick-access- Go to developer.ticktick.com and sign in
- Click Manage Apps and create a new application
- Note your Client ID and Client Secret
- Set the OAuth redirect URL to:
http://localhost:8080
ticktick client setEnter your Client ID and Client Secret when prompted. Credentials are saved to ~/.ticktick-access/config.yaml.
ticktick authThis opens your browser for OAuth authorization. After granting permission, the access token is saved to ~/.ticktick-access/token.
ticktick statusclaude mcp add --scope user ticktick -- ticktick-mcp --stdioFor detailed configuration options, see docs/CLAUDE-CODE.md.
gemini mcp add ticktick --command ticktick-mcp --args "--stdio" --scope userFor detailed configuration options, see docs/GEMINI-CLI.md.
| Command | Description |
|---|---|
ticktick auth |
Run OAuth flow to get/refresh access token |
ticktick client set |
Set client credentials interactively |
ticktick client show |
Show current client config (redacted) |
ticktick status |
Show authentication status |
ticktick --version |
Show version |
ticktick --help |
Show help |
The MCP server exposes these tools for LLM clients:
| Tool | Description |
|---|---|
list_projects |
List all TickTick projects |
list_tasks |
List tasks in a specific project |
create_task |
Create a new task |
update_task |
Update an existing task |
complete_task |
Mark a task as complete |
| Resource | Description |
|---|---|
ticktick://projects |
All projects as JSON |
ticktick://tasks/{list_id} |
Tasks in a specific project |
TickTick access tokens expire after approximately 24 hours. When your token expires:
ticktick authNo reconfiguration of MCP clients is needed - they automatically read from ~/.ticktick-access/token.
~/.ticktick-access/
├── config.yaml # Client credentials (client_id, client_secret)
└── token # Access token
Both files have restricted permissions (600) for security.
Docker is available as an alternative deployment method. See the Docker section below.
docker build -t ticktick-mcp-server:latest .# HTTP transport (manual container management)
docker run -d --name ticktick-mcp-server -p 8000:8000 \
-v ~/.ticktick-access:/root/.ticktick-access:ro \
ticktick-mcp-server:latest
# Stdio transport (for MCP clients)
docker run -i --rm \
-v ~/.ticktick-access:/root/.ticktick-access:ro \
ticktick-mcp-server:latest python server-stdio.pyRun ticktick auth to authenticate.
Run ticktick client set to configure your client ID and secret.
Run ticktick auth to refresh your token.
Ensure pipx's bin directory is in your PATH:
pipx ensurepath
# Then restart your shell- CLAUDE-CODE.md - Claude Code CLI configuration
- GEMINI-CLI.md - Gemini CLI configuration
- CONTRIBUTING.md - Development setup, version management, architecture
- TOOLS.md - Detailed tool and resource reference
See docs/CONTRIBUTING.md for development setup, version management, and the architecture roadmap.
MIT