Skip to main content
Glama
yingcaihuang

meegle-cli-mcp

by yingcaihuang

meegle-cli-mcp

文档说明与引用

本 README 同时参考以下来源进行整理与校验:

其中,工具能力边界、流程建议与排障提示以本仓库实现为准;安装与配置细节补充参考官方文档。

一个基于本地 meegle CLI 的 stdio MCP server,面向 VS Code / Copilot 等 MCP 客户端使用。

它遵循两条原则:

  • 不处理登录,只复用本机已经可用的 meegle 认证状态

  • 不假设默认项目,多项目场景统一先走 project_search

Related MCP server: Azure DevOps MCP Server

快速开始

前提:

  • 本机已安装并可执行 meegle

  • 本机 meegle auth status 已通过

  • Node.js 18+

Meegle CLI 安装与配置(来自官方 README)

官方来源:

1) 安装(交互式)

前置条件:

  • Node.js >= 16(含 npm / npx)

运行安装向导(会安装或升级 CLI、配置 host,并引导登录):

npx @lark-project/meegle@latest install

2) 安装(AI Agent / CI / 无头环境)

在无浏览器或无 TTY 场景,建议启用 Device Code:

npx -y @lark-project/meegle@latest install --host <host> --device-code --lang zh

<host> 示例:

  • project.feishu.cn

  • meegle.com

  • 自建租户域名

安装后建议先验证:

meegle auth status

3) 认证常用命令

meegle auth login
meegle auth login --device-code
meegle auth status
meegle auth logout

4) 配置常用命令

meegle config init
meegle config show
meegle config set host project.feishu.cn
meegle config get host

配置文件位置:

  • ~/.meegle/config.json

5) 多环境 Profile

meegle config profile create staging
meegle config profile list
meegle config profile use staging
meegle config profile current
meegle config profile delete staging

临时指定 profile 运行:

meegle mywork todo --action this_week --page-num 1 --profile staging

6) 沙盒 / CI 环境变量注入

export MEEGLE_HOST=project.feishu.cn
export MEEGLE_USER_ACCESS_TOKEN=<your-user-token>
export MEEGLE_USER_AGENT=ci-runner

可选:自定义 token header(覆盖默认 Authorization)

export MEEGLE_ACCESS_TOKEN_HEADER=x-meegle-auth

说明:

  • 设置 MEEGLE_USER_ACCESS_TOKEN 后,CLI 会优先使用环境变量 token。

  • 可在 config.json 使用 ${VAR} 模板引用环境变量(仅整串占位符会展开)。

安装依赖:

npm install

启动 server:

npm start

本地检查:

npm run check
npm run smoke:test

VS Code 配置

如果你在 VS Code / Copilot MCP 配置里接入,通常可以直接使用:

{
  "servers": {
    "meegle-cli": {
      "type": "stdio",
      "command": "node",
      "args": ["/Users/betty/meegle-cli-mcp/src/server.mjs"]
    }
  }
}

通用 mcpServers 写法也可用:

{
  "mcpServers": {
    "meegle-cli": {
      "command": "node",
      "args": ["/Users/betty/meegle-cli-mcp/src/server.mjs"]
    }
  }
}

如果你现在是在 AWS Q 或其他使用 mcpServers 结构的客户端里接入,也可以直接按下面这种方式配置:

{
  "mcpServers": {
    "meegle-cli": {
      "command": "node",
      "args": ["/absolute/path/to/meegle-cli-mcp/src/server.mjs"]
    }
  }
}

如果你之前已经有类似这样的配置:

{
  "mcpServers": {
    "lark": {
      "command": "node",
      "args": ["/absolute/path/to/lark-cli-mcp/server.mjs"]
    }
  }
}

那么新增 meegle-cli 时,只需要并列加一个 server:

{
  "mcpServers": {
    "lark": {
      "command": "node",
      "args": ["/absolute/path/to/lark-cli-mcp/server.mjs"]
    },
    "meegle-cli": {
      "command": "node",
      "args": ["/absolute/path/to/meegle-cli-mcp/src/server.mjs"]
    }
  }
}

Claude Desktop / Cursor 一般也可复用同一套 stdio 配置。

多项目原则

这套 server 明确按多项目场景设计:

  • 不依赖 MEEGLE_DEFAULT_PROJECT_KEY

  • 没有明确项目时,先调用 project_search

  • 有多个候选项目时,先确认项目,再继续项目级工具

  • 后续项目级工具尽量显式传 project_key

推荐顺序:

  1. project_search

  2. workitem_meta_types / view_search / team_list 等项目内解析工具

  3. 具体业务 tool

VS Code 使用建议

对模型最关键的信息来自三层:

  1. tool 的 description

  2. tool 的 inputSchema

  3. tool 的 annotations

当前 server 已补齐这些元数据。模型在 tools/list 后,应该能知道:

  • 哪些 tool 是只读查询

  • 哪些 tool 有副作用

  • 哪些写操作默认要先 dry_run=true

  • 多项目场景应先用 project_search

Tool 标签约定

  • readOnlyHint=true:纯查询工具

  • destructiveHint=true:可能写数据或触发动作

  • idempotentHint=true:适合探测或重试

  • openWorldHint=true:会访问外部 Meegle 系统

Tool 索引

认证与发现

  • auth_status:检查本地 meegle 登录态

  • project_search:多项目第一入口,解析项目或列最近项目

  • inspect_command:查看底层 meegle CLI 命令 schema

  • meegle_command:原始 argv 透传兜底工具

工作项查询

  • workitem_meta_types:查询项目支持的工作项类型

  • workitem_meta_fields:查询字段 key、字段类型和选项

  • workitem_discover_status_values:采样某类工作项里实际出现过的状态 key 和显示标签,避免猜 OPENIN_PROGRESS

  • workitem_query:项目级列表 / 搜索入口,要求完整 MQL

  • workitem_query:项目级列表 / 搜索入口,要求完整 MQL;状态或枚举过滤要用项目实际显示值,不要假设 OPENIN_PROGRESS

  • workitem_get:查询单个工作项详情

  • workitem_batch_get:批量查询多个工作项

工作项写操作

  • workitem_create:创建工作项,默认 dry_run=true

  • workitem_update:更新字段或角色,默认 dry_run=true

评论与附件

  • comment_list:查询评论

  • comment_add:新增评论,默认 dry_run=true

  • attachment_prepare_download:下载前预处理

  • attachment_prepare_upload:上传前预处理

关系、视图、图表

  • relation_meta_definitions:查询关系定义

  • relation_list:查询关联工作项

  • view_search:按名称解析 view_id

  • view_get:查询视图下工作项

  • chart_list:查询视图下图表

  • chart_get:查询单个图表详情

团队、用户、工时

  • user_resolve_keys:把姓名 / 邮箱 / 别名解析为规范 user_key

  • user_search:查询用户明细(底层透传)

  • team_list:查询团队

  • team_list_members:查询团队成员

  • workhour_list_schedule:查询排期与工作量

