Dida365 MCP Server
Allows managing projects and tasks on TickTick (Dida365), including creating, updating, deleting, and searching tasks, as well as managing project lists and filtering by priority or due date.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dida365 MCP Server帮我看看今天有哪些高优先级的任务"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dida-mcp 🦞✅
滴答清单 (Dida365) MCP Server — 让 AI 助手控制你的滴答清单。
🎯 首个支持中国版滴答清单 (dida365.com) 的 MCP Server,13 个 AI 工具覆盖任务、项目、标签管理。
适用于 OpenClaw (龙虾)、Claude Desktop、CodeBuddy 以及任何支持 MCP 协议的 AI 客户端。
✨ 功能
类别 | 工具 | 说明 |
📁 项目管理 |
| 列出所有项目(清单) |
| 查看项目详情及其任务 | |
| 创建新项目 | |
| 删除项目 | |
✅ 任务管理 |
| 获取所有未完成任务 |
| 创建新任务 | |
| 更新任务信息 | |
| 标记任务完成 | |
| 删除任务 | |
🔍 高级查询 |
| 今天到期的任务 |
| 所有逾期任务 | |
| 按优先级筛选 | |
| 关键词搜索 |
Related MCP server: Dida365 MCP Server
🚀 快速开始
1. 创建滴答清单应用
创建一个新应用
记下 Client ID 和 Client Secret
设置 OAuth Redirect URL 为
http://localhost:18090/callback
2. 安装
git clone https://github.com/Martinqi826/dida-mcp.git
cd dida-mcp
pip install -e .3. 配置
cp .env.example .env编辑 .env,填入你自己的凭据:
DIDA_CLIENT_ID=你的_Client_ID
DIDA_CLIENT_SECRET=你的_Client_Secret
DIDA_REDIRECT_URI=http://localhost:18090/callback4. 授权
dida-mcp auth浏览器会自动打开,登录你的滴答清单账号并授权。成功后 Token 会保存到 ~/.dida-mcp/token.json。
5. 验证
dida-mcp test看到 ✅ API 连接成功! 就说明一切就绪。
🦞 配置到 OpenClaw(龙虾)
OpenClaw 目前不原生支持 MCP Server 注入,需要通过 mcporter 桥接。
第一步:安装 mcporter
npm install -g mcporter第二步:注册 dida-mcp 到 mcporter
mcporter add dida-mcp \
--command "dida-mcp" \
--args "run" \
--env DIDA_CLIENT_ID=你的_Client_ID \
--env DIDA_CLIENT_SECRET=你的_Client_Secret \
--env DIDA_REDIRECT_URI=http://localhost:18090/callback或者手动编辑 ~/.mcporter/mcporter.json:
{
"mcpServers": {
"dida-mcp": {
"command": "dida-mcp",
"args": ["run"],
"description": "滴答清单 MCP Server",
"env": {
"DIDA_CLIENT_ID": "你的_Client_ID",
"DIDA_CLIENT_SECRET": "你的_Client_Secret",
"DIDA_REDIRECT_URI": "http://localhost:18090/callback"
}
}
}
}第三步:启用 mcporter skill
确认 ~/.openclaw/openclaw.json 中有:
{
"skills": {
"entries": {
"mcporter": {
"enabled": true
}
}
}
}第四步:添加工具说明到 TOOLS.md
将 openclaw/TOOLS.md 的内容追加到 ~/.openclaw/workspace/TOOLS.md 中。
这一步很关键——OpenClaw AI 会在启动时读取 TOOLS.md,从而知道可以通过 mcporter call dida-mcp.* 来操作你的滴答清单。
第五步:重启 Gateway 并验证
openclaw gateway restart在 OpenClaw 中开一个新对话,输入:
帮我看看我的滴答清单有哪些项目AI 就会调用 mcporter call dida-mcp.get_projects 并返回结果。
🤖 配置到 Claude Desktop / CodeBuddy
在 MCP 配置文件中添加:
{
"mcpServers": {
"dida-mcp": {
"command": "dida-mcp",
"args": ["run"],
"env": {
"DIDA_CLIENT_ID": "你的_Client_ID",
"DIDA_CLIENT_SECRET": "你的_Client_Secret"
}
}
}
}💬 使用示例
配置完成后,你可以对 AI 说:
🗂️ "帮我看看我的滴答清单有哪些项目"
✅ "创建一个新任务:明天下午3点和客户开会,优先级高"
✔️ "把'写周报'标记为完成"
🔍 "搜索包含'会议'的任务"
📁 "创建一个叫'工作'的新项目"
⚠️ "我有哪些逾期任务?"
🔺 "列出所有高优先级任务"
📅 "今天有什么到期的?"
📖 CLI 命令
命令 | 说明 |
| OAuth 授权(首次使用必须执行) |
| 测试 API 连接 |
| 启动 MCP Server(stdio 模式) |
| 查看认证状态 |
| 清除本地 token |
🔧 项目结构
dida-mcp/
├── pyproject.toml # 项目配置
├── LICENSE # MIT 许可证
├── README.md # 本文档
├── .env.example # 环境变量示例
├── .gitignore # Git 忽略规则
├── openclaw/
│ └── TOOLS.md # OpenClaw TOOLS.md 参考内容
└── src/
└── dida_mcp/
├── __init__.py # 包初始化
├── auth.py # OAuth 2.0 认证模块
├── client.py # 滴答清单 API 客户端
├── server.py # MCP Server 实现 (JSON-RPC over stdio)
└── cli.py # 命令行工具⚠️ 注意事项
本项目使用滴答清单中国版(dida365.com)的 Open API
国际版 TickTick 用户需自行修改 API 地址(
ticktick.com)Access Token 存储在
~/.dida-mcp/token.json,请妥善保管请勿将
.env文件提交到 git,你的 Client Secret 是私密的删除项目或任务的操作不可恢复
优先级数值:
0=无、1=低、3=中、5=高日期格式为 ISO 8601,如
2026-03-15T09:00:00+0800
🤝 Contributing
欢迎提交 Issue 和 PR!
Fork 本仓库
创建特性分支 (
git checkout -b feature/awesome)提交更改 (
git commit -m 'Add awesome feature')推送到分支 (
git push origin feature/awesome)创建 Pull Request
📄 License
Available Tools
13 toolscomplete_taskB
将指定任务标记为已完成。需要提供 task_id 和 project_id。
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | 任务ID | |
| project_id | Yes | 项目ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the action without disclosing side effects (e.g., idempotency, triggers, reversibility) or any other behavioral traits beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Every sentence adds value: the first states the action, the second lists required parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 required params and no output schema, the description covers the basics. However, it fails to mention what the tool returns or any side effects, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it merely restates the need for task_id and project_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('mark task as completed') and required parameters. However, it does not explicitly distinguish this tool from sibling 'update_task', which could also change status, so it loses the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only mentions the required parameters but provides no guidance on when to use this tool versus alternatives like 'update_task' or 'delete_task'. There is no 'when-not' or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectC
创建新的项目(清单)。
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 项目名称 | |
| color | No | 项目颜色(可选,如 '#FF6347') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It merely states 'create new project' without detailing side effects, permissions, or constraints such as whether creation is immediate or requires confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence conveying the core purpose with no wasted words. It is front-loaded but could add more value without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description is incomplete. It lacks guidance on return values, expected behavior after invocation, and fails to distinguish from similar siblings like 'create_task'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters ('name' and 'color') described in the schema. The description adds no extra meaning beyond what the schema already provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '创建' (create) and the resource '项目' (project), indicating the tool creates a new project. However, it does not differentiate from the sibling tool 'create_task', which also creates items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'create_task' or 'update_project'. The description lacks any contextual cues for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskA
创建新任务。可以指定标题、所属项目、截止日期、优先级、标签等。不指定项目则放入收集箱。
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | 标签列表(可选) | |
| title | Yes | 任务标题 | |
| content | No | 任务内容/描述(可选) | |
| due_date | No | 截止日期(可选,ISO 8601格式,如 '2026-03-15T18:00:00+0800') | |
| priority | No | 优先级(0=无, 1=低, 3=中, 5=高) | |
| is_all_day | No | 是否全天任务(可选) | |
| project_id | No | 项目ID(可选,不填则放入收集箱) | |
| start_date | No | 开始日期(可选,ISO 8601格式,如 '2026-03-15T09:00:00+0800') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It confirms creation (mutation) and default inbox behavior, but omits return type, error handling, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters, no annotations, and no output schema, the description is incomplete. It explains default behavior but not return value or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by explaining that omitting project_id places the task in the inbox, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a new task and lists key fields, distinguishing it from siblings like update_task or delete_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description hints at when to omit project_id (inbox), but provides no explicit guidance on when to use this tool vs alternatives like complete_task or search_tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectA
删除指定的项目(清单)。⚠️ 此操作不可恢复。
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | 要删除的项目ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explicitly states the operation is irreversible (不可恢复), a critical behavioral trait. However, it does not mention side effects on related tasks or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no fluff. The key warning is highlighted with emoji. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with one parameter and no output schema, the description is fairly complete. It could elaborate on what happens to child tasks (implied deletion), but overall it provides necessary information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter. The description adds no additional meaning beyond the schema's minimal property description. Baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete the specified project (list)' with the verb 'delete' and resource 'project'. It distinguishes from siblings like create_project and delete_task, and includes a warning about irreversibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are provided. The description only implies careful use through the irreversibility warning, but lacks guidance on when not to use it or how it compares to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskA
删除指定任务。⚠️ 此操作不可恢复。需要提供 task_id 和 project_id。
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | 任务ID | |
| project_id | Yes | 项目ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full burden. It discloses that the operation is irreversible (⚠️ 此操作不可恢复), which is a key behavioral trait beyond the schema. However, it does not mention authorization requirements, effects on related data (e.g., subtasks), or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three key pieces of information (action, irreversibility, required params) in two short sentences. No filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with two required parameters and no output schema, the description covers the essential points: what it does, that it's irreversible, and which parameters are needed. It could be improved by mentioning return behavior or failure modes, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover both parameters (task_id and project_id) with 100% coverage. The description merely repeats that they are required, adding no new semantic meaning. Baseline 3 is appropriate as the schema already informs the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'delete the specified task' with a specific verb and resource. It uses a warning icon and explicitly mentions irreversibility, which distinguishes it from siblings like complete_task or update_task that do not delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a warning that the operation is irreversible, implying it should be used with caution. However, it does not explicitly state when to use this tool versus alternatives such as complete_task (to mark as done) or update_task (to modify). No exclusions or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_tasksB
获取所有未完成的任务列表,包含任务的标题、截止日期、优先级、所属清单等信息。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states what it returns. It does not disclose whether the operation is read-only, sorting order, or scope across projects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded. Could be slightly more structured, but no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description is minimal. It covers the basic purpose but lacks details on return format or behavior that would be beneficial given the number of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description adds no param info but none is needed since schema coverage is 100% with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves all incomplete tasks with specific fields (title, due date, priority, list). While it doesn't distinguish from siblings like get_overdue_tasks or get_tasks_due_today, it is specific enough about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of appropriate contexts or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_overdue_tasksB
获取所有已过期(逾期)的任务。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description offers no behavioral details like how overdue is determined, response format, or edge cases (e.g., no overdue tasks).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it lacks additional front-loaded details that could aid decision-making without lengthening it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too minimal given the absence of annotations and output schema; it fails to define what 'overdue' means or how the tool relates to siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description cannot add meaning beyond the empty schema; it is adequate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the specific resource 'overdue tasks', distinguishing it from siblings like get_all_tasks and get_tasks_due_today.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_tasks_due_today or get_all_tasks; a single statement without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_detailA
获取指定项目的详细信息及其所有任务。
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | 项目ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool retrieves information but does not explicitly confirm it is read-only, specify error behavior for missing project_id, or disclose any rate limits or side effects. More behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It efficiently conveys the purpose and scope without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter and no output schema, the description adequately states the function. However, it could improve by clarifying how the output differs from combining get_projects and get_all_tasks, and by noting if any filtering or pagination applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'project_id'. The description adds no extra semantics beyond the schema, such as expected format or source, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '获取' (get), the resource '项目详细信息' (project detail), and includes the scope '及其所有任务' (and all its tasks). This distinguishes it from siblings like get_projects (which likely lists projects without details) and task-specific retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing project details with all associated tasks, but does not explicitly guide when to avoid this tool or when to use alternatives like get_projects or get_all_tasks. No exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectsA
获取所有项目(清单)列表。返回所有项目的名称、ID、颜色等信息。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only mentions the return fields but does not disclose whether the operation is read-only, if any side effects occur, or any rate limits or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main purpose and immediately provides relevant return information. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description adequately states the action and return fields. It could specify the exact structure or data types, but is sufficient for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100%, so the description need not add parameter details. Baseline 4 is appropriate as the description adds value by specifying return fields beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'all projects list', and specifies the returned fields (name, ID, color), distinguishing it from siblings like get_project_detail which retrieves a single project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for listing all projects, but it does not explicitly state when to use it versus alternatives like get_project_detail or search tools. No exclusions or contextual guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasks_by_priorityC
按优先级获取任务。
| Name | Required | Description | Default |
|---|---|---|---|
| priority | Yes | 优先级(0=无, 1=低, 3=中, 5=高) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'get tasks by priority' but does not confirm that the operation is read-only, nor does it mention any side effects, auth requirements, or rate limits. The description is not contradictory but is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise, using a single sentence. However, it lacks structural elements like separation of purpose and behavior. For a simple tool with one parameter, this level of conciseness is acceptable, but it does not earn a perfect score due to the lack of structured detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete for a list tool. It does not mention what is returned (e.g., task IDs, full task objects), whether results are sorted, or the maximum number of tasks returned. The absence of an output schema increases the burden on the description, which it fails to meet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage of the parameter, including enum values and their meanings. The description adds no additional semantic value beyond restating the filter criterion. Since the schema already documents the parameter adequately, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and resource 'tasks' with a specific filter 'by priority'. It successfully distinguishes itself from siblings like 'get_all_tasks' or 'get_overdue_tasks' by indicating the filtering criterion. However, it does not elaborate on the scope or format of the results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not specify when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. Agents have to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasks_due_todayB
获取今天到期的所有任务。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the basic function. It does not disclose behavioral traits such as whether it is read-only (likely) or what happens if no tasks are due today. Since no annotations are provided, the description should carry this burden but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. It wastes no words, though the Chinese language may obscure structure for non-native readers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not mention return format or pagination. For a simple list tool, it might suffice, but additional context would help, such as noting it returns a list of task objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100%. The description does not need to explain parameters, so it is adequate. No additional semantics beyond the schema are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves tasks due today, matching the tool's name. However, it does not differentiate from siblings like 'get_all_tasks' or 'get_overdue_tasks', missing an opportunity to clarify its specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For example, it could note that 'get_overdue_tasks' covers past-due tasks while this focuses on today only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tasksA
搜索任务。可以按标题、内容、标签进行模糊搜索。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It mentions fuzzy search but does not state if the tool is read-only, whether it returns all results, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with one parameter and no output schema, the description adequately covers the functionality. It could mention that tasks are returned, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds context by stating the query applies to title, content, and tags, beyond the schema's 'search keyword' description. This helps the agent understand how the parameter is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches tasks and specifies the searchable fields (title, content, tags), distinguishing it from sibling tools like get_all_tasks or get_tasks_by_priority.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use search_tasks versus other tools. The description describes what it does but not when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskB
更新已有任务的信息,如标题、截止日期、优先级等。需要提供 task_id 和 project_id。
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | 新标签列表(可选) | |
| title | No | 新标题(可选) | |
| content | No | 新内容(可选) | |
| task_id | Yes | 任务ID | |
| due_date | No | 新截止日期(可选,ISO 8601格式) | |
| priority | No | 新优先级(0=无, 1=低, 3=中, 5=高) | |
| project_id | Yes | 项目ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'update' but does not disclose whether updates are incremental or replace all fields, error conditions, permission requirements, or idempotency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. It front-loads the main purpose, though the second sentence about required parameters is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description partially covers purpose and required parameters but omits return value, error behavior, and whether updates are partial. Given no output schema and no annotations, more detail would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds no new semantic detail beyond listing example fields (title, due date, priority), which is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates existing tasks, listing example fields (title, due date, priority), and identifies required parameters. This distinguishes it from sibling tools like create_task, complete_task, and delete_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., when to update vs. complete or delete a task). It only describes basic functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
13 tool updates
v1.0.0- First observed
complete_task - First observed
create_project - First observed
create_task - First observed
delete_project - First observed
delete_task - First observed
get_all_tasks - First observed
get_overdue_tasks - First observed
get_project_detail - First observed
get_projects - First observed
get_tasks_by_priority - First observed
get_tasks_due_today - First observed
search_tasks - First observed
update_task
TDQS
Scored across 13 tools
每个工具都有明确且独特的用途:创建、删除、更新、完成任务,以及多种查询(全部、逾期、按优先级、今天到期、搜索),没有功能重叠,区分清晰。
所有工具名称均采用一致的动词_名词模式(如create_project、delete_task、get_all_tasks),全部使用小写和下划线,命名风格统一。
13个工具数量适中,全面覆盖任务管理核心操作(项目CRUD、任务CRUD及多种过滤查询),没有冗余或不足。
覆盖了任务和项目的基本CRUD及常见查询,但缺少更新项目功能和直接按ID获取单个任务详情,存在轻微功能缺口。
Maintenance
Related MCP Connectors
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Create and manage MeisterTask projects, tasks, and notes from your AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Dida365 (滴答清单) tasks through the Model Context Protocol. It supports full task lifecycle management including creating, updating, and filtering tasks with automatic timezone handling.12 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to directly manage Dida365 (TickTick) tasks, including creating, editing, completing, and setting priorities, deadlines, subtasks, reminders, and recurring tasks via natural language.8MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that enables AI agents to manage Dida365/TickTick tasks, projects, tags, and habits through natural language, with full CRUD, search, and advanced V2 capabilities.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage TickTick/Dida365 tasks, projects, and tags through the MCP protocol, with features for GTD-based task organization and OAuth authentication.25 npm10ISC