Skip to main content
Glama

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=false
  • PINGCODE_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

鉴权方式

服务端按以下优先级选择凭据,前一级可用就不再往下走:

  1. 用户态 OAuth token(最高):pingcode_auth_login 浏览器授权后保存在本地 0600 文件里的用户令牌。过期且带 refresh_token 时自动刷新;刷新失败则回退下一级。代表"当前登录用户本人",pingcode_get_current_user / pingcode_list_my_bugs / pingcode_list_my_requirements 会自动识别你本人,无需手填默认负责人。

  2. PINGCODE_ACCESS_TOKEN:直接配置的官方 Open API access_token。

  3. client_credentials:用 PINGCODE_CLIENT_ID + PINGCODE_CLIENT_SECRET 换取的应用身份 token(带进程内缓存)。应用身份没有"当前登录用户",所以此模式下"我的工作项"需要 PINGCODE_DEFAULT_ASSIGNEE_NAME

用户授权(OAuth)

需要先配置 PINGCODE_CLIENT_ID / PINGCODE_CLIENT_SECRET,并在 PingCode 后台凭据管理里设置好 redirect_uri。授权分两步(手动粘贴 code):

  1. 调用 pingcode_auth_login(不传 code):返回授权 URL 与引导。

    登录 PingCode
  2. 在浏览器打开授权 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_secretpingcode_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 客户端配置块(npmPackagelocalSource 两种,凭据已打码、本地源码方式自动填好 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

说明

pingcode_check_setup

检查配置并返回聊天框追问清单、信息查找位置、env 模板

pingcode_get_project_schema

获取项目、类型、状态、优先级、成员

pingcode_get_current_team

获取当前企业/团队信息(只读)

pingcode_get_current_user

获取当前用户(只读);应用身份下自动降级为配置的默认负责人

pingcode_auth_login

用户态浏览器授权登录(OAuth);不传 code 返回授权 URL,传 code 完成登录。不返回 token

pingcode_auth_status

查看鉴权状态(user / env-token / application)、是否已授权、相对过期秒数、当前用户。不返回 token

pingcode_auth_logout

清除本地保存的用户态 token

pingcode_get_team_members

查询企业成员列表(只读),支持关键字 + 部门 ID(≤20)过滤、分页

pingcode_list_bugs

拉取缺陷列表

pingcode_list_requirements

拉取需求清单

pingcode_list_my_bugs

PINGCODE_DEFAULT_ASSIGNEE_NAME 拉取我的缺陷

pingcode_list_my_requirements

PINGCODE_DEFAULT_ASSIGNEE_NAME 拉取我的需求

pingcode_import_bugs

导入缺陷表,默认 dry-run

pingcode_import_requirements

导入需求表,默认 dry-run

pingcode_update_bug_status

修改单个缺陷状态

pingcode_mark_bugs_fixed

修复后批量把缺陷从 新提交 标记为 已修复,默认 dry-run

pingcode_add_work_item_comment

给缺陷/需求追加评论,默认 dry-run

pingcode_list_work_item_comments

获取缺陷/需求评论列表

pingcode_update_requirement_status

修改单个需求状态

pingcode_get_work_item

按编号或工作项 ID 获取单条详情(描述/图片/时间/父项/属性,可选评论)

pingcode_search_work_items

统一搜索缺陷+需求,支持状态/优先级/负责人/关键词/更新时间范围/分页

pingcode_plan_status_change

只读返回状态变更计划(当前/目标/可用状态/保护条件),永不执行

pingcode_update_work_item_fields

安全编辑字段(标题/描述/优先级/负责人/父项/属性),默认 dry-run

pingcode_triage_work_item

组合分诊:改负责人+优先级+状态+评论,默认 dry-run

pingcode_create_work_item

单条创建缺陷/需求(标题必填 + 描述/优先级/负责人/父项/属性),默认 dry-run

pingcode_bulk_update_work_items

按编号批量改优先级/负责人/状态(原生 bulk,≤100,planned/skipped/failed),默认 dry-run

pingcode_link_work_items

在两个工作项间建立关系(阻塞/被阻塞/重复/关联/依赖等),默认 dry-run

pingcode_unlink_work_items

按 relationId 删除工作项的某条关系(relationId 来自列关系工具),默认 dry-run

pingcode_list_work_item_relations

列出工作项的全部关系(可按 relationType 过滤),返回每条关系的 id 与目标

pingcode_get_my_work

聚合当前负责人的缺陷+需求并按状态分组(每组带计数、按 ID 去重),只读

表格模板

缺陷表字段:

编号, 标题, 状态, 优先级, 负责人, 父工作项, 描述

需求表字段:

编号, 标题, 状态, 负责人, 优先级, 父工作项, 需求类型, 创建时间, 描述

示例文件在 examples/ 目录。

富文本图片

pingcode_list_bugs / pingcode_list_requirements 会返回 imageCountimageSources,用于识别详情描述里的图片。

图片二进制下载需要 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_itemincludeComments=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_itemsassigneeNames + sprintIds + createdBetween)。

  • 「看技术部有哪些成员」→ pingcode_get_team_memberskeywordsdepartmentIds)。

  • 「当前连的是哪个企业」→ 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 字段直接复制,{} 为占位变量,按上下文填充:

