Skip to main content
Glama

ONES Doc MCP

用于内网环境的 ONES 文档读取 MCP Server。支持两种鉴权方式:

  • 账号密码登录

  • 浏览器已登录态复用

环境要求

  • Node.js 20.19.0+

  • 可访问 ONES 内网地址

  • ONES 账号或已登录浏览器会话

Related MCP server: docsearch

环境变量

复制 .env.example.env 并填写。以下两组选一种即可:

  • ONES_BASE_URL:ONES 内网根地址

  • ONES_USERNAME:登录账号,账号密码模式必填

  • ONES_PASSWORD:登录密码,账号密码模式必填

  • ONES_TEAM_ID:默认 ONES 项目团队 ID;纯 #12345 这类工作项编号入口需要,完整 task URL 可从 URL 里解析 team id

  • ONES_AUTH_TOKEN:浏览器会话里的 Bearer token,会话复用模式可选但建议提供

  • ONES_COOKIE:浏览器会话里的 Cookie,会话复用模式可选但建议提供

  • ONES_ORIGIN:请求使用的 Origin,可选,默认回落到 ONES_BASE_URL

  • ONES_REFERER:请求使用的 Referer,可选,默认回落到 ${ONES_BASE_URL}/project/

  • ONES_USER_AGENT:请求使用的 User-Agent,可选;账号密码模式下未配置时默认使用企微风格 UA

  • ONES_TIMEOUT_MS:请求超时,可选,默认 15000

  • ONES_MAX_CONTENT_CHARS:正文最大长度,可选,默认 20000

  • ONES_OCR_PROVIDER:OCR 提供方,可选,当前支持 http

  • ONES_OCR_ENDPOINT:OCR 服务地址,可选

  • ONES_OCR_API_KEY:OCR 服务鉴权 token,可选

  • ONES_OCR_TIMEOUT_MS:OCR 请求超时,可选,默认 15000

示例中的敏感信息请替换为你自己的值,不要把真实账号密码提交到仓库或直接写进公开文档:

  • ONES_BASE_URL=https://ones.example.internal

  • ONES_USERNAME=your_username@example.com

  • ONES_PASSWORD=your_password_here

或者:

  • ONES_BASE_URL=https://ones.example.internal

  • ONES_AUTH_TOKEN=your_browser_bearer_token

  • ONES_COOKIE=ones-lt=...; ones-ids-sid=...

  • ONES_USER_AGENT=Mozilla/5.0 ...

单独包用法

这个包本质上是一个基于 stdio 的 MCP Server。单独运行时会等待 MCP 客户端连接,不会像普通 CLI 那样输出交互式菜单。

仓库内部已经按 transport 分层,默认入口仍只启用 stdio;未来如果需要接入 Streamable HTTP,可以在不改工具实现的前提下扩展新的 transport。

直接通过 npm 包运行

npx -y @bakarhythm/get-doc-content

运行本地构建产物

npm install
npm run build
node dist/src/index.js

本地开发模式

npm install
npm run dev

MCP 用法

在 Codex 中使用

~/.codex/config.toml 示例:

[mcp_servers.getDocContent]
type = "stdio"
command = "npx"
args = ["-y", "@bakarhythm/get-doc-content@latest"]

[mcp_servers.getDocContent.env]
ONES_BASE_URL = "https://ones.example.internal"
ONES_USERNAME = "your_username@example.com"
ONES_PASSWORD = "your_password_here"

如果你的 ONES 租户依赖浏览器登录态,也可以直接注入会话:

[mcp_servers.getDocContent.env]
ONES_BASE_URL = "https://ones.example.internal"
ONES_AUTH_TOKEN = "your_browser_bearer_token"
ONES_COOKIE = "ones-lt=...; ones-ids-sid=..."
ONES_USER_AGENT = "Mozilla/5.0 ..."

如果你想优先验证本地修复,而不是使用 npm 上的已发布版本,也可以直接指向本地构建产物:

[mcp_servers.getDocContent]
type = "stdio"
command = "node"
args = ["/absolute/path/to/mcp-demo/dist/src/index.js"]

[mcp_servers.getDocContent.env]
ONES_BASE_URL = "https://ones.example.internal"
ONES_USERNAME = "your_username@example.com"
ONES_PASSWORD = "your_password_here"

在通用 MCP 客户端中使用

{
  "mcpServers": {
    "getDocContent": {
      "command": "npx",
      "args": ["-y", "@bakarhythm/get-doc-content"],
      "env": {
        "ONES_BASE_URL": "https://ones.example.internal",
        "ONES_USERNAME": "your_username@example.com",
        "ONES_PASSWORD": "your_password_here"
      }
    }
  }
}