我的工作台与流程

  • mywork_todo:查询我的待办、已办、逾期、本周任务

  • workflow_get_node:查询节点详情和子任务上下文

  • workflow_list_state_transitions:查询可流转状态

  • workflow_smart_transition:自动识别节点流 / 状态流并执行对应流转(默认 dry_run=true

  • workflow_transition:节点流流转,默认 dry_run=true

  • workflow_transition_state:状态流流转,默认 dry_run=true

  • subtask_update:子任务创建 / 更新 / 完成 / 回滚,默认 dry_run=true;若项目未开启资源库会返回专用 hint

Prompt 模板

除了 tool,这个 server 还暴露了一组 prompt 模板,给模型提供稳定的工作流模板:

  • resolve_project_context:多项目场景第一入口

  • query_project_workitems:查需求 / 缺陷 / 任务

  • safe_workitem_update:安全更新工作项

  • inspect_view_and_chart:查视图和图表

  • personal_work_queue:查个人待办和追踪详情

  • workflow_and_subtask_action:处理工作流和子任务

这些 prompt 不替代 tool,而是告诉模型“应该先做什么,再做什么”。

常用调用范式

先解析项目

  • 用户只说“帮我看产研工作空间”:先 project_search

  • 没有任何项目线索:空参调用 project_search

  • 多个候选项目都像目标:先确认项目,再继续

查工作项

  • 按状态筛选前先探测:workitem_discover_status_values -> workitem_query

  • 查某个空间里有什么需求:project_search -> workitem_meta_types -> workitem_query

  • 按标题模糊找工作项:workitem_query -> workitem_get

  • 更新前查字段 schema:workitem_meta_fields -> workitem_update

  • 按状态筛选工作项:优先使用项目里的状态显示值;不要直接猜 OPENIN_PROGRESS 这类英文常量

查视图 / 图表

  • 先按名字找视图:view_search

  • 再查视图内容:view_get

  • 再查图表:chart_list -> chart_get

查节点 / 子任务 / 状态流

  • 先查节点:workflow_get_node

  • 查可流转状态:workflow_list_state_transitions

  • 首选自动流转:workflow_smart_transition

  • 节点流或状态流写操作:先 dry_run=true,确认后再 dry_run=false

workflow_smart_transition 关键参数:

  • mode=auto:自动判定节点流 / 状态流

  • work_item_type:状态流且未提供 transition_id 时必填

  • target_status_label:按目标状态名匹配 transition

  • auto_pick_first_transition=true:当状态流有多条候选、且没给 transition_id/target_status_label 时,自动选第一条

查人 / 团队 / 排期

  • 先解析用户:user_resolve_keys

  • 先解析团队:team_list

  • 再查成员或排期:team_list_members / workhour_list_schedule

推荐用户字段写入链路:

  1. user_resolve_keys 拿到 resolved_user_keys

  2. resolved_user_keys 写入 workitem_create/workitem_update/subtask_update 相关用户字段

参数约定

项目参数

  • 多项目场景建议显式传 project_key

  • 项目不明确时不要猜,先调用 project_search

写操作参数

  • workitem_create

  • workitem_update

  • comment_add

  • workflow_transition

  • workflow_transition_state

  • subtask_update

这些默认都应先保持 dry_run=true

复杂字段值

workitem_create / workitem_update / subtask_update 等工具:

  • 数组和对象值可以直接传给 MCP tool

  • server 会自动转成 meegle CLI 需要的 JSON 字符串

MQL 状态与枚举值

  • workitem_query 里的状态、枚举、下拉选项值通常是项目自己的显示值

  • 不要假设所有项目都支持 OPENIN_PROGRESSDONE 这种英文常量

  • 字符串值优先使用单引号,例如 '新建'

  • 当状态过滤失败时,优先判断是不是“值不属于这个项目的实际标签”,而不是 tool 本身坏了

本地联调

npm run smoke:test 会自动完成:

  1. tools/list

  2. tools/call -> project_search

  3. prompts/list

  4. tools/call -> auth_status

  5. tools/call -> workitem_meta_types,但只在先拿到项目后再调用

  6. tools/call -> workitem_discover_status_values

  7. prompts/get -> safe_workitem_update

如果你只想确认 server 能否被正常加载:

npm run check

排障

工具调用失败

  • 先调 auth_status

  • 再看是否缺少 project_key

  • 多项目场景先回到 project_search

写操作不生效

  • 检查是否还在 dry_run=true

  • 检查字段 key 是否来自 workitem_meta_fields

项目选错

  • 不要依赖历史上下文猜项目

  • 重新调用 project_search

  • 必要时让用户确认候选项目

说明

  • 这个 server 不处理登录流程,只复用当前 shell 环境里已经可用的 meegle 认证状态

  • 所有命令都通过 spawn('meegle', args) 调用,不经过 shell

  • 工具默认追加 --format json,便于 MCP 客户端消费结构化输出

Available Tools

34 tools
attachment_prepare_downloadPrepare Attachment DownloadA
Read-onlyIdempotent

Preprocess an attachment download and return the signed URL plan. Use this when you already have a file_url from workitem_get or comment_list and need the backend-generated download plan.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_urlYesOpaque file_url returned by another meegle command.
project_keyNoOptional project key for the file context.
work_item_idNoOptional work item ID that owns the file.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: it is a preprocessing step that returns a 'signed URL plan' rather than the file itself, and it requires an existing file_url from specific commands. This goes beyond the annotations, though it doesn't detail the plan's contents or potential 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 two sentences, front-loaded with the primary purpose and followed by a crisp usage guideline. Every sentence earns its place; there is no redundancy or filler.

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 tool is low-complexity (3 params, 1 required) and well-annotated. The description explains the return type (signed URL plan) and the prerequisite (file_url from other commands), which is sufficient for an agent to select and invoke the tool. It lacks a detailed structure of the signed URL plan, but with no output schema and given the simplicity, the description is adequately complete.

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 the schema fully documents all three parameters. The description's mention of 'file_url from workitem_get or comment_list' adds contextual meaning that the file_url is opaque and sourced from specific commands, which is also in the schema. Since the schema already does the heavy lifting, the description adds only marginal value, consistent with the baseline of 3.

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 function: 'Preprocess an attachment download and return the signed URL plan.' It uses a specific verb ('preprocess') and resource ('attachment download'), and distinguishes from siblings by explicit focus on download versus upload (attachment_prepare_upload) and by referencing file_url from other commands.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: 'Use this when you already have a file_url from workitem_get or comment_list and need the backend-generated download plan.' This clearly indicates the prerequisite and the intended alternative scenario, though it does not explicitly name upload as an alternative, the sibling tool name and context make it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

attachment_prepare_uploadPrepare Attachment UploadA
Read-onlyIdempotent

Preprocess an attachment upload and return the signed upload plan. Use this when a caller wants to manage the upload bytes outside meegle CLI but still needs backend-generated signed upload metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoTotal file size in bytes.
field_keyNoAttachment field key for resource_type 15 or 16.
file_nameNoOriginal file name.
mime_typeNoMime type such as application/pdf or image/png.
project_keyNoOptional project key for the file target.
work_item_idNoExisting work item ID when attaching to an existing work item or comment.
resource_typeNo15 work item field, 16 rich text image, 13 comment attachment, 14 comment image.
work_item_typeNoWork item type key when preparing upload before the work item exists.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, providing a safety profile. The description adds value by explaining that the tool returns a signed upload plan and is intended for external byte management, without contradicting the annotations.

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 sentences, front-loaded with the core purpose, and contains no redundant information. Every word 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?

With no output schema, the description appropriately mentions the return type ('signed upload plan' / 'signed upload metadata'). It also explains the workflow context (managing bytes outside CLI). However, it does not elaborate on how the 8 parameters interrelate, though the schema covers individual parameter meaning.

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 each of the 8 parameters having a description. The description itself adds no additional parameter-level context, so the baseline of 3 is appropriate; the schema carries the parameter semantics.

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 function: 'Preprocess an attachment upload and return the signed upload plan.' It uses a specific verb ('preprocess') and resource ('attachment upload'), and differentiates from the sibling tool attachment_prepare_download by focusing on upload rather than download.

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 provides explicit context: 'Use this when a caller wants to manage the upload bytes outside meegle CLI but still needs backend-generated signed upload metadata.' This tells the agent when to use it, though it does not mention when not to use it or name specific alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

auth_statusMeegle Auth StatusA
Read-onlyIdempotent

Check whether the local meegle CLI is already authenticated. Call this first when any business tool unexpectedly fails, or when you need to confirm the server can reuse the user's local login state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already provide the safety profile (readOnlyHint, openWorldHint, idempotentHint true, destructiveHint false). The description adds context about checking local CLI state and reusing login, but does not detail return format or other behavioral aspects. This is adequate but not rich.

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 sentences, front-loaded with the main purpose, and contains no superfluous information. Every clause 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, read-only status tool with no output schema, the description is complete: it explains what the tool does and when to use it, without needing to specify return values or prerequisites.

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 zero parameters, so schema description coverage is trivially 100%. The baseline for no parameters is 4; the description doesn't need to explain parameter semantics.

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: 'Check whether the local meegle CLI is already authenticated.' This is a specific verb and resource, and it distinguishes the tool from the many business/sibling tools by focusing on authentication status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit usage guidance: 'Call this first when any business tool unexpectedly fails, or when you need to confirm the server can reuse the user's local login state.' This tells the agent exactly when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chart_getGet ChartA
Read-onlyIdempotent

Get chart details by chart ID. Use this after resolving chart_id from chart_list.

ParametersJSON Schema
NameRequiredDescriptionDefault
chart_idYesChart ID.
project_keyNoOptional project key for the chart context.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description does not need to restate safety. It adds the workflow hint ('after resolving chart_id from chart_list') which is helpful context, but does not disclose return format, error behavior, or any additional behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The description is front-loaded with the core purpose and ends with a practical workflow tip. Every word 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?

For a simple get-by-ID tool with one required parameter, the description is adequately complete. It provides the key workflow step and relies on strong annotations. The lack of an output schema is mitigated by the simplicity of the operation and the sibling chart_list reference.

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%: chart_id is described as 'Chart ID' and project_key as 'Optional project key for the chart context.' The description does not add meaning beyond the schema, so the baseline of 3 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 states 'Get chart details by chart ID' with a specific verb and resource, clearly distinguishing it from the sibling chart_list tool (list vs. details). It also provides a workflow hint ('Use this after resolving chart_id from chart_list') that reinforces its specific role.

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 advises to use this tool after resolving chart_id from chart_list, offering clear sequencing context. It does not name alternative tools or exclusions, but the workflow hint is sufficient for a simple get-by-ID operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chart_listList ChartsA
Read-onlyIdempotent

List charts under a view. Use this after resolving a view_id through view_search or direct user input.

ParametersJSON Schema
NameRequiredDescriptionDefault
view_idYesView ID.
page_numNo
page_sizeNoOptional page size, maximum 200.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds minimal behavioral context beyond the list scope and usage sequence, providing no additional details about pagination, return format, or special 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?

The description is two concise sentences, front-loaded with the core action and followed by a usage hint. Every word earns its place, and it is easy to parse quickly.

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 simple list operation with good annotations and a schema that covers most parameters, the description adequately covers purpose and usage. It does not describe return values, but no output schema exists and the operation is straightforward, so it is sufficiently complete.

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 75%, with view_id, page_size, and project_key already described in the schema; only page_num lacks an explicit description. The tool's description does not add parameter-level meaning beyond the schema, leaving the baseline at 3.

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 uses a specific verb and resource ('List charts under a view'), clearly indicating the operation and scope. It distinguishes from sibling chart_get (get one chart) and view_search/view_get by focusing on listing charts under a resolved view.

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 states when to use the tool ('after resolving a view_id through view_search or direct user input'), providing clear context. However, it does not mention when not to use it or directly contrast with chart_get, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

comment_addAdd CommentA
Destructive

Add a comment to a work item. Use file_token only when an attachment was uploaded separately. This tool defaults to dry_run=true for safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesComment text.
dry_runNoLeave true to preview the comment request. Set false to really post the comment.
file_tokenNoOptional attachment token returned by a separate upload flow.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_idYesTarget work item ID.

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description adds valuable behavioral context: defaulting to dry_run=true for safety, which is not apparent from the schema or annotations. It also clarifies the prerequisite for file_token use. This adds meaningful transparency for the agent.

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 concise and front-loaded: the first sentence states the purpose, followed by two short sentences that add essential usage details. Every sentence earns its place with no unnecessary filler.

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 mutation tool with 5 parameters and no output schema, the description covers the key behavioral aspects (dry_run, file_token condition). The schema handles project_key guidance, and annotations cover destructiveness. It is complete enough for the agent to invoke the tool safely, with only minor gaps like explicit return-value expectations.

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?

While the schema already covers all parameters (100% coverage), the description enriches understanding of two key params: file_token (when to use it) and dry_run (default behavior and purpose). This goes beyond the schema definitions and helps the agent use the params correctly.

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 states the specific action with a clear verb+resource: 'Add a comment to a work item.' This directly distinguishes the tool from sibling tools like comment_list and workitem_update. No ambiguity about the tool's core function.

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?

Provides clear usage context with instructions for file_token ('only when an attachment was uploaded separately') and the dry_run safety default. However, it does not explicitly mention when to use this tool versus alternatives like comment_list, though the name and description make this fairly obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

comment_listList CommentsB
Read-onlyIdempotent

List comments on a work item. Use optional start_time and end_time to narrow the time window.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_timeNoOptional end time filter.
page_numNo
start_timeNoOptional start time filter.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_idYesTarget work item ID.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds the time-window filtering behavior but does not disclose pagination or response structure. With annotations covering safety, this is adequate but not rich.

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 sentences, front-loaded, and contains no redundant information. It is highly concise and efficiently conveys the core purpose and primary usage.

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?

The description is minimal. It does not mention pagination (page_num) or the project_key requirement, and there is no output schema, so the agent may be unsure about return format. Given 5 parameters, this is an incomplete description.

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 80%, so the baseline is 3. The description reiterates the time filter parameters but does not add meaning for page_num or project_key beyond what is already in the schema.

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 lists comments on a work item, which is a specific verb+resource action. It is distinguishable from siblings like comment_add and workitem_get, though it does not explicitly name alternatives.

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?

There is no guidance on when to use this tool versus alternatives such as workitem_get or comment_add. The only usage advice is about optional time filters, which is parameter-level guidance, not tool selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

inspect_commandInspect CLI CommandA
Read-onlyIdempotent

Inspect the latest meegle CLI command schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandNoFor example: workitem.create or workflow.transition

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds minimal behavioral context beyond 'latest' (implying versioning) and that it returns a schema. No contradiction with annotations, but no significant additional disclosure.

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, clear sentence with no unnecessary words. It is front-loaded with the action and resource, serving its purpose efficiently.

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 simple tool with one parameter, no output schema, and strong annotations, the description sufficiently states the tool's purpose. It could optionally clarify the return format, but it is not a complex tool.

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%: the single parameter 'command' is documented with examples ('workitem.create or workflow.transition'). The description does not add meaning beyond 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 'Inspect the latest meegle CLI command schema' uses a specific verb ('Inspect') and resource ('meegle CLI command schema') with scope ('latest'). It clearly distinguishes from sibling tools like 'meegle_command' (which likely executes) and other command-related 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 is provided on when to use this tool versus alternatives. It doesn't mention that it complements 'meegle_command' (e.g., to check schemas before executing) or any exclusions. The usage context is entirely implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meegle_commandRun Raw Meegle CommandA
Destructive

Run a raw meegle CLI command as an argv array. Uses spawn without a shell.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYesArgument vector after the meegle binary, for example ["project","search"].

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds a useful detail: "Uses spawn without a shell," which clarifies that arguments are passed directly without shell interpolation. However, it does not elaborate on potential side effects or output behavior, so it does not significantly exceed what annotations already convey.

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 sentences, front-loaded with the primary purpose and followed by a key technical implementation detail. Every word adds value, and there is no redundancy or filler.

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 tool is structurally simple with only one parameter, well covered by the schema and annotations. However, given the open-ended nature of a raw command execution, the description lacks context about what the command returns (e.g., raw stdout/stderr), and it does not caution about the broad destructive potential despite the destructiveHint annotation. It is minimally complete but leaves gaps for an agent to anticipate behavior.

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?

The schema already provides a clear description of the only parameter `args` with an example: "Argument vector after the meegle binary, for example [\"project\",\"search\"]." The tool description merely repeats "argv array" without adding new meaning. Since schema coverage is 100%, the baseline of 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's purpose: "Run a raw meegle CLI command as an argv array." This uses a specific verb (run) and resource (meegle CLI command), and the mention of "raw" and "argv array" distinguishes it from sibling tools that provide specific high-level operations like workitem_get or project_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?

The description provides no guidance on when to use this tool versus the many specific sibling tools. It does not mention that this is a fallback for unsupported commands, nor does it warn against using it when a higher-level tool exists. The phrase "raw" implies lower-level access, but no explicit when/when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mywork_todoList My Work ItemsA
Read-onlyIdempotent

List the current user's Meegle to-dos or completed items. Use this for personal work queues instead of project-wide query logic.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhich personal queue to read.
page_numNo
asset_keyNoOptional workspace asset key when the account spans multiple workspaces.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds context about the tool's scope ('current user's' personal queue) and the distinction from project-wide queries, which is useful behavioral context beyond the annotations. It does not contradict any annotation.

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 sentences long, front-loaded with the purpose, and every word earns its place. It is concise yet informative, with no redundant filler.

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 simple list tool with good annotations and a clear scope, the description is nearly complete. It covers the core action, audience, and usage context. The only minor gap is that it does not explicitly mention pagination behavior or return structure, but these are not critical for a straightforward read-only list tool.

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?