动作

模板

接单(→ 处理中)

【接单】已接手处理,开始排查。当前优先级:{优先级}。预计跟进方向:{初步判断}。

处理中(开始定位)

【处理中】已复现(环境:{环境})。初步定位:{根因方向}。后续将{修复方案}。

修复待回归(→ 已修复)

【待回归】已修复并自测通过。根因:{根因}。改动点:{涉及模块/提交}。验证方式:{回归步骤}。请 QA 回归。

需求进入开发(→ 开发中)

【进入开发】需求已认领并启动开发。技术方案:{方案要点}。预计提测节点:{节点}。

回归打回(→ 处理中)

【打回】回归未通过。环境:{环境}。问题表现:{现象}。已退回处理中,请重新跟进。

关系 / 依赖

在工作项之间建立、删除、查看关系(阻塞 / 被阻塞 / 重复 / 关联 / 因果 / 克隆 / 依赖等)。

方向语义

关系记录在「源工作项」上,方向以源 → 目标理解:

  • 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;解析失败时回退原值,交给服务端校验。

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 }

源工作项用 identifierworkItemId 定位;目标用 targetIdentifiertargetWorkItemId,两者都解析不到目标时报「未找到目标工作项」。

列出关系(list)

pingcode_list_work_item_relations 只读,返回每条关系的 id(删除时需要)与目标工作项,可按 relationType 过滤。

{ "identifier": "PROJ-1" }

删除前必须先用「列出关系」拿到目标关系的 relationIdpingcode_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_itemsrelationType=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,图片只解析 imageSources URL,二进制下载进 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,写前统一经过 assertWritablePINGCODE_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 tools
pingcode_add_work_item_commentAdd PingCode Work Item CommentA

按编号或工作项 ID 给 PingCode 缺陷/需求追加评论。默认 dryRun=true。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
dryRunNo默认 true,仅返回计划;传 false 才真正写评论。
contentYes评论内容,支持 PingCode 评论富文本/文本内容。
projectIdNo
identifierNo工作项编号,如 PROJ-505。
workItemIdNoPingCode 工作项内部 ID。
projectIdentifierNo

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 贴进聊天。

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNo浏览器授权回调 URL 中的 code 参数;不传则返回授权 URL 与引导。

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 文件)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
dryRunNo默认 true,仅返回计划;传 false 才执行。
stateIdNo目标状态 ID;提供后优先于 statusName。
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
statusNameNo目标状态名称。
identifiersYes要批量更新的工作项编号列表,≤100。
assigneeNameNo目标负责人姓名。
priorityNameNo目标优先级名称。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
expectedCurrentStatusNameNo当前状态保护:不匹配的条目被跳过。

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 配置模板。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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,仅返回创建计划。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
titleYes工作项标题(必填)。
dryRunNo默认 true,仅返回创建计划;传 false 才真正创建。
parentNo父工作项编号或内部 ID。
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
propertiesNo自定义属性键值对。
statusNameNo初始状态名;不传则用类型默认初始态(推荐不传,避免流转校验失败)。
descriptionNo描述(支持 PingCode 富文本/文本)。
assigneeNameNo负责人姓名。
priorityNameNo优先级名称,如 普通、较高、最高。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 企业/团队信息(只读)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

