Skip to main content
Glama
iamjzx

Dida365 (TickTick) MCP Server

by iamjzx

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

Related MCP server: TickTick MCP

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:

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

  1. 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:

"dida365": {
  "command": "cmd",
  "args": [
    "/c",
    "npx",
    "-y",
    "@smithery/cli@latest",
    "run",
    "@iamjzx/dida",
    "--config",
    "{\"token\":\"your token\"}"
  ]
}
  1. 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:

"dida365": {
  "command": "cmd",
  "args": [
    "/c",
    "npx",
    "-y",
    "@smithery/cli@latest",
    "run",
    "@iamjzx/dida",
    "--config",
    "{\"token\":\"your token\"}"
  ]
}
  1. 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 project

Available Tools

5 tools
api-clientD

ApiClient tool description

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. However, it adds nothing about the tool's behavior—such as whether it performs read/write operations, requires authentication, has side effects, or handles errors. This leaves critical behavioral traits completely undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While the description is brief, it is under-specified rather than appropriately concise. The single sentence 'ApiClient tool description' fails to convey meaningful information, making it inefficient rather than well-structured. Every sentence should earn its place, but this one adds negligible value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, no output schema, and a description that provides almost no information, the description is severely incomplete. It does not compensate for the missing structured data, leaving the agent without essential context for a tool with one parameter and unknown behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'message' documented as 'Message to process'. The description adds no additional meaning beyond this schema information. According to the rules, when coverage is high (>80%), the baseline score is 3 even without parameter details in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'ApiClient tool description' is a tautology that merely restates the tool name with minimal modification. It provides no specific verb or resource information, nor does it differentiate this tool from its siblings (data-processor, example_tool, file-handler, my-tool). This fails to communicate what the tool actually does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus its siblings or any alternatives. There is no mention of appropriate contexts, prerequisites, or exclusions. This leaves the agent with no information to make an informed selection among available tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

data-processorD

DataProcessor tool description

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it reveals nothing about the tool's behavior—whether it's read-only or destructive, what permissions are needed, rate limits, side effects, or output format. This leaves the agent completely in the dark about how the tool operates.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While concise with only three words, the description is under-specified rather than efficiently informative. It wastes its limited space on a tautology ('DataProcessor tool description') that adds no value, failing to front-load useful information. Conciseness should not come at the cost of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is severely incomplete. It does not explain what the tool does, when to use it, behavioral traits, or return values. For a tool with one parameter, this minimal description leaves critical gaps that hinder an AI agent's ability to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'message' documented as 'Message to process'. The description adds no additional meaning beyond this, such as examples, constraints, or processing context. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but the description fails to compensate or enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'DataProcessor tool description' is a tautology that merely restates the tool name with minimal variation. It provides no information about what specific action the tool performs (e.g., what type of processing), what resource it operates on, or how it differs from sibling tools like 'api-client' or 'file-handler'. This fails to help an AI agent understand when to select this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, exclusions, or comparisons to sibling tools. An AI agent would have no basis for choosing 'data-processor' over 'api-client' or 'file-handler' based on this description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

example_toolC

An example tool that processes messages

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Processes messages' implies some operation but doesn't specify whether it's read-only, destructive, requires authentication, has rate limits, or what the output looks like. This leaves critical behavioral traits undefined, making it hard for an agent to predict tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's appropriately sized for a simple tool and front-loaded with the core purpose. However, it could be more structured by including key details, but it earns high marks for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'processes' entails, the tool's behavior, or expected outcomes. For a tool with one parameter and no structured context, the description should provide more operational details to guide effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-specific information beyond what the input schema provides. With 100% schema description coverage (the 'message' parameter is documented in the schema), the baseline score is 3. The description doesn't compensate with additional context about parameter usage, constraints, or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'processes messages', which provides a basic verb+resource combination. However, it's vague about what 'processes' means (e.g., filtering, transforming, analyzing) and doesn't distinguish it from sibling tools like 'data-processor' or 'api-client'. The purpose is clear enough to understand the general domain but lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention any context, prerequisites, or exclusions, and it doesn't reference sibling tools. Without this information, an AI agent must guess based on the tool name alone, which is insufficient for effective tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file-handlerD

FileHandler tool description

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what permissions might be required, whether it's destructive, what side effects it might have, or how it handles errors. The description is completely inadequate for understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While technically concise with just three words, this description represents under-specification rather than effective brevity. The single phrase 'FileHandler tool description' fails to communicate essential information and wastes the opportunity to provide meaningful guidance. True conciseness requires delivering maximum information in minimal words, which this description does not achieve.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are no annotations and no output schema, the description should compensate by providing comprehensive information about the tool's purpose, behavior, and usage. Instead, it offers only a tautological restatement of the name. This is completely inadequate for a tool with one parameter and no structured behavioral metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'message' documented as 'Message to process'. The description adds no additional parameter information beyond what the schema already provides. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'FileHandler tool description' is a tautology that merely restates the tool name with minimal elaboration. It provides no specific verb or resource information, and fails to distinguish this tool from its siblings (api-client, data-processor, example_tool, my-tool). This offers no meaningful guidance about what the tool actually does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides absolutely no guidance about when to use this tool versus alternatives. There's no mention of appropriate contexts, prerequisites, or comparisons to sibling tools. The agent receives zero information about when this tool should be selected over other available options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

my-toolD

MyTool tool description

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure but offers none. It doesn't indicate whether this is a read or write operation, what permissions are needed, or any side effects like rate limits or data modification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While concise with only three words, the description is under-specified rather than efficiently informative. It fails to convey meaningful content, making it ineffective despite its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations, no output schema, and a vague description, this is completely inadequate. The description doesn't explain what the tool does, how to use it, or what to expect, leaving critical gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'message' clearly documented in the schema. The description adds no additional parameter information beyond what the schema provides, meeting the baseline of 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'MyTool tool description' is a tautology that merely restates the tool name without specifying what it actually does. It lacks any verb or resource indication, and provides no differentiation from sibling tools like api-client or data-processor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or comparisons to sibling tools, leaving the agent with no usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

D1.7/5.0
Disambiguation2/5

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.

Naming Consistency2/5

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.

Tool Count3/5

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.

Completeness1/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/iamjzx/dida'

If you have feedback or need assistance with the MCP directory API, please join our Discord server