TAPD MCP Server
Provides error reporting and monitoring for the MCP server itself, allowing developers to track runtime errors.
Click on "Install 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., "@TAPD MCP Serverlist my open bugs across all projects"
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.
✨ 核心亮点
🔌 一键安装 —— 一段
npx配置即用,无需 clone 仓库或装依赖,团队复制即接入。🐞 Bug / 需求一条龙 —— 查询、读详情、分析定位、回填状态 / 评论 / 处理人,缺陷与需求全流程都在对话里完成(写操作均需你确认)。
🗂️ 跨项目自动聚合 —— 一人负责多个项目?列表查询自动聚合你参与的全部项目,每条结果标注归属,无需逐个切换。
🤖 内置工作流 Prompt —— PRD 研发评估、提测报告、Bug 修复回填三套开箱即用,编排现有工具、读着你的代码给结论。
👥 团队视角 —— 一句话让 Agent 跨成员、跨项目统计全组 bug / 需求(总数、未关闭、超 24h 未关闭、按成员拆分),组长盯进度直接可用(见下方「团队 Bug 统计」示例)。
Related MCP server: ZenTao MCP Server
🚀 快速开始
在 MCP 配置文件中添加以下内容,例如 .cursor/mcp.json 或 .vscode/mcp.json:
{
"mcpServers": {
"TAPD MCP": {
"command": "npx",
"args": ["-y", "tapd-mcp-server"],
"env": {
"TAPD_ACCESS_TOKEN": "你的访问令牌"
}
}
}
}变量 | 说明 |
| 必填。TAPD 个人访问令牌,获取路径:TAPD 个人设置 → 个人访问令牌。请只放在本机 MCP 配置里,不要提交到代码仓库 |
| 可选,默认关闭。设为 |
| 可选。默认已启用错误上报(详见下文「错误上报与隐私」);设为空字符串可关闭,或填自己的 DSN 覆盖默认上报目标 |
错误上报与隐私
本工具默认通过 Sentry 上报未捕获的运行时错误(崩溃堆栈、Node 版本、包版本),帮助维护者发现和修复问题。已做脱敏处理:
✅ 上报:错误堆栈、HTTP 请求的域名与路径、响应状态码
❌ 不上报:
TAPD_ACCESS_TOKEN(走请求头,不进任何上报字段)、URL 查询参数(workspace_id、检索关键词等业务数据)、console 日志内容正常的工具调用与查询结果不会触发任何上报
如需完全关闭,在 MCP 配置的 env 中设置 TAPD_MCP_SENTRY_DSN 为空字符串即可:
"env": { "TAPD_MCP_SENTRY_DSN": "" }💡 使用示例
1. 团队 Bug 统计
统计我们组每个成员名下的 bug 数量,重点关注今日新增、超 24h 未修复、bug 存留超 72h,图表展示
Agent 会先用 tapd_search_users 确认各成员 nick,再用 tapd_list_bugs(跨项目聚合)逐个统计,汇总出全组视图:每人的未关闭、今日新增、超 24h / 72h、挂起等数量,并可按成员拆分明细。配合客户端的可视化能力(如 Cursor Canvas),还能直接生成下面这样的看板,组长盯进度一目了然。

这是一个由 Agent 编排多个 MCP 工具完成的使用场景,并非单个内置工具;统计维度与可视化形式由你的指令和客户端能力决定。
2. 查询我名下的需求和 Bug
列出我名下待处理的需求和 bug
Agent 跨项目聚合查询你负责的需求与缺陷,返回带内嵌超链接的 Markdown 表格——名称即链接、点击直达 TAPD,并标注每条所属项目。可继续按状态、创建时间、关联需求等过滤,或指定某个项目 ID 只查该项目。

3. 批量判断服务端归因并追加处理人
分析我名下待处理的 bug,哪些更像是服务端原因,并在处理人里添加服务端同学亚勇
Agent 会先查询 bug 详情,再根据现象、接口返回、复现步骤等信息判断疑似服务端问题。更新处理人前会先用 tapd_search_users 确认成员身份,最后经你确认后再写回 TAPD。
4. Bug 批量修复并回填
帮我修复 123456、123457,结合代码定位并给出修改方案
Agent 跨项目定位各 bug、拉取完整上下文(描述、复现、评论、附件、图片),结合当前代码库给出问题定位与修改建议(改码需你确认);修复后用内置 Prompt tapd_bug_fix_writeback 生成回填草稿,确认后把状态改为已解决并写入评论,不会主动更新处理人。