No guidance is provided on when to use this tool versus alternatives. 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 无登录用户,自动降级返回配置的默认负责人。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 覆盖默认负责人、状态与更新时间过滤。只读。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNo要聚合的工作项类型,默认同时统计缺陷和需求。
pageSizeNo
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
stateNamesNo状态名称列表,按各类型分别解析过滤。
assigneeNameNo覆盖 PINGCODE_DEFAULT_ASSIGNEE_NAME 的负责人姓名(负责人列显示的展示名)。
updatedAfterNo更新时间下界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 起点。
updatedBeforeNo更新时间上界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 终点。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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/需求映射。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
typeIdNo
projectIdNo
projectIdentifierNo

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)过滤、分页。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNo按姓名/邮箱等关键字过滤企业成员。
pageSizeNo
pageIndexNo
departmentIdsNo部门 ID 列表,≤20,多个为「任一部门」。

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 获取单个缺陷/需求的完整详情(描述、时间、父项、属性、图片),可选附带评论。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
identifierNo工作项编号,如 PROJ-455。
workItemIdNoPingCode 工作项内部 ID,提供后优先于 identifier。
includeImagesNo是否请求 public_image_token 并解析富文本图片,默认 true。
includeCommentsNo是否一并返回评论列表,默认 false。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoupsert
dryRunNo默认 true,仅返回导入计划;传 false 才执行写入。
maxRowsNo
filePathYesExcel/CSV 文件路径,支持 .xlsx/.csv。
projectIdNo
sheetNameNo工作表名称,默认第一个 sheet。
projectIdentifierNo

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoupsert
dryRunNo默认 true,仅返回导入计划;传 false 才执行写入。
maxRowsNo
filePathYesExcel/CSV 文件路径,支持 .xlsx/.csv。
projectIdNo
sheetNameNo工作表名称,默认第一个 sheet。
projectIdentifierNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_list_bugsList PingCode BugsA