The input schema already documents the 'action' enum and 'asset_key' description, giving 67% coverage. The description reinforces the notion of 'to-dos or completed items' which aligns with the 'action' parameter but adds no new details for 'page_num' or 'asset_key.' Since schema coverage is moderate and the description does not meaningfully compensate for the undocumented 'page_num,' a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

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 function: 'List the current user's Meegle to-dos or completed items.' It uses a specific verb ('List') and identifies the resource ('current user's Meegle to-dos or completed items'), and it distinguishes itself from sibling tools by noting 'instead of project-wide query logic.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description explicitly tells when to use this tool: 'Use this for personal work queues' and contrasts it with 'project-wide query logic.' This provides clear guidance and implies a sibling alternative, making the usage context unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

relation_listList Related Work ItemsA
Read-onlyIdempotent

List work items linked by a relation field. Call relation_meta_definitions first when relation_id or relation_field_key is unknown.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idNoOptional node ID when querying relations under a specific node.
page_numNo
page_sizeNoOptional page size, maximum 50.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
relation_idNoOptional relation ID from relation_meta_definitions.
work_item_idYesSource work item ID.
relation_field_keyNoOptional relation field key from relation_meta_definitions.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds a dependency on relation_meta_definitions but does not elaborate on response format or error behavior, so with annotations lowering the bar, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the primary action and no redundant phrasing. It efficiently conveys the core purpose and a key prerequisite.

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 list tool with no output schema, the description provides the essential prerequisite and relies on the schema for parameter details. It could mention pagination or response structure, but the schema includes page_num/page_size with defaults, making it reasonably complete.

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 86%, so most parameters are documented. The description reinforces the roles of relation_id and relation_field_key by directing to relation_meta_definitions, but it does not add significant semantic detail beyond what the schema already provides.

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 lists work items linked by a relation field, which is a specific verb+resource combination. It distinguishes itself from siblings like workitem_query or workitem_get by focusing on relation-based linking.

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 instructs to call relation_meta_definitions first when relation_id or relation_field_key is unknown, providing a clear prerequisite. It does not explicitly exclude alternatives, but the context is sufficient for an agent to know when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