5. 需求宣讲前研发评估
使用 tapd_prd_analysis 分析需求 123456,生成需求宣讲前研发评估报告
支持 MCP Prompts 的客户端会自动获得 tapd_prd_analysis。Agent 获取需求详情,按需查询需求变更、关联测试用例和关联 bug,再阅读当前代码库定位相关路由、页面、组件、接口、状态管理、数据模型、权限、埋点和配置,结合代码现状给出研发视角的判断(结论先行、不复述 PRD,写操作均需你确认)。
报告按固定模板输出,便于宣讲前快速过审:
结论 —— 需求目标、改动范围、最大风险、必须确认;
技术判断 —— 相关代码、实现方案、接口 / 数据 / 权限;
风险与依赖 —— 主要风险、外部依赖、漏洞 / 异常场景;
测试建议 —— 验收路径、边界 / 回归;
待确认问题 —— 最多 3 条,不确定项标注「需要确认」,不臆测、不凑数。
6. 提测准入判断并生成提测文档
使用 tapd_test_doc 生成提测文档,测试环境是 https://example.com/checkout.html
支持 MCP Prompts 的客户端会自动获得 tapd_test_doc,只读代码、不改 TAPD,分两阶段:
提测准入判断 —— 自动对照需求的 PRD 用例、验收要点和未关闭缺陷,判断本次改动是否达标。
生成提测文档 —— 达标或你确认后,把代码改动翻译成「本次提测」与「测试重点」,写入项目根目录
提测文档.md。
两种典型结果:
准入通过 —— 直接生成提测文档,含
测试环境/本次提测/测试重点/已知问题四段。准入不达标 —— 逐条列出差距,请你三选一:A 继续提测并记为已知问题 / B 继续提测忽略风险 / C 终止提测;未决策前不生成文档。
🧰 能力总览
工具(18)
🛡️ 创建、回填、上传等写操作工具均内置二次确认:执行前需要你在对话中明确同意,防止 AI 未经授权修改 TAPD 数据;
tapd_call_api的 POST 写操作另需环境变量TAPD_ALLOW_RAW_WRITE=true开启。详见下文「安全确认」。
需求(Story)
工具 | 作用 |
| 查询需求列表,支持跨项目聚合与多字段过滤 |
| 获取需求完整详情(描述、评论、附件、内嵌媒体) |
| 创建需求,支持处理人、优先级、迭代、父需求、标签、排期、工时、自定义字段等 |
| 回填需求评论 / 描述 / 状态 / 处理人,及标题、优先级、迭代、工时、标签等标准字段和自定义字段 |
| 查询需求变更历史 |
| 查询需求关联的测试用例 |
缺陷(Bug)
工具 | 作用 |
| 查询缺陷列表,支持跨项目聚合与多字段过滤 |
| 获取缺陷完整详情(描述、复现、评论、附件、内嵌媒体) |
| 创建缺陷,支持处理人、优先级、严重程度、版本、迭代、排期、各类人员、工时、自定义字段等 |
| 回填缺陷评论 / 标题 / 描述 / 状态 / 处理人,及优先级、版本、迭代、工时、标签等标准字段和自定义字段 |
| 查询缺陷变更历史 |
缺陷多媒体
工具 | 作用 |
| 上传缺陷附件(png/mp4 等,≤250MB) |
| 上传描述内嵌图,返回 html_code(≤5MB) |
| 上传图片并自动追加到缺陷描述(先读后写,避免覆盖) |
项目 / 迭代 / 成员
工具 | 作用 |
| 查询你参与的项目(workspace) |
| 查询项目迭代,支持按名称、状态、起止时间、创建人、自定义字段等过滤并自定义排序 |
| 搜索 TAPD 成员,确认 nick,避免重名误写 |
通用透传
工具 | 作用 |
| 直接调用任意 TAPD OpenAPI 接口(任务、工时、测试计划、模块/版本配置、Wiki、看板等),兜底专用工具未覆盖的场景;path 以官方文档为准。POST 写操作默认禁用,需设置环境变量 |
工作流 Prompt(3)
随 MCP Server 一起分发,支持 MCP Prompts 的客户端会自动获得。只编排现有工具、不新增写入能力:
Prompt | 作用 |
| 需求宣讲前的简洁研发评估:读需求 + 关联用例 + 关联缺陷 + 你的代码库,输出研发视角判断 |
| Bug 修复后生成回填草稿,确认后改状态为已解决并写入评论 |
| 先做提测准入判断(对照 PRD 关联用例评估是否达标),再生成提测文档 |
🛡️ 安全确认
查询类操作不会修改 TAPD 数据。
创建、回填评论、更新状态、更新处理人等写操作,都需要你在对话中明确确认。
更新处理人前,Agent 会先搜索并确认 TAPD 成员,避免根据中文名或重名信息误写。
处理人更新支持追加和替换。你说“添加、加上、补上”时会倾向追加;你说“改为、替换为、转给”时会倾向替换。
🎁 彩蛋玩法
定时巡检,模拟 AI 研发助理
每 2 小时检查需求 123456 下是否有新增未解决 bug;发现后读取 bug 详情和当前代码,判断原因、生成修复方案,并在我确认后修改代码和回填处理结果
配合支持定时任务的 Agent,可以把 TAPD MCP 变成一个轻量的 AI 研发助理:定时发现新缺陷、自动理解上下文、定位影响范围,并生成修复建议和回填草稿。
它也可以巡检工作空间里的新需求,自动完成研发评估,必要时进入创建分支和开发流程。巡检与分析自动执行,改代码、提交、回填 TAPD 等写操作仍由你确认。
Available Tools
18 toolstapd_append_bug_description_image上传图片并追加到 TAPD 缺陷描述A
一步完成:上传图片 → 读取缺陷当前描述 → 把图片追加到描述末尾后整体回写。先读后写避免覆盖原有正文。仅支持 png/gif/jpg/jpeg/bmp、单张 ≤5MB。图片上传成功但描述写入失败时会明确提示(此时图片已上传,可改用 tapd_writeback 手动写回)。
| Name | Required | Description | Default |
|---|---|---|---|
| bug_id | Yes | TAPD 缺陷 ID | |
| filename | Yes | 文件名,后缀须为 png/gif/jpg/jpeg/bmp | |
| confirmed | Yes | 必须为 true,表示用户已明确确认上传图片并修改缺陷描述 | |
| file_base64 | Yes | 图片内容的 base64 编码,可带或不带 data:URI 前缀 | |
| content_type | No | 可选,图片 MIME 类型,如 image/png | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. Discloses read-then-write strategy to avoid overwrite, file type/size limits, and error handling for write failure. Could mention idempotency or concurrency, but sufficient for safe use.
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?
Concise paragraph: first sentence summarizes action, then details constraints and error behavior. No filler, every sentence adds value.
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?
No output schema, but description explains partial failure. Lacks return value details (e.g., what is returned on success). For a mutation tool with error handling, this is adequate but not exhaustive.
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. Description adds minor context: file_base64 can include data URI, workspace_id can be obtained via other tools. Does not significantly enhance schema info.
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 explicitly states the multi-step action: upload image, read current description, append image, and write back. It distinguishes from siblings like tapd_upload_bug_image (upload only) and tapd_writeback (manual write).
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?
Clear context: used for appending images to bug descriptions without overwriting. Mentions fallback to tapd_writeback on write failure. However, lacks explicit when-not-to-use or comparison to all siblings (e.g., tapd_upload_bug_attachment).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_call_api调用任意 TAPD OpenAPI 接口A
通用透传工具:直接调用 TAPD OpenAPI(https://api.tapd.cn)的任意 REST 接口,用于专用工具未覆盖的场景(任务、工时、测试计划、模块/版本配置、Wiki、看板等)。path 为官方文档(open.tapd.cn)中每个接口标注的 URL 路径,例如 GET /tasks(获取任务)、GET /stories/count(需求数量)、GET /modules(模块配置)、POST /timesheets(新增工时)。路径没有统一推导规则,不确定时应以官方文档为准,不要凭猜测拼路径——按 REST 直觉猜容易踩空,例如 Wiki 列表是 /wikis 而非 /wiki,/boards、/reports 也都不是有效路径。几乎所有接口都需要 workspace_id 参数。查询类接口默认返回 30 条,可用 page/limit 翻页。文件上传(multipart)不走本工具,请使用 tapd_upload_bug_attachment / tapd_upload_bug_image。注意:POST 写操作默认禁用,需在 MCP 配置 env 中设置 TAPD_ALLOW_RAW_WRITE=true,且每次调用需传 confirmed=true;优先使用专用写入工具(tapd_create_bug / tapd_writeback 等)。
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | POST 请求体参数,仅 method=POST 时使用;默认按表单序列化,值为数组/对象时需配合 body_format: "json" | |
| path | Yes | TAPD 接口路径(api.tapd.cn 之后的部分),如 /tasks、/stories/count、/timesheets/delete_timesheets | |
| method | No | HTTP 方法,默认 GET;TAPD 查询用 GET,新增/修改/删除用 POST | |
| params | No | GET 查询参数,如 { workspace_id: "123", limit: 10 } | |
| confirmed | No | method=POST 时必须为 true,表示用户已明确确认本次写操作;GET 无需传 | |
| body_format | No | POST 请求体格式,默认 form(application/x-www-form-urlencoded);接口文档要求 JSON 请求体(如 batch_update_story 的 workitems 数组)时传 json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond the readOnlyHint annotation: it can perform writes but is controlled, requires path to match official docs, pagination defaults to 30, file uploads not supported, workspace_id required, POST body format options, and need for explicit confirmation. No contradiction with annotations.
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?
Long but dense with useful information. Front-loaded with purpose and examples. Each sentence adds value, though could be slightly trimmed. Structured logically from overview to details.
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?
Comprehensive given complexity: covers purpose, usage guidelines, all parameter semantics, behavioral traits (write control, path rules, pagination, file upload exclusion, workspace_id requirement), and alternative tools. No output schema but that's acceptable for a generic pass-through tool.
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 has 100% coverage, but description adds significant meaning: provides path examples and pattern explanation, clarifies use of data vs params, explains when to use body_format json vs form, and notes that workspace_id is needed. Description complements schema well.
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?
Clearly states it's a universal pass-through tool to call any TAPD OpenAPI REST endpoint for scenarios not covered by dedicated tools. Provides verb (call/invoke) and resource (TAPD OpenAPI), and distinguishes from siblings by noting it's for uncovered scenarios.
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?
Explicitly states when to use (uncovered scenarios) and when not to use (prefer dedicated tools for file uploads and write operations). Gives context on POST write operation restrictions, requiring environment variable and confirmed=true, and advises to use dedicated write tools like tapd_create_bug.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_create_bug创建 TAPD bugA
在 TAPD 中创建一个已确认的新 bug,可选关联到指定需求,支持设置处理人、优先级、严重程度、模块、版本、迭代、排期、各类人员(测试/开发/参与人等)、工时、模板、自定义字段等。创建前建议先用 tapd_search_users 确认处理人的 nick;不传处理人则默认指派给当前登录用户。
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | 可选,抄送人。与处理人同为 TAPD 用户 nick,参考 current_owner 格式,多个以分号分隔(如 a;b;) | |
| de | No | 可选,开发人员 TAPD nick | |
| os | No | 可选,操作系统 | |
| te | No | 可选,测试人员 TAPD nick | |
| due | No | 可选,预计结束日期(YYYY-MM-DD) | |
| size | No | 可选,规模 | |
| begin | No | 可选,预计开始日期(YYYY-MM-DD) | |
| fixer | No | 可选,修复人 TAPD nick | |
| label | No | 可选,标签,不存在时自动创建,多个以英文竖线(|)分隔 | |
| title | Yes | 缺陷标题 | |
| closer | No | 可选,关闭人 TAPD nick | |
| effort | No | 可选,预估工时 | |
| module | No | 可选,所属模块 | |
| source | No | 可选,缺陷根源 | |
| auditer | No | 可选,审核人 TAPD nick | |
| bugtype | No | 可选,缺陷类型 | |
| feature | No | 可选,特性 | |
| deadline | No | 可选,解决期限(YYYY-MM-DD) | |
| estimate | No | 可选,预计解决时间 | |
| platform | No | 可选,软件平台 | |
| severity | No | 可选,严重程度,需使用当前项目支持的 TAPD 严重程度值 | |
| story_id | No | 可选,需求 ID;传入后会在缺陷创建成功后关联到该需求 | |
| testmode | No | 可选,测试方式 | |
| testtype | No | 可选,测试类型 | |
| confirmed | Yes | 必须为 true,表示用户已明确确认创建该 TAPD bug | |
| confirmer | No | 可选,验证人 TAPD nick | |
| frequency | No | 可选,重现规律 | |
| testphase | No | 可选,测试阶段 | |
| release_id | No | 可选,发布计划 ID | |
| resolution | No | 可选,解决方法 | |
| description | Yes | 缺陷详细描述,支持 TAPD 富文本 HTML | |
| originphase | No | 可选,发现阶段 | |
| sourcephase | No | 可选,引入阶段 | |
| template_id | No | 可选,模板 ID。从缺陷模板创建时使用 | |
| version_fix | No | 可选,合入版本 | |
| iteration_id | No | 可选,迭代 ID | |
| participator | No | 可选,参与人。与处理人同为 TAPD 用户 nick,多个以分号分隔(如 a;b;) | |
| version_test | No | 可选,验证版本 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| baseline_find | No | 可选,发现基线 | |
| baseline_join | No | 可选,合入基线 | |
| baseline_test | No | 可选,验证基线 | |
| custom_fields | No | 可选,自定义字段透传。key 为 TAPD 字段名(custom_field_*、cus_* 或 custom_plan_field_*),原样提交;具体字段名通过 TAPD 自定义字段配置接口获取 | |
| version_close | No | 可选,关闭版本 | |
| baseline_close | No | 可选,关闭基线 | |
| current_owners | No | 可选,缺陷处理人 TAPD nick 列表;建议先调用 tapd_search_users 确认 | |
| priority_label | No | 可选,优先级标识,推荐使用此字段以兼容自定义优先级(如 High/Medium/Low) | |
| version_report | No | 可选,发现版本 | |
| is_apply_template_default_value | No | 可选,是否从模板继承默认值(仅 0/1,1 继承),需配合 template_id |
TDQS
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. It mentions creation and optional story linking, but lacks details on permissions, error handling, idempotency, or any destructive side effects. The 'confirmed' boolean is noted, but overall transparency is adequate but not exhaustive.
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 two sentences long, front-loaded with the core action, and covers key capabilities without redundancy. Every sentence earns its place, and there is no wasted text.
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 49 parameters and no output schema, the description covers high-level capabilities and common fields well. The rich schema fills in the details. However, it omits context about return values, error handling, and required permissions, which would improve completeness for a tool of this complexity.
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%, so the schema already documents all parameters thoroughly. The description adds value by summarizing common fields and providing a workflow hint (use tapd_search_users), but it does not add significant meaning beyond what the schema provides. Baseline 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 '创建' (create) and the resource 'bug' in TAPD, distinguishing it from sibling tools like tapd_list_bugs and tapd_create_story. It also lists key configurable fields, leaving no ambiguity about what the tool does.
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 a specific usage guideline: suggesting users call tapd_search_users to confirm handler nicknames before creation, and noting the default assignment if no handler is provided. However, it does not explicitly state when to avoid this tool in favor of alternatives like tapd_create_story.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_create_story创建 TAPD 需求A
在 TAPD 中创建一个已确认的新需求,支持设置处理人、优先级、迭代、父需求、标签、排期、工时、自定义字段等。创建前建议先用 tapd_search_users 确认处理人的 nick;不传处理人则默认指派给当前登录用户。
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | 可选,抄送人。与处理人同为 TAPD 用户 nick,参考 owner 格式,多个以分号分隔(如 a;b;) | |
| due | No | 可选,预计结束日期(YYYY-MM-DD) | |
| name | Yes | 需求名称 | |
| size | No | 可选,规模 | |
| type | No | 可选,类型 | |
| begin | No | 可选,预计开始日期(YYYY-MM-DD) | |
| label | No | 可选,标签,不存在时自动创建,多个以英文竖线(|)分隔 | |
| effort | No | 可选,预估工时 | |
| exceed | No | 可选,超出工时 | |
| module | No | 可选,所属模块 | |
| owners | No | 可选,需求处理人 TAPD nick 列表;建议先调用 tapd_search_users 确认 | |
| remain | No | 可选,剩余工时 | |
| source | No | 可选,来源 | |
| feature | No | 可选,特性 | |
| version | No | 可选,版本 | |
| confirmed | Yes | 必须为 true,表示用户已明确确认创建该 TAPD 需求 | |
| developer | No | 可选,开发人员。与处理人同为 TAPD 用户 nick,参考 owner 格式,多个以分号分隔(如 a;b;) | |
| parent_id | No | 可选,父需求 ID,用于创建子需求 | |
| tech_risk | No | 可选,技术风险 | |
| release_id | No | 可选,发布计划 ID | |
| test_focus | No | 可选,测试重点 | |
| category_id | No | 可选,分类 ID | |
| description | Yes | 需求详细描述,支持 TAPD 富文本 HTML | |
| iteration_id | No | 可选,迭代 ID | |
| templated_id | No | 可选,模板 ID。从需求模板创建时使用 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| custom_fields | No | 可选,自定义字段透传。key 为 TAPD 字段名(custom_field_*、cus_* 或 custom_plan_field_*),原样提交;具体字段名通过 TAPD 自定义字段配置接口获取 | |
| apply_template | No | 可选,模板选项,多个以英文逗号分隔(如 preset_stories,preset_tasks,分别预设子需求/子任务),需配合 templated_id | |
| business_value | No | 可选,业务价值 | |
| priority_label | No | 可选,优先级标识,推荐使用此字段以兼容自定义优先级(如 High/Medium/Low) | |
| effort_completed | No | 可选,完成工时 | |
| workitem_type_id | No | 可选,需求类别 ID | |
| is_apply_template_default_value | No | 可选,是否从模板继承默认值/保密设置(仅 0/1,1 继承),需配合 templated_id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It discloses creation with confirmation requirement and default owner assignment, but does not describe return value, side effects, rate limits, or error handling. The lack of output schema amplifies this gap.
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 and capabilities. The second sentence provides a crucial usage tip. Minimal waste, but the first sentence is long; could be slightly more structured.
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 complex tool with 33 parameters and no output schema, the description is adequate but lacks explanation of return value, failure modes, and differentiation from sibling write tools. The prerequisite guidance is helpful but not comprehensive.
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 detailed parameter docs. The description adds value by advising pre-use of tapd_search_users for owners, clarifying default owner behavior, and noting label auto-creation. This supplements the schema without redundancy.
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 confirmed requirement in TAPD, listing key settable fields. It implicitly distinguishes from sibling tools like tapd_create_bug by specifying it is for stories/requirements.
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?
Provides explicit guidance to first use tapd_search_users to confirm owner nick and notes default owner behavior. Lacks explicit when-not-to-use or comparison with update tools like tapd_writeback_story, but the advice is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_get_bugs批量获取 TAPD bug 详情ARead-only
批量获取多个 TAPD bug 的完整内容,包括描述、复现步骤、评论、附件、图片和视频等详细信息。状态会附带项目工作流中文名(如「已解决(resolved)」)
| Name | Required | Description | Default |
|---|---|---|---|
| bug_ids | Yes | TAPD bug ID 列表,单次最多 10 个 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, which the description does not contradict. The description adds behavioral context by specifying the returned content (descriptions, steps, comments, attachments, images, videos) and that status includes workflow display name. No side effects or permissions mentioned, but readOnly is covered.
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: first states core action, second adds a specific output detail. No redundant words, front-loaded, efficient.
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 get-tool with 2 simple params and no output schema, the description adequately lists the types of content returned (descriptions, steps, comments, attachments, etc.) and a notable formatting detail. Covers 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 coverage is 100%, with descriptions for both bug_ids and workspace_id. The description adds minimal parameter info beyond the schema; the main added value is about output (status format). Baseline 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 tool's purpose: batch get TAPD bug details, listing specific content types (description, steps, comments, attachments, etc.). It distinguishes from siblings like tapd_list_bugs (likely summary) and tapd_list_bug_changes (history).
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 when-not-to-use guidance. The workspace_id parameter description hints at using other tools to find workspace IDs, but no differentiation from sibling tools like tapd_list_bugs for listing vs. detailed get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_get_stories批量获取 TAPD 需求详情ARead-only
批量获取多个 TAPD 需求的完整内容,包括描述、评论、附件、图片和视频等详细信息。状态会附带项目工作流中文名(如「已实现(resolved)」)
| Name | Required | Description | Default |
|---|---|---|---|
| story_ids | Yes | TAPD 需求 ID 列表,单次最多 10 个 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with 'get' behavior. Description adds useful context: returns detailed content including comments, attachments, images, videos, and status with workflow Chinese name. No contradictions, but could mention rate limits or auth requirements.
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: first states core purpose and included content, second adds detail on status format. No redundant information. Front-loaded with key action and resource.
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 read-only retrieval tool with no output schema, description covers returned fields (description, comments, attachments, images, videos, status with workflow name). Missing details on pagination, error handling, or response structure, but adequate for typical use.
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% with both parameters described. The description does not add significant new semantics beyond the schema; it merely restates the batch retrieval nature. Baseline 3 is appropriate as description doesn't enhance parameter understanding.
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 it retrieves full content of multiple TAPD stories including descriptions, comments, attachments, images, and videos. Title '批量获取 TAPD 需求详情' reinforces purpose. This distinguishes from siblings like tapd_list_stories which likely provide summaries.
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 guidance on when to use this tool vs alternatives. Does not mention when not to use (e.g., for single story retrieval, or for updating stories). No comparison to siblings like tapd_get_bugs or tapd_list_stories provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_list_bug_changes查询 TAPD bug 变更历史ARead-only
查询 TAPD bug 变更历史。bug_id、created 与 id 至少提供一个;可按变更人、变更字段过滤并自定义排序,include_add_bug=true 时返回创建缺陷的记录。状态变更会附带项目工作流中文名(如「接受/处理(in_progress) => 已解决(resolved)」)。
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | 可选,变更历史记录 ID(支持多 ID 查询),与 bug_id/created 三选一必填 | |
| page | No | 页码,默认 1 | |
| field | No | 可选,变更字段名(如 status) | |
| limit | No | 返回数量上限,默认 30,最大 200 | |
| order | No | 可选,排序规则,格式「字段名 asc|desc」(如 created desc) | |
| author | No | 可选,变更人 TAPD nick | |
| bug_id | No | TAPD bug ID,与 created/id 三选一必填 | |
| created | No | 变更创建时间查询条件,与 bug_id/id 三选一必填;可使用 TAPD 支持的时间查询语法 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| include_add_bug | No | 可选,是否返回创建缺陷的变更记录,映射 TAPD include_add_bug=1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds specific behavioral details: status changes include Chinese workflow names, and include_add_bug=true returns creation records. These go beyond annotations, though pagination behavior is not described.
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 concise, front-loaded with the main purpose, and covers key usage, parameters, and special output in three sentences. No redundant information.
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 has 10 parameters (1 required) and no output schema, the description explains the required mutual exclusivity, filtering, sorting, and special behavior for status changes. It lacks explicit pagination or return format details, but these are implied by parameter descriptions.
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%, so baseline is 3. The description adds value by explaining the mutual exclusivity of bug_id/created/id, the effect of include_add_bug, and the workflow name output for status changes—details not in schema descriptions.
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 queries TAPD bug change history, specifying the resource ('bug changes') and the action ('查询'). It distinguishes from siblings like tapd_list_bugs (list bugs) and tapd_list_story_changes (story changes) by focusing on bugs and history.
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 explicitly states the required parameter condition ('bug_id, created, id 至少提供一个'), filters, and sorting. It implies usage for bug change history, but does not explicitly state when not to use or name alternatives. However, siblings like tapd_list_bugs for listing bugs provide clear differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_list_bugs查询 TAPD bug 列表ARead-only
查询 TAPD bug 列表,默认查询当前登录用户负责的缺陷;传入 current_owner 可查询指定处理人名下的缺陷。传入 id 或 story_id 时不限处理人(story_id 返回该需求全部处理人名下的关联缺陷),可查到已转给他人的缺陷;显式传入 current_owner 时再按该处理人取交集。传入 workspace_id 时只查该项目;不传 workspace_id 时会聚合处理人参与的所有项目的缺陷(按 story_id 过滤时仍需具体项目)。支持按字段过滤:缺陷 ID、关联需求、标题、描述、状态、报告人、处理人、创建时间,以及优先级、严重程度、中文状态、标签、迭代、模块、版本/基线、发布计划、特性、缺陷类型/根源/解决方法/重现规律、各类人员(测试/开发/参与/抄送/修复/验证/审核/关闭人等)、环境(操作系统/平台)、测试方式/阶段/类型、排期/解决/关闭/修改/流转时间、自定义字段等,并可自定义排序(order)。返回的状态会附带项目工作流中文名(如「已解决(resolved)」)。【展示约定】向用户呈现结果时,请直接原样输出本工具返回的 Markdown 表格,完整保留「序号」「id」在内的所有列(其中「缺陷」列已是内嵌超链接的 Markdown 写法,请勿拆成裸 URL、改成纯文本或删除链接),不要裁剪列、改列名或将表格拆分重排;如需补充分类或小结,可在表格之外另起段落,但表格本身保持原样。
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | 可选,抄送人 TAPD nick | |
| de | No | 可选,开发人员 TAPD nick,支持模糊匹配 | |
| id | No | 缺陷 ID,TAPD 支持多 ID 查询。传入 id 时默认跳过处理人过滤(除非同时显式传入 current_owner),以便查到已转出的缺陷 | |
| os | No | 可选,操作系统 | |
| te | No | 可选,测试人员 TAPD nick,支持模糊匹配 | |
| due | No | 可选,预计结束时间 | |
| page | No | 页码,默认 1。聚合查询(不传 workspace_id)时按每个项目分别分页,并非跨项目全局分页 | |
| begin | No | 可选,预计开始时间 | |
| fixer | No | 可选,修复人 TAPD nick | |
| label | No | 可选,标签,TAPD 支持枚举查询 | |
| limit | No | 返回数量上限,默认 30,最大 200;聚合查询时为每个项目的上限 | |
| order | No | 可选,排序规则,格式「字段名 asc|desc」(如 created desc),不传默认 modified desc。注意:聚合查询(不传 workspace_id)时各项目内按此排序取数,但跨项目合并后最终仍按修改时间倒序展示 | |
| title | No | 缺陷标题,TAPD 支持模糊匹配 | |
| closed | No | 可选,关闭时间,TAPD 支持时间查询 | |
| closer | No | 可选,关闭人 TAPD nick | |
| module | No | 可选,模块,TAPD 支持枚举查询 | |
| source | No | 可选,缺陷根源,TAPD 支持枚举查询 | |
| status | No | 缺陷状态,TAPD 支持枚举查询和不等于查询 | |
| auditer | No | 可选,审核人 TAPD nick | |
| bugtype | No | 可选,缺陷类型 | |
| created | No | 创建时间,TAPD 支持时间查询 | |
| feature | No | 可选,特性 | |
| deadline | No | 可选,解决期限 | |
| estimate | No | 可选,预计解决时间 | |
| modified | No | 可选,最后修改时间,TAPD 支持时间查询 | |
| platform | No | 可选,软件平台 | |
| reporter | No | 报告人,TAPD 支持多用户查询 | |
| resolved | No | 可选,解决时间,TAPD 支持时间查询 | |
| severity | No | 可选,严重程度,TAPD 支持枚举查询 | |
| story_id | No | 关联需求 ID,返回该需求的关联缺陷;默认不按当前登录用户过滤(与按 id 精确查询一致,可查到他人名下的关联缺陷),仅在显式传入 current_owner 时按该处理人取交集。与 id 参数同时使用时取交集;该过滤需要具体项目,必须同时传入 workspace_id | |
| testmode | No | 可选,测试方式 | |
| testtype | No | 可选,测试类型 | |
| v_status | No | 可选,状态,支持传入中文状态名(如「已解决」) | |
| confirmer | No | 可选,验证人 TAPD nick | |
| frequency | No | 可选,重现规律,TAPD 支持枚举查询 | |
| testphase | No | 可选,测试阶段 | |
| lastmodify | No | 可选,最后修改人 TAPD nick | |
| release_id | No | 可选,发布计划 ID | |
| resolution | No | 可选,解决方法,TAPD 支持枚举查询 | |
| description | No | 缺陷详细描述,TAPD 支持模糊匹配 | |
| reject_time | No | 可选,拒绝时间,TAPD 支持时间查询 | |
| verify_time | No | 可选,验证时间,TAPD 支持时间查询 | |
| version_fix | No | 可选,合入版本 | |
| iteration_id | No | 可选,迭代 ID,TAPD 支持枚举查询 | |
| participator | No | 可选,参与人,支持多人员查询 | |
| version_test | No | 可选,验证版本 | |
| workspace_id | No | TAPD 项目 ID。传入则只查该项目;不传则聚合处理人参与的所有项目的缺陷。可先用 tapd_list_workspaces 查看会覆盖哪些项目 | |
| baseline_find | No | 可选,发现基线 | |
| baseline_join | No | 可选,合入基线 | |
| baseline_test | No | 可选,验证基线 | |
| current_owner | No | 单个处理人 TAPD nick,不传默认查询当前登录用户负责的缺陷;传入则查询指定处理人名下的缺陷,建议先用 tapd_search_users 确认 nick | |
| custom_fields | No | 可选,自定义字段过滤透传。key 为 TAPD 字段名(custom_field_*、cus_* 或 custom_plan_field_*),原样提交;具体字段名通过 TAPD 自定义字段配置接口获取 | |
| version_close | No | 可选,关闭版本 | |
| baseline_close | No | 可选,关闭基线 | |
| priority_label | No | 可选,优先级(推荐字段,兼容自定义优先级) | |
| version_report | No | 可选,发现版本,TAPD 支持枚举查询 | |
| in_progress_time | No | 可选,接受处理时间,TAPD 支持时间查询 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only annotation is consistent. Description details aggregation across projects, pagination per project, order behavior, and status format beyond what annotations provide.
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?
Description is a single verbose paragraph. While front-loaded with purpose, it could be more structured (e.g., bullet points) to improve readability for an AI agent.
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 tool with 57 parameters and no output schema, description covers major behaviors (defaults, aggregation, pagination, order, presentation rules). Lacks details on return structure beyond Markdown table mention.
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 covers 100% of parameters. Description adds contextual interaction details (e.g., id bypasses owner filter unless current_owner specified, story_id requires workspace_id), supplementing schema descriptions.
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 it queries TAPD bug list, defaults to current user, and specifies how to filter by owner, id, story_id, workspace_id. However, it does not distinguish from sibling tapd_get_bugs, which may overlap in functionality.
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?
Provides explicit guidance on when to use parameters (e.g., current_owner, id, workspace_id) and default behavior. Lacks explicit exclusions or alternatives to sibling tools like tapd_get_bugs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_list_iterations查询 TAPD 迭代列表ARead-only
查询 TAPD 项目迭代列表,支持按迭代 ID、名称、状态过滤,以及描述、起止时间、迭代类别、计划应用、创建人、创建/修改/完成时间、锁定人、自定义字段等,并可自定义排序(order)与翻页;用于创建或更新需求时选择 iteration_id
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | 迭代 ID,TAPD 支持多 ID 查询 | |
| name | No | 迭代名称,TAPD 支持模糊匹配 | |
| page | No | 页码,默认 1 | |
| limit | No | 返回数量上限,默认 50,最大 200 | |
| order | No | 可选,排序规则,格式「字段名 asc|desc」(如 created desc),不传默认 modified desc | |
| locker | No | 可选,锁定人 TAPD nick | |
| status | No | 迭代状态,系统状态为 open(开启)/done(已关闭),自定义状态可传中文名 | |
| created | No | 可选,创建时间,TAPD 支持时间查询 | |
| creator | No | 可选,创建人 TAPD nick | |
| enddate | No | 可选,结束时间,TAPD 支持时间查询 | |
| modified | No | 可选,最后修改时间,TAPD 支持时间查询 | |
| completed | No | 可选,完成时间 | |
| startdate | No | 可选,开始时间,TAPD 支持时间查询 | |
| description | No | 可选,详细描述 | |
| plan_app_id | No | 可选,计划应用 ID | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| custom_fields | No | 可选,自定义字段过滤透传。key 为 TAPD 字段名(custom_field_*、cus_* 或 custom_plan_field_*),原样提交;具体字段名通过 TAPD 自定义字段配置接口获取 | |
| workitem_type_id | No | 可选,迭代类别 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation is consistent with the query nature. The description provides extensive behavioral context: support for multiple IDs, fuzzy matching, time queries, sorting, pagination, and custom field filtering. No contradictions.
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 packs a lot of information. It is front-loaded with the main action. While slightly lengthy, it is efficient and each component adds value.
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 18 parameters, 100% schema coverage, and no output schema, the description adequately covers the tool's purpose and usage. It does not detail return format, but that is acceptable for a list tool; the context is complete enough for an AI agent.
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%, so the description does not need to explain schema fields. However, it adds value by summarizing the filtering capabilities and the use case (selecting iteration_id). This exceeds the baseline of 3.
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 queries TAPD iteration lists with filtering, sorting, and pagination. It distinguishes from sibling tools like tapd_list_bugs and tapd_list_stories by focusing on iterations, and explicitly mentions its use for selecting iteration_id in create/update operations.
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 usage context (when creating/updating requirements) but does not explicitly say when not to use this tool or mention alternatives. The sibling list tools are distinct, so the usage is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_list_stories查询 TAPD 需求列表ARead-only
查询 TAPD 需求列表,默认查询当前登录用户负责的需求;传入 owner 可查询指定处理人名下的需求。传入 id 精确查询时不限处理人,可查到已转给他人的需求。传入 workspace_id 时只查该项目;不传 workspace_id 时会聚合处理人参与的所有项目的需求。支持按字段过滤:需求 ID、名称、描述、状态、创建人、处理人、创建时间,以及优先级、标签、版本、模块、迭代、分类、排期/修改/完成时间、父子需求、特性、技术风险、需求类别、发布计划、规模、测试重点、抄送/开发人、来源/类型、工时、自定义字段等,并可自定义排序(order)。返回的状态会附带项目工作流中文名(如「已实现(resolved)」)。【展示约定】向用户呈现结果时,请直接原样输出本工具返回的 Markdown 表格,完整保留「序号」「id」在内的所有列(其中「需求」列已是内嵌超链接的 Markdown 写法,请勿拆成裸 URL、改成纯文本或删除链接),不要裁剪列、改列名或将表格拆分重排;如需补充分类或小结,可在表格之外另起段落,但表格本身保持原样。
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | 可选,抄送人 TAPD nick | |
| id | No | 需求 ID,TAPD 支持多 ID 查询。传入 id 时默认跳过处理人过滤(除非同时显式传入 owner),以便查到已转出的需求 | |
| due | No | 可选,预计结束时间,TAPD 支持时间查询 | |
| name | No | 需求名称,TAPD 支持模糊匹配 | |
| page | No | 页码,默认 1。聚合查询(不传 workspace_id)时按每个项目分别分页,并非跨项目全局分页 | |
| size | No | 可选,规模 | |
| type | No | 可选,类型 | |
| begin | No | 可选,预计开始时间,TAPD 支持时间查询 | |
| label | No | 可选,标签,TAPD 支持枚举查询 | |
| limit | No | 返回数量上限,默认 30,最大 200;聚合查询时为每个项目的上限 | |
| order | No | 可选,排序规则,格式「字段名 asc|desc」(如 created desc),不传默认 modified desc。注意:聚合查询(不传 workspace_id)时各项目内按此排序取数,但跨项目合并后最终仍按修改时间倒序展示 | |
| owner | No | 单个处理人 TAPD nick,不传默认查询当前登录用户负责的需求;传入则查询指定处理人名下的需求,建议先用 tapd_search_users 确认 nick | |
| effort | No | 可选,预估工时 | |
| exceed | No | 可选,超出工时 | |
| module | No | 可选,模块 | |
| remain | No | 可选,剩余工时 | |
| source | No | 可选,来源 | |
| status | No | 需求状态,TAPD 支持枚举查询和不等于查询 | |
| created | No | 创建时间,TAPD 支持时间查询 | |
| creator | No | 创建人,TAPD 支持多用户查询 | |
| feature | No | 可选,特性 | |
| version | No | 可选,版本 | |
| modified | No | 可选,最后修改时间,TAPD 支持时间查询 | |
| v_status | No | 可选,状态,支持传入中文状态名(如「已实现」) | |
| completed | No | 可选,完成时间,TAPD 支持时间查询 | |
| developer | No | 可选,开发人员 TAPD nick | |
| parent_id | No | 可选,父需求 ID,查询其直接子需求 | |
| tech_risk | No | 可选,技术风险 | |
| release_id | No | 可选,发布计划 ID | |
| test_focus | No | 可选,测试重点 | |
| ancestor_id | No | 可选,祖先需求 ID,查询其下所有层级子需求 | |
| category_id | No | 可选,需求分类 ID,TAPD 支持枚举查询 | |
| children_id | No | 可选,子需求 ID;查询无子需求的需求时传「|」 | |
| description | No | 需求详细描述,TAPD 支持模糊匹配 | |
| iteration_id | No | 可选,迭代 ID,TAPD 支持枚举/不等于查询 | |
| workspace_id | No | TAPD 项目 ID。传入则只查该项目;不传则聚合处理人参与的所有项目的需求。可先用 tapd_list_workspaces 查看会覆盖哪些项目 | |
| custom_fields | No | 可选,自定义字段过滤透传。key 为 TAPD 字段名(custom_field_*、cus_* 或 custom_plan_field_*),原样提交;具体字段名通过 TAPD 自定义字段配置接口获取 | |
| priority_label | No | 可选,优先级(推荐字段,兼容自定义优先级),TAPD 支持枚举查询 | |
| effort_completed | No | 可选,完成工时 | |
| workitem_type_id | No | 可选,需求类别 ID | |
| include_leaf_stories | No | 可选,是否包含子需求,默认否 | |
| include_sub_category | No | 可选,是否包含子分类,默认否 | |
| include_sub_iteration | No | 可选,是否包含子迭代,默认否 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=true, which matches the query-only behavior. The description goes further by disclosing aggregation pagination (per-project pages) and final sort order after merge, beyond what annotations convey.
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 lengthy but well-structured: core behavior first, then filtering, then display convention. It could be more concise, but the detail is warranted given the tool's complexity. Front-loaded with key info.
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 43 parameters and no output schema, the description covers essential invocation details: return format (Markdown table with all columns), pagination, sorting, and aggregation behavior. Minor gaps in exact column list, but sufficient for selection and invocation.
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 some extra context (e.g., id bypasses owner filter, aggregation pagination) but does not significantly enhance parameter understanding beyond the schema's descriptions.
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 queries TAPD stories, with default behavior (current user's stories) and options to filter by owner, workspace_id, and many fields. It distinguishes from sibling tools (e.g., bugs) by focusing on stories.
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?
Provides explicit guidance on when to use: default owner, workspace_id scoping, aggregation vs single project, and suggests using tapd_search_users and tapd_list_workspaces for preparation. Also explains pagination and sorting differences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_list_story_changes查询 TAPD 需求变更历史ARead-only
查询 TAPD 需求变更历史和字段级变更详情。story_id、created 与 id 至少提供一个;可按变更人、变更字段、变更类型过滤并自定义排序;include_details=true 时返回 field_changes 变更详情。
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | 可选,变更历史记录 ID(支持多 ID 查询),与 story_id/created 三选一必填 | |
| page | No | 页码,默认 1 | |
| limit | No | 返回数量上限,默认 30,最大 100 | |
| order | No | 可选,排序规则,格式「字段名 asc|desc」(如 created desc) | |
| created | No | 变更创建时间查询条件,与 story_id/id 三选一必填;可使用 TAPD 支持的时间查询语法 | |
| creator | No | 可选,变更人 TAPD nick | |
| story_id | No | TAPD 需求 ID,与 created/id 三选一必填 | |
| change_type | No | 可选,变更类型,取值见 TAPD 文档附录 | |
| change_field | No | 可选,变更字段名(如 status) | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| include_details | No | 是否请求字段级变更详情,映射 TAPD need_parse_changes=1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description's '查询' aligns with the readOnlyHint=true annotation. It adds a behavioral detail by mentioning that include_details=true maps to TAPD's need_parse_changes=1. No contradictions or hidden side effects are mentioned, but it could disclose more about response 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 is two sentences, front-loading the core purpose and then adding key usage constraints. Every sentence is informative 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?
Given 11 parameters and no output schema, the description covers the conditional requirement and filtering well. It hints at include_details behavior. However, it lacks description of the output structure (e.g., field_changes format) and pagination details beyond page/limit, which are more important for a list tool.
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 value by grouping the three mutually exclusive parameters and explaining the filtering options (e.g., by change type, field, creator). It also provides an example for 'order'. This goes beyond the schema's individual parameter descriptions.
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 queries TAPD story change history and field-level details. The verb '查询' and resource '需求变更历史' are specific, and it distinguishes from sibling tools like tapd_list_bugs or tapd_list_bug_changes by being story-specific.
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 explicitly states the mandatory condition (at least one of story_id, created, or id) and lists filtering options. However, it does not explicitly tell when not to use this tool or compare it with alternatives like tapd_list_bug_changes, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_list_story_test_cases查询需求关联测试用例ARead-only
查询指定 TAPD 需求直接关联的所有测试用例,支持按用例名称和状态在本地过滤
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | 可选,按测试用例名称本地过滤 | |
| limit | No | 返回数量上限,默认 100,最大 200 | |
| status | No | 可选,按测试用例状态本地过滤,如 normal、updating、abandon | |
| story_id | Yes | TAPD 需求 ID | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| include_test_plan | No | 是否包含测试计划关联,默认 true |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds that results are 'directly associated' and filtering is local ('本地过滤'), providing behavioral context beyond annotations.
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 efficiently conveys the tool's purpose and key behavior with 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 6 parameters and no output schema, the description is adequate but lacks details on return structure, pagination behavior, and the effect of include_test_plan, leaving some 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 coverage is 100%, so the schema already documents all parameters. The description adds little parameter-specific meaning beyond what is in the schema, so baseline 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 tool lists test cases associated with a TAPD story, with local filtering. It is distinct from sibling tools like tapd_list_bugs and tapd_list_stories.
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 for querying test cases by story, but does not explicitly state when to use it versus alternatives, nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_list_workspaces查询用户参与的 TAPD 项目ARead-only
查询指定用户参与的所有 TAPD 项目(workspace),默认查询当前登录用户。默认过滤掉 category=organization 的公司/组织条目,只返回可用于查询缺陷和需求的具体项目。当用户名下存在多个 workspace_id 时,可先用此工具拿到全部项目 ID;tapd_list_bugs / tapd_list_stories 在不传 workspace_id 时即会跨这些项目聚合查询。
| Name | Required | Description | Default |
|---|---|---|---|
| nick | No | 目标用户 TAPD nick,不传默认查询当前登录用户参与的项目;建议先用 tapd_search_users 确认 nick | |
| include_organization | No | 是否包含 category=organization 的公司/组织条目,默认 false(这些条目不是具体项目,无法直接查询缺陷) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description adds valuable behavioral context: default query for current user, automatic filtering of organization entries, and the relationship with sibling tools for aggregated queries. No contradictions.
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 concise and well-structured: three sentences that front-load the main purpose, then add filtering and usage context. Every sentence adds value 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?
The description covers the tool's purpose, defaults, filtering, and integration with sibling tools. However, it does not explicitly describe the output structure (e.g., that it returns workspace IDs or full project objects), which would add completeness. For a simple list tool with no output schema, this is adequate but not fully comprehensive.
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 the schema already documents both parameters. The description repeats some details (default user for nick, default false for include_organization) but adds minimal extra meaning beyond explaining the aggregation use case, which is covered in context.
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 lists TAPD projects for a user, distinguishes from siblings like tapd_list_bugs by explaining it provides workspace IDs for aggregated queries, and specifies default behavior and filtering of organization entries.
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 explicitly guides when to use this tool (to obtain workspace IDs, especially before calling tapd_list_bugs/stories without workspace_id), implies when not to use (if workspace IDs are known or need user nick lookup with tapd_search_users), and explains the default filtering behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_search_users搜索 TAPD 项目成员ARead-only
按姓名、TAPD nick 或邮箱搜索项目成员。需要更新 bug 处理人前,应先用该工具确认目标处理人的 nick。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回数量上限,默认 20,最大 50 | |
| keyword | No | 搜索关键词,可匹配中文名、TAPD nick 或邮箱;不传则返回项目成员列表前若干项 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description confirms the read-only nature already indicated by readOnlyHint annotation. It adds context about the purpose of searching to retrieve nick, but does not disclose other behavioral details beyond what annotations provide.
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 concise with only two sentences, front-loaded with the primary purpose and then a usage directive. Every sentence is necessary and impactful.
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, the description covers its primary function and usage context. It does not detail output format, but that is acceptable as output schema is absent. The description is fairly complete for an agent to decide when and how to use it.
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?
While schema descriptions cover all parameters, the tool description adds value by explaining the keyword parameter's matching behavior (name, nick, email) and the purpose of using the tool (to get nick for updates). This enhances understanding beyond 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 searches project members by name, TAPD nick, or email, and provides a specific use case of confirming a handler's nick before updating a bug. This distinguishes it from sibling tools like tapd_list_bugs or tapd_create_bug.
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 explicitly states when to use the tool: before updating a bug handler to confirm the target's nick. It implies usage within a workspace but does not explicitly list scenarios where it should not be used. Overall, it provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_upload_bug_attachment上传 TAPD 缺陷附件A
把文件上传到指定缺陷的附件区(支持 png/jpg/mp4 等任意类型,单文件 ≤250MB)。文件内容用 base64 传入(Agent 通常无本地路径)。录屏、视频等应走此工具而非内嵌描述。上传后可用 tapd_get_bugs 在附件区核对。
| Name | Required | Description | Default |
|---|---|---|---|
| bug_id | Yes | TAPD 缺陷 ID(附件挂载的工作项) | |
| filename | Yes | 文件名,含后缀(如 capture.png、record.mp4) | |
| confirmed | Yes | 必须为 true,表示用户已明确确认上传该附件 | |
| file_base64 | Yes | 文件内容的 base64 编码,可带或不带 data:URI 前缀 | |
| content_type | No | 可选,文件 MIME 类型,如 image/png、video/mp4 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses file size limit, supported types, and base64 requirement. Does not mention authentication, rate limits, or side effects beyond creating an attachment. Adequate but not exhaustive.
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?
Four concise sentences, front-loaded with core action and constraints. Every sentence adds value: type/size, encoding method, usage recommendation, and verification hint.
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?
Covers key aspects: what it does, input format, usage context. Lacks output/response details, but no output schema exists. Suggests verification via another tool. Sufficient for the tool's complexity.
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%, but description adds value: explains base64 encoding rationale, confirms boolean requirement, workspace_id lookup guidance. Exceeds baseline 3 by providing practical context.
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 uploads files to a bug's attachments, specifies supported types and constraints, and differentiates from siblings by noting that videos/screenshots should use this tool rather than embedding in descriptions.
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?
Provides explicit guidance: use base64 encoding (no local path), confirmed must be true, and videos/screenshots belong here. Also suggests verifying with tapd_get_bugs. Lacks explicit 'when not to use' but contrast with siblings is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_upload_bug_image上传 TAPD 缺陷描述内嵌图片A
上传图片到 TAPD 并返回 html_code( 片段),用于嵌入缺陷描述。仅支持 png/gif/jpg/jpeg/bmp、单张 ≤5MB。本工具只上传图片、不修改描述:拿到 html_code 后需自行用 tapd_get_bugs 取原描述、拼接后再调 tapd_writeback 的 description(或直接用 tapd_append_bug_description_image 一步完成)。
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | 文件名,后缀须为 png/gif/jpg/jpeg/bmp | |
| confirmed | Yes | 必须为 true,表示用户已明确确认上传该图片 | |
| file_base64 | Yes | 图片内容的 base64 编码,可带或不带 data:URI 前缀 | |
| content_type | No | 可选,图片 MIME 类型,如 image/png | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses supported image types, single file ≤5MB, no modification to description, and returns html_code. It does not mention rate limits or authentication needs, but these are implied. The description provides adequate transparency for a straightforward upload tool.
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: two sentences that cover purpose, constraints, and usage flow. No redundant information. Every sentence earns its place.
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 absence of annotations and output schema, the description is fairly complete. It covers purpose, parameter details, return value (html_code), and the required subsequent steps to complete the bug description update. It could mention potential limitations like rate limits, but overall it provides sufficient context for an agent to use the tool correctly.
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%, so baseline is 3. The description adds value by clarifying that file_base64 can include or omit the data:URI prefix, confirmed must be true, filename must have an appropriate suffix, and workspace_id can be obtained from other tools. This goes beyond the schema definitions.
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 uploads an image to TAPD and returns an HTML img fragment for embedding in bug descriptions. It specifies supported formats and size limits, and distinguishes from the sibling tool tapd_append_bug_description_image that performs the full workflow.
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?
Explicitly explains when to use this tool: it only uploads the image, does not modify the description. It tells the agent to manually fetch the description, concatenate the html_code, and write back using tapd_writeback, or alternatively use tapd_append_bug_description_image for a one-step process. This provides clear context vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_writeback更新 TAPD bugA
对 TAPD bug 执行一个或多个已确认操作:回填评论、更新标题、更新描述正文、更新状态、更新处理人,以及更新优先级、严重程度、模块、版本、迭代、排期、各类人员、工时、标签等标准字段和自定义字段。各功能相互独立且可自由组合,至少提供 comment、title、description、target_status、target_owners、标准字段或 custom_fields 之一。注意:各动作分多次请求提交、非事务,可能出现部分成功(结果会逐项标明成功/失败)。
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | 可选,抄送人。与处理人同为 TAPD 用户 nick,多个以分号分隔(如 a;b;) | |
| de | No | 可选,开发人员 TAPD nick | |
| os | No | 可选,操作系统 | |
| te | No | 可选,测试人员 TAPD nick | |
| due | No | 可选,预计结束日期(YYYY-MM-DD) | |
| size | No | 可选,规模 | |
| begin | No | 可选,预计开始日期(YYYY-MM-DD) | |
| fixer | No | 可选,修复人 TAPD nick | |
| label | No | 可选,标签,不存在时自动创建,多个以英文竖线(|)分隔 | |
| title | No | 可选,更新缺陷标题为该值 | |
| bug_id | Yes | TAPD bug ID | |
| closer | No | 可选,关闭人 TAPD nick | |
| effort | No | 可选,预估工时 | |
| module | No | 可选,模块 | |
| source | No | 可选,缺陷根源 | |
| auditer | No | 可选,审核人 TAPD nick | |
| bugtype | No | 可选,缺陷类型 | |
| comment | No | 可选,回填到 TAPD 的评论内容 | |
| feature | No | 可选,特性 | |
| deadline | No | 可选,解决期限(YYYY-MM-DD) | |
| estimate | No | 可选,预计解决时间 | |
| platform | No | 可选,软件平台 | |
| severity | No | 可选,严重程度 | |
| testmode | No | 可选,测试方式 | |
| testtype | No | 可选,测试类型 | |
| confirmed | Yes | 必须为 true,表示用户已明确确认本次评论、标题、描述、字段、状态变更和处理人变更 | |
| confirmer | No | 可选,验证人 TAPD nick | |
| frequency | No | 可选,重现规律 | |
| testphase | No | 可选,测试阶段 | |
| release_id | No | 可选,发布计划 ID | |
| resolution | No | 可选,解决方法 | |
| description | No | 可选,更新缺陷描述正文(支持 HTML 富文本)。注意:该字段会整体覆盖原描述,应先获取原描述并在其基础上修改后传入完整正文 | |
| originphase | No | 可选,发现阶段 | |
| sourcephase | No | 可选,引入阶段 | |
| version_fix | No | 可选,合入版本 | |
| iteration_id | No | 可选,迭代 ID | |
| participator | No | 可选,参与人。与处理人同为 TAPD 用户 nick,多个以分号分隔(如 a;b;) | |
| version_test | No | 可选,验证版本 | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| baseline_find | No | 可选,发现基线 | |
| baseline_join | No | 可选,合入基线 | |
| baseline_test | No | 可选,验证基线 | |
| custom_fields | No | 可选,自定义字段透传。key 为 TAPD 字段名(custom_field_*、cus_* 或 custom_plan_field_*),原样提交;具体字段名通过 TAPD 自定义字段配置接口获取 | |
| target_owners | No | 可选,将 bug 处理人更新为指定 TAPD 用户 nick 列表;应先调用 tapd_search_users 确认 | |
| target_status | No | 可选,将 bug 状态更新为 TAPD 工作流中的状态值,如 resolved;必须使用当前项目实际支持的状态枚举。写入前会校验是否为项目工作流合法状态,非法状态将被拒绝并返回可选状态清单 | |
| version_close | No | 可选,关闭版本 | |
| baseline_close | No | 可选,关闭基线 | |
| priority_label | No | 可选,优先级(对应 TAPD priority_label,兼容自定义优先级) | |
| version_report | No | 可选,发现版本 | |
| comment_root_id | No | 可选,评论的根评论 ID。传入时本条评论挂到该评论树下;需同时提供 comment | |
| comment_reply_id | No | 可选,被回复的评论 ID,表示本条评论是对它的回复;需同时提供 comment | |
| owner_update_mode | No | 可选,处理人更新方式。用户说“添加、加上、补上、也给”等追加语义时传 append;用户说“改为、替换为、转给、只保留”等替换语义时传 replace;不传默认 append |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses write operation, non-transactional multi-request behavior, partial success, and field-specific overwrite behavior (description field). With no annotations, description carries full burden and provides adequate behavioral context, though could mention more about permissions or rate limits.
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?
Description is concise and front-loaded with main purpose. Lists operations, then conditions, then warning in a clear structure. No wasted sentences, but could be slightly more efficient.
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 high complexity (52 params, 3 required) and no output schema, description covers what the tool does, constraints, and important behaviors (partial success, field overwrite, status validation). Could mention return format or error handling more, but adequate.
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 cover 100% of 52 parameters, so baseline is 3. Description adds high-level grouping and the constraint 'at least one of...' but does not significantly enhance meaning beyond the schema's parameter descriptions.
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 it updates TAPD bugs with multiple operations (comment, title, description, status, owners, fields). Verb '更新' and resource 'TAPD bug' are specific, distinguishing from sibling tools like tapd_create_bug (creation) and tapd_list_bugs (listing).
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?
Specifies required minimum inputs (at least one of comment, title, etc.) and notes non-transactionality with partial success. Provides context on when to use (updating a bug) but lacks explicit when-not-to-use or alternative tool references beyond implied sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tapd_writeback_story更新 TAPD 需求A
对 TAPD 需求执行一个或多个已确认操作:回填评论、更新描述正文、更新状态、更新处理人,以及更新标题、优先级、迭代、版本、工时、标签等标准字段和自定义字段。各功能相互独立且可自由组合,至少提供 comment、description、target_status、target_owners、标准字段或 custom_fields 之一。注意:各动作分多次请求提交、非事务,可能出现部分成功(结果会逐项标明成功/失败)。
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | 可选,抄送人。与处理人同为 TAPD 用户 nick,参考 owner 格式,多个以分号分隔(如 a;b;) | |
| due | No | 可选,预计结束日期(YYYY-MM-DD) | |
| name | No | 可选,更新需求标题 | |
| size | No | 可选,规模 | |
| type | No | 可选,类型 | |
| begin | No | 可选,预计开始日期(YYYY-MM-DD) | |
| label | No | 可选,标签,不存在时自动创建,多个以英文竖线(|)分隔 | |
| effort | No | 可选,预估工时 | |
| exceed | No | 可选,超出工时 | |
| module | No | 可选,模块 | |
| remain | No | 可选,剩余工时 | |
| source | No | 可选,来源 | |
| comment | No | 可选,回填到 TAPD 需求的评论内容 | |
| version | No | 可选,版本 | |
| story_id | Yes | TAPD 需求 ID | |
| confirmed | Yes | 必须为 true,表示用户已明确确认本次评论、描述、字段、状态变更和处理人变更 | |
| developer | No | 可选,开发人员。与处理人同为 TAPD 用户 nick,参考 owner 格式,多个以分号分隔(如 a;b;) | |
| release_id | No | 可选,发布计划 ID | |
| test_focus | No | 可选,测试重点 | |
| category_id | No | 可选,需求分类 ID | |
| description | No | 可选,更新需求描述正文(支持 HTML 富文本)。注意:该字段会整体覆盖原描述,应先获取原描述并在其基础上修改后传入完整正文 | |
| iteration_id | No | 可选,迭代 ID | |
| workspace_id | Yes | TAPD 项目 ID(必填)。可先用 tapd_list_bugs / tapd_list_stories 跨项目查询,或 tapd_list_workspaces 获取目标项目 ID | |
| custom_fields | No | 可选,自定义字段透传。key 为 TAPD 字段名(custom_field_*、cus_* 或 custom_plan_field_*),原样提交;具体字段名通过 TAPD 自定义字段配置接口获取 | |
| target_owners | No | 可选,将需求处理人更新为指定 TAPD 用户 nick 列表;应先调用 tapd_search_users 确认 | |
| target_status | No | 可选,将需求状态更新为 TAPD 工作流中的状态值;必须使用当前项目实际支持的状态枚举。写入前会校验是否为项目工作流合法状态,非法状态将被拒绝并返回可选状态清单 | |
| business_value | No | 可选,业务价值 | |
| priority_label | No | 可选,优先级(对应 TAPD priority_label,兼容自定义优先级) | |
| comment_root_id | No | 可选,评论的根评论 ID。传入时本条评论挂到该评论树下;需同时提供 comment | |
| comment_reply_id | No | 可选,被回复的评论 ID,表示本条评论是对它的回复;需同时提供 comment | |
| effort_completed | No | 可选,完成工时 | |
| owner_update_mode | No | 可选,处理人更新方式。用户说“添加、加上、补上、也给”等追加语义时传 append;用户说“改为、替换为、转给、只保留”等替换语义时传 replace;不传默认 append | |
| is_auto_close_task | No | 可选,流转到结束状态时是否自动关闭关联任务(仅 0/1,1 关闭,默认 0)。仅在本次同时变更状态时生效,需与 target_status 一起提交 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses non-transactional behavior, partial success, and that description field overwrites. Additional details about confirmed flag and owner update modes are included. No contradictions.
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 concise (3-4 sentences) with front-loaded key actions. Every sentence adds value: enumerating operations, noting independence, warning about non-transactionality. No redundant or filler 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?
Given 33 parameters, no output schema, and no annotations, the description is fairly complete. It covers overall behavior, partial success, and field specifics. Could mention return format or authentication needs, but sufficient for an agent to use the tool correctly.
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 is 3. The description adds extra meaning beyond schema: explains 'confirmed' must be true, 'description' overwrites, 'owner_update_mode' semantics, and 'is_auto_close_task' requires target_status. This provides valuable context for proper usage.
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 TAPD stories with multiple confirmed operations (comment, description, status, owners, fields), distinguishing it from sibling tools that list, create, or get stories. The verb '更新' and resource 'TAPD 需求' are specific.
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 explains that operations are independent, combinable, and non-transactional (partial success possible). It lists required parameters and warns about description overwriting. However, it does not explicitly compare to alternatives or give when-not-to-use scenarios.
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. Dates show when Glama detected each change.
18 tool updates
v1.0.8- First observed
tapd_append_bug_description_image - First observed
tapd_call_api - First observed
tapd_create_bug - First observed
tapd_create_story - First observed
tapd_get_bugs - First observed
tapd_get_stories - First observed
tapd_list_bug_changes - First observed
tapd_list_bugs - First observed
tapd_list_iterations - First observed
tapd_list_stories - First observed
tapd_list_story_changes - First observed
tapd_list_story_test_cases - First observed
tapd_list_workspaces - First observed
tapd_search_users - First observed
tapd_upload_bug_attachment - First observed
tapd_upload_bug_image - First observed
tapd_writeback - First observed
tapd_writeback_story
TDQS
Each tool targets a specific resource (bugs, stories, workspaces, iterations, users) or action (list, get, create, update, upload, append, search, call). Even similar tools like tapd_list_bugs and tapd_get_bugs are clearly differentiated by level of detail. No ambiguity.
All tools follow the consistent pattern 'tapd_verb_noun' with snake_case. Verbs like list, get, create, upload, append, writeback, search are applied uniformly. The only compound verb 'append_bug_description_image' is still clear and follows the same structure.
18 tools is well-scoped for a TAPD management server covering bugs, stories, workspaces, iterations, users, file operations, and a generic API fallback. It provides adequate depth without being overwhelming.
The toolset covers most lifecycle operations for bugs and stories (create, read, update, list, history, attachments). However, delete operations are missing from dedicated tools, relying on the generic tapd_call_api which requires additional configuration. This is a minor gap.
Maintenance
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
Manage projects, tasks, time tracking, and team collaboration through natural language.
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Capture feature requests and bug reports from chat into a searchable, AI-categorized backlog.
Related MCP Servers
- AlicenseBqualityDmaintenanceIntegrates Tududi task management with AI development tools, enabling users to create, update, search, and organize tasks, projects, and areas directly from their IDE.95MIT
- FlicenseAqualityAmaintenanceEnables interaction with ZenTao project management system through RESTful APIs. Supports listing products, managing bugs, viewing statistics, and filtering personal bug assignments through natural language.42115-
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to manage Zentao bugs, requirements, and test cases through natural language interactions. It supports querying, creating, and updating various Zentao data entities including products, projects, and executions.611-
- FlicenseNot gradedqualityDmaintenanceIntegrates with the Tencent Agile Product Development (TAPD) platform to manage requirements, tasks, defects, and iterations through natural language. It enables seamless agile project management workflows using API access tokens or account credentials.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/sun-jingtao/tapd-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server