拉取 PingCode 缺陷列表,默认项目为 PROJ。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNo按编号或标题搜索。
pageSizeNo
pageIndexNo
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
stateNamesNo状态名称列表,如 打开、进行中、已完成。
assigneeNamesNo负责人姓名列表。
priorityNamesNo优先级名称列表,如 普通、较高、最高。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
includePublicImageTokenNo是否请求 PingCode 返回 public_image_token,用于富文本图片下载。

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNo按编号或标题搜索。
pageSizeNo
pageIndexNo
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
stateNamesNo状态名称列表,如 新提交、处理中、已修复。
assigneeNameNo覆盖 PINGCODE_DEFAULT_ASSIGNEE_NAME 的负责人姓名。
priorityNamesNo优先级名称列表,如 普通、较高、最高。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
includePublicImageTokenNo是否请求 PingCode 返回 public_image_token,用于富文本图片下载。

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNo按编号或标题搜索。
pageSizeNo
pageIndexNo
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
stateNamesNo状态名称列表,如 新提交、处理中、已修复。
assigneeNameNo覆盖 PINGCODE_DEFAULT_ASSIGNEE_NAME 的负责人姓名。
priorityNamesNo优先级名称列表,如 普通、较高、最高。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
includePublicImageTokenNo是否请求 PingCode 返回 public_image_token,用于富文本图片下载。

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault
keywordsNo按编号或标题搜索。
pageSizeNo
pageIndexNo
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
stateNamesNo状态名称列表,如 打开、进行中、已完成。
assigneeNamesNo负责人姓名列表。
priorityNamesNo优先级名称列表,如 普通、较高、最高。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
includePublicImageTokenNo是否请求 PingCode 返回 public_image_token,用于富文本图片下载。

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool 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 缺陷/需求评论列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
projectIdNo
identifierNo工作项编号,如 PROJ-505。
workItemIdNoPingCode 工作项内部 ID。
projectIdentifierNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, 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 与目标工作项。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
identifierNo工作项编号,如 PROJ-455。
workItemIdNoPingCode 工作项内部 ID,提供后优先于 identifier。
relationTypeNo按关系类型过滤(系统枚举或自定义关系类型名/ID)。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries 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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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,并校验当前状态仍为 新提交。

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNo默认 true,仅返回计划;传 false 才真正修改 PingCode。
commentNo可选:每个成功变更状态的缺陷追加同一条评论。
stateIdNo目标状态 ID;提供后优先于 statusName。
projectIdNo
statusNameNo目标状态,默认 已修复。已修复
identifiersYes要变更状态的缺陷编号列表,如 PROJ-505、PROJ-503。
projectIdentifierNo
expectedCurrentStatusNameNo当前状态保护条件,默认只处理 新提交。新提交

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 为准。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
stateIdNo目标状态 ID;提供后优先于 statusName。
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
identifierNo工作项编号,如 PROJ-455。
statusNameNo目标状态名称,如 已修复、已验收。
workItemIdNoPingCode 工作项内部 ID,提供后优先于 identifier。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
expectedCurrentStatusNameNo当前状态保护条件,仅用于在计划中标注是否满足,不阻断(本工具恒只读)。

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 去重的合并结果与各类型总数。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindsNo要搜索的工作项类型,默认同时搜索缺陷和需求。
tagIdsNo标签 ID 列表(raw),≤20。
typeIdsNo工作项类型 ID 列表(raw),与 kind 解析结果合并去重,≤20。
boardIdsNo看板 ID 列表(raw),≤20。
entryIdsNo入口 ID 列表(raw),≤20。
keywordsNo按编号或标题搜索。
pageSizeNo
phaseIdsNo阶段 ID 列表(raw),≤20。
stateIdsNo状态 ID 列表(raw),与 stateNames 解析结果合并去重,≤20。
pageIndexNo
parentIdsNo父工作项 ID 列表(raw),≤20。
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
sprintIdsNo迭代 ID 列表(raw),≤20。
endBetweenNo结束时间范围,秒级时间戳 起,止,支持单边,如 1700000000, 或 ,1700000000。
projectIdsNo项目 ID 列表(raw),与项目标识解析结果合并去重,≤20。
stateNamesNo状态名称列表,按各类型分别解析。
versionIdsNo版本 ID 列表(raw),≤20。
assigneeIdsNo负责人 ID 列表(raw),与 assigneeNames 解析结果合并去重,≤20。
priorityIdsNo优先级 ID 列表(raw),与 priorityNames 解析结果合并去重,≤20。
swimlaneIdsNo泳道 ID 列表(raw),≤20。
createdByIdsNo创建人 ID 列表(raw),≤20。
startBetweenNo开始时间范围,秒级时间戳 起,止,支持单边,如 1700000000, 或 ,1700000000。
updatedAfterNo更新时间下界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 起点。
assigneeNamesNo负责人姓名列表。
participantIdNo参与人 ID(raw,单值)。
priorityNamesNo优先级名称列表。
updatedBeforeNo更新时间上界(ISO 或 yyyy-MM-dd),映射为服务端 updated_between 终点。
createdBetweenNo创建时间范围,秒级时间戳 起,止,支持单边,如 1700000000, 或 ,1700000000。
includeDeletedNo是否包含已删除工作项,默认 false。
includeArchivedNo是否包含已归档工作项,默认 false。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
dryRunNo默认 true,仅返回合并计划;传 false 才执行写入。
commentNo可选:处理后追加的评论。
stateIdNo目标状态 ID;提供后优先于 statusName。
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
identifierNo工作项编号,如 PROJ-455。
statusNameNo目标状态名称。
workItemIdNoPingCode 工作项内部 ID,提供后优先于 identifier。
assigneeNameNo新负责人姓名。
priorityNameNo新优先级名称。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
expectedCurrentStatusNameNo当前状态保护条件;不匹配则整单拒绝,不部分执行。

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_update_bug_statusUpdate PingCode Bug StatusB

