goofish-z-mcp
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., "@goofish-z-mcpsearch items for DDR3 RECC 32G"
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.
Goofish-Z
面向 PC 与 Agent 的闲鱼工具:通过 Web 监控台、CLI、MCP 和 HTTP API 使用同一套 搜索、详情、监控与告警能力。
当前优先维护 PC + Agent 使用体验。Android 客户端源码保留在 app-android/,
APK 工作链迁移与进一步升级暂缓。
0.2.0 更新
HTTP 监控通过工作线程执行;批量搜索按限流等待,登录失效或风控时停止本轮。
Web / Agent 共享后台监控任务,可查看进度、等待状态和取消本轮。
发布、删除和消息发送共享写操作限额;限流和熔断状态采用文件锁与原子写入。
告警按真实价格观测去重,支持已读;自动屏蔽状态参与搜索和监控过滤。
校验 HTTP 请求参数,修正消息列表命令名与 Android 默认值序列化。
网页使用文本节点展示外部字段,拒绝可执行 URL 协议。
新增本地
doctor,安装声明包含 Playwright 和文件锁依赖。MCP 升级至 2.1.1+,验证新旧协议连接、结构化结果和普通输出隔离。
签名模块的 UTF-8 设置限定在 JavaScript 桥接内,避免影响 MCP 导入和其他子进程。
Related MCP server: Goofish MCP Server
安装和启动
需要 Python 3.11+、Node.js 和系统 Google Chrome。搜索使用系统 Chrome, 默认需要可显示窗口的桌面环境;不会使用用户正在打开的 Chrome profile。 先在自己的 Chrome 中打开 闲鱼 并完成登录,再导入登录态:
git clone https://github.com/E-R-Butch/Goofish-Z.git
cd Goofish-Z
python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/goofish-z doctor
.venv/bin/goofish-z auth login --browser chrome
.venv/bin/goofish-z auth status
.venv/bin/python -m goofish_z.api.appWeb 面板为 http://127.0.0.1:8787。MCP 入口是 .venv/bin/goofish-z-mcp。
首次登录或会话失效可能需要人工登录;自动刷新只做有限恢复,不保证永久在线。
本版 MCP 已迁移到 2.1.1+ 的 MCPServer:支持新旧协议客户端,stdio 隔离可防止
命令和子进程的普通输出污染协议流,见 SDK 发布说明。
auth login --browser chrome 读取本机 Chrome 的闲鱼相关 Cookie 并保存到外部运行
目录;auth status 才会请求闲鱼验证当前会话。Cookie 文件存在本身不代表登录有效。
需要其他导入方式时运行 auth login --help。
接入 Agent
在支持 stdio 的 MCP 客户端中配置入口,将下面的路径替换为实际安装目录的绝对路径:
{
"mcpServers": {
"goofish-z": {
"command": "/absolute/path/Goofish-Z/.venv/bin/goofish-z-mcp",
"env": {
"GOOFISH_Z_HTTP": "http://127.0.0.1:8787"
}
}
}
}search.items、item.get 和 auth.doctor 等工具可直接调用。后台监控的
watch.start / job / jobs / cancel 需要先启动上面的 HTTP 服务,与 PC 网页共享任务。
如果配置了 GOOFISH_Z_DATA,HTTP、CLI 和 MCP 应指向同一个仓库外运行目录。
常用命令
.venv/bin/goofish-z search items "示例商品" --limit 5
.venv/bin/goofish-z item mine --status online --limit 50
.venv/bin/goofish-z item mine --status all --limit 200 --format json
.venv/bin/goofish-z watch add "示例商品" --max-price 100
.venv/bin/goofish-z watch run --all --format json
.venv/bin/goofish-z watch alerts --unread-only --format json
.venv/bin/goofish-z watch read-alert 1PC 与 Agent 的长批次监控建议走后台任务。先启动 HTTP API,再通过 CLI 或同名 MCP 工具提交、查询或取消;这组命令与网页共享任务,查询进度不会重新搜索:
.venv/bin/goofish-z watch start --all --format json
.venv/bin/goofish-z watch jobs --format json
.venv/bin/goofish-z watch job TASK_ID --format json
.venv/bin/goofish-z watch cancel TASK_ID --format jsonMCP 工具名为 watch.start、watch.jobs、watch.job、watch.cancel。本地服务
地址默认 http://127.0.0.1:8787,可用 GOOFISH_Z_HTTP 配置。
max_price 是低价告警线(价格小于或等于时告警),min_price 是高价告警线
(价格大于或等于时告警);两者是独立触发条件。相同价格持续满足相同条件不会重复
告警,价格改变或观察到离开条件后再次满足才产生新事件。搜索中未出现某商品不能
证明其已售出,因此不会据此清除该商品的告警状态。
自动屏蔽按现有卖家信号规则生效;没有卖家标识时不会猜测身份。卖家昵称补查仍需
显式启用 --enrich-sellers,可能产生额外请求。低价本身只作展示标记;卖家自动
评分与人工规则的结果均可通过命中原因检查。signals unban 清空该卖家的累计信号。
HTTP 契约
功能 | 接口 |
服务存活 |
|
本地诊断 |
|
搜索 |
|
本人商品 |
|
商品详情 |
|
消息会话 |
|
添加 / 列出监控 |
|
同步运行 |
|
后台运行 |
|
任务进度 |
|
取消任务 |
|
实际告警 |
|
告警已读 |
|
同步运行成功返回 200,部分失败返回 207,全部失败返回 502;结果同时包含
status、succeeded、failed、skipped 和每项错误。CLI 对失败或部分失败返回
非零退出码;MCP 的全部失败以工具错误返回。限流响应使用 429 和 Retry-After。
每个 API 进程只接受一个活动后台任务;重复提交返回 409。限流等待可立即取消, 正在进行的浏览器请求会在结束后检查取消状态。任务进度保存在内存,服务重启后不 自动重跑;历史与告警保存在 SQLite。此版本请使用单个 API worker 以便一致查询任务。
/health 仅代表进程可响应。doctor 和 /api/diagnostics 不访问闲鱼、不读取
Cookie 内容,也不自动刷新登录态;其登录结果只是最近一次 auth status 的验证
记录,必须结合验证时间判断。运行 auth status 会执行真实账号验证。
代码与运行数据边界
公开仓库只保存通用代码、文档和合成测试。账号、Cookie、Token、设备状态、浏览器
临时 profile、限流/熔断状态、商品缓存、价格历史、SQLite 数据库都使用仓库外的
~/.goofish-z/,或 GOOFISH_Z_DATA 指定的外部目录。源码目录作为运行目录会被拒绝。
旧数据库首次使用时增补告警状态与已读字段,保留既有监控、价格历史和告警。
升级前可备份外部运行目录,使用 pip install -e . 安装新增依赖后再重启服务。
本机网站等消费者通过 localhost HTTP API 读取商品,详情接口只返回白名单字段。 实际发布、删除、回复、改价与交易必须按操作者明确指令执行。当前未提供经验证的 编辑、改价或上下架命令;不应以发布新商品替代编辑。
验证
0.2.0 已在全新 Python 3.14 环境通过 56 项 Python 测试、5 项网页测试,依赖检查 无冲突。CI 配置覆盖 Python 3.11 和 3.14。可在本地复现离线测试:
.venv/bin/python -m pip install -e '.[test]'
.venv/bin/python -m unittest discover -s tests -v
node --test tests/gui.test.js
.venv/bin/python scripts/check_public_repo.py测试使用临时目录与合成数据,覆盖 API/MCP 调用、限流竞争、熔断、取消、告警去重、
旧数据库迁移、网页文本渲染,以及 MCP 新旧协议和命令/子进程输出隔离。
Android 请求契约测试见 app-android/。
离线测试不等同于真实闲鱼登录、搜索或交易验证;平台 DOM 与登录流程变化仍需实测。
PC + Agent 实测记录
2026-09-04,在 macOS、系统 Chrome、Python 3.14 与 MCP SDK 2.1.1 环境下, 导入已登录的 Chrome 会话,对 0.2.0 做了一次只读抽样验证:
检查项 | 结果 |
Chrome 登录态导入与账号验证 | 通过 |
PC HTTP 搜索 | 限量返回 3 条商品,标题与价格字段完整 |
MCP 连接与本地诊断 | 加载 37 个工具,返回结构化诊断与最近验证状态 |
Agent 商品详情 | 成功读取搜索所得商品,商品标识一致,标题与价格完整 |
PC / Agent 任务查询 | 两端返回相同任务列表 |
本次查询未触发登录错误或风控提示。真实后台监控长时间运行、交易与商品写入不在 本次实测范围内;账号、Cookie、商品返回内容及浏览器缓存不随代码发布。
Available Tools
37 toolsauth.doctorA
本地诊断依赖、登录验证记录、限流和熔断,不访问闲鱼
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries behavioral disclosure. It clearly communicates local-only behavior and the safety boundary of not accessing Xianyu, which is valuable. It does not fully elaborate on side effects or internal state changes, but the diagnostic framing mitigates that gap.
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, front-loaded with the diagnostic scope and ending with a safety qualifier. Every segment earns its place without 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?
With zero parameters and an output schema present, the description covers the purpose and a crucial boundary: it is local and does not access Xianyu. It could be slightly more explicit about when to prefer this over sibling auth tools, but nothing essential is missing for 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?
The tool has zero parameters, so no parameter explanation is needed. The description still adds useful context about what the diagnostic covers, which is more than baseline.
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 uses a specific verb '诊断' (diagnose) and names the concrete resources: auth dependencies, login verification records, rate limiting, and circuit breaking. The '不访问闲鱼' qualifier clearly distinguishes this local diagnostic tool from siblings that make external calls.
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 a local, non-external diagnostic use and explicitly states it does not access Xianyu. However, it does not name alternatives like auth.status or auth.risk-status, nor does it provide explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth.loginB
导入登录态(默认从本机浏览器 auto-detect;支持 Chrome/Edge/Brave/Safari/Firefox 等)
| Name | Required | Description | Default |
|---|---|---|---|
| qr | No | ||
| raw | No | ||
| source | No | ||
| browser | No | auto | |
| qr_timeout | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses that login state is imported from the local browser and that browser-specific sources are supported, which is meaningful. However, it doesn't mention side effects like whether existing sessions are replaced, whether a QR path implies interactive scanning, whether cookies are stored, or what failures can occur (e.g., unsupported browser).
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 that front-loads the operation and default source, then adds supported browsers in a compact list. It is appropriately short, though it could use one more sentence for parameter behavior.
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?
There is an output schema, so return values may be documented elsewhere, but the tool lacks annotations and has 5 undocumented parameters at 0% coverage. For a login/import tool with several behavioral branches (QR login, raw mode, source, browser, timeout), the description is under-specified and leaves an agent with too many unknowns about when QR is needed and what the output means.
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 0%, so the description must compensate, but it only explains the 'browser' concept implicitly via the supported-browser list. Parameters like qr, raw, source, and qr_timeout are left entirely unexplained, so an agent must guess their semantics from names and defaults. Baseline 3 seems right because it adds some context for the auto-detect default but fails for the majority of parameters.
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 has a specific verb+resource ('导入登录态' / import login state), names the default source (本机浏览器 auto-detect), and lists supported browsers, clearly distinguishing it from siblings like auth.status or auth.doctor. It lacks an explicit contrast with related auth.* tools, but the meaning is clear enough.
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 communicates the default behavior (auto-detect from local browser) and supported browser choices, so an agent knows when this is the primary entry point for establishing authentication. It doesn't say when to prefer auth.doctor, auth.status, or auth.reset-guard, nor does it mention alternatives explicitly, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth.reset-guardB
手动解除风控熔断状态
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that the operation is manual and state-changing but does not mention authorization needs, side effects, reversibility, logging, or what happens if the guard is already cleared.
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 phrase with no filler or repetition. It front-loads the action and the target resource, making it very 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?
Although the tool has no parameters and has an output schema, this is a security-sensitive mutation with no annotations. The description is too sparse to tell an agent when to invoke it or what consequences to expect, especially alongside auth.risk-status.
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?
With zero parameters, the description does not need to explain inputs, so the baseline 4 applies. It correctly avoids inventing parameter-related details that don't exist.
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 states a specific action ('解除' = reset/clear) and a specific resource ('风控熔断状态' = risk-control circuit-breaker state). It is clearly not a status-check or login tool, though it doesn't explicitly contrast with siblings like auth.risk-status or signals.unban.
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 no guidance on when to use this tool versus related tools. There is no mention of prerequisites, alternatives, or conditions under which resetting the guard is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth.risk-statusA
查看风控熔断 + 限流状态(监控面板/排查用)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. '查看' signals a read-only status inspection, which is useful. However, it does not disclose operational caveats such as whether the status is cached, whether it reflects live state, or whether any access restrictions apply.
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 names the exact status surface and its intended use. There is no filler, and the core purpose 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 no-parameter tool, the description covers what status is shown and when to use it, and an output schema exists for return details. It loses one point because it does not explicitly differentiate itself from the similarly named auth.status sibling.
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?
There are zero parameters and schema coverage is trivially 100%, so no parameter documentation is needed. The description appropriately omits parameter details entirely; the baseline of 4 for a no-parameter tool applies.
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 states a specific verb '查看' and a specific resource: risk-control circuit breaker and rate-limit status. This clearly distinguishes it from sibling tools like auth.status and auth.doctor by focusing on risk-control and rate-limiting rather than general auth state.
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 parenthetical '监控面板/排查用' explicitly frames when this tool is appropriate: monitoring dashboards and troubleshooting. It does not name exclusions or alternatives, but for a zero-parameter status tool the intended context is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth.statusA
检查登录态是否有效,返回 unb / tracknick / 昵称
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It clearly communicates that this is a read-only status check and names the fields returned, which is meaningful for a zero-parameter tool. It does not specify behavior on invalid login (e.g., error vs. false result), but the presence of an output schema mitigates this gap.
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 one short, front-loaded sentence that states the purpose and the return fields without any wasted words. Every part earns its place.
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 zero-parameter status-check tool with an output schema available, the description is complete enough. It names the return fields and the operation's purpose; nothing else is strictly required for an agent to invoke it 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?
The tool has zero parameters, so the baseline is 4. There are no parameter details to add, and the description correctly focuses on the operation and return values rather than inventing parameter information.
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 states a specific action ('检查登录态是否有效' – check if login state is valid) and a clear resource (login status), plus the returned fields (unb / tracknick / nickname). It is clear enough to understand the tool's core function, though it does not explicitly distinguish itself from sibling tools like auth.doctor or auth.risk-status.
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 no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or a preferred sibling for related scenarios. The only implied usage is 'check login status,' but no when-to-use or when-not-to-use context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blacklist.addA
添加屏蔽规则: title_keyword=标题关键词 / location=地区 / no_badge=无信用标识 / price_drop=累计降价阈值%
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| note | No | ||
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries full responsibility for disclosing behavior. It only states that a rule is added and maps kind values to meanings; it does not mention duplicate handling, immediate effect, side effects, or permissions for this mutating operation.
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 compact sentence front-loads the action and then efficiently lists the parameter vocabulary. No filler or redundant restatement.
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?
Core invocation is sufficiently specified: the required kind choices are defined, value semantics are mostly inferable, and an output schema exists so return values need not be documented. The main gap is behavioral context such as duplicate rules or activation timing, but for a simple mutating tool this is acceptable.
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?
With 0% schema coverage, the description compensates well by defining the four accepted kind values and their meanings, and by clarifying that price_drop expects a cumulative percentage threshold. It does not describe the optional note parameter or the value format for the other kinds, but the mapping is a significant addition.
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 opens with the specific action '添加屏蔽规则' (add blacklist rule) and enumerates the rule kinds, making its purpose clear. It is easily distinguishable from siblings like blacklist.remove, blacklist.list, and blacklist.test.
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 action itself implies the tool is for adding blacklist rules, but no explicit when-to-use guidance or exclusions are given. An agent must infer from the sibling names that removal, listing, and testing are separate tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blacklist.listA
列出所有屏蔽规则
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. '列出所有屏蔽规则' conveys a read-only, exhaustive listing operation, but it does not mention authentication requirements, rate limits, pagination, or any constraints on the response. The behavior is implied rather than explicitly detailed.
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, front-loaded sentence with the verb and object clearly stated and no filler content. It is appropriately concise for the simplicity of the tool.
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?
With no parameters and the presence of an output schema, the core call requirements are covered by the short description. However, it does not specify the ownership or scope of the listed rules, nor does it reference sibling tools for alternative use cases, so it is not fully self-sufficient.
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 tool has zero parameters, and the empty input schema fully covers this case. Since there are no parameters to document, parameter-semantic risk is minimal, and the baseline of 4 applies.
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, '列出' (list), and a clear resource, '屏蔽规则' (blocking rules), and adds '所有' (all) to define the full scope. This clearly differentiates it from sibling tools like blacklist.add, blacklist.remove, and blacklist.test, which perform different operations.
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 that this tool should be used when all blacklist rules need to be viewed, but it does not explicitly state when to use it versus alternatives such as blacklist.test. No exclusions, prerequisites, or alternative routes are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blacklist.removeD
删除屏蔽规则
| Name | Required | Description | Default |
|---|---|---|---|
| rule_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals only that the action is a deletion—a fact already implied by the tool name—and omits critical details such as whether the deletion is permanent, whether confirmation is needed, or what side effects may occur.
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 very short, but this is under-specification rather than effective conciseness. The single phrase adds no value beyond the tool name and contains no structured, front-loaded information that helps an agent use the tool.
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?
Although an output schema exists and the tool is simple, the description omits essential operational context for a destructive action, such as irreversibility, permissions, or how to identify the rule. An agent cannot safely and correctly invoke the tool based solely on this description.
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 has one required parameter, rule_id, but the description does not mention it at all. With 0% schema description coverage, the description fails to compensate by explaining what rule_id refers to, how to obtain it, or what values are valid.
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 '删除屏蔽规则' is simply the Chinese translation of the tool name 'blacklist.remove'. It states a verb and resource but is a direct restatement of the name, providing no differentiation from sibling tools like blacklist.add, blacklist.list, or blacklist.test.
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 no guidance on when to use this tool versus alternatives. It does not mention any prerequisite steps such as looking up rule_id via blacklist.list, nor does it indicate conditions under which deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blacklist.testA
用一条商品标题测试哪些规则会命中(调试用)
| Name | Required | Description | Default |
|---|---|---|---|
| badge | No | ||
| title | Yes | ||
| location | No | ||
| original_price | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It conveys a diagnostic, test-oriented purpose and implies a non-mutating simulation, but it does not explicitly state that no blacklist entries are changed, what rules are being tested against, or whether authorization or existing rules are required.
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 concise sentence that immediately states the action, target, and purpose. There is no filler or repetition, and the debugging intent 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?
The description gives a clear one-line purpose and the presence of an output schema reduces the need to document return values. However, with no annotations and several undocumented optional parameters, the definition leaves gaps about side effects, rule context, and when to use this versus other blacklist tools.
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 0%, so the description must compensate for parameter meaning. It explains 'title' as the product title to test, but the optional parameters badge, location, and original_price are left completely unexplained, even though they may affect which rules match during testing.
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 object: testing a product title to see which rules are hit, explicitly marked as a debugging action. This clearly distinguishes it from siblings like blacklist.add, blacklist.list, and blacklist.remove, which perform actual blacklist management rather than simulation.
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 phrase '调试用' communicates that the tool is intended for debugging, which gives some usage context. However, it does not explicitly state when to prefer this tool over alternatives, nor does it mention any exclusions such as 'not for production use' or 'does not modify the blacklist.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
category.recommendA
AI 识别商品类目,输入标题+图片返回 catId/catName
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| images_json | No | [] |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that this is an AI inference operation returning catId/catName and suggests no side effects, but it does not mention limitations, failure modes, or the fact that images_json is optional.
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 one compact, front-loaded sentence with minimal filler; it states the core behavior and result. It loses a point only because 'AI' is slightly generic and the input/output are compressed into a telegraphic phrase.
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 output schema removes the need to document return values, and the input schema covers requiredness, so the description is adequate for a simple tool. However, the 'title+image' phrasing could mislead an agent about the optionality of images_json, and no broader usage context is given.
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 0%, so the description must compensate. It links 'title' to 标题 and 'images_json' to 图片 and adds product context, but it does not clarify the expected JSON format or that images are optional, so compensation is only partial.
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 names a specific operation ('AI 识别商品类目' — recognize product category) and the exact result (catId/catName). This distinguishes it from all listed siblings, none of which provide category classification.
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 is for product-category classification from title and/or images, but it does not state explicit when-to-use or when-not-to-use conditions. Since no sibling overlaps with this function, the implied usage context is mostly sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item.deleteB
下架/删除商品(写操作,受限流和风控护栏保护)
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It does disclose that this is a write operation and that it is protected by rate limiting and risk-control guardrails, which is useful. However, it does not state whether deletion is permanent, whether it requires authentication or special permissions, or what failure modes might result from the guardrails.
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 with the core action front-loaded and the operational constraints in parentheses. It contains no filler words or redundant restatements. It is appropriately concise for a simple one-parameter operation, though more content would be needed to improve other dimensions.
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, has one required parameter, and has an output schema, so the description does not need to document return values. However, it lacks guidance on authentication, preconditions, and how the risk-control guardrails might affect invocation. For a minimal write operation, this is borderline adequate but leaves meaningful gaps.
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 0%, and the description does not explain the item_id parameter at all. While the parameter name is somewhat self-explanatory, the description should at least clarify where the ID comes from or what format is expected. Since the schema provides no description, the tool description needed to compensate but did not.
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 identifies the action ('下架/删除商品' — delist/delete product) and the resource, and labels it as a write operation, which distinguishes it from read-only item tools like item.get, item.view, and item.mine. It is specific enough for an agent to know what the tool does, though it does not name or contrast against a sibling such as item.publish.
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 such as item.publish or other item operations. There is no mention of prerequisites, scenarios, or when not to use it. The only context is that it is a write operation with rate/risk-control guardrails, which is a constraint rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item.getB
查询闲鱼商品详情(只读)
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly declares the operation as read-only ('只读'), which is useful because no annotations are provided. However, it does not disclose any other behavioral details such as how missing or deleted items are handled, authentication requirements, or rate limits. The read-only note meets the minimum transparency bar but nothing more.
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, front-loaded sentence with no wasted words. It is appropriately concise for a simple lookup tool, though it leaves out some helpful context captured in other dimensions.
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 one-parameter read operation with an output schema, the description conveys the core action and read-only nature. However, it remains incomplete because it does not clarify when to prefer this over similar siblings like item.view, and it lacks parameter-level guidance. Overall it is adequate but has clear gaps.
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 0%, and the description does not explain item_id, its expected format, or how it relates to the returned details. The parameter name 'item_id' is reasonably self-explanatory, so the description is not misleading, but it adds no semantic value beyond the bare 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 states a specific verb ('查询' / query) and resource ('闲鱼商品详情' / Xianyu item details), and the explicit '只读' qualifier distinguishes it from mutation siblings like item.delete and item.publish. However, it does not differentiate it from the similarly read-oriented sibling item.view.
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?
There is no guidance about when to use this tool instead of alternatives. Given siblings such as item.view, item.mine, and search.items, the description gives no selection criteria or exclusions. It is not misleading, but it provides no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item.mineA
列出当前账号发布的商品;默认仅在售,可筛选已卖出/已下架/全部
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | online |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the operation is a listing/read action and clearly explains the default status (仅在售/online) and available filter categories (sold/off-shelf/all). It does not mention pagination or rate limits, but the output schema covers return-shape expectations.
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 compact sentence front-loads the core action and scope, then efficiently adds default and filter behavior. There is no redundant information.
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 two-parameter list tool with an output schema, the description covers the core behavior well. The main gap is that status filter values are described conceptually rather than as precise accepted strings, which an agent needs for reliable 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 0%, and the description compensates partially by giving business meaning to status values (在售/已卖出/已下架/全部). However, it does not provide exact string enum values for status, and the limit parameter is not explained.
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 the action (列出/列表) and resource (当前账号发布的商品, items published by current account). It is distinct from siblings like search.items because it is explicitly scoped to the current account, though it does not name alternatives.
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 implies usage for retrieving the current account's own published items and describes default and optional status filters. However, it does not explicitly say when to prefer this over search.items or other item-related tools, nor does it state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item.publishB
发布商品(自动识别类目 + 默认地址),价格单位元
| Name | Required | Description | Default |
|---|---|---|---|
| desc | Yes | ||
| price | Yes | ||
| title | Yes | ||
| images | Yes | ||
| delivery | No | 无需邮寄 | |
| post_price | No | ||
| original_price | No | ||
| can_self_pickup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses useful behavioral traits: automatic category detection, default address usage, and price unit in yuan. However, it does not disclose side effects, failure modes, permissions, or any constraints beyond the basic publishing action.
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 compact and front-loaded, with no redundant wording. It is efficient as a one-line summary, but for an 8-parameter tool it offers very little structural breakdown to guide invocation.
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 parameter-rich publish tool with no annotations and no parameter descriptions, this is not enough context. The description covers price units and automatic category/address handling, but leaves delivery options, image expectations, optional pricing fields, self-pickup behavior, and error conditions unexplained.
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 0%, so the description must compensate, but it only clarifies the price unit. The meanings of title, desc, images, delivery, post_price, original_price, and can_self_pickup are left entirely to their names and schema defaults.
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?
发布商品 directly states the action and resource, and the parenthetical adds distinctive behavior: automatic category detection and default address. This clearly separates item.publish from item.get/item.delete/item.mine/item.view.
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 is appropriate when the category can be auto-detected and the default address is acceptable, but it does not explicitly state when to use this tool over alternatives like category.recommend or location.default. There is no exclusion guidance or explicit when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
item.viewA
浏览器视角查看商品详情(字段比 item get 更全,抗风控)
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
没有 annotations,描述承担了行为说明责任。它揭示了“浏览器视角”这一实现特征和“抗风控”这一风险相关行为,这些都无法从 schema 中获知。虽然未展开说明是否需要登录、权限或“抗风控”的具体限制,但“查看 / view”已经清楚暗示这是一次只读操作。
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?
一句话同时包含核心动作、差异点和行为特征,括号内的补充信息紧凑且无重复。篇幅与工具复杂度匹配,没有冗余内容。
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?
对于只有一个必填参数且有输出 schema 的只读查看工具,描述已覆盖用途、行为特征和与 item.get 的区分点。由于没有 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 描述覆盖率为 0%,描述本身也没有补充 item_id 的含义或格式。不过该工具只有一个参数,参数名 item_id 和 schema 中的“Item Id”已经足够自明,且与“商品”语境吻合,因此没有造成实质混乱,但也没有提供额外语义。
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?
描述以明确动词加对象开头:“浏览器视角查看商品详情”,并直接与兄弟工具 item.get 做差异对比(“字段比 item get 更全”),还给出了“抗风控”这一识别特征。Agent 无需查看 schema 就能判断该工具的作用和独特价值。
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?
描述给出了相对 item.get 的选择依据:需要更全字段、需要浏览器视角或抗风控能力时,应使用 item.view。但没有明确说明何时应优先使用 item.get,例如对原始接口响应或更低调用成本有要求时,缺少显式排除条件。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
location.defaultC
获取账号默认发布地址
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | No | ||
| longitude | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It merely says 'get' without disclosing whether this is a read-only operation, whether authentication is required, what the coordinates do, or what happens when no default address exists. This is a significant gap for a tool with two unexplained parameters.
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 short sentence is easy to parse and contains no fluff. It earns points for conciseness, but brevity here comes at the cost of omitting essential parameter context.
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 has two parameters with defaults, an output schema, and no annotations, the description is too thin to support correct invocation. The agent cannot infer the relationship between the coordinates and the default publish address, making the tool underspecified for real use.
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 0% and the description never mentions latitude or longitude. The agent has no way to know whether these coordinates are inputs to a lookup, outputs of the address, or geolocation hints, and their defaults (Shanghai coordinates) add further confusion.
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 states a specific verb and resource: '获取账号默认发布地址' (get account default publish address). However, the presence of latitude/longitude input parameters is not reflected in the description, so it is unclear whether the tool returns the account's default address or computes a default based on coordinates, creating ambiguity.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no excluded cases. The only implied usage is a restatement of the purpose, which is not enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media.uploadB
上传图片到闲鱼 CDN,返回图片 URL + 尺寸
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It clearly states the tool performs an external upload and returns URL and dimensions. However, it omits authentication needs, file format/size constraints, and behavior around overwriting or duplicate uploads.
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 sentence with no filler. It front-loads the action and economically communicates the target and the return 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?
The tool is simple and has an output schema, so return values need not be re-explained. However, the singular required parameter is undocumented and there is no guidance on prerequisites or constraints, leaving a significant gap for reliable 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?
The schema has one required parameter, 'path', with 0% description coverage, and the tool description never explains what 'path' means. An agent cannot tell whether it is a local file path, remote URL, CDN key, or some other identifier.
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 states a specific verb ('upload'), an explicit resource ('image to Xianyu CDN'), and the return value (URL + dimensions). It is clearly distinguishable from all sibling tools, none of which are media upload operations.
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?
Usage is implied: an agent would understand the tool is for uploading an image to the CDN. However, there is no explicit when-to-use or when-not-to-use guidance, nor any mention of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message.historyA
拉取指定 cid 会话的历史消息(翻页到底)
| Name | Required | Description | Default |
|---|---|---|---|
| cid | Yes | ||
| limit_per_page | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly discloses the pagination-to-the-end behavior ('翻页到底'), which is a meaningful trait beyond the schema's limit_per_page parameter. However, it does not mention other behaviors like result ordering, read-only nature, or potential performance implications.
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 with the primary action front-loaded and the pagination behavior added as a parenthetical. There is no filler or redundant information.
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 simplicity (two flat parameters, no nested objects) and the presence of an output schema, the description covers the essential action, target conversation, and pagination-to-end behavior. It lacks extended context like when to use or what the return shape is, but the output schema handles return details, and the description is sufficient 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 0%, so the description must compensate. It explains the 'cid' parameter by referring to the '指定 cid 会话' (specified cid conversation), giving it semantic content. However, it does not explain 'limit_per_page' beyond the schema's default, leaving one of two parameters effectively undocumented in both schema and description.
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 '拉取' (fetch) and a clear resource '历史消息' (history messages) for a specified 'cid' conversation, and adds '翻页到底' (paginate to the end) to define its scope. This clearly differentiates it from siblings like message.send, message.watch, and message.list-chats.
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 by stating what the tool does—fetching history for a cid—but does not explicitly mention when to use it instead of alternatives, nor any exclusions or context such as 'use this when you need full history'. Sibling names provide clues, but the description itself offers no explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message.list-chatsB
拉取会话列表(左栏):session.sync 基线 + 可选 WS 增量补 cid
| Name | Required | Description | Default |
|---|---|---|---|
| fetch_num | No | ||
| watch_secs | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
This description adds behavioral detail beyond a generic 'fetch' by mentioning that it uses 'session.sync 基线' and optionally 'WS 增量补 cid' — revealing a sync-based mechanism with optional websocket supplementation. Since no annotations are provided, this is useful context, but it omits critical behavioral disclosures such as whether the operation is read-only, any permission requirements, whether it blocks, or what happens when watch_secs is set.
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 very short and the primary usage is front-loaded, which is good. However, the second half relies on domain-specific abbreviations ('WS', 'cid', 'session.sync') that are not self-explanatory, making it dense rather than ideally 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 tool with no annotations, two parameters, and zero schema field documentation, the description leaves major gaps: parameter meanings, return behavior beyond the output schema, and invocation prerequisites. The output schema may cover return structure, but the description is insufficient for an agent to confidently call the tool with correct parameter values.
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 has 0% description coverage, so the description must compensate by explaining the parameters. It does not explicitly explain fetch_num or watch_secs. The mention of '可选 WS 增量' hints at watch behavior and likely relates to watch_secs, but this is indirect and incomplete; fetch_num remains entirely unexplained.
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 opens with a clear verb+resource statement: '拉取会话列表(左栏)' (fetch chat list, left sidebar). This establishes what the tool does and its UI context. However, the internal jargon 'session.sync 基线 + 可选 WS 增量补 cid' is opaque and does not clearly distinguish it from siblings like message.watch or message.history beyond the 'left sidebar' hint.
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 phrase '左栏' implies the tool is intended for loading the left-sidebar conversation list, which gives some usage context. But there is no explicit guidance on when to use this tool versus message.history, message.watch, or other siblings, and no mention of 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.
message.sendC
向会话发送消息(text/image)。text 必填,image 走 url+wh
| Name | Required | Description | Default |
|---|---|---|---|
| cid | Yes | ||
| kind | No | text | |
| text | No | ||
| toid | Yes | ||
| item_id | No | ||
| image_url | No | ||
| image_width | No | ||
| image_height | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does not disclose side effects, authentication requirements, permission needs, rate limits, or what happens after a successful send; it only states the action and image parameter pathway.
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 one compact sentence, front-loaded with the core action and message kinds. It is concise with no fluff, but the compressed phrasing makes the 'text 必填' statement ambiguous and omits important context that additional sentences could have provided.
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?
Even with an output schema available, this tool has 8 parameters, no annotations, and a 0%-coverage schema description. The single sentence does not clarify what cid/toid represent, when item_id is needed, or what the send operation requires, leaving critical calling context missing.
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?
With 0% schema description coverage and 8 parameters, the description adds useful conditional guidance: text messages use 'text', image messages use url plus width/height. However, it does not explain the required cid/toid identifiers, and 'text 必填' is at best conditional and conflicts with the schema's default and required list.
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 states the verb '发送消息' (send message), the resource '会话' (conversation), and content types text/image, clearly identifying this as the send tool among the message.* siblings. It lacks explicit sibling differentiation and the line 'text 必填' adds slight ambiguity, so it is not a perfect 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 explains when to use this tool instead of message.history, message.list-chats, message.watch, or media.upload. The intended usage is only implied by the tool name and the phrase 'send message', leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
message.watchB
常驻 IM 长连接,下行事件以 JSONL 输出到 stdout(Ctrl-C 退出)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does disclose the key live-stream traits: it is persistent, outputs JSONL to stdout, and terminates via Ctrl-C. However, it does not mention authentication requirements, reconnection/error behavior, or the lifecycle/side effects of starting a long-lived connection.
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 entire description is a single compact sentence that front-loads the core behavior (persistent IM long connection) before giving output format and exit method. Every phrase earns its place and no filler is present.
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 is adequate for invoking a parameterless streaming tool: it explains output format and how to stop it, and an output schema exists. It is less complete for tool selection because it never clarifies which events are included or how this relates to the extensive watch.* and message.* sibling set.
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 has zero parameters and 100% schema description coverage, so there are no parameter semantics for the description to clarify. The tool is essentially parameterless, and the description adds no unnecessary parameter detail.
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 identifies a specific action: maintain a persistent IM long connection and stream downstream events as JSONL to stdout. It is mostly clear, but it does not explicitly differentiate message.watch from the many watch.* sibling tools (e.g. watch.start, watch.run), so there is some selection ambiguity.
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 given about when to use this tool versus alternatives such as message.history or watch.start. The only implied signal is that it is a live, long-running stream, but the description does not state exclusions, prerequisites, or when another tool would be preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search.itemsB
搜索闲鱼商品(浏览器路径,抗风控)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| filter_blacklist | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It does reveal a meaningful trait: browser-based execution designed to resist risk control. However, it does not mention authentication or browser session prerequisites, rate limits, or failure/blocking behavior, which are relevant for a browser-path tool.
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 with the core operation front-loaded and a useful qualifier in parentheses. Every word earns its place and there is no redundant 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?
Although the output schema covers return values, the description leaves filter_blacklist semantics and auth/session prerequisites unstated. Given the presence of many auth-related sibling tools, the lack of guidance about required login or browser state is a notable completeness gap.
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 0%, and the description does not explain 'limit' or the ambiguous 'filter_blacklist' parameter. Only the 'query' parameter's role is inferable from the tool's name and description, so the definition fails to compensate for the schema gap.
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 states a clear verb and resource: 'search Xianyu items.' The parenthetical 'browser path, anti-risk-control' adds distinguishing implementation context, though it does not explicitly name a sibling alternative to contrast against.
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 'browser path, anti-risk-control' hint implies this tool is intended for situations where risk control is a concern, but it does not explicitly say when to use it versus alternatives or when not to use it. Usage context is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signals.listA
列出卖家信号档案(信号分/出现次数/是否自动拉黑),阈值5分+2次
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| only_banned | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It does reveal a key behavioral trait—the 5-point/2-occurrence threshold—and the '列出' verb indicates a read-style listing operation. However, it does not clarify whether the threshold filters results, whether the operation is truly read-only, or how only_banned interacts with the profile logic.
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 efficient sentence that front-loads the resource and contents, then adds the threshold as a compact qualifier. Every word earns its place and there is no redundant or vague filler.
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?
An output schema exists, so return-value documentation is not mandatory, but the description is incomplete for a tool with no schema-level parameter descriptions and no annotations. It leaves the meaning of limit and only_banned ambiguous and does not clarify whether the 5-point/2-occurrence threshold is a filter, an alerting rule, or an auto-blacklist criterion.
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 has 0% description coverage, and the description does not explain the two parameters, limit or only_banned. The domain context about auto-blacklisting hints at what only_banned might mean, but the description adds no concrete parameter semantics beyond the schema's names and defaults.
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 states a specific verb ('列出' / list), a clear resource ('卖家信号档案' / seller signal profiles), and the contained fields (signal score, occurrence count, auto-blacklist status). It also adds the 5-point/2-occurrence threshold, which differentiates this from simple list tools and sibling tools like signals.unban.
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 is for viewing seller signal profiles that meet a threshold, but it does not explicitly state when to use this tool versus related siblings such as signals.unban, blacklist.list, or auth.risk-status. There is no exclusion or alternative guidance, leaving the selection largely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signals.unbanA
解除某个卖家的自动拉黑(误判恢复),同时清空其信号记录
| Name | Required | Description | Default |
|---|---|---|---|
| seller_nick | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
没有 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?
一句话同时说明核心操作、适用场景和副作用,没有任何冗余信息,信息密度高且结构清晰。
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?
工具复杂度低:只有一个必填参数,且存在输出 schema。描述已覆盖目标对象、执行动作和副作用,足以让 agent 正确选择和调用,无需额外上下文。
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 描述覆盖率为 0%,但唯一参数 seller_nick 本身含义清晰,描述中'某个卖家'也确认了该参数指向目标卖家。不过描述未提供格式、精确匹配要求或额外约束,只能部分弥补 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?
描述以明确动词'解除'指向'自动拉黑'这一具体资源,并补充'误判恢复'场景和'同时清空其信号记录'的副作用,能够与 siblings 中的 signals.list、blacklist.remove 区分开。
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?
'误判恢复'隐含了适用场景:卖家被自动拉黑且属于误判时使用。但描述没有明确说明何时不要使用,也没有与 blacklist.remove 等替代工具做对比,仅能靠推断。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skills.installA
把内置 Claude Skills 复制到 ~/.claude/skills/(或 --dest 指定目录)
| Name | Required | Description | Default |
|---|---|---|---|
| dest | No | ||
| list | No | ||
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of disclosing side effects. It only states the copy action and dest parameter, but omits the effects of 'list' and 'force', whether existing files are overwritten, or any other behavioral traits. This is a significant gap for a tool that writes to disk.
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 front-loaded sentence with no redundancy or filler. It states the core operation immediately, earning its place without waste.
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 three parameters, no annotations, and zero schema descriptions, the description is underspecified. It fails to explain two parameters, does not mention overwrite behavior or prerequisites, and relies on an output schema that the description itself does not reference.
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 0%, so the description must compensate. It only mentions '--dest', leaving 'list' and 'force' entirely unexplained. An agent cannot infer what those parameters do or when to set them.
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 '复制' (copy) and clearly identifies the resource (built-in Claude Skills) and the destination (~/.claude/skills/ or --dest). No sibling tool covers skills installation, so it is unmistakably distinct.
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 clearly implies when to use this tool: when the user wants built-in Claude Skills installed locally. However, it does not explicitly state when not to use it or mention alternatives, so it lacks the exclusionary guidance of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.addC
添加价格监控关键词(可带 max_price 低价告警线)
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| max_price | No | ||
| min_price | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only implies a mutation by saying 'add', but it does not disclose duplicate behavior, whether existing keywords are updated, prerequisites, side effects, or alert semantics beyond the brief max_price mention.
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 front-loaded sentence with no wasted words. It immediately communicates the operation, the object, and the key optional parameter, which is appropriate for a simple CRUD-style tool.
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 and an output schema is present, but the description omits min_price and gives no duplicate or overwrite behavior. It is minimally adequate for an experienced agent but still leaves important interpretation gaps.
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 0%, so the description must compensate for missing parameter documentation. It clarifies keyword and gives some meaning to max_price, but min_price is never mentioned, leaving one of the three parameters semantically unexplained.
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 states a clear verb and resource: add a price-monitoring keyword, with an optional max_price low-price alert line. It is easily distinguished from removal or listing tools by the 'add' verb, though it does not explicitly distinguish it from watch.start or watch.enable.
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 given on when to use watch.add versus the many sibling watch.* tools, and no alternatives or exclusions are named. The intended use is only implied by the verb 'add' and the phrase 'price monitoring keyword'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.alertsC
读取实际告警记录
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| unread_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses only that the tool reads alert records, but nothing about whether reading marks alerts as read, respects unread_only, requires auth, or has side effects. The term 'actual' adds little behavioral detail.
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?
It is extremely terse with no filler, but the single phrase is closer to under-specification than to efficient front-loaded structure. It does not organize or emphasize the important details an agent needs.
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?
Although the tool is simple and has an output schema, the description omits usage context, parameter behavior, and any sibling differentiation. An agent could invoke it correctly by accident, but the definition does not provide enough context to confidently choose or parameterize it.
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 0%, and the description does not mention limit or unread_only or explain their effect. The parameter names and defaults are self-evident, but the description itself adds no semantic value beyond the schema field names.
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 states a clear verb and resource: 'read actual alert records'. It gives a basic idea of what the tool does, though it does not contrast with siblings like watch.read-alert or watch.history, so an agent may still need to inspect other definitions.
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?
There is no guidance on when to call watch.alerts versus watch.read-alert, watch.history, or signals.list. No filters, conditions, or exclusions are mentioned, leaving the agent to infer suitability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.cancelB
请求取消后台监控;正在进行的网络请求结束后停止
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds valuable context that cancellation is a request and takes effect only after the ongoing network request finishes, which clarifies the asynchronous nature. However, it does not disclose whether cancellation is idempotent, what happens if the job is already complete, or error behavior.
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 short clauses in a single sentence, with no wasted words. The core purpose is front-loaded, and the async timing detail earns its place by conveying key behavioral nuance.
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?
This is a simple one-parameter tool with an output schema, so the return format is covered elsewhere. The core cancellation behavior and timing are described, but the missing guidance on job_id provenance and lack of edge-case handling (e.g., unknown or completed job) leave the description only minimally 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 description coverage is 0%, so the tool description must compensate for the undocumented job_id parameter. It does not explain what job_id refers to, how to obtain it, or any format constraints. The parameter name itself hints that it identifies the job to cancel, but the description adds no value beyond that inference.
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 it cancels background monitoring, using a specific verb ('cancel') and resource ('background monitoring'). It does not explicitly distinguish itself from sibling tools like watch.remove, and 'background monitoring' is somewhat vague, so it falls short of 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?
The description gives no guidance on when to use this tool versus alternatives such as watch.remove, watch.disable, or watch.stop (if present). It also does not mention prerequisites like obtaining a job_id from watch.start. Only the cancellation behavior is described, with no exclusion criteria or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.enableC
启用/停用监控项
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| watch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'enable/disable monitoring item' and does not explain the effect on schedules, alerts, jobs, idempotency, or whether disabling reverses any ongoing monitoring activity.
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 short sentence with no redundant wording and is front-loaded. It is concise, though it is also terse enough that some necessary context is missing.
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 mutation tool with no annotations and many closely related watch.* siblings, the description is not complete enough for reliable tool selection. The output schema does not compensate for the missing usage context, selection criteria, or behavioral implications.
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 0%, and the description does not compensate by explaining that watch_id identifies the target watch or that enabled defaults to true when omitted. It loosely corresponds to the enabled boolean but adds little beyond the parameter names.
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 (enable/disable) and the resource (monitoring item/watch), so it is not tautological or vague. However, it does not explicitly differentiate it from similar watch.* siblings such as watch.start or watch.run.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention that this toggles an existing configured watch rather than starting, adding, or canceling one, and no prerequisites or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.historyA
查看某个监控项的价格历史(按商品聚合)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| watch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses a non-obvious trait by saying results are aggregated by product (按商品聚合), and '查看' implies read-only. But it does not mention ordering, pagination, or the behavior of the limit parameter, leaving those to schema or output schema.
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, front-loaded sentence with no filler. The parenthetical efficiently communicates the aggregation behavior without unnecessary 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?
For a simple read-style tool with one required integer and one optional limit, plus an output schema, the description covers the essential purpose and key behavior. It is not fully complete because usage guidance and limit semantics remain implicit, but nothing critical is missing for straightforward 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 0%, so the description must clarify parameters. It partially does: '某个监控项' maps to watch_id and '按商品聚合' adds grouping semantics. However, the optional limit parameter is not described at all, though its name and default value make it reasonably inferable.
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 (监控项的价格历史), and adds a distinguishing behavioral detail (按商品聚合). This clearly marks it as price-history retrieval rather than watch.list, watch.jobs, or watch.alerts, so an agent can select it among many watch.* siblings.
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 intended use is implied: call this when you need price history for a monitored item. However, it gives no explicit guidance about when not to use it or which sibling tool to prefer for related but different needs such as watch.jobs or watch.list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.jobA
查询后台监控进度和每项结果;不会重复发起搜索
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full behavioral burden. It does disclose one meaningful trait: calling this tool '不会重复发起搜索' (will not re-initiate searches), which reassures an agent that the operation is side-effect-free. It does not disclose failure behavior, result freshness, or whether partial results are returned, but the no-side-effects statement is genuine added value beyond the schema.
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 clauses: purpose first, behavioral qualifier second. There is zero filler, and every token earns its place. The no-side-effects qualifier is packed into the same sentence without bloat.
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 one-parameter query tool with an output schema present, the description covers the core what and a key behavioral constraint, and return values are presumably documented in the output schema. The gap is workflow context: it does not say where job_id comes from or how this tool fits into the monitoring lifecycle alongside watch.start and watch.jobs, leaving the agent to infer the calling pattern.
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 0%, and the description adds no explicit format or provenance for job_id. The parameter's role is inferable from its name 'job_id' combined with the description's mention of monitoring jobs, and with only one required string parameter the risk of misuse is low. Still, the description does not compensate for the 0% schema coverage with any concrete parameter-level detail.
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 '查询' (query) and names a concrete resource: '后台监控进度和每项结果' (background monitoring progress and per-item results). The second clause '不会重复发起搜索' helps distinguish it from search-initiating siblings like watch.start or watch.run. However, it does not explicitly differentiate from closely related watch.jobs (plural) or watch.history, so an agent may still hesitate among those.
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 phrase '不会重复发起搜索' implies this tool is for passive status checks rather than launching work, which is a form of routing guidance. But it never explicitly states when to use this tool over watch.jobs, watch.history, or watch.alerts, nor does it mention that job_id is typically obtained from watch.start or watch.jobs. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.jobsA
列出本地监控服务的最近任务,与网页共享进度
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It adds a useful behavioral detail—that progress is shared with the web—and the verb 'list' implies a read operation, but it does not disclose auth requirements, limits, ordering, or whether any side effects exist.
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, front-loaded sentence with no filler. It states the action and resource first, then adds the web-sharing behavior, which is efficient and clear.
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 zero-parameter tool with an output schema, the description covers the core purpose and an important behavioral trait. It is mostly complete, but it could better clarify the distinction from similar sibling tools like watch.history, watch.list, and watch.job.
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?
There are zero parameters, so the schema needs no parameter documentation and the description cannot add much parameter meaning. The baseline of 4 is appropriate for a no-parameter tool.
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 the verb '列出' (list) and the resource '本地监控服务的最近任务' (recent jobs of local monitoring service), and adds the web-sharing context. The plural 'jobs' distinguishes it somewhat from 'watch.job', but it does not explicitly differentiate itself from siblings like watch.history or watch.list.
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?
There is no guidance on when to use this tool versus alternatives. With siblings such as watch.history, watch.list, and watch.job, the description gives no condition for choosing this one, only an implicit sense that it is for listing recent jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.listA
列出所有监控项及最新检查时间
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of behavioral disclosure. It transparently states that the tool lists all watch items with their latest check time, and the verb 'list' implies a read-only operation. However, it does not mention pagination, ordering, limits, authorization requirements, or side-effect behavior beyond the implication of the name.
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 with no filler. It front-loads the core action and the relevant output aspect, making it appropriately sized for the information it needs to convey.
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 zero-parameter listing tool with an output schema available, the description conveys the essential behavior and returned data sufficiently. It lacks sibling differentiation and usage notes, but the low complexity and presence of an output schema keep the remaining gap relatively small.
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 tool has zero parameters and 100% schema description coverage, so the baseline of 4 applies. There is no parameter information needed in the description because there is nothing for the agent to configure.
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 identifies the action ('列出' / list), the resource ('监控项' / watch items), and the key output field ('最新检查时间' / latest check time). However, it does not distinguish itself from sibling watch tools such as watch.jobs, watch.history, or watch.alerts, so it stops short of 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 usage guidance is provided. The description does not say when to choose this tool over alternatives, nor does it mention exclusions or conditions. Given the large watch.* sibling family, the agent is left to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.read-alertB
将告警标为已读
| Name | Required | Description | Default |
|---|---|---|---|
| alert_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the primary behavioral trait: it changes the alert's state to read. However, with no annotations provided, the description carries the full burden and does not clarify idempotence, scope, reversibility, or side effects. The presence of an output schema reduces the need to describe return values.
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 concise sentence with no wasted words, and the action is front-loaded. It is efficient, though it may be slightly too sparse to be considered excellent.
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 simplicity, one required parameter, and the existence of an output schema, the description is minimally viable for invoking the tool when the alert_id is already known. However, it lacks usage context and parameter source information, so an agent may need to rely on sibling tool names or external context to call it confidently.
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 0%, and the description does not add meaningful detail about alert_id beyond what the schema already shows ('Alert Id'). It does not explain where the alert ID comes from or how it should be interpreted, despite the low coverage requiring more compensation.
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 ('将告警标为已读' = mark alert as read) and the resource (alert), making the core purpose easy to identify. It is specific enough to distinguish from sibling tools like watch.alerts, though it does not explicitly name or contrast any alternative.
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, how to obtain a valid alert_id, or any prerequisites. The usage context is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.removeB
删除监控项(含其历史)
| Name | Required | Description | Default |
|---|---|---|---|
| watch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It usefully reveals that deleting the watch item also deletes its history, which is an important side effect. However, it does not state irreversibility, permission requirements, or effects on active watch jobs.
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, front-loaded sentence with no filler. Every word contributes, and the parenthetical '含其历史' adds a meaningful behavioral detail without unnecessary length.
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 one-parameter destructive operation, the description is minimally adequate, and the output schema covers return-value details. However, with no annotations, it leaves usage routing and side-effect safety expectations underspecified.
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 0%, and the description does not explain watch_id or how to obtain it. The relationship between '监控项' and the required integer watch_id is implied, but the description adds little beyond the parameter name and schema title.
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 delete verb ('删除') and the resource ('监控项', watch item), and adds the scoping detail that history is also removed ('含其历史'). It identifies the core operation well, though it does not explicitly contrast with siblings like watch.cancel.
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?
There is no guidance on when to use this tool versus alternatives such as watch.cancel, watch.disable, or watch.enable. The description implies deletion of an existing watch item, but leaves the choice between watch.* siblings entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.runC
立即对某监控项执行一次搜索并落盘(或 --all 跑全部启用项)
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | ||
| limit | No | ||
| watch_id | No | ||
| enrich_sellers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It discloses that the tool performs an immediate search and persists results, but it does not clarify whether execution is synchronous, whether it mutates watch state, whether repeated runs duplicate data, or what failure behavior looks like.
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 with no filler. The primary action is front-loaded, and the alternative --all mode is placed in a clear parenthetical. Every word earns its place.
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 four undocumented parameters, no annotations, and a family of similar watch.* tools, the description is too thin. It does not explain limit, enrich_sellers, what happens with watch_id=null and all=false, or how results are represented beyond '落盘'. The output schema helps with return shape, but not with invocation decisions.
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 0%, so the description must compensate for parameter meaning. It loosely refers to watch_id via '某监控项' and the all flag via '--all', but it does not explain limit, enrich_sellers, or the interaction between watch_id and all when both are default/null.
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 names a specific action — immediately perform a search for a monitored item and write results to disk — which clearly distinguishes it from generic or passive watch tools. It does not explicitly differentiate from siblings like watch.start or watch.job, but the one-shot, execution-oriented wording is substantially informative.
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 an on-demand, one-time execution and mentions the --all mode, but it gives no guidance about when to prefer this tool over watch.start, watch.job, or watch.list. It also does not state prerequisites such as whether a watch_id is needed or what 'enabled items' means.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch.startA
提交后台监控并立即返回任务 ID;需本地 HTTP 服务,之后用 watch.job 查询
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | ||
| limit | No | ||
| watch_id | No | ||
| enrich_sellers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation is asynchronous, returns immediately with a task ID, depends on a local HTTP service, and is followed up via watch.job. It does not cover error behavior or side effects, but the provided behavioral context is meaningful and non-redundant.
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 one compact sentence with no filler. It front-loads the core action and return behavior, then adds the HTTP requirement and follow-up routing. Every clause contributes useful information.
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 async behavior, the dependency, and the follow-up query, but it leaves all four optional parameters undocumented. Since the input schema also has zero descriptions, the agent lacks enough detail to construct a correct invocation. The output schema exists, but the input side is severely under-specified.
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 0% for four parameters, and the description does not explain any of them. The agent cannot infer the meaning of all, limit, watch_id, or enrich_sellers from the text, making parameter selection essentially guesswork.
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 ('提交后台监控'), the immediate result (returns a task ID), and a key prerequisite (local HTTP service). It also points to watch.job for follow-up, which helps distinguish it from sibling tools, though it does not explicitly contrast with near-siblings like watch.run or watch.add.
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 an explicit usage prerequisite ('需本地 HTTP 服务') and tells the agent to use watch.job afterwards to query the task. This is clear operational context, but it does not state when this tool should not be used or how it relates to alternatives like watch.run or watch.add.
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.
37 tool updates
v0.2.0- First observed
auth.doctor - First observed
auth.login - First observed
auth.reset-guard - First observed
auth.risk-status - First observed
auth.status - First observed
blacklist.add - First observed
blacklist.list - First observed
blacklist.remove - First observed
blacklist.test - First observed
category.recommend - First observed
item.delete - First observed
item.get - First observed
item.mine - First observed
item.publish - First observed
item.view - First observed
location.default - First observed
media.upload - First observed
message.history - First observed
message.list-chats - First observed
message.send - First observed
message.watch - First observed
search.items - First observed
signals.list - First observed
signals.unban - First observed
skills.install - First observed
watch.add - First observed
watch.alerts - First observed
watch.cancel - First observed
watch.enable - First observed
watch.history - First observed
watch.job - First observed
watch.jobs - First observed
watch.list - First observed
watch.read-alert - First observed
watch.remove - First observed
watch.run - First observed
watch.start
TDQS
Most tools are cleanly separated by namespace and action, but several pairs overlap: item.get vs item.view both retrieve item details, auth.doctor vs auth.risk-status both diagnose health/risk state, and watch.start/watch.run/watch.job/watch.jobs/watch.list have confusingly similar boundaries. watch.enable also packs two operations (enable/disable) into one tool, adding ambiguity.
The set consistently follows a lowercase namespace.action pattern (e.g., auth.login, item.publish, message.send, watch.add), which is predictable and easy to scan. Minor deviations include item.mine and location.default using non-action terms, and singular/plural pairs like watch.job vs watch.jobs, but these do not break the overall pattern.
37 tools is too many for most agents to reason about effectively, especially when 14 belong to watch.* and 5 to auth.*. While the domain is fairly broad, the count crosses the 'too many' threshold and would benefit from consolidation or sub-namespace grouping.
The set covers login, publishing, searching, item detail, messaging, blacklist rules, and price monitoring, so the core seller workflow is present. However, there is no item.update/edit operation, no auth.logout, no message read/delete capability, and watch items cannot be modified after creation, leaving noticeable lifecycle gaps.
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
Gamedeals MCP — wraps CheapShark API (game deal aggregator, no auth required)
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Google search results via SERP API
Agent-native marketplace. Bootstrap, list inventory, search, negotiate, and trade via MCP.
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that automates Xianyu marketplace operations through Playwright, allowing users to manage listings and conduct market research via natural language. It features integrated tools for generating AI-powered product descriptions and cover images using DashScope.1124-
- FlicenseBqualityDmaintenanceEnables searching and monitoring of Goofish (闲鱼) items via Playwright automation, providing structured item details and keyword-based monitoring.47-
- AlicenseBqualityBmaintenanceMCP server for automating Xianyu (Goofish) marketplace operations: publish, manage items, handle IM messages, and more via CLI or AI agents.417150Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with Goofish (闲鱼) marketplace, supporting product search, batch inquiry messaging, and conversation management for buyers.4MIT
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/E-R-Butch/Goofish-Z'
If you have feedback or need assistance with the MCP directory API, please join our Discord server