Skip to main content
Glama
rubyLs

@rubyls/yearning-mcp

by rubyLs

@rubyls/yearning-mcp

Yearning SQL 审核平台的 MCP Server(TypeScript)。不只读查询,还覆盖完整工单能力:提交 DDL/DML、审核(同意/驳回)、撤回、查询申请、评论,以及数据源/表结构探查。

基于 Yearning REST / WebSocket API(/api/v2,JWT Bearer)。列表类与查询执行走 WebSocket,其余为 REST。

仓库:https://github.com/rubyLs/yearning_mcp

快速接入(推荐)

在 Cursor / Claude Desktop 的 MCP 配置中:

{
  "mcpServers": {
    "yearning": {
      "command": "npx",
      "args": ["-y", "@rubyls/yearning-mcp"],
      "env": {
        "YEARNING_URL": "http://your-yearning:8000",
        "YEARNING_USERNAME": "your-user",
        "YEARNING_PASSWORD": "your-password",
        "YEARNING_LOGIN_TYPE": "general",
        "YEARNING_READ_ONLY": "false"
      }
    }
  }
}

也可全局安装后使用:

npm i -g @rubyls/yearning-mcp
yearning-mcp

Related MCP server: sql-explorer-mcp

Docker(单容器 HTTP)

镜像已发布到 Docker Hub:rubyls/yearning-mcp

# 直接拉取运行(推荐)
docker run -d --name yearning-mcp -p 8080:8080 \
  -e MCP_AUTH_TOKEN=your-strong-token \
  -e YEARNING_URL=http://your-yearning:8000 \
  -e YEARNING_USERNAME=your-user \
  -e YEARNING_PASSWORD=your-password \
  -e YEARNING_READ_ONLY=false \
  rubyls/yearning-mcp:latest

# 指定版本
# rubyls/yearning-mcp:1.1.3

本地构建(可选):

docker build -t yearning-mcp:latest .
# 或 npm run docker:build
  • 健康检查:GET http://localhost:8080/health

  • MCP 端点:http://localhost:8080/mcp

  • Header:Authorization: Bearer <MCP_AUTH_TOKEN>

Cursor 连接示例:

{
  "mcpServers": {
    "yearning": {
      "url": "http://localhost:8080/mcp",
      "headers": {
        "Authorization": "Bearer your-strong-token"
      }
    }
  }
}

容器内访问宿主机 Yearning 时,macOS/Windows 可用 host.docker.internal 代替 localhost

维护者推送镜像:

npm run docker:build
npm run docker:push
# 需已 docker login,镜像会打上 rubyls/yearning-mcp:1.1.3 与 :latest

功能一览

只读工具(14)

工具

说明

yearning_user_info

当前用户与可查询数据源

yearning_list_sources

数据源列表

yearning_list_databases

库列表

yearning_list_tables

表列表

yearning_table_fields

表结构(字段 + 索引)

yearning_sql_check

提交前 SQL 审核检测

yearning_my_orders

我的工单列表

yearning_order_detail

工单详情

yearning_order_timeline

