Dida365 (TickTick) MCP Server
# Dida365 (TickTick) MCP Server
This is a Model Context Protocol (MCP) server that provides tools for interacting with the Dida365 (TickTick) API. It allows AI assistants to manage tasks and projects in Dida365 after user authorization.
## Features
- User authentication with Dida365
- Get all projects (lists)
- Get tasks from collection box
- Create new tasks with various parameters
- Update existing tasks in collection box
- Delete tasks in collection box
- Create new projects
## Prerequisites
- Node.js (v14 or higher)
- npm or yarn
- Dida365 (TickTick) account
## We recommend that you clone the repository and run it locally:
### Installation
1. Clone this repository
2. Install dependencies:
```bash
npm install
```
### Usage
#### Get your token
1. Open https://developer.dida365.com/manage and click "New App" to create your Dida365 (TickTick) app.
2. Click "Edit" app and configure the OAuth redirect URL "http://106.75.247.14:3999/oauth/callback"
3. Get your Client ID and Client Secret
4. Open "https://dida365.com/oauth/authorize?scope=tasks%3Aread%20tasks%3Awrite&client_id={client_id}&state=state&redirect_uri=http%3A%2F%2F106.75.247.14%3A3999%2Foauth%2Fcallback&response_type=code"
Don't forget to replace {client_id} with you client_id
The server will return a form
5. Fill in your client_id and client_secret, then sumit to get your token.
#### Setup for Different Clients
##### Cursor
1. Open Cursor and go to Settings > MCP
2. Click on "Add new global MCP server"
3. Add the follwing configuration to mcp.json:
```json
"dida365": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@smithery/cli@latest",
"run",
"@iamjzx/dida",
"--config",
"{\"token\":\"your token\"}"
]
}
```
4. Save the file and enable the mcp.
##### Claude Desktop
1. Open Claude Desktop and go to Settings > Developer
2. Enable Developer Mode
3. Click on "Edit Config" to open your claude_desktop_config.json
4. Add the following configuration to the "mcpServers" section:
```json
"dida365": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@smithery/cli@latest",
"run",
"@iamjzx/dida",
"--config",
"{\"token\":\"your token\"}"
]
}
```
5. Save the file and restart Claude Desktop
## Logs
You can view the service runtime logs in the `src/server.log` file.
## Unfinished
Due to the lack of api, we can't do the following:
1. Get tasks from a specific project
2. Update existing tasks in a specific project
3. Delete tasks in a specific project
4. Create new tasks in a specific projectTDQS
Scored across 5 tools
The tool names are highly generic and vague, making it impossible to distinguish their purposes. Tools like 'api-client', 'data-processor', 'file-handler', and 'my-tool' could easily overlap in functionality, and 'example_tool' adds confusion without clear differentiation. This lack of specificity will likely cause agents to misselect tools due to ambiguous boundaries.
The naming conventions are inconsistent, mixing kebab-case (e.g., 'api-client'), snake_case (e.g., 'example_tool'), and camelCase (e.g., 'MyTool' in 'my-tool'). There is no predictable pattern in verb usage or structure, leading to a chaotic and unreadable set that lacks coherence.
With 5 tools, the count is reasonable for a server, but it feels borderline due to the vague and overlapping purposes. For a TickTick integration, this number might be thin if it aims to cover core task management features, but it's not extreme enough to score lower.
Given the server's name suggests a TickTick (Dida365) integration, the tool set is severely incomplete. There are no tools for core task management operations like creating, listing, updating, or deleting tasks, notes, or reminders. The generic tool names provide no coverage for the domain, leaving obvious gaps that will cause agent failures.