@shidhin/ticktick-mcpserver v0.2.0
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 projectsticktick_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
3 months ago