审核时间线 / 步骤(含 flag

yearning_rollback_sql

回滚 SQL

yearning_audit_orders

待我审核的工单

yearning_query_status

查询审核开关与我的查询工单状态

yearning_run_query

只读 SELECT(msgpack WebSocket)

yearning_order_comments

读取工单评论

写工具(5,YEARNING_READ_ONLY=false 时注册)

工具

说明

yearning_submit_order

提交 SQL 工单(需 confirm=truebackup=1 开启回滚备份)

yearning_undo_order

撤回未执行工单(需 confirm=true

yearning_audit_order

审核:agree / reject / undo(需 confirm=true

yearning_submit_query_order

提交查询申请

yearning_post_comment

发表工单评论

工单状态:0 已驳回 / 1 执行中 / 2 待审核 / 3 已完成 / 4 已终止 / 5 待执行 / 6 已撤回。

推荐流程:

yearning_sql_check → yearning_submit_order → yearning_order_timeline → yearning_audit_order

环境变量

变量

说明

默认

YEARNING_URL

Yearning 地址

http://localhost:8000

YEARNING_USERNAME

登录用户名

(必填)

YEARNING_PASSWORD

登录密码

(必填)

YEARNING_LOGIN_TYPE

general / ldap

general

YEARNING_TIMEOUT

请求超时(秒)

30

YEARNING_READ_ONLY

true 时不注册写工具

false

YEARNING_INSECURE

跳过 TLS 校验

false

MCP_TRANSPORT

stdio / sse / streamable-http

stdio

MCP_HOST / MCP_PORT

HTTP 监听

0.0.0.0 / 8080

MCP_AUTH_TOKEN

HTTP Bearer 鉴权

(不设则不鉴权)

MCP_STATELESS_HTTP

无状态 HTTP

false

HTTP 远程模式

MCP_TRANSPORT=streamable-http \
MCP_HOST=0.0.0.0 MCP_PORT=8080 \
MCP_AUTH_TOKEN=your-strong-token \
YEARNING_URL=http://your-yearning:8000 \
YEARNING_USERNAME=your-user \
YEARNING_PASSWORD=your-password \
YEARNING_READ_ONLY=false \
npx -y @rubyls/yearning-mcp

客户端连接:http://localhost:8080/mcp,Header:Authorization: Bearer your-strong-token
健康检查:GET /health(免鉴权)。

从源码运行

git clone https://github.com/rubyLs/yearning_mcp.git
cd yearning_mcp
npm install
npm run build
npm start

Cursor 本地调试:

{
  "mcpServers": {
    "yearning": {
      "command": "node",
      "args": ["/absolute/path/to/yearning_mcp/dist/index.js"],
      "env": {
        "YEARNING_URL": "http://localhost:8000",
        "YEARNING_USERNAME": "your-user",
        "YEARNING_PASSWORD": "your-password",
        "YEARNING_READ_ONLY": "false"
      }
    }
  }
}

对话示例

连上 Yearning,列出我有权限的数据源
把这条建表 SQL 在 dev 数据源做检测,没问题就提工单:
CREATE TABLE t_demo (id INT PRIMARY KEY, name VARCHAR(64));
列出待我审核的工单;工单 XXX 没问题,帮我同意(先看 timeline 拿 flag)
在 order_db 的 user 库查最近 7 天注册账号,前 100 条

开发

npm run dev          # tsx 直接跑 src
npm run build        # 编译到 dist/
npm start            # node dist/index.js
npm publish --access public   # 发布到 npm(需先 npm login)

已知限制

  • 部分 /fetch/* 接口使用 GET + JSON Body;若前置代理丢弃 GET body,列表会静默为空。

  • WebSocket 鉴权依赖 Sec-WebSocket-Protocol 透传裸 JWT,且需正确 Origin

  • 查询审核开启时,yearning_run_query 需先有已批准的查询工单。

  • 管理端能力(用户/数据源/规则管理)未包含,请在 Yearning 控制台操作。

License

MIT

Available Tools

19 tools
yearning_audit_order审核工单A
Destructive

审核工单:agree 同意(末级步骤会触发 SQL 执行)/ reject 驳回 / undo 撤回。flag 为当前审核步骤序号(用 yearning_order_timeline 确认);reject 必须提供 reason。agree 为高危操作,必须 confirm=true。对应 POST /api/v2/audit/order/state

ParametersJSON Schema
NameRequiredDescriptionDefault
flagYes当前审核步骤序号(来自 order_timeline)
delayNo延时执行时间(可选)
actionYes审核动作
reasonNo驳回理由(action=reject 时必填)
confirmYes必须为 true,确认执行审核动作
work_idYes工单号
source_idYes数据源 ID

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the destructiveHint annotation, the description discloses a critical behavioral trait: agreeing at the final step triggers SQL execution, and it explicitly labels agree as high-risk. This adds important consequences that annotations alone do not 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 a single, well-structured sentence packed with essential operational details. It uses punctuation effectively to separate actions and conditions, with 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?

The description covers the key behavioral aspects needed to use the tool correctly: actions, prerequisites, risk, and confirm requirement. Since there is no output schema, return values are not explained, but the description is sufficient for safe and correct invocation.

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?

Although the schema already describes all parameters (100% coverage), the description enriches the flag parameter with cross-tool usage (use yearning_order_timeline to confirm) and clarifies that reject requires a reason. This adds meaning beyond 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 tool audits work orders with three specific actions (agree, reject, undo) and even mentions the corresponding API endpoint. It distinguishes itself from list-oriented siblings like yearning_audit_orders by focusing on state-changing operations for a single order.

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 concrete guidance: use yearning_order_timeline to confirm the current step (flag), provide a reason when rejecting, and set confirm=true for agree. It gives clear context for when to use the tool, though it does not explicitly contrast with alternative tools like yearning_undo_order.

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

yearning_audit_orders待审工单列表A
Read-onlyIdempotent

分页列出与当前用户相关的待审核工单(审核人视角)。对应 WS /api/v2/audit/order/list

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
textNo按说明/工单号模糊搜索
statusNo状态过滤:2 待审核/3 已完成/0 已驳回
work_idNo按工单号过滤
page_sizeNo
response_formatNomarkdown

TDQS

A3.9/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 current-user scoping and auditor perspective, but doesn't disclose pagination behavior or response format, which is acceptable given the annotation coverage.

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 short sentences, front-loaded with purpose, includes the endpoint for traceability. No redundant fluff.

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

Completeness3/5

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

For a simple list tool with 6 optional params and no output schema, the description gives core purpose and scope but doesn't clarify that the status filter allows non-pending statuses despite saying '待审核'. It also doesn't mention response format, though the response_format param exists.

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

Parameters3/5

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

Schema description coverage is 50%, with text/status/work_id described. The description itself doesn't add parameter semantics, but page and page_size are self-evident from the '分页列出' verb. No critical parameter info is missing.

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 '分页列出' (paginated list) and names the resource '待审核工单' (pending audit orders), with an explicit auditor perspective and current-user scope. This clearly distinguishes it from siblings like yearning_my_orders and yearning_audit_order.

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?

It provides clear context: auditor perspective, current-user related, paginated. However, it doesn't explicitly name alternative tools or exclusion criteria, but the '审核人视角' implies when to use it over other order lists.

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

yearning_list_databases列出库B
Read-onlyIdempotent

列出指定数据源下的数据库列表。对应 GET /api/v2/fetch/base

ParametersJSON Schema
NameRequiredDescriptionDefault
hideNo是否隐藏排除库列表
source_idYes数据源 ID(来自 yearning_list_sources)
response_formatNomarkdown

TDQS

B3.3/5.0
Behavior2/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 no behavioral context beyond the endpoint (GET), such as pagination, output behavior, or handling of hidden databases, so it adds no value 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?

A single sentence efficiently states the tool's purpose and endpoint. There is no wasted content, making it highly concise.

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

Completeness3/5

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

For a simple list tool with good annotations and schema, the description is adequate but misses usage guidelines and any note about return values or output format. Since there is no output schema, a bit more context would have made it more 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 describes source_id and hide, covering 67% of parameters. The description does not add any parameter semantics; it only repeats the concept of 'specified data source' which is already in the schema, so the 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 uses the verb '列表' (list) with the resource '数据库列表' and specifies '指定数据源下' (under a specified data source), clearly distinguishing it from sibling tools like yearning_list_sources and yearning_list_tables. The API endpoint reference further confirms the operation.

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. The description only states what it does and the endpoint, without exclusions, prerequisites, or references to sibling tools.

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

yearning_list_sources列出数据源B
Read-onlyIdempotent

列出当前账号有权限的数据源(可按 query/dml/ddl/idc 过滤)。对应 GET /api/v2/fetch/source

ParametersJSON Schema
NameRequiredDescriptionDefault
tpNo数据源范围all
response_formatNomarkdown

TDQS

B3.3/5.0
Behavior3/5

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

注释已提供 readOnlyHint=true, idempotentHint=true, destructiveHint=false,安全行为已被覆盖。描述额外补充了权限范围过滤(query/dml/ddl/idc),提供了授权和筛选方面的有用上下文,但未涉及返回格式或分页等行为。

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?

描述仅一句话,以动词'列出'开头,包含核心功能、过滤能力及 API 端点,信息密度高且无冗余内容。

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?

工具本身简单且注释覆盖安全属性,但描述未说明 response_format 参数,也没有输出 schema,导致返回格式不明确;仅凭描述无法知晓如何请求 JSON 输出。整体上对于列表类工具已算基本完整,但仍有明显缺口。

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?

描述对 tp 参数进行了扩展('可按 query/dml/ddl/idc 过滤'),但未提及 response_format 参数。Schema 中 tp 描述为'数据源范围',response_format 无描述,整体 schema 描述覆盖率约 50%,描述未能弥补这一缺口。

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?

描述明确为'列出当前账号有权限的数据源',包含清晰动词、资源对象和权限范围。虽未显式对比 sibling 工具中的 list_databases/list_tables,但'数据源'这一概念足以区分主要用途,API 端点也增强了明确性。

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?

描述隐含了使用场景(发现当前账号有权限的数据源),但未明确说明何时使用此工具而非 list_databases 或 list_tables,也没有提供任何排除条件或替代工具指引。

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

yearning_list_tables列出表A
Read-onlyIdempotent

列出指定数据源、指定库下的表。对应 GET /api/v2/fetch/table

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseYes库名
source_idYes数据源 ID
response_formatNomarkdown

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint false, so the safety profile is covered. The description adds that this corresponds to a GET endpoint, reinforcing read-only behavior, but adds no additional traits such as required permissions, rate limits, or response format behavior. With annotations present, 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 a single, focused sentence that front-loads the primary purpose and adds the relevant API endpoint for traceability. No wasted words, perfectly sized.

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 only 3 parameters and no output schema, the description plus annotations provide enough context for an agent to invoke it correctly. It does not describe the response format or pagination, but given the simplicity and the presence of openWorldHint, this is not a critical gap. Sibling names and schema details fill in remaining context.

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 descriptions cover database (库名) and source_id (数据源 ID), with response_format having enum and default values. The description simply restates '指定数据源、指定库' without adding syntax or format details beyond the schema. Since schema coverage is 67%, the description provides marginal added value, so baseline 3 is suitable.

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 '列出指定数据源、指定库下的表' (list tables under specified data source and database), using a specific verb and resource. It unambiguously distinguishes this from sibling tools like list_sources and list_databases by scoping to tables within a given source/database, and also references the API endpoint GET /api/v2/fetch/table.

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

Usage Guidelines4/5

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

The description implies when to use it (when needing to list tables for a specific data source and database) but does not explicitly mention alternatives or exclusions. Context of sibling tools and the clear scope provide adequate guidance, though not as explicit as naming 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.

yearning_my_orders我的工单列表A
Read-onlyIdempotent

分页列出当前用户提交的工单。状态:8=全部 / 2=待审核 / 3=已完成 / 0=已驳回 / 4=已终止 / 6=已撤回 / 1=执行中 / 5=待执行。对应 WS /api/v2/common/list

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo页码(从 1 开始)
textNo按说明/工单号模糊搜索
statusNo状态过滤,8=全部
work_idNo按工单号过滤
page_sizeNo分页大小
response_formatNomarkdown

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=false, so the safety profile is clear. Description adds value by enumerating status code meanings (8=全部, 2=待审核, etc.) and the backend WS endpoint, giving context beyond annotations without contradicting them.

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

Conciseness5/5

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

Description is concise, with the core purpose in the first sentence, followed by essential status codes and endpoint mapping. Every sentence earns its place with no 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 no output schema, the description provides enough context: purpose, pagination, status filter values, and the target API. It doesn't describe return format, but response_format parameter exists, making this 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 covers 5/6 parameters (83%), but the description enriches parameter semantics by providing a full mapping of status codes, which the schema only partially covers. It does not explain response_format, but the status mapping is significant value added.

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 '分页列出当前用户提交的工单' (paginated list of current user's submitted orders), specifying verb, resource, and scope. This distinguishes it from siblings like order_detail (single order) and audit_orders (auditing).

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?

Provides context that this is the current user's order list, but does not explicitly state when to use this vs alternatives or mention exclusions. It identifies the underlying API endpoint, which hints at usage, but lacks explicit guidance like 'for a single order use order_detail'.

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

yearning_order_comments工单评论A
Read-onlyIdempotent

读取指定工单的全部评论。对应 WS /api/v2/fetch/comment

ParametersJSON Schema
NameRequiredDescriptionDefault
work_idYes工单号
response_formatNomarkdown

TDQS

A3.7/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, indicating a safe read operation. The description adds the behavioral detail that it reads ALL comments for a specified work order, which is useful. It also provides the corresponding WS endpoint. However, it does not disclose additional traits such as pagination, permissions, or response format behavior beyond what annotations cover.

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, consisting of two short sentences. The first sentence clearly states the purpose, and the second provides a technical endpoint reference. Every word earns its place, with no redundant content. It is front-loaded and easy to parse.

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 simple nature (read-only, two parameters, no output schema), the description is mostly complete. It clearly states the action and resource, and annotations cover safety profile. However, it does not mention the response_format parameter's effect on the output (markdown vs json), nor does it describe the structure of the returned comments. These gaps are minor for a straightforward read operation, but a slightly richer description 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 only 50% (work_id has a description, response_format does not). The description does not compensate for this gap by explaining either parameter. It does not mention that work_id is the work order number or that response_format controls the output format (markdown/json). The endpoint reference is not parameter-related. Overall, the description adds no semantic value 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's function: '读取指定工单的全部评论' (read all comments for a specified work order). It uses a specific verb ('读取' - read) and identifies the resource ('工单' - work order) and the scope ('全部评论' - all comments). This distinguishes it from sibling tools like yearning_post_comment (which posts comments) and yearning_order_detail (which likely fetches order details).

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

Usage Guidelines3/5

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

The description implies the tool should be used when a work order's full comment list is needed, but it does not explicitly state when to use it versus alternatives. There is no mention of exclusions or comparison with sibling tools such as yearning_order_timeline. The endpoint reference 'WS /api/v2/fetch/comment' provides technical context but no usage guidance.

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

yearning_order_detail工单详情B
Read-onlyIdempotent

查看工单详情:SQL 明细与完整 SQL。对应 GET /api/v2/fetch/detail + /fetch/sql

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
work_idYes工单号
page_sizeNo
response_formatNomarkdown

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it maps to two GET endpoints (/fetch/detail + /fetch/sql) and specifies the output scope (SQL details and complete SQL), but does not disclose pagination or response format 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?

One short sentence with clear subject and endpoints; no filler or repetition. Front-loaded in Chinese and every word adds value.

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?

As a read-only detail retrieval tool with no output schema, the description provides a basic return summary (SQL details and full SQL) and endpoint mapping but lacks guidance on pagination behavior, response format options, and when to use this tool versus siblings. This leaves meaningful gaps for an agent but remains adequate for basic invocation.

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 only 25%; only work_id has a description ('工单号'). The description does not explain page, page_size, or response_format meanings and does not compensate for the low schema coverage. The tool's title implies work_id refers to an order, but no detailed parameter semantics are provided.

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 '查看工单详情:SQL 明细与完整 SQL' (view order details: SQL details and full SQL), specifying the exact resource and scope. It also names the corresponding endpoints, which distinguishes it from siblings like yearning_order_timeline and yearning_rollback_sql.

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 usage guidance: no when-to-use conditions, exclusions, or references to alternative tools for different order-related needs. It only states the function, so agents cannot determine when to prefer this over yearning_order_timeline or yearning_my_orders.

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

yearning_order_timeline工单审核时间线A
Read-onlyIdempotent

查看工单审核时间线与流程步骤。审核时 flag 取自此处。对应 GET /api/v2/fetch/timeline + /fetch/steps

ParametersJSON Schema
NameRequiredDescriptionDefault
work_idYes工单号
source_idNo数据源 ID(影响流程步骤解析)
response_formatNomarkdown

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive. The description adds value by mapping to GET endpoints (confirming read-only semantics) and explaining that the flag for audits originates here, which is useful behavioral context beyond 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 three short sentences, each contributing unique information: what the tool does (view timeline/steps), why it matters (audit flag source), and API mapping. 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?

The tool has good annotations and a clear purpose. It explains the audit-flag context and the underlying endpoints. Although there is no output schema, the description gives enough for a read-only timeline tool, though the exact return structure is left unspecified.

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 67%: work_id and source_id have descriptions, response_format has an enum/default but no explicit description. The tool description itself does not add parameter details, but the schema already covers most parameters adequately. Overall, the description neither compensates nor detracts.

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 ('查看' meaning view) and names the exact resource (工单审核时间线 with 流程步骤). It also adds a distinct use case (审核时 flag 取自此处) that differentiates it from sibling tools like order_detail and audit_orders.

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?

It clearly states when to use the tool ('审核时 flag 取自此处' — when reviewing, the flag is taken here). It does not explicitly mention alternatives or exclusions, but the context is clear enough for an agent to select it appropriately.

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

yearning_post_comment发表工单评论C

在指定工单下发表评论。对应 POST /api/v2/fetch/comment

ParametersJSON Schema
NameRequiredDescriptionDefault
commentYes评论内容
work_idYes工单号

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds no additional behavioral context—it only restates the action and the corresponding HTTP method. It does not disclose side effects, auth requirements, or response behavior. The description neither contradicts the annotations nor enriches them.

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, consisting of two short sentences: one stating the purpose and one mapping to the API. No redundant information is included. Every word serves a purpose, making it easy to read and process.

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 no output schema and the annotations are minimal. The description lacks information about return values, success/failure indicators, or any side effects beyond 'posting a comment.' Given the simplicity of the tool, some guidance on expected response or error handling would be valuable but is entirely absent. The description is not complete enough to fully inform an agent unfamiliar with the system.

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 descriptions for both required parameters (comment content and work order number), achieving 100% schema coverage. The description does not add any further meaning or examples beyond what the schema already states. Given the high schema coverage, the baseline of 3 is appropriate.

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 (发表/post) and resource (工单/comment under a work order), and includes the API endpoint for reference. However, it does not explicitly differentiate from sibling tools like yearning_order_comments, which likely lists comments rather than creating them. The specificity is high, but the lack of explicit sibling distinction keeps it from a 5.

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 about when to use this tool versus alternatives, prerequisites, or exclusions. The API mapping (POST /api/v2/fetch/comment) hints at a write operation, but does not tell the agent when to choose this over similar tools like yearning_submit_order or yearning_order_comments. There is no mention of required permissions or typical use cases.

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

yearning_query_status查询审核状态B
Read-onlyIdempotent

查看查询审核开关,以及当前用户查询工单是否有效。对应 GET /api/v2/fetch/is_query + /fetch/query_status

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

TDQS

B3.4/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 the safety profile. The description adds the specific endpoints and the two status items being checked, but fails to explain response behavior or any limitations, such as what happens if the audit switch is off.

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 that front-loads the core functionality and includes the endpoint mapping. No unnecessary words or repetition.

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 simple with rich annotations, but the description omits parameter semantics and usage context. While the core purpose is clear, the lack of guidance on when to use it and how response_format affects the output leaves gaps that the agent must fill elsewhere.

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 only parameter, response_format, is not mentioned in the description, and the schema has no property descriptions (0% coverage). The description does not compensate by explaining how choosing 'markdown' vs 'json' affects the output or what the default is.

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: checking the query audit switch and whether the current user's query work order is valid, with reference to the two specific GET endpoints. This distinguishes it from sibling tools like yearning_sql_check or yearning_my_orders.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It only states what it does, leaving the agent to infer when it should be called.

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

yearning_rollback_sql回滚 SQLA
Read-onlyIdempotent

获取工单的回滚 SQL。对应 GET /api/v2/fetch/roll

ParametersJSON Schema
NameRequiredDescriptionDefault
work_idYes工单号
response_formatNomarkdown

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare read-only/idempotent; description adds only the API endpoint mapping, no further behavioral 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 with the key action and endpoint, 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?

Simple tool with rich annotations and schema enum; description provides the core purpose, though it omits response format details absent an 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?

Description adds no meaning beyond schema; response_format lacks explanation, and only work_id is described in schema (50% coverage).

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?

States specific verb '获取' (get) and resource '工单的回滚 SQL' (work order rollback SQL), clearly distinguishing from sibling order tools.

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 when-to-use or alternative guidance; usage is implied by the purpose alone.

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

yearning_run_query执行查询A
Read-onlyIdempotent

在指定数据源执行只读 SELECT 查询。需具备查询权限;若开启查询审核,需先 yearning_submit_query_order。对应 WS /api/v2/query/results(msgpack)

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYes查询 SQL(仅 SELECT)
limitNo返回行数上限(客户端截断)
schemaYes库名
source_idYes数据源 ID
response_formatNomarkdown

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, and the description adds that query permission is required and that audit may require a prior submission order, which is valuable behavioral context. It also notes the msgpack transport, disclosing the response format underlying the tool. 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 a single compact sentence that front-loads the core action, then tacks on constraints and the endpoint reference. Every clause 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 read-only query tool with good annotations and schema, the description includes permissions, audit workflow, and the underlying protocol. It could mention how to handle long-running queries or the relationship to `yearning_sql_check`, but it's otherwise complete for the tool's purpose.

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 covers 4 of 5 parameters with descriptions (80% coverage), so the baseline is 3. The description adds no additional parameter-level semantics beyond reinforcing that SQL must be SELECT, which is already in the schema. Therefore, no extra value 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 uses a specific verb ('执行') and resource ('指定数据源') with a clear read-only SELECT scope, and distinguishes from siblings like `yearning_sql_check` and `yearning_submit_query_order` by indicating this executes the query directly. It also references the underlying WS endpoint, further clarifying its 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?

It explicitly states a prerequisite (query permission) and a conditional alternative: if audit is on, first use `yearning_submit_query_order`. This gives clear when-to-use guidance, though it doesn't compare with other sibling query-related tools like `yearning_sql_check`, so not a full 5.

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

yearning_sql_checkSQL 审核检测A
Read-onlyIdempotent

提交前对 SQL 做审核检测。建议先调用本工具,再 yearning_submit_order。对应 PUT /api/v2/fetch/test。不接受 SELECT(请用 yearning_run_query)。

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYes待检测 SQL
databaseYes库名
source_idYes数据源 ID
order_typeYesSQL 类型
response_formatNomarkdown

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already convey read-only and idempotent behavior. The description adds useful context: it's a pre-submission check, maps to a specific API endpoint, and rejects SELECT statements. This goes beyond the annotations without contradicting them.

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 concise sentences, each providing essential information: purpose, usage order, and a key exclusion. No redundant content; front-loaded with the primary function.

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

Completeness4/5

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

For a tool with no output schema, the description explains purpose, usage, and constraints, which is mostly sufficient. It lacks detail on the return value/audit result, but the 'response_format' parameter hints there is a formatted output. Overall, it covers the key contextual needs.

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 descriptions cover 80% of parameters. The description adds a critical semantic constraint on the 'sql' parameter by explicitly stating SELECT is not accepted, clarifying it should be DDL/DML. This provides meaning beyond the schema's field descriptions.

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

Purpose5/5

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

The description clearly states the tool performs SQL review before submission with a specific verb and resource ('对 SQL 做审核检测'). It distinguishes itself from siblings by mentioning the intended sequence with yearning_submit_order and explicitly excluding SELECT (delegating to yearning_run_query).

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?

It provides explicit when-to-use guidance ('建议先调用本工具,再 yearning_submit_order') and an alternative for SELECT queries ('请用 yearning_run_query'). This is concrete and distinguishes from sibling tools.

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

yearning_submit_order提交 SQL 工单A

提交 SQL 工单(DDL/DML)。提交前建议先 yearning_sql_check。对应 POST /api/v2/common/post。必须传 confirm=true 才会真正提交。

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYes完整 SQL 语句
delayNo延时执行时间,如 2026-01-01 02:00
tableNo影响表名(可选)
backupNo是否备份:0 否 / 1 是(DML 建议开启)
remarkYes工单说明
confirmYes必须为 true,确认提交工单进入审核流程
assignedNo期望审核人(提示用;实际以流程模板为准)
databaseYes目标库名
source_idYes数据源 ID
order_typeYes工单类型
execute_timeNo执行时间(可选)

TDQS

A4.2/5.0
Behavior4/5

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

Adds context beyond annotations: mentions the API endpoint POST /api/v2/common/post and requires confirm=true to truly submit, implying a confirmation guard. It doesn't contradict readOnlyHint=false or destructiveHint=false, and adds the pre-check recommendation.

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?

Four short sentences each add value: purpose, pre-check recommendation, API mapping, and confirm requirement. No redundant text, and it is front-loaded with the core purpose.

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

Completeness4/5

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

The description plus schema provides enough to invoke: confirm requirement and all parameters are documented. It omits return value but no output schema exists; still, for a mutation tool with 11 params, it is 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 covers all 11 parameters with descriptions (100% coverage). Description only highlights confirm=true, which is already in the schema, adding no new 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?

Description clearly states it submits SQL work orders for DDL/DML, using the verb '提交' (submit) and resource 'SQL工单'. It distinguishes from sibling yearning_submit_query_order by specifying DDL/DML, 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 Guidelines4/5

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

Explicitly recommends running yearning_sql_check before submission and mandates confirm=true for actual submission. This gives clear when-to-use guidance, though it doesn't explicitly list alternatives like yearning_submit_query_order.

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

yearning_submit_query_order提交查询申请A

提交数据查询申请。开通查询审核时需审批通过后方可 yearning_run_query。对应 POST /api/v2/query/post

ParametersJSON Schema
NameRequiredDescriptionDefault
exportNo是否允许导出:0 否 / 1 是
remarkYes查询申请理由
source_idYes申请查询的数据源 ID

TDQS

A4.1/5.0
Behavior4/5

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

With annotations indicating readOnlyHint=false (write operation), the description adds value by disclosing the approval workflow (approval needed before run_query) and the HTTP endpoint (POST /api/v2/query/post). It does not contradict annotations and provides behavioral context beyond the structured fields.

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: the first states the primary purpose, the second adds workflow context and the API endpoint. Every sentence earns its place, with no redundant or extraneous content.

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

Completeness3/5

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

The description covers the purpose and approval workflow, but since there is no output schema, it does not mention what the response looks like (e.g., order ID). Given the tool's mutation nature and the need for further steps (like querying order status), this is a notable omission that affects completeness.

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

Parameters3/5

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

Schema description coverage is 100%, with all three parameters (export, remark, source_id) having individual descriptions. The tool description does not add additional semantic meaning beyond what the schema already provides, so the 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 action and resource: '提交数据查询申请' (submit a data query application). It distinguishes from siblings by explicitly referencing 'yearning_run_query' and the query submission context, differentiating it from generic submit tools like 'yearning_submit_order'.

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

Usage Guidelines4/5

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

The description implies usage: use this to submit a query application, and mentions that if audit is enabled, approval is required before running the query with 'yearning_run_query'. However, it does not explicitly state when not to use this tool or name alternative tools, leaving a slight gap.

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

yearning_table_fields查看表结构A
Read-onlyIdempotent

查看表结构:字段列表(类型/可空/键/默认值/注释)与索引。对应 GET /api/v2/fetch/fields

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYes表名
databaseYes库名
source_idYes数据源 ID
response_formatNomarkdown

TDQS

A3.8/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, covering safety. The description adds the return content (fields and indexes) and the HTTP endpoint. However, it does not disclose behaviors like pagination, result limits, or whether indexes are nested or flattened, so it only modestly expands beyond 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 a single, compact sentence that front-loads the purpose, then lists the exact returned components and API mapping. Every clause adds value and there is zero redundancy, making it highly efficient.

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 low-complexity read-only operation, strong annotations, and schema that documents most parameters, the description is nearly complete. It specifies the return payload structure (fields with attributes and indexes) and the API endpoint. It lacks only minor context (e.g., whether response_format changes the structure), but overall it is sufficient for an agent to invoke 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 description coverage is 75% (three of four parameters have Chinese descriptions). The description does not add additional semantics beyond the schema; for instance, it does not clarify the format of source_id or how response_format affects output. Since coverage is high, a 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 what the tool does: '查看表结构' (view table structure) and enumerates the exact content: field list (type/nullable/key/default/comment) and indexes. It also names the specific API endpoint, making the operation unambiguous and distinguishing it from sibling tools like list_tables.

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

Usage Guidelines3/5

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

The description implies usage for inspecting table schema, but it does not explicitly state when to prefer it over alternatives (e.g., list_tables for only table names) or mention any prerequisites. The API endpoint provides a minor cue, but no explicit when/when-not guidance.

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

yearning_undo_order撤回工单A
Idempotent

撤回自己提交、尚未执行的工单。对应 GET /api/v2/fetch/undo。必须传 confirm=true。

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes必须为 true,确认撤回
work_idYes工单号

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, signaling a mutation but not a destructive one. The description adds the crucial behavioral fact that confirm=true is mandatory and maps to GET /api/v2/fetch/undo. However, it does not detail what happens if the order is already executed or the exact status change, but given annotations this is sufficient.

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

Conciseness5/5

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

Two sentences with zero waste: the first states the action and condition, the second gives the endpoint and confirmation requirement. The most important information is 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 simple 2-parameter tool with no output schema, the description covers the core purpose, the user scope, the execution state, and the mandatory confirm parameter. It could potentially mention the effect on order status, but the description is adequate given the tool's simplicity and the existing annotations.

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 baseline is 3. The description restates the confirm=true requirement already encoded in the schema's const:true, adding no new meaning beyond what the schema provides. It does not add details about work_id format or behavior beyond '工单号'.

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+resource: '撤回自己提交、尚未执行的工单' (withdraw your own submitted, not-yet-executed order), and also provides the corresponding API endpoint. This distinguishes it from sibling tools like submit_order and audit_order by specifying the action and scope.

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 clear context: only for own submitted orders that have not yet been executed, with mandatory confirm=true. It does not explicitly name alternative tools, but the scope ('自己提交、尚未执行') is a clear guideline. It lacks explicit exclusions such as 'do not use for orders already executed', but these are implied.

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

yearning_user_info查看当前用户信息A
Read-onlyIdempotent

查看当前登录用户信息、部门、邮箱,以及有权查询的数据源列表。对应 GET /api/v2/fetch/userinfo

ParametersJSON Schema
NameRequiredDescriptionDefault
response_formatNomarkdown

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld. The description adds the API endpoint and return fields (department, email, data source list), but does not disclose authentication needs or response format behavior. It 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?

A single concise sentence in Chinese states the purpose and API endpoint with no filler. Information is front-loaded and every phrase 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?

For a simple read-only tool with no output schema, the description covers the main returned content (user info, department, email, data source list) and the API endpoint. It omits error and permission details, but these are less critical for a low-complexity info 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 single optional response_format parameter has a clear enum (markdown/json) and default value, making it self-explanatory in the schema. The description does not mention it, but the enum values provide enough meaning for correct invocation.

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 names the specific verb '查看' and resource: current logged-in user's info, department, email, and accessible data source list. This clearly distinguishes it from sibling tools like list_sources by focusing on identity plus permission-scoped sources.

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 list_sources or other user-related tools. The API endpoint mapping is useful but does not provide context, prerequisites, or exclusion criteria.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 19 tool updatesv1.0.0
    • First observedyearning_audit_order
    • First observedyearning_audit_orders
    • First observedyearning_list_databases
    • First observedyearning_list_sources
    • First observedyearning_list_tables
    • First observedyearning_my_orders
    • First observedyearning_order_comments
    • First observedyearning_order_detail
    • First observedyearning_order_timeline
    • First observedyearning_post_comment
    • First observedyearning_query_status
    • First observedyearning_rollback_sql
    • First observedyearning_run_query
    • First observedyearning_sql_check
    • First observedyearning_submit_order
    • First observedyearning_submit_query_order
    • First observedyearning_table_fields
    • First observedyearning_undo_order
    • First observedyearning_user_info

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: user info, table metadata, SQL validation, order lifecycle steps, query execution, comments, and audit actions. Overlapping concepts like my_orders vs audit_orders and order_detail vs order_timeline are clearly separated by descriptions.

Naming Consistency3/5

All tools share a 'yearning_' prefix and use snake_case, but the action-noun pattern is inconsistent. Some use verb-first forms (list_sources, run_query, submit_order), while others are noun-first (user_info, order_detail, sql_check). List-like tools are not uniformly prefixed (my_orders, order_comments vs list_tables).

Tool Count4/5

With 19 tools, the set is slightly above the typical well-scoped range but is justified by the breadth of the Yearning platform. The count does not feel bloated, and each tool covers a necessary aspect of SQL order management and querying.

Completeness5/5

The toolkit thoroughly covers the domain: schema inspection, SQL pre-check, order submission/query/detail/timeline/comments, rollback, audit workflow, and read-only query execution. No major lifecycle gap is apparent, and the tools form a coherent end-to-end workflow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A production-ready MCP server for MySQL database operations, providing secure HTTP endpoints for read-only queries, performance analysis, and server monitoring.
    121
    16
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Read-only MCP server for SQL databases (SQL Server, Postgres, SQLite) with multi-server support and three-layer safety using AST validation and linting.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    A generic MCP server for MySQL operations, enabling listing databases/tables, describing schemas, running read-only SQL, and optionally executing write SQL with logging.
    1
    -
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Yearning SQL audit platform that enables AI assistants to query and manage orders, browse data sources and table structures, submit and review SQL orders, and execute read-only queries.
    14
    MIT

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/rubyLs/yearning_mcp'

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