---
slug: "ticktick-mcp"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/ekkyarmandi/ticktick-mcp@master/README.md"
repo: "https://github.com/ekkyarmandi/ticktick-mcp"
source_file: "README.md"
branch: "master"
---
# TickTick MCP

A Model Context Protocol (MCP) server that provides tools for integrating TickTick task management tools. Using Python and the MCP SDK.

## Overview

This repository contains a Model Context Protocol (MCP) server implementation for TickTick. It provides a standardized way for AI assistants and applications to interact with TickTick's task management functionality, allowing operations like:

- Retrieving projects and tasks
- Creating new projects and tasks
- Updating task details
- Completing and deleting tasks

With this MCP, AI systems can act as task masters to help manage your to-do lists and tasks in TickTick with natural language.

## Requirements

- Python 3.8+
- TickTick account
- TickTick API key (via OAuth) # COMMENT: I will add a tool to generate an API key from the TickTick developer portal

## Installation

1. Clone this repository

   ```bash
   git clone https://github.com/ekkyarmandi/ticktick-mcp.git
   cd ticktick-mcp
   ```

2. Install dependencies

   ```bash
   pip install -r requirements.txt
   ```

## Obtaining a TickTick API Key

This MCP uses TickTick's OpenAPI scheme, which requires registering an app through TickTick's developer portal:

1. Go to the [TickTick Developer Documentation](https://developer.ticktick.com/docs)
2. Click on `Manage Apps` in the top right corner and login with your TickTick credentials
3. Register a new app by clicking the `+App Name` button
4. Enter a name for your app (only required field)
5. Once created, you'll be able to see your `Client ID` and `Client Secret`
6. For the `OAuth Redirect URL`, enter a URL where you'll be redirected after authorization (e.g., `http://127.0.0.1:8080`)

### Authorizing Your App

After registering your app, use the [ticktick-py](https://github.com/lazeroffmichael/ticktick-py) library to get your access token:

```python
from ticktick.oauth2 import OAuth2

# Replace with your details from the developer portal
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
redirect_uri = "YOUR_REDIRECT_URI"  # e.g., http://127.0.0.1:8080

auth_client = OAuth2(client_id=client_id,
                    client_secret=client_secret,
                    redirect_uri=redirect_uri)

# This will open a web browser for authorization
# Follow the instructions in the terminal to authorize
auth_client.get_access_token()
```

After authorizing, the access token will be saved to a `.token-oauth` file by default. You can extract the token from this file or use:

```python
print(auth_client.token_info["access_token"])
```

## Configuration

1. Create a `.env` file in the root directory with your TickTick API key:
   ```
   TICKTICK_API_KEY=your_access_token_here
   ```

## Usage

Run the MCP server:

```bash
python main.py
```

This will start the MCP server on port 8000. You can now connect to it using any MCP client.

### Available Tools

The server provides the following tools:

- `get_projects`: Get a list of all projects
- `project_details`: Get details of a specific project
- `get_task_details`: Get details of a specific task
- `create_project`: Create a new project
- `create_task`: Create a new task in a project
- `update_task`: Update an existing task
- `complete_task`: Mark a task as complete
- `delete_task`: Delete a task

### Example Interactions

Once your MCP server is running, AI systems can help manage your tasks with natural language commands like:

- "Show me all my projects"
- "Create a new project called 'Home Renovation'"
- "Add a task to buy groceries tomorrow"
- "Mark my 'Pay bills' task as complete"
- "What tasks do I have due this week?"
- "Delete the task about the canceled meeting"

## Using with MCP Clients

This server can be used with any MCP-compatible client, such as:

- Claude Desktop
- Cursor IDE
- Custom AI applications using MCP SDKs

## Development

To extend or modify this MCP server:

1. Add new tools in `tools.py`
2. Register them in `main.py` using `mcp.add_tool()`

## License

MIT

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
