PingCode MCP
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., "@PingCode MCPlist my new defects"
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.
PingCode MCP
PingCode MCP 是一个开源(MIT)的 MCP Server,让 Cursor / Claude Code / Codex 等客户端通过自然语言读取和维护 PingCode 项目工作项(缺陷 / 需求)。
通过环境变量配置你自己的 PingCode 租户与凭据,示例:
租户:
https://<your-domain>.pingcode.com项目标识:
<PROJECT_KEY>缺陷视图:
/pjm/projects/<PROJECT_KEY>/defect/<view_id>需求视图:
/pjm/projects/<PROJECT_KEY>/backlog/<view_id>
文中所有租户、项目标识、人名均为占位示例,请替换为你自己的值。
能力
拉取缺陷列表。
拉取需求清单。
按当前使用者默认负责人拉取“我的缺陷 / 我的需求”。
解析富文本描述中的图片数量和图片源地址。
从
.xlsx/.csv导入缺陷。从
.xlsx/.csv导入需求。修改单个缺陷状态。
修复后批量把缺陷从
新提交标记为已修复。给缺陷/需求追加评论,或在标记已修复时顺带评论。
修改单个需求状态。
查询项目 schema:工作项类型、状态、优先级、成员。
获取单条工作项完整详情(描述/图片/时间/父项/属性/可选评论)。
统一搜索缺陷+需求(状态/优先级/负责人/关键词/更新时间范围/分页)。
只读预览状态变更计划(基于工作流预检合法流转);安全编辑字段;一句话分诊(triage)。
单条创建缺陷/需求;按编号原生批量改优先级/负责人/状态。
在工作项间建立/删除/查看关系(阻塞/被阻塞/重复/关联/依赖等)。
个人工作台:聚合当前负责人的缺陷+需求并按状态分组。
Related MCP server: PingCode MCP Server
安装
npm install
npm run build本地开发:
npm run dev构建后运行:
npm start环境变量
复制 .env.example 为 .env,或者在 MCP 客户端配置里设置 env。
PINGCODE_BASE_URL=https://your-domain.pingcode.com
PINGCODE_API_BASE_URL=https://open.pingcode.com
PINGCODE_CLIENT_ID=每个人自己的 Client ID
PINGCODE_CLIENT_SECRET=每个人自己的 Client Secret
# 也可以直接填官方 Open API access_token,二选一即可
PINGCODE_ACCESS_TOKEN=
PINGCODE_AUTH_SCHEME=Bearer
# 用户态 OAuth(可选):配置 Client ID/Secret 后即可用 pingcode_auth_login 浏览器授权
PINGCODE_OAUTH_AUTHORIZE_URL=
PINGCODE_OAUTH_REDIRECT_URI=
PINGCODE_AUTH_TOKEN_PATH=
PINGCODE_PROJECT_IDENTIFIER=PROJECT_KEY
PINGCODE_DEFAULT_ASSIGNEE_NAME=每个人自己的 PingCode 展示名
PINGCODE_BUG_TYPE_ID=bug
PINGCODE_REQUIREMENT_TYPE_ID=
PINGCODE_READONLY=falsePINGCODE_OAUTH_AUTHORIZE_URL:浏览器授权地址,缺省为${PINGCODE_BASE_URL}/oauth2/authorize。PINGCODE_OAUTH_REDIRECT_URI:授权回调地址,须与 PingCode 后台凭据管理里配置的一致。PINGCODE_AUTH_TOKEN_PATH:用户态 token 存放路径,缺省为${XDG_CONFIG_HOME 或 ~/.config}/pingcode-mcp/auth.json(文件权限 0600)。
推荐使用 PingCode 后台创建的 Client Credentials 应用。不要提交真实 .env,不要把 client_secret、token、cookie 发到聊天里。
PINGCODE_DEFAULT_ASSIGNEE_NAME 用于“我的缺陷 / 我的需求”工具。每个同事填自己的 PingCode 展示名,例如 张三、李四。Client Credentials 是应用身份,不代表当前登录用户,所以这里必须显式配置默认负责人。
PingCode SaaS 的 Open API 地址使用 https://open.pingcode.com;私有化部署再按实际地址改成 https://your-domain/open。
鉴权方式
服务端按以下优先级选择凭据,前一级可用就不再往下走:
用户态 OAuth token(最高):
pingcode_auth_login浏览器授权后保存在本地 0600 文件里的用户令牌。过期且带 refresh_token 时自动刷新;刷新失败则回退下一级。代表"当前登录用户本人",pingcode_get_current_user/pingcode_list_my_bugs/pingcode_list_my_requirements会自动识别你本人,无需手填默认负责人。PINGCODE_ACCESS_TOKEN:直接配置的官方 Open API access_token。client_credentials:用
PINGCODE_CLIENT_ID+PINGCODE_CLIENT_SECRET换取的应用身份 token(带进程内缓存)。应用身份没有"当前登录用户",所以此模式下"我的工作项"需要PINGCODE_DEFAULT_ASSIGNEE_NAME。
用户授权(OAuth)
需要先配置 PINGCODE_CLIENT_ID / PINGCODE_CLIENT_SECRET,并在 PingCode 后台凭据管理里设置好 redirect_uri。授权分两步(手动粘贴 code):
调用
pingcode_auth_login(不传code):返回授权 URL 与引导。登录 PingCode在浏览器打开授权 URL,用本人账号登录授权,从回调地址栏复制
code,再次调用并传入:{ "code": "<回调地址里的 code>" }成功后保存用户令牌(本地 0600 文件)并返回当前用户。
辅助工具:
pingcode_auth_status:查看当前鉴权模式(user/env-token/application)、是否已授权、相对过期秒数、当前用户。不返回任何 token。pingcode_auth_logout:清除本地保存的用户态 token。
安全说明
用户态 token / refresh_token 只写入本地文件,权限
0600,进程内缓存仅当前进程可见。服务端不读取浏览器 cookie / localStorage / sessionStorage,也不要把网页登录的 token 贴进聊天——只用授权回调里的
code换取令牌。任何工具返回值与日志都不包含 access token / refresh token / client_secret;
pingcode_auth_status只给相对过期秒数。
团队使用方式
每个同事本地配置同一个 MCP Server,但使用自己的环境变量:
{
"PINGCODE_CLIENT_ID": "同事自己的 Client ID",
"PINGCODE_CLIENT_SECRET": "同事自己的 Client Secret",
"PINGCODE_DEFAULT_ASSIGNEE_NAME": "同事自己的 PingCode 展示名"
}配置后可以直接问:
拉取我的新提交缺陷
拉取我的进行中需求
把 PROJ-123 从新提交改成已修复并评论:已修复,待回归如果团队希望所有人共用一个应用凭据,也可以共用 PINGCODE_CLIENT_ID/SECRET,但 PINGCODE_DEFAULT_ASSIGNEE_NAME 仍然必须每个人单独填写。
首次使用引导
当同事第一次使用或配置不完整时,让 AI 先调用:
检查 PingCode MCP 配置对应工具是 pingcode_check_setup。它会返回:
缺哪些环境变量。
哪些信息可以直接在聊天框填写。
哪些是敏感信息,只能填到本地 MCP env。
每个信息在 PingCode 哪里找。
可复制的 env 模板。
nextStep:当前缺哪一步(配置凭据 / 配置项目 / 浏览器授权)与下一步可执行动作(含pingcode_auth_login指令)。mcpClientConfig:可直接复制的 MCP 客户端配置块(npmPackage与localSource两种,凭据已打码、本地源码方式自动填好dist/index.js绝对路径)。粘进客户端配置、填好 Client ID / Client Secret 并重启会话即可使用。
示例追问:
我需要先完成 PingCode MCP 配置。请在聊天框告诉我:
1. PingCode 租户地址,例如 https://xxx.pingcode.com
2. 项目标识,例如 /pjm/projects/PROJ/... 里的 PROJ
3. 你的 PingCode 展示名,也就是负责人列显示的名字
Client ID / Client Secret 请去 PingCode 右上角头像 -> 管理后台 -> 凭据管理/凭证管理 -> 应用里查看,并填到本地 MCP env,不要发到公共聊天。MCP 客户端配置
使用本地源码
{
"mcpServers": {
"pingcode": {
"command": "node",
"args": ["/ABSOLUTE_PATH/pingcode-mcp/dist/index.js"],
"env": {
"PINGCODE_BASE_URL": "https://your-domain.pingcode.com",
"PINGCODE_API_BASE_URL": "https://open.pingcode.com",
"PINGCODE_CLIENT_ID": "每个人自己的 Client ID",
"PINGCODE_CLIENT_SECRET": "每个人自己的 Client Secret",
"PINGCODE_PROJECT_IDENTIFIER": "PROJECT_KEY",
"PINGCODE_DEFAULT_ASSIGNEE_NAME": "每个人自己的 PingCode 展示名"
}
}
}
}发布 npm 包后
{
"mcpServers": {
"pingcode": {
"command": "npx",
"args": ["-y", "@succaiss/pingcode-mcp"],
"env": {
"PINGCODE_BASE_URL": "https://your-domain.pingcode.com",
"PINGCODE_API_BASE_URL": "https://open.pingcode.com",
"PINGCODE_CLIENT_ID": "每个人自己的 Client ID",
"PINGCODE_CLIENT_SECRET": "每个人自己的 Client Secret",
"PINGCODE_PROJECT_IDENTIFIER": "PROJECT_KEY",
"PINGCODE_DEFAULT_ASSIGNEE_NAME": "每个人自己的 PingCode 展示名"
}
}
}
}Tools
Tool | 说明 |
| 检查配置并返回聊天框追问清单、信息查找位置、env 模板 |
| 获取项目、类型、状态、优先级、成员 |
| 获取当前企业/团队信息(只读) |
| 获取当前用户(只读);应用身份下自动降级为配置的默认负责人 |
| 用户态浏览器授权登录(OAuth);不传 code 返回授权 URL,传 code 完成登录。不返回 token |
| 查看鉴权状态(user / env-token / application)、是否已授权、相对过期秒数、当前用户。不返回 token |
| 清除本地保存的用户态 token |
| 查询企业成员列表(只读),支持关键字 + 部门 ID(≤20)过滤、分页 |
| 拉取缺陷列表 |
| 拉取需求清单 |
| 按 |
| 按 |
| 导入缺陷表,默认 dry-run |
| 导入需求表,默认 dry-run |
| 修改单个缺陷状态 |
| 修复后批量把缺陷从 |
| 给缺陷/需求追加评论,默认 dry-run |
| 获取缺陷/需求评论列表 |
| 修改单个需求状态 |
| 按编号或工作项 ID 获取单条详情(描述/图片/时间/父项/属性,可选评论) |
| 统一搜索缺陷+需求,支持状态/优先级/负责人/关键词/更新时间范围/分页 |
| 只读返回状态变更计划(当前/目标/可用状态/保护条件),永不执行 |
| 安全编辑字段(标题/描述/优先级/负责人/父项/属性),默认 dry-run |
| 组合分诊:改负责人+优先级+状态+评论,默认 dry-run |
| 单条创建缺陷/需求(标题必填 + 描述/优先级/负责人/父项/属性),默认 dry-run |
| 按编号批量改优先级/负责人/状态(原生 bulk,≤100,planned/skipped/failed),默认 dry-run |
| 在两个工作项间建立关系(阻塞/被阻塞/重复/关联/依赖等),默认 dry-run |
| 按 relationId 删除工作项的某条关系(relationId 来自列关系工具),默认 dry-run |
| 列出工作项的全部关系(可按 relationType 过滤),返回每条关系的 id 与目标 |
| 聚合当前负责人的缺陷+需求并按状态分组(每组带计数、按 ID 去重),只读 |
表格模板
缺陷表字段:
编号, 标题, 状态, 优先级, 负责人, 父工作项, 描述需求表字段:
编号, 标题, 状态, 负责人, 优先级, 父工作项, 需求类型, 创建时间, 描述示例文件在 examples/ 目录。
富文本图片
pingcode_list_bugs / pingcode_list_requirements 会返回 imageCount 和 imageSources,用于识别详情描述里的图片。
图片二进制下载需要 PingCode 的 public_image_token。SaaS Open API 可通过 includePublicImageToken=true 请求该字段,但在部分 Client Credentials 场景下 PingCode 可能返回 null。这种情况下需要使用已登录用户态页面生成的临时图片 token 下载,且不要把 token 写入表格、日志或聊天。
修复后变更状态
修完 bug 后推荐使用 pingcode_mark_bugs_fixed,默认只处理当前状态仍为 新提交 的缺陷,并把目标状态设为 已修复。
先 dry-run:
{
"identifiers": ["PROJ-505", "PROJ-503"],
"dryRun": true
}确认计划无误后再执行:
{
"identifiers": ["PROJ-505", "PROJ-503"],
"comment": "已修复,相关改动已提交,待回归验证。",
"dryRun": false
}如果某条缺陷已经不是 新提交,工具会跳过并返回 skipped,避免覆盖同事已经处理过的状态。
评论
单独追加评论时,先 dry-run:
{
"kind": "bug",
"identifier": "PROJ-505",
"content": "已修复,待回归验证。",
"dryRun": true
}确认后再执行:
{
"kind": "bug",
"identifier": "PROJ-505",
"content": "已修复,待回归验证。",
"dryRun": false
}PingCode 评论资源使用 principal_type=work_item 和工作项 ID 绑定。若 Client Credentials 写评论返回权限不足,需要在 PingCode 后台确认评论写入权限,或改用支持用户身份的授权方式。
闭环工作台用法
新增 5 个工具把 pingcode-mcp 从"动作集合"升级为"研发日常闭环"。所有写工具默认 dryRun=true:AI 先回计划,确认后再带 dryRun:false 执行。
看详情
看一下 PROJ-455 的详情,把评论也带上对应 pingcode_get_work_item(includeComments=true),返回完整描述、图片地址、创建/更新时间、父项、自定义属性与评论。
统一搜索
搜本周更新过的、状态是已修复的缺陷和需求对应 pingcode_search_work_items,一次跨缺陷+需求搜索,支持 stateNames / priorityNames / assigneeNames / keywords / updatedAfter / updatedBefore / 分页。updatedAfter / updatedBefore 映射为 PingCode 服务端 updated_between 过滤。结果按工作项 id 去重。
raw 过滤(精确按 ID)
当已知确切 ID 时,可在统一搜索里直接传 raw 过滤,与按名称过滤可同时使用:
ID 列表(数组,每个字段 ≤20):
projectIds/typeIds/parentIds/assigneeIds/stateIds/priorityIds/tagIds/sprintIds/boardIds/entryIds/swimlaneIds/phaseIds/versionIds/createdByIds。其中projectIds/typeIds/stateIds/priorityIds/assigneeIds会与对应的 name 解析结果合并、去重,并截断到 ≤20。单值:
participantId(参与人)。时间范围:
createdBetween/startBetween/endBetween,格式为秒级时间戳起,止,支持单边,如1700000000,或,1700000000。布尔:
includeDeleted/includeArchived,默认false。
示例:
{
"kinds": ["bug"],
"assigneeNames": ["张三"],
"sprintIds": ["6xxxxxxxxxxxxxxxxxxxxxxx"],
"createdBetween": "1717200000,1717804800"
}自然语言示例:
查张三名下、某个迭代里、本周创建的缺陷
看技术部有哪些成员
当前连的是哪个企业「查张三名下、某迭代、本周创建的缺陷」→
pingcode_search_work_items(assigneeNames+sprintIds+createdBetween)。「看技术部有哪些成员」→
pingcode_get_team_members(keywords或departmentIds)。「当前连的是哪个企业」→
pingcode_get_current_team。
先看流转计划再改
PROJ-455 想改成已验收,先给我看会发生什么对应 pingcode_plan_status_change,只读返回当前状态、目标状态、该类型可用状态列表、expectedCurrentStatusName 是否满足。确认后再走写工具。
安全编辑字段
先 dry-run:
{ "identifier": "PROJ-455", "priorityName": "最高", "assigneeName": "张三", "dryRun": true }对应 pingcode_update_work_item_fields,返回字段级 diff(仅变化的字段进入 PATCH)。确认后传 dryRun:false。字段无变化时 noChange=true 自动跳过写入;expectedCurrentStatusName 不匹配则拒绝。
一句话分诊(triage)
{ "identifier": "PROJ-455", "assigneeName": "张三", "statusName": "处理中", "expectedCurrentStatusName": "新提交", "comment": "【接单】已接手处理,开始排查。", "dryRun": true }对应 pingcode_triage_work_item,把改负责人 + 改优先级 + 改状态合并为一次 PATCH,再追加评论。expectedCurrentStatusName 不匹配则整单拒绝、不部分执行。
单条创建
新建一个 bug:登录页验证码不刷新,优先级最高,指派给张三对应 pingcode_create_work_item,按标题(必填)+ 描述/优先级/负责人/父项/属性创建一条缺陷或需求。dryRun=true(默认)只回创建计划;确认后传 dryRun:false 落库,返回新工作项编号。statusName 建议不传,由 PingCode 用类型默认初始态,避免初始状态被工作流校验拒绝。
原生批量更新
把 PROJ-505 PROJ-503 PROJ-501 批量改成已修复,只动当前还是处理中的对应 pingcode_bulk_update_work_items,用 PingCode 原生 bulk 端点(单次 ≤100)批量改优先级/负责人/状态。沿用 planned/skipped/failed 模式,expectedCurrentStatusName 不匹配的条目自动跳过,防止覆盖同事改动。dryRun=true(默认)只回计划;每个变更字段执行时各发一次 bulk 请求。
状态流转预检(已升级)
pingcode_plan_status_change 现在会基于 PingCode 工作流(work_item_state_plans + work_item_state_flows)返回 allowedTransitions(当前状态可合法流转到的目标)与 transitionAllowed(请求的目标是否被允许)。解析不到状态方案时回退为列出全部状态,并在 note 标注未能预检。本工具仍为只读。
triage 评论模板
供 comment 字段直接复制,{} 为占位变量,按上下文填充:
动作 | 模板 |
接单(→ 处理中) |
|
处理中(开始定位) |
|
修复待回归(→ 已修复) |
|
需求进入开发(→ 开发中) |
|
回归打回(→ 处理中) |
|
关系 / 依赖
在工作项之间建立、删除、查看关系(阻塞 / 被阻塞 / 重复 / 关联 / 因果 / 克隆 / 依赖等)。
方向语义
关系记录在「源工作项」上,方向以源 → 目标理解:
block:源 阻塞 目标(目标要等源完成)。blocked_by:源 被 目标阻塞。cause/caused_by:源 引发 目标 / 源 由 目标引发。clone/cloned_by:源 克隆出 目标 / 源 是 目标的克隆。relate:双向关联。duplicate:源与目标重复。dependency:依赖。mention:提及。
relationType 取值
系统枚举(直接填):
block/blocked_by/relate/duplicate/cause/caused_by/clone/cloned_by/dependency/mention。自定义关系类型:可直接填关系类型的名称或 ID,工具会调用
/relation_types端点按 id / name / category 解析为 ID;解析失败时回退原值,交给服务端校验。
建立关系(link)
pingcode_link_work_items 默认 dryRun=true,先回计划,确认后传 dryRun:false 才真正创建。
先 dry-run:
{ "identifier": "PROJ-1", "targetIdentifier": "PROJ-2", "relationType": "block", "dryRun": true }确认后执行(表示 PROJ-1 阻塞 PROJ-2):
{ "identifier": "PROJ-1", "targetIdentifier": "PROJ-2", "relationType": "block", "dryRun": false }源工作项用 identifier 或 workItemId 定位;目标用 targetIdentifier 或 targetWorkItemId,两者都解析不到目标时报「未找到目标工作项」。
列出关系(list)
pingcode_list_work_item_relations 只读,返回每条关系的 id(删除时需要)与目标工作项,可按 relationType 过滤。
{ "identifier": "PROJ-1" }删除关系(unlink)
删除前必须先用「列出关系」拿到目标关系的 relationId。pingcode_unlink_work_items 默认 dryRun=true。
{ "identifier": "PROJ-1", "relationId": "<来自 list 的关系 id>", "dryRun": false }个人工作台
pingcode_get_my_work 只读:把当前负责人名下的缺陷与需求聚合起来,按状态分组返回,每组带计数,跨缺陷/需求按工作项 ID 去重。
负责人优先用入参
assigneeName,缺省则回退PINGCODE_DEFAULT_ASSIGNEE_NAME,两者都没有时报错。kinds默认["bug","requirement"];可加stateNames/updatedAfter/updatedBefore/pageSize过滤。返回结构:
{ assigneeName, total, groups: [{ status, count, items }] },无状态名的归入未分组。
自然语言示例:
看我手上的活按状态分组
把 PROJ-1 标记为阻塞 PROJ-2
列出 PROJ-1 的所有关系「看我手上的活按状态分组」→
pingcode_get_my_work。「把 PROJ-1 标记为阻塞 PROJ-2」→
pingcode_link_work_items(relationType=block,先 dry-run 再dryRun:false)。「列出 PROJ-1 的所有关系」→
pingcode_list_work_item_relations。
Roadmap
以下能力尚未实现,仅作规划,欢迎按需推进。
P1
changelog / 变更历史工具(PingCode
transition_histories仅状态流转、activities标"开发中",响应字段未文档化,需实测后再做)。saved filters(本地保存常用搜索条件,如"我的待回归")。
JQL-like 查询 DSL(降级到现有结构化参数)。
导出 Markdown / CSV / JSON 工具。
图片安全下载工具(受控目录/大小,过滤外链)。
AI prompt 模板工具(评论/周报/triage)。
迭代/版本/标签/关注人、附件上下传(PingCode 均有原生 API,待按需实现)。
P2
webhook / 增量同步(PingCode Open API 不提供 webhook,只能用
updated_between轮询游标降级实现)。本地 cache(缓存 schema:类型/状态/优先级/成员,TTL 失效)。
重复缺陷识别。
周报生成。
权限诊断(探测当前 token 对写操作的实际权限)。
MCP audit log 可视化。
能力边界与降级说明
不要把 Jira 的概念硬套到 PingCode:
状态流转无工作流校验:PingCode 没有 Jira 式 transition 执行 + 合法性校验端点。
pingcode_plan_status_change只能展示当前/目标/可用状态,不保证目标转换被工作流允许,实际 PATCH 可能被后端拒绝。无乐观锁版本号:PingCode 工作项无 version/etag。本工具用
expectedCurrentStatusName+ 写前比对(字段无变化跳过)做弱幂等,并发覆盖风险无法从 API 层根治。identifier 与内部 ID 不同:单条详情端点按内部 ID 寻址;传 identifier 时会先解析为内部 ID 再取详情。
评论富文本/图片:评论
content格式未文档化,建议按纯文本传入;public_image_token在 Client Credentials 下常返回 null,图片只解析imageSourcesURL,二进制下载进 Roadmap。
安全策略
client_secret和 token 只从环境变量读取。返回结果不包含
client_secret、token、cookie。导入默认
dryRun=true。PINGCODE_READONLY=true时禁止创建和更新。批量状态更新默认
dryRun=true,并支持当前状态保护。新增写工具
pingcode_update_work_item_fields/pingcode_triage_work_item/pingcode_link_work_items/pingcode_unlink_work_items默认dryRun=true,写前统一经过assertWritable,PINGCODE_READONLY=true时拒绝。错误只返回 message,不回传 PingCode 原始响应体、token 或
client_secret。
发布说明(mcp.so / npm)
发布到 mcp.so 或 npm 时只发布通用说明与占位示例,不要写入任何真实租户地址、Client Secret、access token、cookie 或私有部署细节。
英文简介(可用于 mcp.so):
PingCode MCP server for project work items. List/search bugs and requirements, view item detail and images, create and edit items, plan/triage status changes (with workflow pre-check), native bulk updates, manage relations, comments, a personal work queue, and directory lookups. Supports client-credentials, access-token, and user-mode OAuth (browser login) — configured per user via environment variables.贡献与开发
npm install
npm run check # 类型检查
npm run build # 构建到 dist/
npm test # 运行测试(node:test)欢迎提 Issue / PR。请勿在 Issue、PR、提交或日志中粘贴任何真实凭据。
License
MIT © succAIss
Available Tools
30 toolspingcode_add_work_item_commentAdd PingCode Work Item CommentA
按编号或工作项 ID 给 PingCode 缺陷/需求追加评论。默认 dryRun=true。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| dryRun | No | 默认 true,仅返回计划;传 false 才真正写评论。 | |
| content | Yes | 评论内容,支持 PingCode 评论富文本/文本内容。 | |
| projectId | No | ||
| identifier | No | 工作项编号,如 PROJ-505。 | |
| workItemId | No | PingCode 工作项内部 ID。 | |
| projectIdentifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It discloses the dryRun default and its effect (return plan vs. actual write). It does not mention authentication requirements, idempotency, error behavior, or rate limits. The description adds minimal value beyond the schema, which already describes dryRun in detail.
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 conveys the core purpose and a key behavioral note (dryRun default). It is extremely concise with no extraneous 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 7 parameters, no output schema, and no annotations, the description is somewhat thin. It covers the main action and the important dryRun behavior but lacks information about return values, prerequisites (e.g., authentication), and error handling. It is adequate 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 coverage is 71% (5 of 7 parameters have descriptions). The description adds that the tool works 'by number or work item ID', which summarizes the identifier and workItemId parameters but does not provide new information beyond the schema. The missing parameter descriptions (projectId, projectIdentifier) are not addressed. Thus, marginal added value.
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 that the tool adds comments to PingCode bugs or requirements using either a number or work item ID. It differentiates from sibling tools like pingcode_get_work_item or pingcode_create_work_item by specifying the exact action (adding a comment) and the target types (bugs/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?
The description explicitly mentions the default dryRun=true, indicating that by default no comment is actually added, guiding the agent to set dryRun=false for actual writes. However, it does not explicitly state when not to use this tool or mention alternatives like pingcode_list_work_item_comments for reading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_auth_loginPingCode User Login (OAuth)A
用户态浏览器授权登录。不传 code:返回授权 URL 与引导,请去浏览器打开并登录授权,再从回调地址复制 code 回来;传 code:用授权码换取并保存用户令牌(0600 本地文件),返回当前用户。不读取浏览器 cookie/storage,不要把网页登录 token 贴进聊天。
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | 浏览器授权回调 URL 中的 code 参数;不传则返回授权 URL 与引导。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool does not read browser cookies/storage, saves user token to a local file with 0600 permissions, and explains the two-step flow. With no annotations provided, the description carries full burden and covers key behaviors.
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, stating the purpose first then detailing the two scenarios. 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?
Given one optional parameter and no output schema or annotations, the description adequately covers the tool's behavior for both input cases. It could optionally mention the structure of the returned current user object.
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?
Input schema has 100% coverage for the single 'code' parameter. Description adds meaning by explaining the two modes (with/without code) and what the code represents, going beyond the schema description.
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 the tool is for user-space browser authorization login, using specific verb (login) and resource (PingCode user auth). It distinguishes from siblings like pingcode_auth_status and pingcode_auth_logout by focusing on the login step.
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?
Description explains two usage modes: without code to get authorization URL, with code to complete login. It also warns not to paste web login token. However, it doesn't explicitly mention when to use alternatives like auth_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_auth_logoutPingCode Auth LogoutA
清除本地保存的用户态 token(删除 0600 token 文件)。
| 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 discloses the destructive action of deleting a token file with permission 0600, which is transparent. It could be improved by noting the effect on the authenticated session, but it is adequately transparent for a logout action.
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 wasted word. It is front-loaded with the action verb, making the purpose immediately clear. Every part 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 no parameters and no output schema, the description covers the essential information. It could be more complete by mentioning that this ends the authenticated session, but it is sufficient for a simple logout operation.
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, so the schema already fully defines the interface. The description does not need to add parameter semantics, and it appropriately omits any. Baseline 4 for zero 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 the action: clearing the locally saved user state token by deleting a specific file (0600 token file). This verb-resource combination is specific and distinguishes it from sibling tools like 'pingcode_auth_login' and 'pingcode_auth_status'.
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. It does not mention prerequisites, such as needing to be logged in, or that it will end the authenticated session. The context of use is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_auth_statusPingCode Auth StatusA
查询当前鉴权状态:模式(user / env-token / application)、是否已授权、相对过期秒数、当前用户。不返回任何 token。
| 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 the full burden. It discloses what is returned and explicitly states it does not return any token, which is a safety note. It lacks detail on side effects or permissions, but for a read-only status check, this is adequate.
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, front-loaded sentence that conveys all necessary information without redundancy. Every word 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 no output schema, the description fully explains the return values (mode, authorization status, expiration seconds, current user). For a simple tool with no parameters, this is 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?
The input schema has no parameters, and schema coverage is 100%. The description does not need to add parameter info, so a baseline score of 4 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: querying authentication status, including mode, authorization status, expiration seconds, and current user. It distinguishes itself from siblings like pingcode_auth_login and pingcode_auth_logout by specifying it does not return tokens.
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 checking auth status but provides no explicit guidance on when to use this tool versus alternatives. No exclusions or context for 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.
pingcode_bulk_update_work_itemsBulk Update PingCode Work ItemsA
用原生批量端点为多个工作项编号批量改优先级/负责人/状态。默认 dryRun=true,支持 expectedCurrentStatusName 跳过不匹配项;每个变更字段各发一次 bulk PATCH。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| dryRun | No | 默认 true,仅返回计划;传 false 才执行。 | |
| stateId | No | 目标状态 ID;提供后优先于 statusName。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| statusName | No | 目标状态名称。 | |
| identifiers | Yes | 要批量更新的工作项编号列表,≤100。 | |
| assigneeName | No | 目标负责人姓名。 | |
| priorityName | No | 目标优先级名称。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| expectedCurrentStatusName | No | 当前状态保护:不匹配的条目被跳过。 |
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 discloses that dryRun=true by default (safety) and that each field change triggers a separate bulk PATCH. However, it lacks explicit details on authorization needs, rate limits, or reversibility of changes.
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, followed by key behavioral details. Every part serves a function; 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?
For a 10-parameter tool with no output schema, the description covers the bulk operation pattern, dry run, and field-level updates. It could note return format or error handling but is sufficient for agent decision-making.
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 all parameters described. The description adds value by explaining overarching behavior (dryRun default, field-level PATCHes, expectedCurrentStatusName role) beyond 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 it's for bulk updating work items (priority/assignee/status) using the native bulk endpoint, differentiating it from single-update siblings like pingcode_update_bug_status.
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 dryRun default and expectedCurrentStatusName, but does not explicitly state when to use this tool versus alternatives like single-update tools. Usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_check_setupCheck PingCode MCP SetupA
检查 PingCode MCP 配置是否完整,并返回需要在聊天框向使用者询问的信息、每个信息去哪里找、以及 env 配置模板。
| 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 states the tool 'checks' configuration, but does not disclose whether it has side effects, requires authentication, or has any rate limits. It only describes what it returns, not behavioral traits.
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?
A single sentence that efficiently conveys the tool's functionality. No wasted words, front-loaded with the action 'check' and then the output 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?
The description explains what the tool returns (info to ask, where to find, env template), which is adequate for a setup check tool with no output schema. It could be slightly improved by mentioning if it also validates current environment variables, but it is already fairly 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?
The tool has no parameters (0 params). Per guidelines, baseline is 4. The description adds value by explaining the output (user guidance, location info, env template) 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 tool's purpose: to check PingCode MCP configuration completeness and return guidance on what to ask the user, where to find information, and env config template. It is distinct from sibling tools which focus on auth, bugs, requirements, etc.
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?
While the tool's purpose implies it should be used for initial setup or troubleshooting, the description does not explicitly state when to use it, when not to use it, or suggest alternatives. Usage guidelines are implied but not provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_create_work_itemCreate PingCode Work ItemA
创建单个缺陷/需求,必填标题,可选描述、优先级、负责人、父项、初始状态、属性。默认 dryRun=true,仅返回创建计划。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| title | Yes | 工作项标题(必填)。 | |
| dryRun | No | 默认 true,仅返回创建计划;传 false 才真正创建。 | |
| parent | No | 父工作项编号或内部 ID。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| properties | No | 自定义属性键值对。 | |
| statusName | No | 初始状态名;不传则用类型默认初始态(推荐不传,避免流转校验失败)。 | |
| description | No | 描述(支持 PingCode 富文本/文本)。 | |
| assigneeName | No | 负责人姓名。 | |
| priorityName | No | 优先级名称,如 普通、较高、最高。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the key behavioral trait: default dryRun=true only returns a creation plan, and false actually creates. It also warns about statusName causing validation failures. This is transparent but could be improved by noting permissions or irreversible actions when dryRun is false.
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, extremely concise, and front-loaded with the core purpose. Every phrase adds necessary information 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 the tool's complexity (11 parameters, many siblings) and no output schema, the description covers the essential behavioral and parameter information. It mentions the dry run output ('仅返回创建计划'), which partially describes the return value, but a more explicit output structure would improve completeness.
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 schema provides full descriptions for all 11 parameters (100% coverage). The description adds value by summarizing the required/optional fields, the default dryRun, and the recommendation for statusName. This helps the agent prioritize the most important 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 that the tool creates a single bug or requirement ('创建单个缺陷/需求'), specifying the action and resource. It highlights the required title and optional fields, and the default dryRun behavior, making the purpose unmistakable.
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 by default dryRun=true returns only a plan, guiding users to use false for actual creation. It advises against passing statusName to avoid validation errors. However, it does not explicitly mention when to use this tool over siblings like pingcode_update_work_item_fields or pingcode_import_bugs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_get_current_teamGet PingCode Current TeamA
获取当前 PingCode 企业/团队信息(只读)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states the tool is read-only ('只读'), which is critical behavioral info. Without annotations, this disclosure ensures the agent knows it is non-destructive. However, it lacks other behavioral details such as authentication requirements 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?
The description is a single, efficient sentence that conveys the core purpose without any wasted words. It is appropriately sized for the tool's simplicity.
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?
While the description is sufficient for a basic retrieval tool with no parameters and no output schema, it does not describe the structure or contents of the returned team information. Providing context about the response would enhance completeness.
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?
There are no parameters, so the description adds no further meaning beyond the schema. The schema coverage is 100% by default, meeting the baseline for zero-parameter tools without requiring supplementary explanation.
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 retrieves current PingCode enterprise/team information and specifies it is read-only. The title reinforces the purpose, and it is distinct from sibling tools like pingcode_get_team_members which focus on member details.
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. While its simplicity (no parameters) reduces ambiguity, explicit context about its role among other team-related tools would improve decision-making for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_get_current_userGet PingCode Current UserA
获取当前用户(只读)。应用身份(client_credentials)下 PingCode 无登录用户,自动降级返回配置的默认负责人。
| 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 the burden. It discloses read-only nature and fallback behavior. Could mention output format, but for a simple getter this is sufficient.
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. 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?
For a zero-parameter, no-output-schema tool, the description explains the essential behavior and edge case. Complete for its 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?
No parameters, so schema coverage is perfect. Description has no need to add param info, baseline score 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 it retrieves the current user and explains a key behavioral detail: under client_credentials it returns the default user. This distinguishes it from sibling tools like pingcode_auth_status.
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 when to use (to get current user) but does not explicitly contrast with alternatives. The fallback scenario provides context for an edge case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_get_my_workGet My PingCode WorkA
聚合当前负责人的缺陷与需求并按状态分组(每组带计数、按工作项 ID 去重)。支持 assigneeName 覆盖默认负责人、状态与更新时间过滤。只读。
| Name | Required | Description | Default |
|---|---|---|---|
| kinds | No | 要聚合的工作项类型,默认同时统计缺陷和需求。 | |
| pageSize | No | ||
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| stateNames | No | 状态名称列表,按各类型分别解析过滤。 | |
| assigneeName | No | 覆盖 PINGCODE_DEFAULT_ASSIGNEE_NAME 的负责人姓名(负责人列显示的展示名)。 | |
| updatedAfter | No | 更新时间下界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 起点。 | |
| updatedBefore | No | 更新时间上界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 终点。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral disclosure burden. It declares read-only ('只读'), aggregation, grouping by status, deduplication, and default assignee override. It does not detail pagination behavior or error conditions, but the key behavioral traits are 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 concise sentences with no filler. Every sentence adds value: main aggregation logic, filtering options, and read-only declaration. Front-loaded with the core 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 tool with 8 optional parameters and no output schema, the description explains grouping, deduplication, filtering, and read-only nature. It lacks explicit mention of pagination (though pageSize parameter exists) and return format beyond 'groups with counts'. Still fairly complete given schema coverage.
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 88%, so parameters are already well-documented. The description reinforces the role of assigneeName and filter parameters but does not add significant new semantic meaning beyond what the schema provides. 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?
Description clearly states the tool aggregates bugs and requirements of the current assignee, groups by status with counts, and deduplicates. It specifies verb '聚合' (aggregate), resource '当前负责人的缺陷与需求' (bugs and requirements of current assignee), and filtering options, distinguishing from sibling tools like pingcode_list_my_bugs which likely provide raw listings.
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?
Description mentions filtering by assignee name, status, and update time, and that the tool is read-only. However, it does not explicitly state when to use this tool versus alternatives like pingcode_list_my_bugs or pingcode_search_work_items, nor does it provide when-not-to-use guidance. The use case is implied but not contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_get_project_schemaGet PingCode Project SchemaC
获取 PingCode 项目、工作项类型、状态、优先级、成员等配置,用于确认 Bug/需求映射。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| typeId | No | ||
| projectId | No | ||
| projectIdentifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It states the tool gets configurations but does not indicate whether it is read-only, requires authentication, or has side effects. Important behavior like potential data fetching latency or lack of modifications is not mentioned.
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 short sentence, making it concise. However, it lacks front-loading of key information; for instance, the purpose is clear but parameter details are missing. Every sentence earns its place, but additional structured information would improve it without losing conciseness.
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 4 parameters, no required fields, no output schema, and no annotations, the description should provide more details about usage context, expected output, and parameter behavior. The current description is too minimal to guide an AI agent effectively in selecting and invoking this tool over its many 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?
The input schema has 4 parameters (kind, typeId, projectId, projectIdentifier) with 0% schema description coverage. The description provides no explanation of these parameters, their roles, or how they relate to the configuration retrieval. This is a critical gap for an AI agent to invoke the tool correctly.
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 retrieves project configurations (project, work item type, status, priority, members) for confirming Bug/requirement mapping. The verb '获取' (get) and resource 'project schema' are specific, but it does not explicitly differentiate from sibling tools like pingcode_list_bugs or pingcode_get_work_item.
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 phrase '用于确认 Bug/需求映射' indicates the tool is used to confirm mappings, providing some context. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., before creating or updating work items), and does not mention prerequisites or 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.
pingcode_get_team_membersList PingCode Team MembersB
查询企业成员列表(只读),支持关键字与部门 ID(≤20)过滤、分页。
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | 按姓名/邮箱等关键字过滤企业成员。 | |
| pageSize | No | ||
| pageIndex | No | ||
| departmentIds | No | 部门 ID 列表,≤20,多个为「任一部门」。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides 'read-only' context, but does not disclose permission requirements, rate limits, or side effects. This is adequate for a simple list 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?
A single, dense sentence efficiently conveys the tool's purpose, read-only nature, and key features (filtering, department ID limit, pagination). 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?
The description covers input filtering and pagination but omits output details. Given no output schema, a brief note on the returned data structure would improve completeness.
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 50%; the description mentions filtering by keyword and department ID and pagination, adding some context beyond schema. However, pageSize and pageIndex lack descriptions in both schema and tool description.
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 an enterprise member list and is read-only. It does not explicitly differentiate from sibling tools, but the purpose is distinct from work-item-related siblings.
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 like get_current_user or get_current_team. The description lacks context for optimal usage and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_get_work_itemGet PingCode Work ItemB
按编号或工作项 ID 获取单个缺陷/需求的完整详情(描述、时间、父项、属性、图片),可选附带评论。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| identifier | No | 工作项编号,如 PROJ-455。 | |
| workItemId | No | PingCode 工作项内部 ID,提供后优先于 identifier。 | |
| includeImages | No | 是否请求 public_image_token 并解析富文本图片,默认 true。 | |
| includeComments | No | 是否一并返回评论列表,默认 false。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose authentication needs, error behavior, or what happens if identifier is invalid. It only mentions optional comments and image inclusion, but lacks other behavioral traits.
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 that front-loads the key action and optional features. 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 7 optional parameters and no output schema, the description should clarify usage context, such as how identifier and workItemId relate, or the role of projectId and projectIdentifier. The current description omits these, leaving gaps for a comprehensive understanding.
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 detailed parameter descriptions. The description adds a summary of the tool's purpose (getting full details with optional comments) but does not provide additional meaning beyond what the schema already states.
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 specifies the exact action (get complete details of a single bug/requirement) and resource (work item), with optional comments. It contrasts with sibling tools like pingcode_list_bugs which list multiple items, and pingcode_search_work_items for search.
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 such as pingcode_list_work_item_comments for comments or pingcode_search_work_items. No when-not-to-use or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_import_bugsImport PingCode BugsC
按截图表头从 .xlsx/.csv 导入缺陷。默认 dryRun=true。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | upsert | |
| dryRun | No | 默认 true,仅返回导入计划;传 false 才执行写入。 | |
| maxRows | No | ||
| filePath | Yes | Excel/CSV 文件路径,支持 .xlsx/.csv。 | |
| projectId | No | ||
| sheetName | No | 工作表名称,默认第一个 sheet。 | |
| projectIdentifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only mentions default dryRun=true. Does not disclose side effects, permissions, or error behavior for a mutation 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?
Very concise single sentence, but lacks structure and key details. Not optimally informative for a complex import tool.
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?
Incomplete for a 7-parameter import tool with no output schema. Missing details on behavior, return values, and prerequisites.
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 43%, but description adds no meaning beyond the schema. Does not explain mode, maxRows, projectId, projectIdentifier, or sheetName.
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 the tool imports bugs from .xlsx/.csv files, distinguishing it from list/update tools. However, the phrase '按截图表头' is ambiguous and not explained, reducing clarity.
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 like pingcode_import_requirements or pingcode_create_work_item. Missing context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_import_requirementsImport PingCode RequirementsC
按截图表头从 .xlsx/.csv 导入需求清单。默认 dryRun=true。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | upsert | |
| dryRun | No | 默认 true,仅返回导入计划;传 false 才执行写入。 | |
| maxRows | No | ||
| filePath | Yes | Excel/CSV 文件路径,支持 .xlsx/.csv。 | |
| projectId | No | ||
| sheetName | No | 工作表名称,默认第一个 sheet。 | |
| projectIdentifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only mentions the dryRun default but does not disclose other behaviors like error handling, required permissions, or side effects of import (e.g., whether it modifies existing data).
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 short and to the point, with no wasted words. It conveys the core purpose and default behavior efficiently.
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 complexity (7 parameters, no output schema, no annotations), the description is incomplete. It lacks information on return values, error responses, and how the import processes data (e.g., handling of duplicates or invalid rows).
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 low (43%), and the description does not add meaning beyond what the schema provides. It does not explain the mode, maxRows, projectId, or projectIdentifier parameters. The mention of '按截图表头' hints at column mapping but is insufficient.
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 states the action (import requirements from .xlsx/.csv) and the default dryRun mode. It clearly identifies the resource (requirements) and distinguishes it from sibling tools like pingcode_import_bugs, though not explicitly differentiated.
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 (e.g., pingcode_import_bugs). No mention of prerequisites or 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.
pingcode_link_work_itemsLink PingCode Work ItemsB
在两个工作项间建立关系(阻塞/被阻塞/重复/关联/依赖等)。relationType 支持系统枚举或自定义关系类型名/ID。默认 dryRun=true,仅返回计划。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 源工作项类型,默认 bug。 | bug |
| dryRun | No | 默认 true,仅返回建立关系计划;传 false 才真正创建。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| identifier | No | 工作项编号,如 PROJ-455。 | |
| workItemId | No | PingCode 工作项内部 ID,提供后优先于 identifier。 | |
| relationType | Yes | 关系类型。系统枚举:block/blocked_by/relate/duplicate/cause/caused_by/clone/cloned_by/dependency/mention(block=源阻塞目标、blocked_by=源被目标阻塞);也可传自定义关系类型名/ID。 | |
| targetIdentifier | No | 目标工作项编号,如 PROJ-456。 | |
| targetWorkItemId | No | 目标工作项内部 ID,提供后优先于 targetIdentifier。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, description carries full burden. It discloses the dryRun default behavior and that relationType can be custom. However, it omits side effects, error handling, permission requirements, or what happens if the relationship already exists.
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?
Extremely concise: two sentences front-load the core action. Every sentence adds meaningful information with no redundancy or fluff.
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?
Does not explain the overall flow (how to identify source/target), the meaning of 'plan' in dryRun, expected response fields, or error cases. For a tool with 9 parameters, this is insufficient without output schema or more details.
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. Description adds minimal value beyond what schema already provides (e.g., dryRun default, relationType options). It restates existing parameter descriptions without new insight.
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 the action: linking two work items with a relationship types such as block, blocked_by, duplicate, etc. It specifies the core function, but does not differentiate from sibling tools like pingcode_unlink_work_items or pingcode_list_work_item_relations.
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 versus alternatives. The description mentions dryRun default and relationType support, but does not address prerequisites, typical use cases, or when to prefer other linking tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_list_bugsList PingCode BugsA
拉取 PingCode 缺陷列表,默认项目为 PROJ。
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | 按编号或标题搜索。 | |
| pageSize | No | ||
| pageIndex | No | ||
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| stateNames | No | 状态名称列表,如 打开、进行中、已完成。 | |
| assigneeNames | No | 负责人姓名列表。 | |
| priorityNames | No | 优先级名称列表,如 普通、较高、最高。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| includePublicImageToken | No | 是否请求 PingCode 返回 public_image_token,用于富文本图片下载。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It adds the default project context but does not disclose pagination behavior, return format, or that filtering parameters (like stateNames, assigneeNames) are available. Behavior is partially transparent.
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 concise sentence front-loaded with the action. No wasted words, but could include a bit more detail (e.g., pagination) without losing conciseness.
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?
Despite high schema coverage, the description lacks essential behavioral context for a list tool with 9 parameters and no output schema. It does not explain return format, pagination (pageSize/pageIndex), or how filters interact. Incomplete for an agent to use effectively.
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 high (78%), so baseline is 3. The description adds no extra meaning to any parameter beyond what the schema already provides (e.g., default project mention is not a parameter). No added value.
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 fetches a list of bugs with a default project 'PROJ', distinguishing it from sibling tools like pingcode_list_my_bugs (my bugs) and pingcode_list_requirements (requirements). The verb '拉取' and resource '缺陷列表' 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?
Only mentions default project 'PROJ', implying usage for that project but no explicit guidance on when to use vs siblings like pingcode_list_my_bugs or pingcode_search_work_items. No when-not-to-use or alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_list_my_bugsList My PingCode BugsA
拉取当前使用者负责的 PingCode 缺陷。默认负责人读取 PINGCODE_DEFAULT_ASSIGNEE_NAME。
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | 按编号或标题搜索。 | |
| pageSize | No | ||
| pageIndex | No | ||
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| stateNames | No | 状态名称列表,如 新提交、处理中、已修复。 | |
| assigneeName | No | 覆盖 PINGCODE_DEFAULT_ASSIGNEE_NAME 的负责人姓名。 | |
| priorityNames | No | 优先级名称列表,如 普通、较高、最高。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| includePublicImageToken | No | 是否请求 PingCode 返回 public_image_token,用于富文本图片下载。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not mention read-only nature, side effects, or auth requirements. Assumes non-destructive but not explicit.
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?
Extremely concise – two sentences with no waste. Front-loaded with purpose immediately.
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 list tool with 9 parameters and no output schema, description only covers assignee default. Missing context on pagination, filtering, and return format.
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 78% coverage; description adds context for assigneeName by explaining default from PINGCODE_DEFAULT_ASSIGNEE_NAME. Adds value beyond 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?
Clearly states it lists PingCode defects assigned to the current user ('拉取当前使用者负责的 PingCode 缺陷'). Differentiates from sibling 'pingcode_list_bugs' which likely lists all bugs.
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?
Mentions default assignee from environment variable, implying use for viewing personal bugs. No explicit when-to-use vs alternatives or exclusions. Guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_list_my_requirementsList My PingCode RequirementsA
拉取当前使用者负责的 PingCode 需求。默认负责人读取 PINGCODE_DEFAULT_ASSIGNEE_NAME。
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | 按编号或标题搜索。 | |
| pageSize | No | ||
| pageIndex | No | ||
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| stateNames | No | 状态名称列表,如 新提交、处理中、已修复。 | |
| assigneeName | No | 覆盖 PINGCODE_DEFAULT_ASSIGNEE_NAME 的负责人姓名。 | |
| priorityNames | No | 优先级名称列表,如 普通、较高、最高。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| includePublicImageToken | No | 是否请求 PingCode 返回 public_image_token,用于富文本图片下载。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explains the default assignee mechanism but does not disclose whether the operation is read-only, required authentication, or 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 two concise sentences with no redundancy, effectively conveying the core 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?
Despite having 9 parameters and no output schema, the description omits details about return format, pagination, error handling, or authentication, leaving the agent uncertain.
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 high (78%), and the tool description does not add significant meaning beyond what is already in the schema for the 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 that the tool lists PingCode requirements assigned to the current user, distinguishing it from generic list_requirements and list_my_bugs siblings.
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 fetching the current user's requirements but does not explicitly provide when-to-use or when-not-to-use guidance compared to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_list_requirementsList PingCode RequirementsC
拉取 PingCode 需求清单,默认项目为 PROJ。
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | 按编号或标题搜索。 | |
| pageSize | No | ||
| pageIndex | No | ||
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| stateNames | No | 状态名称列表,如 打开、进行中、已完成。 | |
| assigneeNames | No | 负责人姓名列表。 | |
| priorityNames | No | 优先级名称列表,如 普通、较高、最高。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| includePublicImageToken | No | 是否请求 PingCode 返回 public_image_token,用于富文本图片下载。 |
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 only states the basic action and default project, but does not disclose whether the operation is read-only, pagination behavior, or any side effects. The agent cannot infer safety or limitations.
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 with one sentence. Every word adds value by specifying the action and default project. However, it could be slightly expanded 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 has 9 parameters, no output schema, and no annotations, the description is insufficient. It does not explain returned data format, filter usage, or pagination. An AI agent would lack critical context for correct 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 coverage is high (78%), and the schema already explains most parameters. The description adds no additional meaning beyond the default project context. It neither contradicts nor enriches the schema, earning a baseline score 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 fetches a list of PingCode requirements with a default project. It distinguishes from siblings like pingcode_list_bugs by specifying 'requirements' and from pingcode_list_my_requirements by implying a project-wide scope. However, it does not elaborate on the exact resource scope (e.g., all projects or just PROJ).
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 over alternatives like pingcode_list_my_requirements or pingcode_search_work_items. It does not mention exclusions or prerequisites. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_list_work_item_commentsList PingCode Work Item CommentsB
按编号或工作项 ID 获取 PingCode 缺陷/需求评论列表。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| projectId | No | ||
| identifier | No | 工作项编号,如 PROJ-505。 | |
| workItemId | No | PingCode 工作项内部 ID。 | |
| projectIdentifier | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions no side effects, permissions, rate limits, or safety profile. Although it is a read operation, the description does not explicitly confirm this, leaving gaps.
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 front-loads the purpose with no wasted words. It efficiently conveys the essential 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?
Despite having 5 parameters and no output schema, the description lacks information on return format, pagination, or parameter dependencies (e.g., need for at least one of identifier/workItemId). This leaves significant gaps for the 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 description coverage is 60% (3 of 5 parameters described). The description adds meaning for 'identifier' and 'workItemId' by stating 'by number or work item ID', but does not clarify 'kind', 'projectId', or 'projectIdentifier'. It compensates partially but not fully.
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 action: 'get PingCode bug/requirement comment list' with a specific verb (get) and resource (comment list). It distinguishes from sibling tools that list work items or add comments, indicating a unique function.
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, nor any exclusions or context. It simply states the function without directing the agent on appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_list_work_item_relationsList PingCode Work Item RelationsA
按编号或工作项 ID 列出工作项的全部关系(可按 relationType 过滤),返回每条关系的 id 与目标工作项。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| identifier | No | 工作项编号,如 PROJ-455。 | |
| workItemId | No | PingCode 工作项内部 ID,提供后优先于 identifier。 | |
| relationType | No | 按关系类型过滤(系统枚举或自定义关系类型名/ID)。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 |
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 states the tool lists relations and returns fields, but omits whether it is read-only, required permissions, rate limits, or behavior when no relations exist. This leaves significant gaps for a safe 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?
The description is a single sentence that clearly conveys the core action, optional filter, and return information without any wasted words. It is appropriately sized and front-loaded.
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, no required fields, full schema coverage, no output schema, and no annotations, the description covers the main purpose but lacks completeness. It does not explain the priority between identifier and workItemId, nor what relationType values are available. Adequate but with noticeable 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% and all parameters have descriptions in Chinese. The description adds minimal extra meaning by summarizing the overall function and return, but does not explain parameter interactions (e.g., priority between identifier and workItemId) or valid values for relationType. 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 explicitly states the action (list), resource (work item relations), scope (all relations with optional filter by relationType), and return value (id and target work item). This clearly distinguishes it from sibling tools like pingcode_link_work_items and pingcode_unlink_work_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?
The description mentions filtering by relationType but does not provide explicit guidance on when to use this tool versus alternatives, such as when to prefer listing over linking/unlinking, or any prerequisites. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_mark_bugs_fixedMark PingCode Bugs FixedA
修完 bug 后批量把缺陷从 新提交 更新为 已修复。默认 dryRun=true,并校验当前状态仍为 新提交。
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | 默认 true,仅返回计划;传 false 才真正修改 PingCode。 | |
| comment | No | 可选:每个成功变更状态的缺陷追加同一条评论。 | |
| stateId | No | 目标状态 ID;提供后优先于 statusName。 | |
| projectId | No | ||
| statusName | No | 目标状态,默认 已修复。 | 已修复 |
| identifiers | Yes | 要变更状态的缺陷编号列表,如 PROJ-505、PROJ-503。 | |
| projectIdentifier | No | ||
| expectedCurrentStatusName | No | 当前状态保护条件,默认只处理 新提交。 | 新提交 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses key behaviors: default dryRun=true (no real changes unless false), and validation that current state is '新提交'. This is safety-critical and goes beyond a simple mutation statement. It lacks details on idempotency or error handling, but the core transparency is good.
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, no waste. The key information is front-loaded: purpose, default behavior, safety check. 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 batch update tool with 8 parameters and no output schema, the description covers the main purpose, default behavior, and a critical constraint (state validation). It does not explain error handling or partial failures, but it is sufficiently complete 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 75%, so the schema already describes most parameters. The description adds context by tying dryRun and expectedCurrentStatusName to the workflow (default dryRun, state check). It does not add new parameter-level details beyond what's 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 batches update of bug status from '新提交' to '已修复', with a specific verb ('批量更新') and resource ('缺陷'). It distinguishes from sibling tools like pingcode_update_bug_status (single bug) and pingcode_bulk_update_work_items (generic) by focusing on a specific workflow: marking bugs fixed after fixing.
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 says when to use: after fixing bugs, to batch update status. It provides the default dryRun and state validation. However, it does not mention when not to use it or compare with alternatives for single updates. Still, the context is clear enough for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_plan_status_changePlan PingCode Status ChangeA
只读:返回工作项状态变更计划(当前状态、目标状态、可用状态、保护条件是否满足)。PingCode 不校验工作流,目标是否合法以实际 PATCH 为准。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| stateId | No | 目标状态 ID;提供后优先于 statusName。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| identifier | No | 工作项编号,如 PROJ-455。 | |
| statusName | No | 目标状态名称,如 已修复、已验收。 | |
| workItemId | No | PingCode 工作项内部 ID,提供后优先于 identifier。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| expectedCurrentStatusName | No | 当前状态保护条件,仅用于在计划中标注是否满足,不阻断(本工具恒只读)。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It discloses read-only nature, non-validation of workflow, and that legality depends on actual PATCH, providing key behavioral context.
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 '只读' (read-only). Every sentence is meaningful and concise.
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?
Adequate for a read-only plan tool with high schema coverage, but lacks description of return value structure since no output schema exists. Missing details on what the plan contains.
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. Description adds no parameter-specific information beyond what schema already provides.
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 is read-only and returns a status change plan. It differentiates from write tools like pingcode_update_requirement_status, but does not explicitly distinguish from other read 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?
No guidance on when to use this tool versus alternatives (e.g., before updating status to check feasibility). The description implies context but does not explicitly state when or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_search_work_itemsSearch PingCode Work ItemsA
跨缺陷与需求统一搜索:支持关键字、状态/优先级/负责人(按名称)与更新时间范围;并支持 raw 过滤——项目/类型/父项/负责人/状态/优先级/标签/迭代/看板/入口/泳道/阶段/版本/创建人 ID 列表(≤20,与对应 name 合并去重)、participantId 单值、createdBetween/startBetween/endBetween 秒级时间戳、includeDeleted/includeArchived 布尔。返回按 id 去重的合并结果与各类型总数。
| Name | Required | Description | Default |
|---|---|---|---|
| kinds | No | 要搜索的工作项类型,默认同时搜索缺陷和需求。 | |
| tagIds | No | 标签 ID 列表(raw),≤20。 | |
| typeIds | No | 工作项类型 ID 列表(raw),与 kind 解析结果合并去重,≤20。 | |
| boardIds | No | 看板 ID 列表(raw),≤20。 | |
| entryIds | No | 入口 ID 列表(raw),≤20。 | |
| keywords | No | 按编号或标题搜索。 | |
| pageSize | No | ||
| phaseIds | No | 阶段 ID 列表(raw),≤20。 | |
| stateIds | No | 状态 ID 列表(raw),与 stateNames 解析结果合并去重,≤20。 | |
| pageIndex | No | ||
| parentIds | No | 父工作项 ID 列表(raw),≤20。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| sprintIds | No | 迭代 ID 列表(raw),≤20。 | |
| endBetween | No | 结束时间范围,秒级时间戳 起,止,支持单边,如 1700000000, 或 ,1700000000。 | |
| projectIds | No | 项目 ID 列表(raw),与项目标识解析结果合并去重,≤20。 | |
| stateNames | No | 状态名称列表,按各类型分别解析。 | |
| versionIds | No | 版本 ID 列表(raw),≤20。 | |
| assigneeIds | No | 负责人 ID 列表(raw),与 assigneeNames 解析结果合并去重,≤20。 | |
| priorityIds | No | 优先级 ID 列表(raw),与 priorityNames 解析结果合并去重,≤20。 | |
| swimlaneIds | No | 泳道 ID 列表(raw),≤20。 | |
| createdByIds | No | 创建人 ID 列表(raw),≤20。 | |
| startBetween | No | 开始时间范围,秒级时间戳 起,止,支持单边,如 1700000000, 或 ,1700000000。 | |
| updatedAfter | No | 更新时间下界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 起点。 | |
| assigneeNames | No | 负责人姓名列表。 | |
| participantId | No | 参与人 ID(raw,单值)。 | |
| priorityNames | No | 优先级名称列表。 | |
| updatedBefore | No | 更新时间上界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 终点。 | |
| createdBetween | No | 创建时间范围,秒级时间戳 起,止,支持单边,如 1700000000, 或 ,1700000000。 | |
| includeDeleted | No | 是否包含已删除工作项,默认 false。 | |
| includeArchived | No | 是否包含已归档工作项,默认 false。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 |
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 explains that results are deduped by ID and include per-type counts. But it does not disclose pagination behavior, rate limits, or performance implications, nor does it mention that it is read-only (though it's a search). With zero annotation support, a score of 3 is appropriate.
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 dense Chinese sentence that front-loads the purpose. It covers many parameters concisely, though it could be broken into multiple sentences for readability. It is not verbose, but structure could be improved.
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 should explain return format more fully. It mentions 'merged results deduped by ID and totals per type' but lacks details like sorting, order, or field structure. For a search tool with 31 parameters, this is adequate but not 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 description coverage is 94% (high), so baseline is 3. The description adds value by explaining that raw filters accept lists up to 20, that some filters merge with name-based ones, and the timestamp format. It also clarifies defaults (e.g., kinds default). This exceeds the schema alone.
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 this tool performs a unified search across defects and requirements ('跨缺陷与需求统一搜索'). It lists supported filters and explains the merged result with dedup and per-type totals. This distinguishes it from sibling tools like pingcode_list_bugs and pingcode_list_requirements which are type-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 implies usage when a cross-type search is needed ('跨缺陷与需求统一搜索') and when raw filters are required. However, it does not explicitly contrast with siblings or provide 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.
pingcode_triage_work_itemTriage PingCode Work ItemA
一站式处理工作项:合并负责人/优先级/状态变更为一次 PATCH,并可选追加评论。默认 dryRun=true。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| dryRun | No | 默认 true,仅返回合并计划;传 false 才执行写入。 | |
| comment | No | 可选:处理后追加的评论。 | |
| stateId | No | 目标状态 ID;提供后优先于 statusName。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| identifier | No | 工作项编号,如 PROJ-455。 | |
| statusName | No | 目标状态名称。 | |
| workItemId | No | PingCode 工作项内部 ID,提供后优先于 identifier。 | |
| assigneeName | No | 新负责人姓名。 | |
| priorityName | No | 新优先级名称。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| expectedCurrentStatusName | No | 当前状态保护条件;不匹配则整单拒绝,不部分执行。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that changes are merged into one PATCH and dryRun defaults to true, but does not discuss permissions, atomicity, failure behavior, or other important behavioral traits.
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, well-structured sentence that front-loads the purpose and default behavior. 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?
Given the tool has 12 parameters and no output schema or annotations, the description is too brief. It lacks explanation of return values, error conditions, and the interplay between parameters like stateId and statusName.
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 summarizes key parameters (assignee, priority, status) but does not add meaningful nuance beyond what parameter descriptions already provide.
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 is a one-stop triage tool that merges assignee, priority, and status changes into a single PATCH operation, and optionally adds a comment. This distinguishes it from sibling tools like pingcode_update_bug_status which handle single updates.
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 combined updates but does not explicitly state when to use this tool versus siblings like pingcode_update_work_item_fields or pingcode_update_bug_status. No exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_unlink_work_itemsUnlink PingCode Work ItemsB
按 relationId 删除工作项的某条关系;relationId 来自 pingcode_list_work_item_relations。默认 dryRun=true。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 源工作项类型,默认 bug。 | bug |
| dryRun | No | 默认 true,仅返回删除关系计划;传 false 才真正删除。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| identifier | No | 工作项编号,如 PROJ-455。 | |
| relationId | Yes | 要删除的关系 ID(必填),来自 pingcode_list_work_item_relations。 | |
| workItemId | No | PingCode 工作项内部 ID,提供后优先于 identifier。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses the dryRun default (safe by default) but does not describe what happens upon actual deletion (e.g., irreversibility, permissions needed, side effects). The description is insufficient for a destruction action.
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 very short (two sentences), concise, and front-loads the main action. It wastes no words, though it could be slightly more structured with bullet points for key behaviors.
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 7 parameters, no output schema, and no annotations, the description is too brief. It does not explain return values, how to use other parameters like projectId or workItemId, or the implications of dryRun=false. The context is incomplete for an agent to use the tool safely and effectively.
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 all parameters. The description adds little beyond the schema, only summarizing that relationId is from a sibling tool. Baseline 3 is appropriate since the schema already provides meaning.
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 specifies the action 'delete' and the resource 'relationship of a work item', which is clear. It also notes that relationId comes from a sibling tool, aiding understanding. However, it could be more explicit about the type of relationship.
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 mentions that relationId comes from pingcode_list_work_item_relations, implying a prerequisite. It also notes the default dryRun=true. However, it lacks explicit guidance on when to use this tool versus alternatives like 'link_work_items' or 'update_work_item_fields'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_update_bug_statusUpdate PingCode Bug StatusB
按编号或工作项 ID 修改单个缺陷状态。
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | true 时只返回计划,不执行 PATCH。 | |
| comment | No | 可选:状态变更成功后追加评论。 | |
| stateId | No | 目标状态 ID;提供后优先于 statusName。 | |
| projectId | No | ||
| identifier | No | 工作项编号,如 PROJ-455。 | |
| statusName | No | 目标状态名称,如 挂起、已验收、打开、进行中。 | |
| workItemId | No | PingCode 工作项内部 ID。 | |
| projectIdentifier | No | ||
| expectedCurrentStatusName | No | 可选:当前状态保护条件,不匹配则拒绝更新。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the basic action, omitting details on destructiveness, permissions, side effects, or requirements for parameters like identifier or workItemId. The dryRun and expectedCurrentStatusName fields are not explained.
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, efficient sentence that front-loads the core purpose. It is concise but could include more context 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 9 parameters, no output schema, and no annotations, the description is too minimal. It omits information about optional parameters, status update methods, and protection conditions, making it incomplete for effective 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 78%, so most parameters are already described in the schema. The description adds minimal value beyond implying that identifier is a user-facing number and workItemId is internal. 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 action (modify status), resource (bug), and identification method (by number or work item ID). It effectively distinguishes from sibling tools that update requirements or perform other 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 provides no guidance on when to use this tool versus alternatives like pingcode_update_work_item_fields or pingcode_mark_bugs_fixed. It lacks explicit context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_update_requirement_statusUpdate PingCode Requirement StatusB
按编号或工作项 ID 修改单个需求状态。
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | true 时只返回计划,不执行 PATCH。 | |
| comment | No | 可选:状态变更成功后追加评论。 | |
| stateId | No | 目标状态 ID;提供后优先于 statusName。 | |
| projectId | No | ||
| identifier | No | 工作项编号,如 PROJ-455。 | |
| statusName | No | 目标状态名称,如 挂起、已验收、打开、进行中。 | |
| workItemId | No | PingCode 工作项内部 ID。 | |
| projectIdentifier | No | ||
| expectedCurrentStatusName | No | 可选:当前状态保护条件,不匹配则拒绝更新。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states 'modify status' without detailing side effects, atomicity, authorization requirements, error states, or the PATCH nature (only implied in dryRun). The schema hints at dryRun and expectedCurrentStatusName, but the description does not integrate these.
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 extraneous words. It efficiently communicates the core action and key identifiers.
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 9 parameters, no output schema, and no annotations, the description is too brief. It fails to explain the status transition logic (e.g., stateId vs statusName precedence), error handling, or expected return values. For a complex update tool, this leaves significant gaps 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 description coverage is 78% (high), so baseline is 3. The description adds minimal extra meaning: it mentions identifier and workItemId as lookup methods but does not clarify the priority between stateId and statusName, or the role of comment and expectedCurrentStatusName beyond 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 modifies the status of a single requirement using a number or work item ID. It is specific about the action (update status) and the target object (requirement), effectively distinguishing it from sibling tools like pingcode_update_bug_status or pingcode_update_work_item_fields.
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 updating requirement status but provides no explicit guidance on when to use this tool versus alternatives (e.g., pingcode_update_work_item_fields for non-status updates). No when-not-to-use or prerequisite conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingcode_update_work_item_fieldsUpdate PingCode Work Item FieldsA
按编号或工作项 ID 编辑标题、描述、优先级、负责人、父项、自定义属性。默认 dryRun=true,仅 PATCH 变化字段。
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 工作项类型,默认 bug。 | bug |
| title | No | 新标题。 | |
| dryRun | No | 默认 true,仅返回计划与字段 diff;传 false 才执行 PATCH。 | |
| parent | No | 父工作项编号或内部 ID。 | |
| projectId | No | PingCode 项目 ID,提供后跳过项目标识查询。 | |
| identifier | No | 工作项编号,如 PROJ-455。 | |
| properties | No | 自定义属性键值对。 | |
| workItemId | No | PingCode 工作项内部 ID,提供后优先于 identifier。 | |
| description | No | 新描述(支持 PingCode 富文本/文本)。 | |
| assigneeName | No | 负责人姓名。 | |
| priorityName | No | 优先级名称,如 普通、较高、最高。 | |
| projectIdentifier | No | PingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。 | |
| expectedCurrentStatusName | No | 当前状态保护条件(PingCode 无版本号,借此做弱幂等);不匹配则拒绝写入。 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses key behaviors: default dryRun=true (safe), only PATCHes changed fields, and includes a weak idempotency guard via expectedCurrentStatusName. Missing details on permissions or error handling, but major traits are 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?
The description is a single, well-structured sentence that is front-loaded with the purpose and key behavioral traits. Every word is necessary and earned.
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 high complexity (13 parameters, nested objects, no output schema), the description covers the most critical behavioral context (dry-run, patch-only). It does not mention the return value or error cases, but the schema descriptions already provide substantial help.
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 need not repeat parameter details. It adds value by explaining the dryRun default and that only changed fields are patched, and notes workItemId priority over identifier. This goes 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 explicitly states the tool edits work item fields such as title, description, priority, assignee, parent, and custom properties, and specifies it operates by identifier or internal ID. This clearly distinguishes it from sibling tools that update status or perform bulk 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 implies usage by listing editable fields but does not explicitly contrast with alternatives like update_bug_status or bulk_update_work_items. The dry-run and patch-only behavior is noted, but guidance on when to choose this tool is absent.
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.
30 tool updates
v0.2.0- First observed
pingcode_add_work_item_comment - First observed
pingcode_auth_login - First observed
pingcode_auth_logout - First observed
pingcode_auth_status - First observed
pingcode_bulk_update_work_items - First observed
pingcode_check_setup - First observed
pingcode_create_work_item - First observed
pingcode_get_current_team - First observed
pingcode_get_current_user - First observed
pingcode_get_my_work - First observed
pingcode_get_project_schema - First observed
pingcode_get_team_members - First observed
pingcode_get_work_item - First observed
pingcode_import_bugs - First observed
pingcode_import_requirements - First observed
pingcode_link_work_items - First observed
pingcode_list_bugs - First observed
pingcode_list_my_bugs - First observed
pingcode_list_my_requirements - First observed
pingcode_list_requirements - First observed
pingcode_list_work_item_comments - First observed
pingcode_list_work_item_relations - First observed
pingcode_mark_bugs_fixed - First observed
pingcode_plan_status_change - First observed
pingcode_search_work_items - First observed
pingcode_triage_work_item - First observed
pingcode_unlink_work_items - First observed
pingcode_update_bug_status - First observed
pingcode_update_requirement_status - First observed
pingcode_update_work_item_fields
TDQS
Scored across 30 tools
Most tools have distinct purposes, but there is some overlap among update tools (update_work_item_fields, bulk_update_work_items, triage_work_item) that could cause confusion. However, descriptions clarify their specific use cases.
All tools follow a consistent pingcode_verb_noun pattern in snake_case, making it predictable and easy to understand the action and resource.
30 tools is high but justified by the broad domain (authentication, teams, projects, work items, imports, comments, relationships). Some tools could be consolidated, but overall scope is reasonable.
Core CRUD and lifecycle operations are covered, including search, linking, and bulk updates. Missing delete operations for work items, but the surface is largely complete for typical bug/requirement management.
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
Persistent memory for Claude Code and Cursor. Stop re-explaining your project every session.
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
- AurentiaOAuthfr.aurentia
Your Aurentia workspace — projects, CRM, tasks, deliverables — in Claude, Cursor or any MCP client.
Search, read and create Linear issues, projects, teams and cycles.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with Azure DevOps work items through AI assistants like VS Code/GitHub Copilot. Supports fetching work item details and updating work item statuses using natural language commands.-
- AlicenseBqualityDmaintenanceEnables AI assistants to query and manage PingCode project management data, including work items, releases, bugs, and requirements through natural language interactions.9134MIT
- FlicenseNot gradedqualityFmaintenanceEnables interaction with Azure DevOps through natural language in Cursor IDE. Supports work item management, pull requests, builds, releases, test management, and guided workflows for development teams, QA testers, and release management.1-
- FlicenseNot gradedqualityCmaintenanceEnables query and management of Zentao bugs, tasks, projects, and iterations directly from MCP-compatible IDEs like Cursor or Claude Desktop.-
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/frontendRicky/pingcode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server