启动成功后,MCP 客户端应能看到以下工具:

  • search_docs

  • get_doc

  • get_doc_outline

  • get_doc_section

  • get_doc_chunks

  • get_doc_context

  • get_requirement_detail_by_ref

  • get_execution_tasks_by_ref

  • extract_requirement_materials_by_ref

  • list_requirement_bugs_by_ref

  • get_task_messages_by_ref

  • get_related_wiki_pages_by_ref

  • get_task_rich_resources_by_ref

  • get_bug_detail_by_ref

  • get_bug_parent_requirement_by_ref

  • resolve_requirement

  • get_requirement_detail

  • get_execution_tasks

  • resolve_bug

  • get_bug_detail

  • get_bug_parent_requirement

  • list_requirement_bugs

  • get_task_messages

  • extract_requirement_materials

  • get_related_wiki_pages

  • get_task_rich_resources

  • download_ones_resource

这些工具都会继续返回可读的 JSON 文本内容,同时也会提供 MCP structuredContent 供支持结构化结果的客户端直接消费。

调试与评估

调试页面解析

直接调试单个页面:

npm run debug:page -- "https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID" --raw-chars 1200

也可以使用本地调试配置文件:

cp debug-page.config.example.json debug-page.config.json
npm run debug:page
npm run debug:page -- table-page
npm run debug:page -- req-12345 --raw-chars 2000
npm run debug:page -- table-page --full-raw
npm run debug:page -- table-page --raw-chars all

debug-page.config.json 不会提交到 git,可用于保存本地常用 URL:

{
  "defaultRef": "table-page",
  "rawChars": 1200,
  "refs": {
    "table-page": "https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID",
    "req-12345": "#12345"
  }
}

这个脚本会直接复用仓库里的 ONES 登录和解析逻辑,打印:

  • parsed_ref

  • doc.source_format

  • 顶层节点类型统计

  • 资源与 OCR 状态

  • 原始内容预览

如果你要保存完整原始内容,不要只用默认预览长度,可以改用:

npm run debug:page -- table-page --full-raw > tmp/debug-page-table-page.txt 2>&1

或:

npm run debug:page -- table-page --raw-chars all > tmp/debug-page-table-page.txt 2>&1

评估 LLM 对结构化结果的理解

cp llm-eval.config.example.json llm-eval.config.json
npm run eval:llm
npm run eval:llm -- --variant raw
npm run eval:llm -- --case table-page-summary

这个脚本会:

  • 按配置里的 ref 实时拉取 ONES 文档

  • 选择 markdownrawfull 作为模型输入

  • 调用 OpenAI Responses API 回答问题

  • requiredPhrasesforbiddenPhrases 输出简单通过率报告

需要额外配置:

OPENAI_API_KEY=your_openai_api_key
OPENAI_BASE_URL=

llm-eval.config.json 示例:

{
  "model": "gpt-5.2",
  "variant": "markdown",
  "maxOutputTokens": 800,
  "refs": {
    "table-page": "https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID"
  },
  "cases": [
    {
      "name": "table-page-summary",
      "ref": "table-page",
      "question": "请总结这份文档的核心需求,并明确指出是否涉及表格中的规则信息。",
      "requiredPhrases": ["表格"],
      "forbiddenPhrases": ["无法判断"]
    }
  ]
}

建议用法:

  • 先跑 variant=markdown

  • 再跑 variant=raw

  • 比较同一批 case 的通过率、缺失项和误报项

历史 llm_view 人工审查材料已归档到 docs/review/archive/,仅供追溯旧结构化视图设计。

MCP 工具

推荐工作流

对于中长文档,推荐按下面的顺序调用,而不是默认直接取整篇:

  1. get_doc_outline

  2. get_doc_sectionget_doc_chunks

  3. 调用方在本地保留副本

  4. 再把需要的片段提供给 LLM

如果调用方不想自己编排,也可以直接用 get_doc_context,让 server 按问题内容自动选择章节或分块。

1) search_docs

按关键词搜索文档。

示例参数:

{"query":"ONES 登录","limit":5}

2) get_doc

通过上下文引用获取文档,并返回面向 LLM 的 Markdown 内容。

ref 支持:

  • 完整 ONES 文档 URL,优先

  • #12345 需求号

可选参数:

  • include_raw:是否返回原始 ONES 内容,默认 false

  • include_resources:是否返回资源清单及 OCR 元数据,默认 true

ref#12345 时:

  • 服务会先查询需求关联文档

  • updated_at 取最新一篇,缺失时回退 created_at

  • 返回该文档正文

示例:

{"ref":"https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID"}
{"ref":"#12345"}

3) get_doc_outline

先获取文档目录结构、章节路径和粗略长度,适合在长文场景下做渐进式读取。

示例参数:

{"ref":"#12345"}

4) get_doc_section