relation_meta_definitionsList Relation DefinitionsA
Read-onlyIdempotent

List relation definitions in a project. Use this before relation_list when you need to discover relation IDs or relation field keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_typeNoOptional source work item type key.
relation_work_item_typeNoOptional related work item type key to narrow definitions.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and no destructive action, covering the safety profile. The description adds only the purpose of discovering relation IDs or field keys, which is more about usage than behavior. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action, and contains no redundant information. Every word 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?

For a simple list operation, the description combined with strong annotations and full schema coverage is nearly complete. It does not detail output format or pagination, but that is not critical given the tool's simplicity. The mention of discovering IDs and keys hints at the return value's utility.

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?

The input schema has 100% parameter description coverage, with each of the three parameters clearly described. The tool description adds no extra parameter semantics beyond what the schema already provides, so the baseline score of 3 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 the tool's purpose with a specific verb and resource: 'List relation definitions in a project.' It also distinguishes from the sibling relation_list by explaining this tool discovers relation IDs and field keys, which clarifies its niche.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description explicitly instructs when to use this tool: 'Use this before relation_list when you need to discover relation IDs or relation field keys.' This provides clear usage context and differentiates it from the alternative, though it does not explicitly state 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.

subtask_updateUpdate SubtaskA
Destructive

Create, update, confirm, or rollback a subtask. Use workflow_get_node first when node_id or existing subtask context is unknown. This tool defaults to dry_run=true for safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoSubtask operation type.update
fieldsNoSubtask field mutation payload.
dry_runNoLeave true to preview the normalized subtask request. Set false to really execute.
node_idYesTemplate node ID that owns the subtask.
task_idNoExisting subtask ID; required for update, confirm, or rollback flows.
assigneeNoAssignee user keys when the node is not role-linked.
scheduleNoSubtask schedule payload.
deliverableNoDeliverable payload when the subtask supports deliverables.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_idNoParent work item ID.
role_assigneeNoRole-linked assignee payload when the node uses role linkage.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark the tool as destructive and not read-only, so the description's main addition is the dry_run=true default, which tempers the destructive expectation by indicating that real execution requires explicitly setting dry_run=false. This is valuable safety-relevant behavior beyond the annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first leads with the core purpose, and the second gives a prerequisite and safety default. No filler, every clause contributes. Excellent front-loading.

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 params, four actions, no output schema), the description provides the most critical context: the prerequisite workflow_get_node call and the dry_run safety default. It doesn't explain action-specific requirements like task_id for confirm/rollback, but the schema covers those. A bit more guidance on action semantics would elevate it, but it's sufficient for an agent with schema visibility.

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?

