Dida365 MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DIDA365_REGION | No | Region: 'china' for Dida365 or 'international' for TickTick | china |
| DIDA365_CLIENT_ID | Yes | OAuth Client ID for TickTick/Dida365 | |
| DIDA365_CLIENT_SECRET | Yes | OAuth Client Secret for TickTick/Dida365 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_auth_urlA | Use ONLY when a Dida365 MCP tool (task/project operations) fails with an authorization/OAuth error (e.g. missing, expired, or invalid token), or the user explicitly asks to start/redo Dida365 authorization. Not for generic OAuth of other services. Provides a URL (≈10 min) to open in a browser; starts a local callback server to capture the authorization code. |
| check_auth_statusA | Use when the user asks about being authorized (e.g. 'am I authorized', 'auth status', 'check auth'), or when deciding whether protected Dida365 operations can proceed and current state is unclear. Avoid repeated calls if status already known in the current conversation turn. Restricted to Dida365 MCP authorization context only. |
| revoke_authA | Use ONLY when the user explicitly requests to log out, revoke, reset, clear, or remove Dida365 authorization/tokens, OR to cancel a pending authorization that cannot be completed. Do NOT call for token refresh, generic OAuth logout of other services, or routine task operations. Clears stored tokens and stops any running authorization server; user must re-authorize afterward. |
| list_projectsA | Retrieve all projects (清单/folders/lists) for the current user. WHEN TO USE:
RETURNS: Project list with id, name (名称), color (颜色), viewMode (视图模式), permissions, kind (TASK=任务清单/NOTE=笔记清单). 💡 TIP: After getting the project list, use 'list_tasks' with projectId to get tasks, or 'get_project_data' for complete project data including tasks. |
| get_projectA | Retrieve metadata for a single project (清单) by ID. WHEN TO USE:
WHEN NOT TO USE:
RETURNS: Project metadata only (id, name/名称, color/颜色, viewMode/视图模式, kind/类型, permissions). Does NOT include tasks. |
| get_project_dataA | Retrieve complete project (清单) data including project details, tasks (任务), and kanban columns (看板列). WHEN TO USE:
WHEN NOT TO USE:
⚠️ LIMITATION: Only returns UNCOMPLETED tasks (未完成任务, status=0). Completed tasks are not accessible. RETURNS: { project, tasks[], columns[] } - project metadata (清单信息), task list (任务列表), and kanban columns (看板列). |
| create_projectA | Create a new project (清单/folder/list) for organizing tasks (任务). WHEN TO USE:
REQUIRED: name (project title/清单名称) OPTIONAL:
RETURNS: Created project with generated ID. Use this ID for subsequent task operations. |
| update_projectA | Update an existing project's (清单) settings. WHEN TO USE:
PARTIAL UPDATE: Only provide fields you want to change. Unspecified fields remain unchanged. REQUIRED: projectId (清单ID) OPTIONAL (at least one required):
|
| delete_projectA | Permanently delete a project (清单) and all its contents. ⚠️ DESTRUCTIVE: This action cannot be undone. All tasks (任务) within the project will also be deleted (此操作无法撤销,清单内所有任务也将被删除). WHEN TO USE:
WHEN NOT TO USE:
REQUIRED: projectId (清单ID) |
| get_taskA | Retrieve detailed information about a specific task (任务). WHEN TO USE:
WHEN NOT TO USE:
REQUIRED: projectId (清单ID), taskId (任务ID) RESPONSE FIELDS:
NOTE: When creating/updating, use unified 'description' parameter which auto-maps to the correct field. |
| list_tasksA | List and filter tasks (任务) across one or more projects (清单). WHEN TO USE:
WHEN NOT TO USE:
QUICK FILTERS (preset 快速筛选):
OPTIONAL FILTERS:
SORTING:
⚠️ LIMITATION: Only returns UNCOMPLETED tasks (未完成任务, status=0). Completed tasks not available. EXAMPLES:
|
| create_taskA | Create one or more tasks (任务) in a project (清单). Supports batch creation. WHEN TO USE:
⚠️ IMPORTANT - INBOX VS PROJECT (收集箱与清单选择): The inbox (收集箱) is ONLY for tasks temporarily inconvenient to classify.
REQUIRED (per task):
OPTIONAL (per task):
INPUT FORMAT: { "tasks": [{ "title": "...", "projectId": "..." }, ...] } ⚠️ INBOX NOTE: When using "inbox" (收集箱), returned tasks have projectId like "inbox1023997016". Use this actual ID for update/delete/complete operations. BATCH BEHAVIOR: Non-atomic - some may succeed while others fail. Check summary.failed > 0 for failures. |
| update_taskA | Update one or more existing tasks (任务). Supports batch updates. WHEN TO USE:
REQUIRED (per task):
OPTIONAL (only provided fields are updated):
INPUT FORMAT: { "tasks": [{ "taskId": "...", "projectId": "...", ...updates }, ...] } BATCH BEHAVIOR: Non-atomic - some may succeed while others fail. Check summary.failed > 0. |
| delete_taskA | Permanently delete one or more tasks (任务). Supports batch deletion. ⚠️ DESTRUCTIVE: This action cannot be undone! (此操作无法撤销!) WHEN TO USE:
WHEN NOT TO USE:
REQUIRED (per task):
INPUT FORMAT: { "tasks": [{ "projectId": "...", "taskId": "..." }, ...] } ⚠️ IDEMPOTENT: Deleting a non-existent task returns success. Use 'get_task' first to verify existence if needed. BATCH BEHAVIOR: Non-atomic - some may succeed while others fail. Check summary.failed > 0. |
| complete_taskA | Mark one or more tasks (任务) as completed (已完成). Supports batch completion. WHEN TO USE:
WHEN NOT TO USE:
REQUIRED (per task):
INPUT FORMAT: { "tasks": [{ "projectId": "...", "taskId": "..." }, ...] } ⚠️ IDEMPOTENT: Completing an already-completed or non-existent task returns success. Use 'get_task' first to verify if needed. ⚠️ NOTE: Completed tasks (已完成任务) are no longer returned by 'list_tasks' or 'get_project_data'. BATCH BEHAVIOR: Non-atomic - some may succeed while others fail. Check summary.failed > 0. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| terminology | Bilingual terminology glossary (中英术语对照表) for Dida365/TickTick. Provides mappings between English terms (TickTick) and Simplified Chinese terms (滴答清单/Dida365). Read this resource to understand Chinese user requests and map them to the correct tool calls. 当处理中文用户请求时,阅读此资源以理解中文术语与英文参数的对应关系。 |
| icalendar-format | iCalendar (RFC 5545) format reference for Dida365/TickTick reminders and repeat rules. Provides TRIGGER format documentation for the reminders parameter and RRULE format documentation for the repeatFlag parameter. Read this resource when users request reminders (提醒) or repeat rules (重复) to correctly format the parameter values. 当用户请求设置提醒或重复规则时,阅读此资源以正确格式化参数值。 |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/evalor/Dida365MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server