section_id 获取单个章节;可选 include_descendants=true 把子章节一起带回。

示例参数:

{"ref":"#12345","section_id":"sec-2","include_descendants":true}

5) get_doc_chunks

按字符预算分页获取文档片段,适合“总结整篇”或“检查全文冲突”这类任务。

示例参数:

{"ref":"#12345","cursor":null,"max_chars":6000}

6) get_doc_context

根据问题自动选择章节或 chunk,适合不想自行编排 outline/section/chunk 工作流的调用方。

示例参数:

{"ref":"#12345","question":"请总结整篇文档的所有权限规则","mode":"auto","max_chars":12000}

ONES 工作项工具

从需求号或 bug 号开始时,优先使用 *_by_ref 工具。它们会先解析编号、task id 或 task URL,再读取正文或关联信息。

主入口工具:

  • get_requirement_detail_by_ref:按需求号、task id 或 task URL 读取需求正文、字段和关联任务

  • get_execution_tasks_by_ref:按需求引用读取关联执行任务候选

  • extract_requirement_materials_by_ref:按需求引用提取 wiki、外部链接、图片资源和完整性提示

  • list_requirement_bugs_by_ref:显式需要时,按需求引用列出关联 bug

  • get_task_messages_by_ref:按任务引用读取消息或评论

  • get_related_wiki_pages_by_ref:按需求引用发现关联或正文链接到的 ONES wiki 页面

  • get_task_rich_resources_by_ref:按任务引用提取正文里的富文本图片资源

  • get_bug_detail_by_ref:按 bug 号、task id 或 task URL 读取 bug 正文、严重级别、优先级和关联任务

  • get_bug_parent_requirement_by_ref:按 bug 引用反查父需求

兼容和调试工具:

  • resolve_requirementresolve_bug:只解析编号或 URL,返回标准工作项实体和候选列表

  • get_requirement_detailget_execution_tasksget_bug_detailget_bug_parent_requirement

  • list_requirement_bugsget_task_messagesextract_requirement_materialsget_related_wiki_pagesget_task_rich_resources

兼容工具接收 task_id,适合已知 task id、需要处理多候选、或排查编号解析与详情接口哪个环节失败的场景。

{"ref":"#12345","include_raw":true,"include_resources":true}

7) 工作项工具

工作项工具用于读取 ONES 需求、任务、bug 和评论事实,服务于需求开发工作流。它们只读,不计算 baseline,也不会自动决定 bug 修复范围。

纯编号入口需要配置 ONES_TEAM_ID

ONES_TEAM_ID=63FL1oSZ

如果传入完整 task URL,工具会优先使用 URL 里的 team id。

工具列表:

  • resolve_requirement:把需求号、task id 或 task URL 解析成标准工作项实体

  • get_requirement_detail:读取需求正文、字段和关联任务

  • get_execution_tasks:读取需求关联的执行任务候选

  • resolve_bug:把 bug 号、task id 或 task URL 解析成标准工作项实体

  • get_bug_detail:读取 bug 正文、严重级别、优先级和关联任务

  • get_bug_parent_requirement:从 bug 的关联任务里反查需求

  • list_requirement_bugs:按需列出需求下的 bug

  • get_task_messages:读取任务消息或评论

  • extract_requirement_materials:从需求任务正文和富文本字段中提取 wiki、外部链接、图片资源和完整性提示

  • get_related_wiki_pages:发现需求关联或正文链接到的 ONES wiki 页面

  • get_task_rich_resources:提取任务正文里的富文本图片资源

  • download_ones_resource:使用当前 MCP 登录态下载 ONES 鉴权资源,返回文件元数据和 base64 内容

示例参数:

{"ref":"#794"}
{"task_id":"REQ-794"}
{"url":"https://ones.example.internal/wiki/api/wiki/editor/team-id/ref-id/resources/mock-image.png"}

说明:

  • get_task_rich_resources 默认只返回资源元数据和 src,不会自动下载文件

  • 如果图片/附件链接需要 ONES 鉴权,调用 download_ones_resource,MCP 会复用当前登录态下载

  • 当前下载返回 content_base64,是否落盘由调用方自行决定

发布流程

仓库当前使用 Changesets 管理版本和发布说明,不再要求本地手工打 tag。