The schema covers all 11 parameters with descriptions, so the baseline is 3. The description's only param-related note is about node_id ('Use workflow_get_node first when node_id...unknown'), which adds a usage hint but not new semantics beyond the schema's 'Template node ID that owns the subtask.' Thus minimal 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 operates on subtasks with four specific actions (create/update/confirm/rollback), distinguishing it from sibling tools like workitem_update which target work items. The resource and verbs are explicit, so the agent knows exactly what this tool does.

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 directs calling workflow_get_node first when node_id or existing subtask context is unknown, providing a concrete when-to-use prerequisite. It also notes the dry_run default, implying a safe way to explore the tool without side effects. However, it doesn't explicitly state when not to use this tool vs other tools like workitem_update.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_listList TeamsA
Read-onlyIdempotent

List teams in a project. Use this before team_list_members when only a team name is known.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional team name keyword.
page_tokenNoOptional pagination token from a previous page.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare the tool as readOnly, idempotent, openWorld, and non-destructive, so the description does not need to repeat these. It adds some behavioral context (project scope and a sequencing hint) but does not disclose pagination behavior or return format. With strong annotations, this is acceptable but not highly revealing.

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 short sentences, with the core action front-loaded. Every word earns its place, providing clear purpose and a usage hint without unnecessary detail.

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 simple list tool with three optional parameters and rich annotations, the description covers the main purpose and adds a critical usage hint. It does not explicitly explain return format, but 'List teams' implies a list. Overall, it is sufficiently complete for the tool's complexity.

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%, with each of the three parameters having a descriptive description. The tool description does not add any additional parameter semantics beyond what the schema already documents, so the baseline 3 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 the action: 'List teams in a project' with a specific resource and scope. It also differentiates from the sibling tool team_list_members by mentioning it should be used before it when only a team name is known, establishing a distinct purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Use this before team_list_members when only a team name is known.' This identifies an alternative tool and a specific condition for using this one. The parameter schema also adds guidance for project_key, though that is outside the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

team_list_membersList Team MembersA
Read-onlyIdempotent

List members of a team by team ID. Call team_list first when you need to resolve the team_id from a team name.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional member-name keyword.
team_idYesTeam ID returned by team_list.
page_tokenNoOptional pagination token from a previous page.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds only a workflow hint (team_list) rather than behavioral traits like pagination, ordering, or error handling. With strong annotations, the description provides minimal additional behavioral context, so 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with two sentences that front-load the main purpose and then supply the key prerequisite. No filler or wasted words; every sentence 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?

For a list tool with no output schema, the description is sufficient given the rich annotated schema. It does not explicitly mention pagination or the query filter, but these are covered by parameter descriptions. The main omission is not stating what the response contains, but this is reasonable for a simple list 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?

Schema coverage is 100%, providing full descriptions for all four parameters. However, the description adds meaningful context by stating that team_id is 'returned by team_list', linking the parameter to its source. This extra semantic beyond the schema justifies a score above the baseline of 3.

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 'List members of a team by team ID' with a specific verb and resource, and it distinguishes itself from the sibling tool team_list by focusing on members rather than teams. It also includes a direct reference to team_list for resolving team IDs, which removes ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description explicitly instructs the agent to 'Call team_list first when you need to resolve the team_id from a team name', providing a clear prerequisite and workflow for correct usage. This is direct, actionable guidance that differentiates this tool from the alternative of using team_list alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

user_resolve_keysResolve User KeysA
Read-onlyIdempotent

Resolve names/emails/aliases into canonical user_key values, so write tools can safely fill user fields and role assignments.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesName, email, user_key, or current_login_user() values to resolve.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
need_all_statusNoSet true to include inactive status users when backend supports it.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnly, openWorld, and idempotent behavior. The description adds a small amount of context about canonicalization and use with write tools, but does not disclose edge-case behavior such as what happens when identifiers cannot be resolved or whether partial results are returned. With the safety profile covered by annotations, a 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence. It immediately states the core action and purpose, with zero wasted words or redundancy with the schema.

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 simple resolution tool with rich annotations and a fully described schema, the description covers the essential purpose and usage context. However, with no output schema, the description does not explicitly state the return format or behavior for unresolved identifiers, which is a minor gap in 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?

The input schema has 100% parameter coverage with clear descriptions for all three parameters. The tool description itself adds no additional parameter semantics beyond what the schema already provides, so the baseline of 3 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 uses a specific verb 'resolve' against a clear resource (names/emails/aliases into canonical user_key values). It immediately distinguishes itself from sibling tools like user_search by focusing on canonical key resolution for write tools, not general user search.

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 phrase 'so write tools can safely fill user fields and role assignments' clearly implies when to use this tool: before write operations needing user keys. It provides useful context without explicitly naming alternatives, but the purpose inherently points to the right usage scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

view_getGet View Work ItemsA
Read-onlyIdempotent

List work items under a view by view ID. Use view_search first when you only know the view name.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional field keys or names to fetch.
view_idYesView ID.
page_numNoOptional page number.
project_keyNoOptional project key for the view context.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds no behavioral details such as pagination behavior, sorting, or return format. With annotations present, a baseline 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose and immediately providing a useful usage hint. Every word earns its place with no waste.

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 read-only listing tool with 100% schema coverage and safety annotations, the description is complete enough. It tells the agent what the tool does and how to approach it when only the view name is known. Missing pagination/sorting details are already in the schema.

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 the schema documents all four parameters. The description only reinforces that the view is identified by ID, adding no meaningful semantics 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 clearly states the tool's function: 'List work items under a view by view ID.' This is a specific verb and resource that distinguishes it from sibling tools like view_search (which searches for views) and workitem_get (which fetches a single 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 Guidelines4/5

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

The description provides an explicit alternative: 'Use view_search first when you only know the view name.' This gives clear context for when to use this tool versus another, though it doesn't cover other possible alternatives like workitem_query.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_get_nodeGet Workflow NodesA
Read-onlyIdempotent

Get workflow node details for a work item. Use this before workflow_transition or subtask_update when node IDs or node-specific fields are unknown.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_numNo
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
node_id_listNoOptional node IDs to fetch. Omit for default behavior.
work_item_idYesTarget work item ID.
need_sub_taskNoSet true to include node subtask information.
field_key_listNoOptional node field keys to fetch.

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds minimal extra behavioral context beyond the use-case hint, but does not describe return format, pagination, or default behavior. Since annotations handle the core safety disclosure, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, first states purpose, second gives usage timing. Every word earns its place; no redundancy or fluff. Perfectly structured and front-loaded.

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 read tool with 6 parameters and no output schema, the description gives enough context for selection: it names the purpose and the specific scenario where it is needed. However, it does not explain the return value or configurable options (like subtask inclusion or field filtering), but the schema covers those. Slight gap in return-value information prevents a 5.

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 83%, so the schema already documents most parameters. The description mentions 'node IDs or node-specific fields' which aligns with node_id_list and field_key_list, but adds no new details beyond what the schema provides. Baseline 3 is warranted.

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 uses a specific verb 'Get' with a clear resource 'workflow node details' and scope 'for a work item'. It also distinguishes itself from sibling tools by explicitly mentioning workflow_transition and subtask_update in the usage context, making it clear this is a prerequisite read operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'Use this before workflow_transition or subtask_update when node IDs or node-specific fields are unknown.' This tells the agent exactly when to invoke this tool and identifies relevant alternatives, fulfilling the dimension fully.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_list_state_transitionsList State TransitionsC
Read-onlyIdempotent