按编号或工作项 ID 修改单个缺陷状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNotrue 时只返回计划,不执行 PATCH。
commentNo可选:状态变更成功后追加评论。
stateIdNo目标状态 ID;提供后优先于 statusName。
projectIdNo
identifierNo工作项编号,如 PROJ-455。
statusNameNo目标状态名称,如 挂起、已验收、打开、进行中。
workItemIdNoPingCode 工作项内部 ID。
projectIdentifierNo
expectedCurrentStatusNameNo可选:当前状态保护条件,不匹配则拒绝更新。

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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 修改单个需求状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNotrue 时只返回计划,不执行 PATCH。
commentNo可选:状态变更成功后追加评论。
stateIdNo目标状态 ID;提供后优先于 statusName。
projectIdNo
identifierNo工作项编号,如 PROJ-455。
statusNameNo目标状态名称,如 挂起、已验收、打开、进行中。
workItemIdNoPingCode 工作项内部 ID。
projectIdentifierNo
expectedCurrentStatusNameNo可选:当前状态保护条件,不匹配则拒绝更新。

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 变化字段。

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo工作项类型,默认 bug。bug
titleNo新标题。
dryRunNo默认 true,仅返回计划与字段 diff;传 false 才执行 PATCH。
parentNo父工作项编号或内部 ID。
projectIdNoPingCode 项目 ID,提供后跳过项目标识查询。
identifierNo工作项编号,如 PROJ-455。
propertiesNo自定义属性键值对。
workItemIdNoPingCode 工作项内部 ID,提供后优先于 identifier。
descriptionNo新描述(支持 PingCode 富文本/文本)。
assigneeNameNo负责人姓名。
priorityNameNo优先级名称,如 普通、较高、最高。
projectIdentifierNoPingCode 项目标识,默认读取 PINGCODE_PROJECT_IDENTIFIER。
expectedCurrentStatusNameNo当前状态保护条件(PingCode 无版本号,借此做弱幂等);不匹配则拒绝写入。

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 30 tool updatesv0.2.0
    • First observedpingcode_add_work_item_comment
    • First observedpingcode_auth_login
    • First observedpingcode_auth_logout
    • First observedpingcode_auth_status
    • First observedpingcode_bulk_update_work_items
    • First observedpingcode_check_setup
    • First observedpingcode_create_work_item
    • First observedpingcode_get_current_team
    • First observedpingcode_get_current_user
    • First observedpingcode_get_my_work
    • First observedpingcode_get_project_schema
    • First observedpingcode_get_team_members
    • First observedpingcode_get_work_item
    • First observedpingcode_import_bugs
    • First observedpingcode_import_requirements
    • First observedpingcode_link_work_items
    • First observedpingcode_list_bugs
    • First observedpingcode_list_my_bugs
    • First observedpingcode_list_my_requirements
    • First observedpingcode_list_requirements
    • First observedpingcode_list_work_item_comments
    • First observedpingcode_list_work_item_relations
    • First observedpingcode_mark_bugs_fixed
    • First observedpingcode_plan_status_change
    • First observedpingcode_search_work_items
    • First observedpingcode_triage_work_item
    • First observedpingcode_unlink_work_items
    • First observedpingcode_update_bug_status
    • First observedpingcode_update_requirement_status
    • First observedpingcode_update_work_item_fields

TDQS

A3.5/5.0

Scored across 30 tools

Disambiguation4/5

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.

Naming Consistency5/5

All tools follow a consistent pingcode_verb_noun pattern in snake_case, making it predictable and easy to understand the action and resource.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/frontendRicky/pingcode-mcp'

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