推荐流程:

  1. 完成功能后,判断这次改动是否对调用方可感知

  2. 如果可感知,运行 npm run changeset 生成说明文件

  3. 把代码和 .changeset/*.md 一起合并到 main

  4. GitHub Actions 自动创建或更新 Release PR

  5. 合并 Release PR 后,Actions 自动发布 npm、创建 tag,并生成 GitHub Release

什么时候必须写 changeset

以下改动建议必须写:

  • 新增、删除或重命名 MCP 工具

  • 工具参数、返回结构、默认行为变化

  • 安装方式、运行入口、环境变量契约变化

  • 调用方能直接感知到的 bugfix

以下改动通常可以不写:

  • 仅文档、测试、注释变更

  • 不影响调用方的内部重构

  • 仅 CI 或本地开发流程调整

去哪里看这次发了什么

  • Release PR:看即将发布的版本号和变更摘要

  • GitHub Release:看已经发布出去的 changelog

  • GitHub Actions 日志:看发布执行过程、失败原因和 npm publish 记录

常见问题

  1. 登录失败,AUTH_FAILED

  • 检查 ONES_BASE_URL、账号密码是否正确。

  • 如果使用会话复用,刷新 ONES_AUTH_TOKENONES_COOKIE

  1. MCP 启动失败,提示 initialize response 或连接被关闭

  • 先确认客户端实际启动的是哪个版本。

  • 如果你使用的是 npx -y @bakarhythm/get-doc-content@latest,请确认已升级到包含最新修复的版本。

  • 排查时优先查看 MCP 进程 stderr 日志;当前版本会输出 mcp.startup.beginmcp.startup.readymcp.startup.failedmcp.runtime.init.failed 等结构化日志。

  1. 输入无效,INVALID_DOC_REF

  • get_doc.ref 仅支持完整 URL 或 #数字

  1. 无关联文档,NO_LINKED_DOC

  • 该需求号下没有关联文档,或当前账号无权限读取。

  1. 接口探测失败,DISCOVERY_FAILED

  • 说明当前 ONES 实例接口与候选路径不匹配,需要补充候选规则。

Available Tools

20 tools
download_ones_resourceDownload ONES ResourceA
Read-onlyIdempotent

Download an ONES-authenticated image or file resource by URL using the current MCP login session.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
filenameYes
mime_typeYes
size_bytesYes
content_base64Yes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds context by specifying the resource type ('image or file') and that it uses the current login session, enhancing transparency without contradiction.

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, front-loading the action and resource, with no extraneous words. It earns its place 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 download tool with an output schema not shown, the description covers the core action and context. With strong annotations, it is sufficiently complete, though usage guidance is missing.

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 only parameter is 'url' with 0% schema description coverage. The description mentions 'by URL' but does not specify format, protocol, or constraints beyond the schema's minLength. This is minimally helpful for a simple string 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?

The description clearly states the verb 'Download', the resource 'ONES-authenticated image or file resource by URL', and the context 'using the current MCP login session'. It distinctly differs from sibling tools that are all getters for various entities, none of which download files.

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

Usage Guidelines3/5

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

The description implies usage when a URL is available but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though for a simple download tool it is minimally adequate.

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

extract_requirement_materialsExtract ONES Requirement MaterialsA
Read-onlyIdempotent

Extract wiki pages, external links, rich resources, and completeness hints from a requirement task id. Prefer extract_requirement_materials_by_ref when starting from a requirement number or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
team_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
wiki_pagesYes
raw_payloadYes
requirementYes
completenessYes
external_linksYes
rich_resourcesYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Description adds specific output types (wiki pages, links, resources, hints) beyond annotations, but lacks mention of error handling for invalid task IDs.

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

Conciseness5/5

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

Two concise sentences: first defines purpose, second provides alternative usage. No extraneous content.

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?

Description covers key outputs and suggests alternative path. Given existence of output schema and annotations, it is sufficiently complete for a read-only extraction tool.

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?

With 0% schema description coverage, the description must compensate but only vaguely explains task_id ('requirement task id') and omits team_id entirely, leaving its purpose unclear.

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

Purpose5/5

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

Description clearly states the tool extracts multiple resource types (wiki pages, links, rich resources, hints) from a requirement task ID, distinguishing it from the sibling tool by specifying task ID as input.

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 recommends using extract_requirement_materials_by_ref when starting from a requirement number or URL, providing clear when-not and alternative guidance.

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

get_bug_detailGet ONES Bug DetailA
Read-onlyIdempotent

Get bug body, fields, and related task facts by task id. Prefer get_bug_detail_by_ref when starting from a bug number or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
team_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
entityYes
priorityYes
severityYes
descriptionYes
raw_payloadYes
related_tasksYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint; description adds 'related task facts' but no additional behavioral disclosure. Satisfactory but not enhanced beyond annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, zero filler. Every word earns its place.

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?

Clear purpose and usage guide, but omits explanation of team_id and what 'related task facts' entails. Output schema exists but description could better differentiate from siblings like get_task_messages.

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 has 0% description coverage. Description explains task_id implicitly ('by task id') but does not mention team_id at all, leaving its purpose unclear.

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?

Specifies verb 'Get', resource 'bug detail', and adds scope 'body, fields, related task facts'. Distinguishes from sibling get_bug_detail_by_ref by noting when to prefer that alternative.

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?

Explicitly advises using get_bug_detail_by_ref when starting from bug number/URL, providing clear context. Does not cover when not to use or compare to other siblings.

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

get_bug_detail_by_refGet ONES Bug Detail By RefA
Read-onlyIdempotent

Get bug body, fields, and related task facts by bug number, task id, or task URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
entityYes
priorityYes
severityYes
descriptionYes
raw_payloadYes
related_tasksYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds context about the returned data (body, fields, related task facts) and acceptable input types (bug number, task id, URL), which is informative and consistent 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, clear sentence that efficiently conveys the tool's purpose and input. No unnecessary words or details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and an output schema, the description covers the essential information: what is retrieved and how to specify the target. It could mention error handling or limitations, but the annotations and output schema fill in many gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description clarifies that the 'ref' parameter can be a bug number, task id, or task URL. However, it does not specify format, examples, or validation rules, leaving some ambiguity.

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

Purpose4/5

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

The description clearly states the tool retrieves bug body, fields, and related task facts using a bug number, task id, or task URL as input. It provides specific verb and resource details, though it does not explicitly differentiate from sibling tools like get_bug_detail.

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 (e.g., get_bug_detail or get_bug_parent_requirement). There is no mention of prerequisites, exclusions, or preferred contexts.

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

get_bug_parent_requirementGet ONES Bug Parent RequirementA
Read-onlyIdempotent

Resolve the parent requirement for a selected bug by task id. Prefer get_bug_parent_requirement_by_ref when starting from a bug number or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
team_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
bugYes
raw_payloadYes
requirementYes
resolution_pathYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Description adds 'resolve' which is consistent but does not elaborate on behavior (e.g., what if no parent requirement exists). Minimal extra context.

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

Conciseness5/5

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

Two sentences efficiently convey purpose and usage guidance. No wasted words, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, return values are not needed. However, the description lacks context about parent requirements, error handling, and parameter usage. Adequate for agents familiar with the system but not for new users.

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 descriptions coverage is 0%, and the description only mentions 'by task id' without explaining what task_id or team_id represent. No additional semantics are provided for the parameters.

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 resolves the parent requirement for a bug by task ID. It distinguishes from the sibling tool get_bug_parent_requirement_by_ref but does not explain 'parent requirement' in the ONES context.

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?

Explicitly tells when to use this tool vs. get_bug_parent_requirement_by_ref (prefer by_ref when starting from bug number/URL). No mention of when not to use or prerequisites, but the guidance is clear.

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

get_bug_parent_requirement_by_refGet ONES Bug Parent Requirement By RefA
Read-onlyIdempotent

Resolve the parent requirement by bug number, task id, or task URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
bugYes
raw_payloadYes
requirementYes
resolution_pathYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint, so the tool's safety is clear. The description adds that it resolves via reference, which is consistent and adds minimal extra context.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the core functionality without 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?

Given the tool's simplicity, an output schema exists, and the description adequately explains the input. The sibling list provides context, but no additional details like output format are needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no description for the 'ref' parameter (0% coverage). The description explains that ref can be a bug number, task id, or task URL, adding crucial meaning 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 resolves the parent requirement using a bug number, task id, or task URL. It distinguishes from siblings like get_bug_parent_requirement (without _by_ref) by specifying the input format.

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

Usage Guidelines3/5

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

The description implies usage when you have a reference and need the parent requirement, but it does not explicitly mention when not to use it or provide alternatives among siblings.

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

get_doc_chunksGet ONES Document ChunksA
Read-onlyIdempotent

Return one cursor-based chunk from a ONES doc ref using a character budget.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
cursorNo
max_charsNo
include_resourcesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
docYes
chunkYes
has_moreYes
markdownYes
next_cursorYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds that the tool returns a chunk (not full document) and uses cursor pagination and a character budget, which provides useful context beyond the annotations. However, it does not describe error handling, rate limits, or what happens on invalid refs.

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

Conciseness5/5

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

The description is a single, well-formed sentence with no fluff. It is front-loaded with the core action and immediately conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema (so return values are documented separately), and the annotations covering safety, the description covers the essential usage concept. It mentions cursor and character budget, which are key. However, it could briefly note pagination behavior (e.g., 'use cursor to get next chunk').

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?

With 0% schema description coverage, the description must compensate. It implies the role of 'ref', 'cursor', and 'max_chars' (character budget), but it does not explain 'include_resources'. This leaves a significant gap for a tool with 4 parameters.

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

Purpose5/5

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

The description clearly specifies the verb 'Return', the resource 'one cursor-based chunk from a ONES doc ref', and the mechanism 'using a character budget'. It distinguishes the tool from siblings like get_doc (full document) and get_doc_section (single section) by focusing on chunked retrieval.

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 does not provide any when-to-use or when-not-to-use guidance. It lacks explicit comparisons to sibling tools or scenarios where this tool should be preferred over alternatives like get_doc or get_doc_context.

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

get_doc_contextGet ONES Document ContextB
Read-onlyIdempotent

Automatically select sections or chunks for a ONES doc ref based on a question.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
modeNoauto
questionYes
max_charsNo
include_resourcesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
docYes
reasonYes
markdownYes
strategyYes
truncatedYes
consumed_chunksYes
selected_sectionsYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering safety and side effects. The description adds only that the tool 'automatically selects' content, which does not contradict annotations but also does not provide additional behavioral context such as rate limits or authorization needs.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded, containing no filler or redundant information. Every word contributes to the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and no schema-level descriptions, the description is insufficient for an agent to understand how to use it correctly. The existence of an output schema mitigates the lack of return value explanation, but parameter semantics and usage context are still lacking.

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?

With 0% schema description coverage, the description bears full responsibility for explaining parameters. It only identifies 'ref' and 'question' implicitly but does not explain 'max_chars', 'mode', or 'include_resources'. The parameter 'mode' is restricted to 'auto' but this is not clarified in the description.

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

Purpose5/5

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

The description clearly states the tool's purpose: automatically select sections or chunks from a ONES document based on a question. It uses a specific verb ('select') and resource ('sections or chunks for a ONES doc ref'), and it implicitly differentiates from sibling tools that retrieve entire documents or specific sections without intelligent selection.

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 explicit guidance on when to use this tool versus alternatives like get_doc_chunks or get_doc_section. It does not mention prerequisites, context, or exclusions. The agent is left to infer usage from the tool name and description alone.

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

get_doc_sectionGet ONES Document SectionB
Read-onlyIdempotent

Return one outline section from a ONES doc ref, optionally including descendants.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes
section_idYes
include_resourcesNo
include_descendantsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
docYes
sectionYes
markdownYes
truncatedYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. Description adds the descendant inclusion behavior but nothing about error handling or response format. Annotations carry most of the burden.

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

Conciseness4/5

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

Single concise sentence with no fluff, but at the cost of omitting critical parameter details. Front-loads the purpose well.

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 4 parameters, output schema, and many siblings, the description is too sparse. No explanation of output or parameter formats. Lacks completeness despite existing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must document parameters. It only hints at include_descendants, ignoring ref, section_id, and include_resources. Insufficient compensation.

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

Purpose5/5

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

The description clearly states it returns one outline section from a ONES doc, with optional descendants. It distinguishes from siblings like get_doc (full doc) and get_doc_outline (outline structure).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like get_doc or get_doc_outline. No prerequisites or exclusions mentioned.

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

get_execution_tasksGet ONES Requirement Execution TasksA
Read-onlyIdempotent

Get execution-task candidates related to a requirement by task id. Prefer get_execution_tasks_by_ref when starting from a requirement number or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
team_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
raw_payloadYes
requirementYes
execution_tasksYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds no additional behavioral context beyond that, but 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?

Two sentences with no redundancy: first sentence states purpose, second provides usage guidance. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 2 parameters (1 required) and no schema description coverage, the description only partially explains one parameter. An output schema exists but the description omits any mention of return value structure or behavior for missing tasks.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%. Description explains task_id's role ('by task id') but does not clarify team_id's purpose, leaving a parameter ambiguous.

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 'get execution-task candidates related to a requirement by task id' and distinguishes from sibling tool get_execution_tasks_by_ref by specifying when to use each.

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 says 'Prefer get_execution_tasks_by_ref when starting from a requirement number or URL', providing clear when-to-use guidance and an alternative.

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

get_execution_tasks_by_refGet ONES Requirement Execution Tasks By RefB
Read-onlyIdempotent

Get execution-task candidates by requirement number, task id, or task URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
raw_payloadYes
requirementYes
execution_tasksYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate read-only, nondestructive, idempotent, open-world. The description adds no significant behavioral traits beyond the input keys. No contradictions; adequate 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?

A single sentence that is concise and front-loaded with the action and key inputs. No filler, every word adds value.

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 single parameter and presence of an output schema, the description is mostly complete. It could mention return multiplicity or edge cases, but the essential input-output contract is clear.

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 description explains that 'ref' can be a requirement number, task id, or task URL, adding meaning beyond the schema (which only defines a string). However, schema coverage is 0%, so the description partially compensates but lacks explicit format details.

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

Purpose4/5

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

The description clearly states the tool fetches execution-task candidates by requirement number, task id, or URL. However, it does not differentiate from the sibling tool 'get_execution_tasks', which may have a similar purpose, leaving ambiguity.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. Given the presence of siblings like 'get_execution_tasks', the description should clarify the distinction (e.g., 'candidates' vs full tasks).

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

get_requirement_detailGet ONES Requirement DetailA
Read-onlyIdempotent

Get requirement body, fields, and related task facts by task id. Prefer get_requirement_detail_by_ref when starting from a requirement number or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
team_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
entityYes
descriptionYes
raw_payloadYes
custom_fieldsYes
related_tasksYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations provide strong safety guarantees (readOnly, not destructive, idempotent, open world). The description adds value by specifying the type of data retrieved (body, fields, related task facts), which is beyond what annotations convey.

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

Conciseness5/5

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

Two highly efficient sentences with no filler. The first sentence delivers purpose and scope; the second provides usage guidance. 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?

Given the simple tool (2 params, output schema provided, rich annotations), the description covers core purpose and guidance. It does not explain the optional team_id parameter or return structure, but output schema likely covers that. Adequate for the complexity.

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%, meaning the description does not explain the parameters. While 'task_id' is implied by 'by task id', the optional 'team_id' is not mentioned. The description adds minimal value over the raw 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 action ('Get') and the resource ('requirement detail') including what is returned ('body, fields, and related task facts'). It also distinguishes from the sibling tool 'get_requirement_detail_by_ref' by specifying when to use each.

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 prefers 'get_requirement_detail_by_ref' when starting from a requirement number or URL, implicitly guiding the agent to use this tool when a task_id is available. While not explicit about when to use this tool, the contrast is clear.

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

get_task_messagesGet ONES Task MessagesA
Read-onlyIdempotent

Get task comments/messages by task id for requirement workflow context. Prefer get_task_messages_by_ref when starting from a number or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
team_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
entityYes
messagesYes
raw_payloadYes

TDQS

A4.1/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 description adds little beyond that. Doesn't disclose potential errors or pagination, but safety profile is clear from 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 concise sentences, front-loaded with purpose, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values are covered. Tool is simple with clear sibling differentiation. Complete enough for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description only mentions task_id implicitly. team_id is not described at all. With no parameter descriptions in schema, the description should compensate but does not.

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

Purpose5/5

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

Description clearly states the verb 'get' and resource 'task comments/messages' with specific context 'for requirement workflow context'. It explicitly distinguishes from sibling 'get_task_messages_by_ref'.

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 tells when to prefer an alternative: 'Prefer get_task_messages_by_ref when starting from a number or URL.' Also provides context of use.

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

get_task_messages_by_refGet ONES Task Messages By RefB
Read-onlyIdempotent

Get task comments/messages by task number, task id, or task URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
entityYes
messagesYes
raw_payloadYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Description adds that the 'ref' parameter can be a task number, id, or URL, which is useful context beyond the schema. No behavioral traits like pagination or limits mentioned, but annotations cover safety and idempotency.

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

Conciseness5/5

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

Single sentence, directly front-loaded with essential information. No redundant words; every word contributes to meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and presence of an output schema, the description is adequate but minimal. It does not mention potential nuances like message ordering or pagination, but these may be covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the 'ref' parameter. The description clarifies that 'ref' accepts task number, id, or URL, adding meaning absent from the schema. Could be more detailed with format examples, but effectively compensates for missing schema 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?

Description specifies verb 'Get', resource 'task comments/messages', and acceptable identifiers (task number, task id, or task URL). However, it does not distinguish this tool from sibling 'get_task_messages' which may serve a similar role but with different parameters.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as 'get_task_messages' or other related tools. No prerequisites or conditions stated.

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

get_task_rich_resources_by_refGet ONES Task Rich Resources By RefA
Read-onlyIdempotent

Extract rich-text image resources by task number, task id, or task URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
entityYes
resourcesYes
raw_payloadYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds no extra behavioral context beyond purpose; no mention of rate limits, permissions, or response characteristics.

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

Conciseness5/5

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

Single sentence (10 words) precisely conveys purpose and parameters without any fluff; front-loaded key action and inputs.

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 1-param read-only tool with annotations covering safety and an output schema present, the description suffices. Minor gap: no usage guidance relative to sibling, but overall adequate.

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 0%, but description clarifies that 'ref' accepts task number, task ID, or task URL, adding essential meaning beyond the schema's minimal 'string with minLength 1'.

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

Purpose5/5

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

Description clearly states it extracts rich-text image resources, specifying valid identifiers (task number, id, or URL). It distinguishes from sibling 'get_task_rich_resources' by emphasizing reference-based retrieval.

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

Usage Guidelines3/5

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

No explicit guidance on when to prefer this over the sibling 'get_task_rich_resources'; usage context is implied by the 'by_ref' naming, but lacks direct comparison or exclusion hints.

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

list_requirement_bugsList ONES Requirement BugsA
Read-onlyIdempotent

List bugs under a requirement by task id when explicitly requested. Prefer list_requirement_bugs_by_ref when starting from a requirement number or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
team_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
bugsYes
countYes
raw_payloadYes
requirementYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint, destructiveHint false, idempotentHint true, and openWorldHint true. Description adds that listing is done 'when explicitly requested,' but does not provide further behavioral context such as authorization requirements or rate limits.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and usage guidance, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Has output schema so return values are covered. However, missing details on pagination, ordering, or what happens if no bugs exist. The optional team_id parameter is not addressed.

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?

Input schema has no descriptions (0% coverage), and the description does not explain what task_id or team_id represent, nor their expected formats or optionality. The tool's purpose mentions 'by task id' but lacks detail on 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 lists bugs under a requirement by task id and distinguishes it from the sibling tool list_requirement_bugs_by_ref by specifying when to use each.

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 this tool (when starting from a task ID) and when to prefer the sibling tool (when starting from requirement number or URL).

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

resolve_requirementResolve ONES RequirementC
Read-onlyIdempotent

Resolve an ONES requirement by number, task id, or task URL. Prefer *_by_ref tools for normal workflow reads.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
inputYes
entityYes
matchedYes
candidatesYes
raw_payloadYes
resolution_pathYes

TDQS

C2.7/5.0
Behavior1/5

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

The description 'Resolve' suggests a state-changing write operation, but the annotations declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe read-only operation. This is a direct contradiction, making the description misleading. No additional behavioral details (e.g., side effects, auth requirements) are provided.

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 with two sentences. The first sentence clearly states the action and identifier types. The second sentence provides usage guidance. No redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (not shown), the description is incomplete due to the annotation contradiction and lack of clarity on what 'resolve' means. It does not explain the tool's effect or when it is appropriate to use. For a tool that appears to mutate state, this is a significant 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?

The schema has one parameter 'ref' with no description (0% coverage). The description adds meaning by saying it can be a number, task id, or task URL, but does not specify format or constraints beyond the schema's minLength. This is helpful but insufficient for fully understanding the parameter.

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

Purpose3/5

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

The description states 'Resolve an ONES requirement by number, task id, or task URL', giving the action and resource. However, the term 'resolve' is ambiguous (could mean mark as resolved or another operation) and the readOnlyHint annotation contradicts the implication of a write operation. It does distinguish from siblings by mentioning '_by_ref' tools, but lacks clarity on the exact semantics.

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

Usage Guidelines3/5

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

The description includes 'Prefer *_by_ref tools for normal workflow reads', which provides some guidance on when not to use this tool. However, it does not explicitly state when to use this tool or clarify its purpose versus the alternative tools. The contradiction with annotations further confuses usage.

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

search_docsSearch ONES DocsC
Read-onlyIdempotent

Search ONES docs by keyword

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
itemsYes
limitYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds minimal behavioral context beyond 'search by keyword', not disclosing ordering, pagination, or result handling. Given annotations cover safety, but description fails to add useful behavior 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?

Single sentence, front-loaded, no redundant information. Every word is necessary and immediately conveys the tool's core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description does not specify the scope of 'ONES docs' or the search domain. For a search tool with many sibling get/list tools, more context on what 'docs' includes and how results are ordered would improve completeness.

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 description must compensate. However, it only mentions 'keyword' without explaining the 'query' parameter format or the 'limit' parameter behavior. Parameters remain poorly documented.

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

Purpose4/5

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

Description specifies verb 'search' and resource 'ONES docs' with parameter 'keyword'. It clearly distinguishes from sibling tools which are all get/list/retrieve operations. However, it does not explicitly differentiate from potential search siblings, but there are none.

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. There is no mention of use cases, prerequisites, or exclusions. The description simply states what the tool does without context.

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

TDQS

B3.4/5.0
Disambiguation3/5

Many tools come in pairs with and without '_by_ref' suffix, doing essentially the same operation but accepting different parameter types. While descriptions clarify the intended input, the overlap increases risk of misselection for an agent.

Naming Consistency4/5

Naming follows a consistent verb_noun pattern with underscore, and the '_by_ref' suffix is applied uniformly. However, the presence of both variants for multiple functions creates slight inconsistency.

Tool Count4/5

20 tools is on the high side but still reasonable for a comprehensive documentation and task management server. Could be streamlined by merging the '_by_ref' variants, but the count is not excessive.

Completeness4/5

Covers search, retrieval of docs, tasks, bugs, requirements, and related resources. Missing write operations and a generic listing function for requirements/bugs, but read coverage is good for the domain.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/twodogwang/mcp-demo'

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