List available state transitions for a work item.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_keyYes
project_keyNo
work_item_idYes
work_item_typeYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already state readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context, such as whether transitions depend on user permissions or project state, or what 'available' means. It merely restates the title without enriching the agent's understanding.

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 is front-loaded and free of any filler. It earns its place by stating the core function directly. No unnecessary words or repetition.

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?

The tool has three required parameters and no output schema, yet the description omits any detail about parameter usage or return structure. It gives no indication of what 'state transitions' implies, how to specify the work item, or what the response will contain. The description is too sparse to be complete for a tool with this complexity.

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?

Schema description coverage is 0%, and the description provides no explanation of the four parameters (user_key, project_key, work_item_id, work_item_type). The agent is left without any semantic understanding of what parameters to supply, making the tool nearly unusable for correct invocation.

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 uses a specific verb and resource: 'List available state transitions for a work item.' It clearly identifies what the tool does and the object it operates on. However, it does not differentiate from sibling tools like workflow_transition_state or workflow_smart_transition, though the basic purpose is unambiguous.

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. For example, it doesn't say 'Use this to preview transitions before executing one' or direct users to workflow_transition for performing a transition. No context, exclusions, or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_smart_transitionSmart Workflow TransitionA
Destructive

Automatically detect node-driven vs status-driven workflow and execute the correct transition command. In auto mode it probes workflow_get_node first, then falls back to list-state-transitions when needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoTransition strategy. auto means detect from backend behavior.auto
dry_runNoLeave true to preview/validate. Set false to really execute.
node_idNoOptional single node ID for node-driven transition.
node_idsNoOptional batch node IDs for node-driven transition.
user_keyNoUser key for state transition discovery. Default current_login_user().current_login_user()
node_actionNoAction used for node-driven workflow_transition.confirm
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_idYesTarget work item ID.
transition_idNoPreferred transition ID for state-driven transition-state.
work_item_typeNoRequired for state-driven discovery when transition_id is not provided.
rollback_reasonNoOptional rollback reason for node-driven rollback.
target_status_labelNoOptional state label to match when transition_id is not provided.
auto_pick_first_transitionNoWhen true and multiple state transitions are available with no transition_id/target_status_label, auto-select the first returned transition.

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already indicate destructive and non-read-only behavior, and the description adds the probing logic (checking workflow_get_node first, then falling back to list-state-transitions). This provides helpful behavioral context beyond the structured annotations, such as the order of operations in auto mode.

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 sentences, front-loaded with the core purpose and followed by a concise explanation of the auto-detection mechanism. Every word earns its place with no fluff or redundancy.

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 core mechanism is explained, the description omits return value expectations, failure handling, and the practical implication of the dry_run default. Given the tool's complexity (13 parameters, destructive, no output schema), a bit more context about what 'execute' produces and when it is safe to run would help, though the schema partially covers safety via the dry_run parameter.

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?

The input schema provides 100% coverage with descriptions for all 13 parameters, so the description adds little beyond what is already structured. It does re-emphasize the 'mode' behavior that is also documented in the enum description, but does not add new parameter-level semantics.

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: automatically detecting the workflow type (node-driven vs status-driven) and executing the appropriate transition. It distinguishes itself from siblings like workflow_transition and workflow_transition_state by emphasizing the auto-detection and fallback mechanism.

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 gives explicit context on when to use this tool: when the workflow type is unknown and auto-detection is needed. It names the underlying commands (workflow_get_node, list-state-transitions) that it probes, which implies when they might be used directly, though it does not explicitly state when to prefer alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_transitionTransition Workflow NodeB
Destructive

Transition or rollback a workflow node. Defaults to dry-run for safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoconfirm
dry_runNo
node_idNo
node_idsNo
project_keyNo
work_item_idYes
rollback_reasonNo

TDQS

B3.1/5.0
Behavior4/5

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

The description adds important behavioral context beyond the annotations by stating 'Defaults to dry-run for safety.' This discloses a safety mechanism not captured by destructiveHint or openWorldHint, helping the agent understand that the tool does not make changes by default. It does not contradict the annotations, and while it does not fully enumerate all side effects, the dry-run default is a significant behavioral disclosure.

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, using a single sentence with no filler words. It front-loads the purpose and includes a key safety note. However, its brevity verges on under-specification, leaving out critical details; still, as far as conciseness alone, it is efficient and well-structured.

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, destructive nature, open-world hint, no output schema), the description is insufficiently complete. It does not explain what a 'workflow node' is, how transition differs from rollback, nor what outputs or errors to expect. The one-sentence description leaves significant gaps that the schema and annotations only partially fill, making it unlikely an agent could invoke this tool correctly without additional context.

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 0%, so the description must compensate for parameter details, but it does not. The only parameter-related hint is 'Transition or rollback,' which vaguely suggests the 'action' parameter but does not explain node_id, node_ids, project_key, rollback_reason, or dry_run semantics. The description lacks the depth needed to compensate for the schema's minimal documentation.

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 verb and resource: 'Transition or rollback a workflow node.' This conveys the core action without excessive ambiguity. However, it does not explicitly distinguish this from sibling tools like workflow_transition_state or workflow_smart_transition, which likely perform similar operations; the focus on 'node' provides some differentiation but not a clear contrast.

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 offers no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, typical scenarios, or exclusions. The only hint is 'Defaults to dry-run for safety,' which implies a cautious approach but does not clarify use cases or contrast with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workflow_transition_stateTransition Workflow StateB
Destructive

Transition a state-flow status. Defaults to dry-run for safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
project_keyNo
work_item_idYes
transition_idYes

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context by stating the default is a dry-run, meaning the tool does not mutate by default. However, it does not disclose what happens when dry_run is false or the likely side effects of a real transition.

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 extremely concise: two short sentences, front-loaded with the core verb and resource, followed by an important safety note. No unnecessary words.

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?

For a destructive, potentially mutating operation with four parameters and no output schema, this description is too sparse. It lacks context about real transition behavior, return values, error handling, and how to use the tool correctly beyond the dry-run default. The wide set of sibling workflow tools increases the need for clearer contextual guidance.

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?

The input schema has 0% description coverage for its 4 parameters, and the description fails to compensate. It references 'dry-run' generically but does not explain work_item_id, transition_id, project_key, or the exact meaning/effect of the dry_run parameter beyond its default.

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 identifies the action ('Transition') and the resource ('state-flow status'), making the basic purpose understandable. However, it does not distinguish this tool from closely related siblings like workflow_transition or workflow_smart_transition.

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 mentions 'Defaults to dry-run for safety,' which implies a safe-use context, but it gives no explicit guidance on when to choose this tool over alternatives or what prerequisites are needed. There is no discussion of when a real (non-dry-run) transition is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workhour_list_scheduleList Work SchedulesA
Read-onlyIdempotent

List schedule and workload details for up to 20 users within a 3-month span. Use user_resolve_keys first when you need to resolve names or emails into canonical user_key values.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_timeYesYYYY-MM-DD
user_keysYes1 to 20 canonical user_key values.
start_timeYesYYYY-MM-DD
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_type_keysNoOptional work item type filters, for example story, issue, sub_task, or _all.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this as read-only, idempotent, and non-destructive. The description adds valuable constraints (20-user limit, 3-month max span) and clarifies the canonical user_key requirement, going beyond annotation details.

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 extremely concise with two sentences, front-loading the main purpose and adding a useful tip. Every word earns its place, with no 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?

