@rubyls/yearning-mcp
This MCP server provides full integration with the Yearning SQL audit platform, offering read-only data exploration, SQL validation, order lifecycle management, query execution, and administrative write operations.
🔍 Data Exploration (Read-Only)
View current user profile, permissions, and accessible data sources.
List and filter data sources, databases, tables, and inspect table structures (fields, indexes).
✅ SQL Validation
Pre-audit SQL check to verify DDL/DML syntax before submission.
📋 Order Management (Read-Only)
Browse personal and pending audit orders with status filtering and pagination.
View order details, audit timelines (with flag values for audits), rollback SQL, and comments.
🔎 Query Execution
Execute read-only SELECT queries via WebSocket against permitted data sources.
Check query audit requirements and active query order status.
✍️ Write Operations (when YEARNING_READ_ONLY=false)
Submit DDL/DML orders with optional backup/rollback; requires explicit
confirm=true.Undo (withdraw) submitted orders, or approve/reject as auditor; final approval triggers SQL execution.
Submit query applications and post comments on orders.
⚙️ Configuration
Supports read-only mode, multiple transports (stdio, SSE, streamable HTTP), and Docker deployment.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@rubyls/yearning-mcplist pending audit orders"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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-mcpRelated 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/healthMCP 端点:
http://localhost:8080/mcpHeader:
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)
工具 | 说明 |
| 当前用户与可查询数据源 |
| 数据源列表 |
| 库列表 |
| 表列表 |
| 表结构(字段 + 索引) |
| 提交前 SQL 审核检测 |
| 我的工单列表 |
| 工单详情 |
| 审核时间线 / 步骤(含 |
| 回滚 SQL |
| 待我审核的工单 |
| 查询审核开关与我的查询工单状态 |
| 只读 SELECT(msgpack WebSocket) |
| 读取工单评论 |
写工具(5,YEARNING_READ_ONLY=false 时注册)
工具 | 说明 |
| 提交 SQL 工单(需 |
| 撤回未执行工单(需 |
| 审核:agree / reject / undo(需 |
| 提交查询申请 |
| 发表工单评论 |
工单状态:0 已驳回 / 1 执行中 / 2 待审核 / 3 已完成 / 4 已终止 / 5 待执行 / 6 已撤回。
推荐流程:
yearning_sql_check → yearning_submit_order → yearning_order_timeline → yearning_audit_order环境变量
变量 | 说明 | 默认 |
| Yearning 地址 |
|
| 登录用户名 | (必填) |
| 登录密码 | (必填) |
|
|
|
| 请求超时(秒) |
|
|
|
|
| 跳过 TLS 校验 |
|
|
|
|
| HTTP 监听 |
|
| HTTP Bearer 鉴权 | (不设则不鉴权) |
| 无状态 HTTP |
|
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 startCursor 本地调试:
{
"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 toolsyearning_audit_order审核工单ADestructive
审核工单:agree 同意(末级步骤会触发 SQL 执行)/ reject 驳回 / undo 撤回。flag 为当前审核步骤序号(用 yearning_order_timeline 确认);reject 必须提供 reason。agree 为高危操作,必须 confirm=true。对应 POST /api/v2/audit/order/state
| Name | Required | Description | Default |
|---|---|---|---|
| flag | Yes | 当前审核步骤序号(来自 order_timeline) | |
| delay | No | 延时执行时间(可选) | |
| action | Yes | 审核动作 | |
| reason | No | 驳回理由(action=reject 时必填) | |
| confirm | Yes | 必须为 true,确认执行审核动作 | |
| work_id | Yes | 工单号 | |
| source_id | Yes | 数据源 ID |
TDQS
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.
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.
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.
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.
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.
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待审工单列表ARead-onlyIdempotent
分页列出与当前用户相关的待审核工单(审核人视角)。对应 WS /api/v2/audit/order/list
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| text | No | 按说明/工单号模糊搜索 | |
| status | No | 状态过滤:2 待审核/3 已完成/0 已驳回 | |
| work_id | No | 按工单号过滤 | |
| page_size | No | ||
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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列出库BRead-onlyIdempotent
列出指定数据源下的数据库列表。对应 GET /api/v2/fetch/base
| Name | Required | Description | Default |
|---|---|---|---|
| hide | No | 是否隐藏排除库列表 | |
| source_id | Yes | 数据源 ID(来自 yearning_list_sources) | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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列出数据源BRead-onlyIdempotent
列出当前账号有权限的数据源(可按 query/dml/ddl/idc 过滤)。对应 GET /api/v2/fetch/source
| Name | Required | Description | Default |
|---|---|---|---|
| tp | No | 数据源范围 | all |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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列出表ARead-onlyIdempotent
列出指定数据源、指定库下的表。对应 GET /api/v2/fetch/table
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | 库名 | |
| source_id | Yes | 数据源 ID | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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我的工单列表ARead-onlyIdempotent
分页列出当前用户提交的工单。状态:8=全部 / 2=待审核 / 3=已完成 / 0=已驳回 / 4=已终止 / 6=已撤回 / 1=执行中 / 5=待执行。对应 WS /api/v2/common/list
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 页码(从 1 开始) | |
| text | No | 按说明/工单号模糊搜索 | |
| status | No | 状态过滤,8=全部 | |
| work_id | No | 按工单号过滤 | |
| page_size | No | 分页大小 | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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工单评论ARead-onlyIdempotent
读取指定工单的全部评论。对应 WS /api/v2/fetch/comment
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | 工单号 | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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工单详情BRead-onlyIdempotent
查看工单详情:SQL 明细与完整 SQL。对应 GET /api/v2/fetch/detail + /fetch/sql
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| work_id | Yes | 工单号 | |
| page_size | No | ||
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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工单审核时间线ARead-onlyIdempotent
查看工单审核时间线与流程步骤。审核时 flag 取自此处。对应 GET /api/v2/fetch/timeline + /fetch/steps
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | 工单号 | |
| source_id | No | 数据源 ID(影响流程步骤解析) | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | 评论内容 | |
| work_id | Yes | 工单号 |
TDQS
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.
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.
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.
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.
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.
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查询审核状态BRead-onlyIdempotent
查看查询审核开关,以及当前用户查询工单是否有效。对应 GET /api/v2/fetch/is_query + /fetch/query_status
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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回滚 SQLARead-onlyIdempotent
获取工单的回滚 SQL。对应 GET /api/v2/fetch/roll
| Name | Required | Description | Default |
|---|---|---|---|
| work_id | Yes | 工单号 | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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执行查询ARead-onlyIdempotent
在指定数据源执行只读 SELECT 查询。需具备查询权限;若开启查询审核,需先 yearning_submit_query_order。对应 WS /api/v2/query/results(msgpack)
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | 查询 SQL(仅 SELECT) | |
| limit | No | 返回行数上限(客户端截断) | |
| schema | Yes | 库名 | |
| source_id | Yes | 数据源 ID | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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 审核检测ARead-onlyIdempotent
提交前对 SQL 做审核检测。建议先调用本工具,再 yearning_submit_order。对应 PUT /api/v2/fetch/test。不接受 SELECT(请用 yearning_run_query)。
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | 待检测 SQL | |
| database | Yes | 库名 | |
| source_id | Yes | 数据源 ID | |
| order_type | Yes | SQL 类型 | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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 才会真正提交。
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | 完整 SQL 语句 | |
| delay | No | 延时执行时间,如 2026-01-01 02:00 | |
| table | No | 影响表名(可选) | |
| backup | No | 是否备份:0 否 / 1 是(DML 建议开启) | |
| remark | Yes | 工单说明 | |
| confirm | Yes | 必须为 true,确认提交工单进入审核流程 | |
| assigned | No | 期望审核人(提示用;实际以流程模板为准) | |
| database | Yes | 目标库名 | |
| source_id | Yes | 数据源 ID | |
| order_type | Yes | 工单类型 | |
| execute_time | No | 执行时间(可选) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| export | No | 是否允许导出:0 否 / 1 是 | |
| remark | Yes | 查询申请理由 | |
| source_id | Yes | 申请查询的数据源 ID |
TDQS
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.
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.
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.
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.
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.
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查看表结构ARead-onlyIdempotent
查看表结构:字段列表(类型/可空/键/默认值/注释)与索引。对应 GET /api/v2/fetch/fields
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | 表名 | |
| database | Yes | 库名 | |
| source_id | Yes | 数据源 ID | |
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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撤回工单AIdempotent
撤回自己提交、尚未执行的工单。对应 GET /api/v2/fetch/undo。必须传 confirm=true。
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | 必须为 true,确认撤回 | |
| work_id | Yes | 工单号 |
TDQS
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.
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.
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.
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.
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.
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查看当前用户信息ARead-onlyIdempotent
查看当前登录用户信息、部门、邮箱,以及有权查询的数据源列表。对应 GET /api/v2/fetch/userinfo
| Name | Required | Description | Default |
|---|---|---|---|
| response_format | No | markdown |
TDQS
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.
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.
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.
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.
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.
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.
19 tool updates
v1.0.0- First observed
yearning_audit_order - First observed
yearning_audit_orders - First observed
yearning_list_databases - First observed
yearning_list_sources - First observed
yearning_list_tables - First observed
yearning_my_orders - First observed
yearning_order_comments - First observed
yearning_order_detail - First observed
yearning_order_timeline - First observed
yearning_post_comment - First observed
yearning_query_status - First observed
yearning_rollback_sql - First observed
yearning_run_query - First observed
yearning_sql_check - First observed
yearning_submit_order - First observed
yearning_submit_query_order - First observed
yearning_table_fields - First observed
yearning_undo_order - First observed
yearning_user_info
TDQS
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.
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).
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.
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
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
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server for MySQL database operations, providing secure HTTP endpoints for read-only queries, performance analysis, and server monitoring.12116MIT
- AlicenseNot gradedqualityFmaintenanceRead-only MCP server for SQL databases (SQL Server, Postgres, SQLite) with multi-server support and three-layer safety using AST validation and linting.MIT
- FlicenseNot gradedqualityCmaintenanceA generic MCP server for MySQL operations, enabling listing databases/tables, describing schemas, running read-only SQL, and optionally executing write SQL with logging.1-
- AlicenseAqualityAmaintenanceMCP 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.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rubyLs/yearning_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server