ticktick-mcpserver
If you are the rightful owner of ticktick-mcpserver and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server implementation for TickTick, enabling AI assistants to interact with TickTick through its Open API.
TickTick MCP Server
A Model Context Protocol (MCP) server implementation for TickTick, the popular task management application. This server allows AI assistants to interact with TickTick through the TickTick Open API.
๐ Features
- Get tasks from projects
- Create new tasks with details like due dates, priorities, and descriptions
- Update existing tasks
- Mark tasks as complete
- Delete tasks
- Get list of projects
- Create new projects with custom properties
๐ Quick Start
Prerequisites
- Node.js (v18 or higher)
- TickTick Developer account
- TickTick API Access Token
Installation
-
Clone this repository:
git clone https://github.com/shidhincr/ticktick-mcpserver.git cd ticktick-mcpserver
-
Install dependencies:
npm install
-
Build the project:
npm run build
-
Set the environment variable with your access token:
export TICKTICK_ACCESS_TOKEN=your_access_token_here
-
Start the server:
npm start
๐ Authentication Setup
1. Register a TickTick Developer Account
- Visit TickTick Developer Center
- Create an account and register your application
- Get the client ID and client secret
2. Get Access Token
Follow the OAuth2 flow to obtain an access token:
-
Redirect users to TickTick authorization page:
https://ticktick.com/oauth/authorize?scope=tasks:read tasks:write&client_id=YOUR_CLIENT_ID&state=STATE&redirect_uri=YOUR_REDIRECT_URI&response_type=code
-
Exchange the received code for an access token: Make a POST request to
https://ticktick.com/oauth/token
with:- Header: Basic authentication with your client_id and client_secret
- Body (application/x-www-form-urlencoded):
- code: the received authorization code
- grant_type: authorization_code
- scope: tasks:read tasks:write
- redirect_uri: your redirect URI
-
Store the received access token securely.
๐ ๏ธ Available Tools
The server implements the following tools for AI interaction:
Task Management
-
ticktick_get_tasks
- Get tasks from a specific project or all projects{ project_id?: string; // Optional project ID limit?: number; // Optional result limit (default: 10) }
-
ticktick_create_task
- Create a new task{ title: string; // Required: Task title content?: string; // Optional: Task content desc?: string; // Optional: Task description project_id: string; // Required: Project ID due_date?: string; // Optional: Due date (ISO format) priority?: number; // Optional: Priority (0, 1, 3, 5) is_all_day?: boolean; // Optional: All-day task flag }
-
ticktick_update_task
- Update an existing task{ project_id: string; // Required: Project ID task_id: string; // Required: Task ID title?: string; // Optional: New title // ... other task properties }
-
ticktick_complete_task
- Mark a task as complete{ project_id: string; // Required: Project ID task_id: string; // Required: Task ID }
-
ticktick_delete_task
- Delete a task{ project_id: string; // Required: Project ID task_id: string; // Required: Task ID }
Project Management
-
ticktick_get_projects
- Get a list of all projects -
ticktick_create_project
- Create a new project{ name: string; // Required: Project name color?: string; // Optional: Color code (e.g. "#F18181") view_mode?: string; // Optional: View mode ("list", "kanban", "timeline") kind?: string; // Optional: Project kind ("TASK", "NOTE") }
๐ Project Structure
ticktick-mcpserver/
โโโ dist/ # Compiled TypeScript (generated after building)
โโโ src/
โ โโโ index.ts # Main server implementation
โโโ package.json # Project dependencies and scripts
โโโ tsconfig.json # TypeScript configuration
โโโ README.md # Documentation
๐ค Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
๐ API Reference
This project uses the TickTick Open API. For detailed information about API endpoints and parameters, please refer to the official documentation.
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgements
- TickTick for providing the API
- Model Context Protocol (MCP) for the protocol specification