For a list operation with robust schema descriptions and annotations, the description covers essential limits and input preparation. It does not describe the exact output format, but that is largely inherent for such a tool and not strictly necessary.

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 already describes all parameters, so baseline is 3. The description adds extra meaning by noting the 3-month span limit and recommending user_resolve_keys for parameter preparation, which enhances schema information.

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 function with a specific verb ('List') and resource ('schedule and workload details'), while also specifying scope ('up to 20 users within a 3-month span'). This distinguishes it from sibling tools focused on workitems or views.

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 provides clear context on when to use the tool (listing schedules/workload for users) and offers practical prerequisite guidance (use user_resolve_keys first). However, it does not explicitly mention alternatives or exclusions, which keeps it from a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_batch_getBatch Get Work ItemsA
Read-onlyIdempotent

Get multiple work items by ID in one request fan-out. Use this when you already have a set of work_item_ids and need multiple detail reads with one tool call.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional field keys or names to fetch for each work item.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_idsYes1 to 200 work item IDs.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the 'one request fan-out' behavioral trait, which is useful context beyond the annotations and clarifies that this is a batch operation. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core purpose, and contains no fluff. Every word 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?

For a batch read tool with good annotations and fully described parameters, the description is largely complete. It clearly communicates the use case and basic behavior. However, it does not mention potential partial-failure behavior or default field returns, which could be relevant for a batch operation with up to 200 IDs, but this is a minor gap.

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% (all parameters have descriptions in the schema), so the baseline is 3. The description does not add any extra parameter semantics beyond what the schema already provides; it only mentions work_item_ids by name without additional detail.

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 a specific verb ('Get') and resource ('multiple work items by ID'), and differentiates from siblings like workitem_get by emphasizing batch/fan-out behavior. It is unambiguous and action-oriented.

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 the tool ('when you already have a set of work_item_ids and need multiple detail reads'), which is clear context. However, it does not explicitly mention when not to use it or name alternative tools (e.g., workitem_get for a single item), so it misses the full 'when-not/alternatives' bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_createCreate Work ItemA
Destructive

Create a work item in Meegle. Use workitem_meta_fields first to discover valid field_key values. Complex array or object field values are automatically JSON-stringified to match meegle CLI expectations. This tool defaults to dry_run=true for safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesList of fields to create on the work item.
dry_runNoLeave true to preview the normalized request without executing creation. Set false to really create.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_idNoOptional resource template instance ID.
work_item_typeYesType key such as story or issue.
ignore_requiredNoSet true only when intentionally bypassing backend required-field validation.
ignore_role_calculateNoSet true only when intentionally bypassing backend role calculation.

TDQS

A4.2/5.0
Behavior4/5

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

Discloses that complex array/object values are automatically JSON-stringified and that dry_run defaults to true for safety. These go beyond the annotations (which already indicate destructive potential) and add useful behavioral context for safe execution.

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?

Three sentences, each earning its place: purpose, prerequisite guidance, and safety default. No redundancy or filler.

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 (7 params, no output schema) and the richness of the input schema, the description covers the essential usage steps and safety behavior. It doesn't discuss return values or error cases, but the schema and annotations mitigate the gap, making it adequately complete.

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?

The schema already provides detailed descriptions for all parameters (100% coverage), including the JSON-stringification behavior for field_value. The description adds little beyond the schema except the reference to workitem_meta_fields for field_key discovery, which is a minor addition.

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 'Create a work item in Meegle' with a specific verb and resource. It clearly differentiates from sibling tools like workitem_get, workitem_update, and workitem_query by focusing on creation.

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?

Provides clear context by directing users to use workitem_meta_fields for valid field_key discovery and mentions the dry_run default as a safety measure. However, it does not explicitly name alternatives or exclusion scenarios, so it misses the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_discover_status_valuesDiscover Work Item Status ValuesA
Read-onlyIdempotent

Sample actual status values for a work item type and return both backend keys and display labels. Use this before filtering workitem_query by status so the model does not guess generic constants like OPEN or IN_PROGRESS.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyYesProject key or simple name used both for the CLI project scope and the MQL FROM clause.
sample_limitNoHow many rows to sample when discovering unique status values.
work_item_typeYesWork item type key such as story, issue, or sub_task.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds useful behavior context by specifying the return format (backend keys and display labels) and the sampling nature. It does not contradict annotations.

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 sentences, front-loaded with the action and outcome. Every word earns its place; there is no repetition or filler. It is concise while still covering purpose and usage.

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 simple tool with 3 parameters and no output schema, the description fully explains what the tool does, what it returns, and when to use it. The annotations and schema provide additional safety and parameter details, making the overall package complete for an agent to select and invoke the tool correctly.

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?

The input schema provides 100% coverage with descriptions for all three parameters, including defaults and constraints for sample_limit. The description only indirectly references work_item_type and project_key, adding no new parameter semantics beyond what the schema already defines, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('sample actual status values') on a specific resource ('work item type') and names the outputs ('backend keys and display labels'). It also distinguishes itself from the sibling workitem_query by framing this as a pre-filter discovery step, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: 'Use this before filtering workitem_query by status.' It also instructs the model not to guess generic constants like OPEN or IN_PROGRESS, which effectively identifies the alternative (guessing) and why this tool is better. This is clear context with a direct reference to a sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_getGet Work ItemA
Read-onlyIdempotent

Get a single work item by ID or name. Use this for detail reads after resolving a work_item_id from workitem_query or workitem_batch_get. Defaults to the configured test project.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already cover readOnly/openWorld/idempotent, so the description's added value is moderate. It mentions 'Defaults to the configured test project,' which is useful context, but it fails to clarify how the tool receives an 'ID or name' given the input schema is empty.

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 sentences and every clause adds value: the operation, the usage guidance, and the default project. No fluff or 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?

The description conveys the single-item scope, the recommended workflow, and the default project, which is substantial for a simple read tool. However, the empty input schema and missing return-format info leave some ambiguity about how the ID is provided and what exactly is returned.

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?

With zero parameters in the schema, the baseline is 4. The description adds the concept of 'by ID or name,' providing some semantic meaning about how the target is selected, though it is not formally mapped to a parameter.

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 uses a specific verb and resource: 'Get a single work item by ID or name.' It clearly distinguishes from workitem_query (list) and workitem_batch_get (multiple) by emphasizing 'single' and 'detail reads'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Provides explicit usage context: 'Use this for detail reads after resolving a work_item_id from workitem_query or workitem_batch_get.' Names the alternative tools and defines the sequencing, making it clear when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_meta_fieldsList Work Item FieldsA
Read-onlyIdempotent

List field configuration for a work item type in a project. Use this before workitem_create or workitem_update to discover valid field_key values, field types, and options.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_numNo
field_keysNoOptional exact field keys or field names to narrow the result.
field_queryNoOptional fuzzy search on field key or field name.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
work_item_typeYesType key such as story, issue, or sub_task.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds functional context by explaining that the tool reveals valid field keys, types, and options, which is useful beyond the annotation's safety profile. It does not conflict with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that is front-loaded with the core action and purpose. Every word is informative, with no filler or 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?

With a 5-parameter tool and no output schema, the description explains the tool's role and expected findings ('valid field_key values, field types, and options'). It does not cover pagination or filtering behavior in prose, but the schema covers parameters, and the description is sufficient for selection and 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 description coverage is high (80%), with meaningful descriptions for most parameters. The tool description itself adds no parameter-specific detail, but the schema already carries the semantic weight. 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 uses the specific verb 'List' and identifies the resource as 'field configuration for a work item type in a project'. It clearly distinguishes itself from siblings by stating its role in discovering valid field_key values before create/update operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('Use this before workitem_create or workitem_update'), providing clear usage context. However, it does not mention when not to use it or name alternative tools for discovery (e.g., workitem_meta_types), so it falls short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_meta_typesList Work Item TypesA
Read-onlyIdempotent

List available work item types in a project. Use this before querying, creating, or filtering work items when the type key is unknown. Defaults to the configured test project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds useful context about defaulting to the configured test project, which affects behavior when project_key is omitted. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, concise and front-loaded with the purpose. Every sentence adds value: the first states what it does, the second gives usage context and default behavior. No filler.

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 simple list tool with no output schema and strong annotations, the description is complete. It covers purpose, usage timing, and the default project behavior, which is sufficient for an agent to select and invoke the tool correctly.

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 the schema itself provides detailed guidance on the project_key parameter, including when to pass it explicitly and how to resolve it. The description does not add additional parameter semantics 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 clearly states the tool lists available work item types in a project, using specific verb 'List' and resource 'work item types'. It distinguishes itself from sibling tools like workitem_meta_fields by focusing on types specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

Explicitly states when to use: 'before querying, creating, or filtering work items when the type key is unknown'. Also warns about defaulting to the configured test project, which is useful guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_queryQuery Work ItemsA
Read-onlyIdempotent

Run an MQL query against a project. Use this for listing or searching work items across a project. The mql argument must be a complete SQL-like MQL string, not just filters or fragments. For select or status filters, use the project actual display labels or configured values instead of assuming generic English constants like OPEN or IN_PROGRESS.

ParametersJSON Schema
NameRequiredDescriptionDefault
mqlYesComplete MQL query string. For enum or status conditions, prefer project display labels and single-quoted string values.
session_idNoPagination session_id returned by a previous workitem_query call. When provided, mql is typically reused as-is or left consistent with the original query context.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
auto_paginateNoSet true to let meegle CLI auto-follow response pagination when supported.
group_pagination_listNoOptional grouped pagination info for continuing a previous query.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds useful context about MQL syntax requirements and label pitfalls, which helps the agent avoid common errors. It does not contradict annotations and adds value by flagging that generic constants like OPEN or IN_PROGRESS should not be assumed.

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 sentences, front-loaded with the action, and contains no superfluous text. Every sentence contributes meaningful guidance: the first states purpose and scope, the second warns about MQL completeness and label usage.

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 has 5 parameters, rich schema descriptions, and no output schema, the description covers the core purpose and key usage pitfalls. It does not explain pagination or session_id, but those are documented thoroughly in the schema. Overall, the description is complete enough for an agent to invoke the tool correctly when combined with the schema.

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 the schema already documents every parameter, including mql's requirement to be a complete query string with label guidance. The tool description reinforces the MQL completeness rule but adds little beyond what the schema already provides, just slight emphasis on 'not just filters or fragments.'

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 runs an MQL query against a project for listing or searching work items, using a specific verb and resource. It distinguishes itself from siblings like workitem_get (fetch a single item) or workitem_create/update by focusing on query-based listing/searching.

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 'Use this for listing or searching work items across a project,' which conveys the primary use case. It also provides important guidance on forming a complete MQL string and using project display labels, but does not explicitly name alternative tools or give exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workitem_updateUpdate Work ItemA
Destructive

Update work item fields or role operations. Use workitem_meta_fields or role metadata first when field keys or role keys are unknown. Arrays and objects in field_value are automatically stringified for meegle CLI compatibility. This tool defaults to dry_run=true for safety.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional field mutations.
dry_runNoLeave true to preview the normalized update request. Set false to really update.
project_keyNoProject key. Always pass explicitly in multi-project usage; resolve it with project_search first when missing.
role_operateNoOptional role operations.
work_item_idYesTarget work item ID.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating operation. The description adds useful behavioral context: defaults to dry_run=true for safety and auto-stringification of arrays/objects for CLI compatibility. These are non-obvious behaviors not fully captured by annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three focused sentences, each delivering value: purpose, key prerequisite guidance, and safety behavior. No redundant words or filler, and it is front-loaded with the main action.

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 mutation tool with no output schema and 5 parameters, the description covers purpose, prerequisite metadata lookup, and default safety behavior. It does not mention return values or potential impacts beyond 'update', but annotations plus the dry_run hint mitigate the need. Overall, it is adequately complete for safe selection and 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 description coverage is 100%, and the schema already provides clear descriptions for all parameters, including the field_value auto-stringification note and dry_run semantics. The description does not add material new parameter information beyond what the schema already contains. 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 states a clear verb and resource: 'Update work item fields or role operations.' This distinguishes it from sibling tools like workitem_get (read), workitem_create (create), and workitem_query (search), while also specifying the two main operations it supports.

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 provides explicit guidance: 'Use workitem_meta_fields or role metadata first when field keys or role keys are unknown.' This tells the agent to first resolve metadata before calling this tool, which is valuable usage context. It also mentions the dry_run default for safety, implying a safe preview approach.

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.

  1. 34 tool updatesv0.1.0
    • First observedattachment_prepare_download
    • First observedattachment_prepare_upload
    • First observedauth_status
    • First observedchart_get
    • First observedchart_list
    • First observedcomment_add
    • First observedcomment_list
    • First observedinspect_command
    • First observedmeegle_command
    • First observedmywork_todo
    • First observedproject_search
    • First observedrelation_list
    • First observedrelation_meta_definitions
    • First observedsubtask_update
    • First observedteam_list
    • First observedteam_list_members
    • First observeduser_resolve_keys
    • First observeduser_search
    • First observedview_get
    • First observedview_search
    • First observedworkflow_get_node
    • First observedworkflow_list_state_transitions
    • First observedworkflow_smart_transition
    • First observedworkflow_transition
    • First observedworkflow_transition_state
    • First observedworkhour_list_schedule
    • First observedworkitem_batch_get
    • First observedworkitem_create
    • First observedworkitem_discover_status_values
    • First observedworkitem_get
    • First observedworkitem_meta_fields
    • First observedworkitem_meta_types
    • First observedworkitem_query
    • First observedworkitem_update

TDQS

B3.3/5.0

Scored across 34 tools

Disambiguation3/5

Several tool clusters overlap, particularly the workflow transition tools (workflow_transition, workflow_transition_state, workflow_smart_transition) and the user resolution tools (user_search, user_resolve_keys). Descriptions help clarify when to use each, but the overlaps still create ambiguity for agents.

Naming Consistency3/5

Most tools follow a noun_verb pattern (workitem_get, comment_add), but there are notable exceptions like inspect_command, auth_status, mywork_todo, and the meta_* tools. The mixed conventions reduce predictability.

Tool Count2/5

34 tools is excessive for the domain, especially with multiple redundant workflow transition tools and meta/raw command tools. The high count makes it difficult for agents to navigate and choose the correct tool.

Completeness3/5

The toolset covers a broad range of operations including CRUD for work items, comments, and workflows, but lacks delete operations for work items and comments, and has no relation creation or comment update. Core workflows are mostly covered, but significant gaps exist.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers