Skip to main content
Glama

goofish-cli

闲鱼 CLI · 原生支持 MCP · 为 AI Agent 而生

Goofish (Xianyu) automation CLI · MCP-ready · Built for AI Agents

CI PyPI version Python License MCP GitHub stars

goofish-cli 把闲鱼(Xianyu/Goofish)的核心运营能力抽成一套结构化命令, 同一份定义同时输出给四种消费者:

  • 👨‍💻 人类goofish item get 12345 --format table

  • 🤖 AI Agent(Claude Code / Cursor / Codex)uvx goofish-cli → 自动注册成 MCP tool

  • 🧩 Claude Skills(v0.3):5 个内置 skill,goofish skills install 一行装到 ~/.claude/skills/

  • OpenClaw:ClawHub bundle 一次安装 MCP server + 5 个 skills

架构思想来自 opencli 的 single-registry 设计。


✨ 核心特性

  • 🔐 17 个命令覆盖核心链路:发布、下架、查询、图片上传、AI 类目识别、默认地址、IM 收发 + 会话列表、skills 安装

  • 📡 真·实时 IM:WebSocket 长连 + 自动重连 + 三类事件分类输出

    • event=message(收到消息)· event=read(已读回执)· event=new_msg(轻量通知)

  • 🛡 内置风控护栏:令牌桶限流(1 写/分钟)+ RGV587 自动熔断

  • 🧠 AI-first I/O--format json/yaml/table/md/csv,给 LLM 喂 JSON、给人看表格

  • 一次定义,三种入口:CLI / MCP / Skill 共享同一 registry

  • 真实端到端验证:每个命令都跑过真实账号


Related MCP server: xhs-mcp-light

🚀 60 秒上手

# 1. 安装
pip install goofish-cli    # 或 uv pip install goofish-cli

# 2. 导入 cookie(从浏览器 DevTools → Application → Cookies 导出)
goofish auth login ~/Downloads/goofish-cookies.json

# 3. 验证登录态
goofish auth status
# → {"unb":"<masked-unb>","tracknick":"<masked-tracknick>","nick":"...","valid":true}

# 4. 干活
goofish item get 1045171414271
goofish message watch                               # 实时接收消息
goofish message send <cid> <toid> --text "在的"    # 发消息

🧩 Claude Skills(v0.3 新增)

v0.3 起内置 5 个 Claude Skill,装完之后 Claude Code / Cursor 里的 Agent 在识别到 闲鱼任务就会自动加载对应 skill 的知识库,不再靠 zero-shot 试错

# 装到 ~/.claude/skills/(默认)
goofish skills install

# 或者只看有哪些 skill,不拷贝
goofish skills install --list

# 或者装到自定义目录 + 覆盖已有的
goofish skills install --dest ./skills --force

5 个 skill 分工

Skill

什么时候激活

核心能力

goofish-overview

用户首次提闲鱼 / 问这工具能干啥

总入口,dispatch 到其他 4 个 skill

goofish-publish-item

发商品 / 上架 / 挂闲置

类目识别 → 标题 5 段式 → 风控扫描 → 图片检查 → 确认发布

goofish-reply-buyer

回消息 / 看未读 / 议价

拉未读 → 意图 5 分类 → 议价三档(小刀/大刀/屠龙刀)→ 用户确认发送

goofish-risk-guard

发布前 / 发送前 / 被限流了

违禁词表、外联词正则、发布红线、x5sec 恢复指引(被其他 skill 频繁引用)

goofish-shop-diagnosis

店铺没流量 / 曝光掉了

买家视角搜索 + 历史对比 → 归因清单 + 修复建议(纯读不写)

skill 的源文件在仓库的 skills/ 目录下(每个 skill 一个子目录,含 SKILL.md

  • references/*.md 知识库)。也可以走 Claude Code Plugin Marketplace 安装:

claude /plugin marketplace add fancyboi999/goofish-cli

OpenClaw / ClawHub

OpenClaw 2026.6.1 及以上可把本仓库作为 compatible bundle 加载。已发布到 ClawHub,安装:

openclaw plugins install clawhub:openclaw-goofish

# 登录态由用户在终端初始化,不交给 Agent 覆盖
uvx --from goofish-cli==0.3.0 goofish auth login --qr

openclaw plugins inspect goofish --json
openclaw gateway restart

本地开发无需发布:

openclaw plugins install -l .
openclaw plugins inspect goofish --json

重启后新会话会获得 5 个 skills,以及 goofish__auth_statusgoofish__item_get 等 MCP tools。bundle 默认不暴露需要操作者执行或会长期阻塞的 auth_loginauth_reset_guardmessage_watchskills_install

运行 MCP server 需要 PATH 中有 uv。完整说明见 MCP 接入指南


📟 命令详略与真实输出

$ goofish list-commands --format table

命令

说明

写操作

auth login

从 JSON 文件或 cookie 字符串导入登录态

auth status

检查登录态是否有效

auth reset-guard

手动解除风控熔断

item get

查询闲鱼商品详情

item publish

发布商品(自动识别类目 + 默认地址)

item delete

下架/删除商品

media upload

上传图片到闲鱼 CDN

category recommend

AI 识别商品类目

location default

获取默认发布地址

message list-chats

拉取会话列表(左栏;--watch-secs N 叠加 WS 历史推送补漏)

search items

搜索闲鱼商品(浏览器路径 Playwright + 系统 Chrome)

item view

浏览器视角看商品详情(字段完整,抗风控;item get 的姊妹版)

message history

拉取会话历史消息

message send

发送文本/图片

message watch

常驻 IM 长连(JSONL 输出)

{
  "unb": "<masked-unb>",
  "tracknick": "<masked-tracknick>",
  "nick": "闲鱼用户昵称",
  "valid": true,
  "h5_token_exp": "2026-04-21T20:30:00+08:00"
}
$ goofish message watch

实时输出(小号给主号发 3 条 + 主号读了所有消息):

{"event":"message","cid":"<masked-cid>","send_user_id":"<masked-user-id>","send_user_name":"小号昵称","send_message":"测试消息1"}
{"event":"message","cid":"<masked-cid>","send_user_id":"<masked-user-id>","send_user_name":"小号昵称","send_message":"测试消息2"}
{"event":"message","cid":"<masked-cid>","send_user_id":"<masked-user-id>","send_user_name":"小号昵称","send_message":"测试消息3"}
{"event":"read","cid":"<masked-cid>","msg_ids":["<masked-msg-id-1>","<masked-msg-id-2>","<masked-msg-id-3>"],"status":1,"ts":"<masked-timestamp>"}

事件

字段

message

cid · send_user_id · send_user_name · send_message · content_type

read

cid · msg_ids[] · status · ts

new_msg

cid · msg_id · ts(服务端只推指针,需 message history 拉正文)

自动跳过噪音/s/para(对方正在输入)、contentType=8(会话激活心跳)。

$ goofish message send <masked-cid> <masked-user-id> \
    --text "在的 claude 测试成功 ✅" --item-id 1045171414271
{"ok": true, "mid": "<masked-message-id>", "cid": "<masked-cid>"}
$ goofish item publish \
    --title "男士毛呢大衣 驼色长款" \
    --desc "全新未拆封 原价 2999 现 999" \
    --images ./a.png,./b.png \
    --price 999

流程:

  1. media upload 每张图 → CDN URL + 尺寸

  2. category recommend 拿 AI 识别的 catId

  3. location default 拿默认地址

  4. mtop.idle.pc.idleitem.publish 落库

返回:

{"ok": true, "itemId": "1046118265141", "status": "published"}

触发令牌桶限流(1 写/分钟)。高频调用会被本地拒绝,避免被闲鱼风控。


🔌 接入 Claude Code(MCP)

~/.config/claude-code/config.json

{
  "mcpServers": {
    "goofish": {
      "command": "uvx",
      "args": ["goofish-cli"]
    }
  }
}

Claude 会自动把全部命令看成 tool:goofish_item_get / goofish_item_publish / goofish_message_watch... 你在对话里直接说"帮我看下 itemId=xxx 的详情",Claude 就会调用。


🎯 项目亮点

能力

说明

11 个核心 mtop 接口

发布/下架/查询/图片/类目/地址/IM 全覆盖

CLI + --format 多格式输出

json / yaml / table / md / csv,人机两用

MCP Server

uvx goofish-cli 一行接入 Claude Code / Cursor

WebSocket 批量 push 全量解码

一帧多条消息全部还原,不丢单

WebSocket 自动重连

断线自退避重连,长跑无感知

已读回执 / typing / 新消息通知分类

/s/sync 元事件结构化为三类 JSONL

全局限流 + 风控熔断

令牌桶 1 写/分钟 + RGV587 自动熔断

单元测试

33 个,ruff 零告警

包分发

pip install goofish-cli / uvx goofish-cli


🗺 Roadmap

  • v0.1:12 个命令 + MCP + IM 三类事件

  • v0.2:goofish message list-chats(会话列表 + sessionType 分类:1 真人 / 3 系统 / 6 互动 / 23 通知;--watch-secs 支持合并 WS ackDiff(pts=0) 历史推送补齐 h5 接口漏掉的会话)

  • v0.2:浏览器自动化链路(吸纳 OpenCLI 精华)—— Playwright + 系统 Chrome 驱动 goofish search items / goofish item view,抗风控 & 完整字段

  • v0.2.3 / v0.2.4:session 自动续命(passport 快速进入)+ auth login --qr 扫码兜底

  • v0.3:Claude Skills 包装(5 个 skill:overview / risk-guard / publish-item / reply-buyer / shop-diagnosis)+ goofish skills install

  • v0.4:goofish message create-chat(主动与陌生用户建会话)

  • v0.4:goofish order(订单状态查询 / 发货)

  • v0.4:历史数据落盘(SQLite / JSONL),给 shop-diagnosis 做时序归因

  • v0.5:支持发视频消息


🛠 开发

git clone https://github.com/fancyboi999/goofish-cli
cd goofish-cli
uv venv --python 3.11
uv pip install -e ".[dev]"

uv run pytest                # 33 测全绿
uv run ruff check src tests  # 零告警

详细请看 CONTRIBUTING.mddocs/architecture.md


⚠️ 合规声明

本工具仅用于用户自有账号的自动化运营。严禁

  • 欺诈 / 刷单 / 虚假交易

  • 针对闲鱼平台的 SaaS 化转售

  • 违反闲鱼、淘宝、阿里巴巴用户协议的行为

工具不提供:绕过滑块验证、批量设备 ID 伪造、自动化规避封号。遇到风控请人工处理(见 docs/compliance.md)。


📜 License

Apache-2.0 © 2026 fancy。详见 LICENSENOTICE

Available Tools

17 tools
auth_loginC

导入登录态(默认从本机浏览器 auto-detect;支持 Chrome/Edge/Brave/Safari/Firefox 等)

ParametersJSON Schema
NameRequiredDescriptionDefault
qrNo
rawNo
sourceNo
browserNoauto
qr_timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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 mentions auto-detection from local browsers and supported browsers, but it does not explain side effects (e.g., whether existing login state is overwritten), permission requirements, or the behavior of QR code login. This is insufficient for a tool with 5 parameters.

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

Conciseness4/5

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

The description is a single, succinct sentence that front-loads the purpose and includes a useful detail about browser support. It has no filler or redundant phrasing, though it is brief to the point of under-specification.

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

Completeness1/5

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

Despite having 5 parameters and an output schema, the description gives no information about return values, parameter meanings, or edge cases. It is a high-level one-liner that leaves the agent guessing about how to invoke the tool correctly. This is severely incomplete for a tool of this complexity.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description explains none of the five parameters (qr, raw, source, browser, qr_timeout). The only faint reference is to supported browsers, which indirectly relates to the 'browser' parameter. This fails to compensate for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('import') and resource ('login state'), and adds context about default browser auto-detection. However, it does not explicitly distinguish itself from sibling tools like auth_status or auth_reset_guard, though the name and function are reasonably distinct.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It implies a login/authentication use case but does not state prerequisites, when to choose this over auth_status, or any exclusions. This leaves the agent without clear decision support.

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

auth_reset_guardA

手动解除风控熔断状态

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It only states the action 'release' without disclosing side effects (e.g., whether it clears all risk control events, requires elevated permissions, or is irreversible). This is a significant transparency gap for a 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.

Conciseness5/5

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

The description is a single, succinct sentence that gets directly to the point. It is front-loaded with the key verb and resource, with no extraneous words.

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

Completeness3/5

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

Given the tool's simplicity (0 params, output schema present), the description is minimally viable. It clearly states the action but lacks broader context such as when to invoke it or what the output schema contains. The description could be enhanced with a note about typical usage scenarios or prerequisites.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds meaning to the empty schema by clarifying what the tool does, which is sufficient since no parameters need explanation.

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

Purpose5/5

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

The description '手动解除风控熔断状态' clearly states a specific action (manually reset) on a specific resource (risk control circuit breaker state). It distinguishes itself from siblings like auth_login and auth_status, which are about authentication flow rather than resetting a blocking state.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention contexts such as 'when the system is in a circuit breaker state' or any exclusions, so the agent must infer usage 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.

auth_statusA

检查登录态是否有效,返回 unb / tracknick / 昵称

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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 tool returns login-relevant fields, but it does not explicitly state whether the operation is read-only or what happens when the login state is invalid, leaving some behavioral ambiguity.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It directly states the action and the return values, making it highly concise and well-structured.

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

Completeness4/5

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

Given the tool's simplicity (0 params) and the presence of an output schema describing return values, the description is largely complete. It could be slightly enhanced by noting when to use it (e.g., before auth-dependent operations), but the core information is sufficient.

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

Parameters4/5

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

The tool has 0 parameters, so the baseline is 4. The description does not need to add parameter details, and the schema already has no properties. The description appropriately focuses on the return information.

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

Purpose5/5

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

The description uses a specific verb ('检查' / check) and resource ('登录态' / login state), and specifies the return fields (unb / tracknick / 昵称), which clearly distinguishes it from sibling auth tools like auth_login and auth_reset_guard.

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

Usage Guidelines3/5

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

The description implies that the tool is used to check login validity, but it does not provide explicit when-to-use context or mention alternatives such as auth_login or auth_reset_guard. No exclusions or prerequisites are stated.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
images_jsonNo[]

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits, but it only states the basic recognition capability and return values. It does not mention whether the operation is read-only, how accuracy or error cases are handled, or any limitations or prerequisites (e.g., image format), leaving a significant transparency gap.

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

Conciseness5/5

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

The description is a single, compact sentence that front-loads the core purpose and immediately states inputs and outputs. Every word contributes value, with no redundancy or filler.

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

Completeness4/5

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

Given the simple two-parameter tool and the existence of an output schema (which handles return value structure), the description sufficiently covers the main input-output contract. It could add a note about the optionality of images or prerequisites, but for a basic classification tool it is nearly complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does add meaning by indicating that 'title' and 'image' are the semantic inputs, which the schema titles ('Title', 'Images Json') do not convey. However, it does not clarify that title is required while images_json is optional, nor does it explain the format of images_json beyond what the schema defaults suggest.

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

Purpose5/5

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

The description clearly identifies the tool's function: AI-based product category recognition, with explicit inputs (title and image) and outputs (catId/catName). This distinguishes it from sibling tools, which cover auth, item management, media upload, and messaging.

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

Usage Guidelines3/5

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

The description implies usage when a product title and image are available and a category is needed, but it does not explicitly say when to prefer this over alternatives or mention any exclusions. No sibling tool offers similar category functionality, so the context is adequate but not fully spelled out.

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

item_deleteB

下架/删除商品(写操作,受限流和风控护栏保护)

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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 states '写操作' (write operation) and mentions rate limiting and risk control protections, which adds useful context about side effects and constraints. However, it does not disclose whether the deletion is permanent or reversible, or what consequences occur beyond the operation itself.

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

Conciseness5/5

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

The description is a single, compact phrase that front-loads the core action and resource, followed by a brief note on operation type and protections. Every word earns its place, with no redundancy or filler. It is highly efficient and appropriately sized for a tool with one parameter.

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

Completeness2/5

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

Given the tool's delete/delist operation and the existence of an output schema, the description covers the basic purpose but lacks crucial contextual information. It does not mention whether the delete is soft (delist) or hard (permanent), what happens to associated data, or any side effects. It also provides no usage alternatives, making it incomplete for an agent to fully understand the tool's impact.

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

Parameters2/5

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

The schema has one required parameter, item_id, with 0% description coverage. The description does not explain the parameter's meaning or any special requirements. Although item_id is self-explanatory, the description provides no additional value beyond the schema, and the low coverage means the description should compensate but fails to do so.

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

Purpose5/5

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

The description clearly states the action '下架/删除' (delist/delete) and the resource '商品' (item/product), making the tool's purpose unmistakable. It also distinguishes from sibling tools like item_get, item_list, and item_publish by indicating it's a delete/delist operation, which is unique among the given siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where other tools like item_get or item_publish would be more appropriate. The only hint is that it's a write operation, but that's not explicit 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

查询闲鱼商品详情(只读)

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

The description includes the annotation '(只读)' (read-only), which is a useful behavioral hint, but with no annotations provided, it carries the full burden of disclosure. It does not mention authentication requirements, error behavior (e.g., item not found), rate limits, or any other side effects. The single read-only note is insufficient context for an agent to anticipate tool behavior fully.

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

Conciseness5/5

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

The description is a single, concise sentence that directly communicates purpose and the read-only nature. It is front-loaded and contains no filler words, making it efficient for an agent to parse quickly.

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

Completeness3/5

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

Given the simple nature of the tool (one parameter, output schema exists) the description covers basic purpose, but lacks usage guidance and parameter context. The output schema presumably handles return values, but the description still leaves gaps around when to use the tool and what the item_id parameter means, making it minimally adequate but not complete.

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

Parameters2/5

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

The input schema has only one parameter, item_id, but the description does not elaborate on what this ID represents, how to obtain it, or any validation rules. Since schema description coverage is 0%, the description should compensate, but it adds no additional semantic meaning beyond the parameter's name.

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

Purpose5/5

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

The description clearly states the tool's function: querying Xianyu item details (read-only). The verb '查询' (query) plus resource '商品详情' (item details) makes the purpose explicit. It also distinguishes from siblings like item_delete, item_publish, and item_list by specifying a read-only detail retrieval.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as item_view or item_list. The description does not mention exclusions, prerequisites, or scenarios where this tool is preferred. Users are left to infer usage 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.

item_listC

查看当前账号的在售商品(API 直签)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'view' which implies a read-only operation, but it does not mention pagination, rate limits, authentication requirements, or whether the output includes all on-sale items or is truncated. The phrase 'API 直签' is unclear and adds no concrete 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.

Conciseness4/5

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

The description is a single, compact sentence that immediately communicates the core purpose. It avoids verbosity, but it is perhaps too terse, missing opportunities to add value within the same length. Still, it is well-structured and front-loaded.

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

Completeness3/5

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

For a simple list tool with one optional parameter and an output schema, the description is minimally adequate. It correctly identifies the resource scope, but it lacks usage context (e.g., when to use vs alternatives) and does not explain the behavior of the limit parameter or possible response characteristics. The output schema may cover return values, so the description's remaining gap is in usage guidance.

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

Parameters1/5

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

The input schema has one parameter (limit) with a default of 50, and the schema description coverage is 0%. The description does not mention the limit parameter at all, leaving the agent to infer its meaning from the schema alone. This is a clear gap that the description should have filled.

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

Purpose5/5

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

The description clearly states the verb '查看' (view) and the resource '当前账号的在售商品' (current account's on-sale products), which precisely identifies this as a list operation. It distinguishes from siblings like item_get (single item) and search_items (search) by focusing on the current account's active listings.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as search_items or item_view. The description does not mention any prerequisites, exclusions, or context for choosing this tool over others.

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

item_publishB

发布商品(自动识别类目 + 默认地址),价格单位元

ParametersJSON Schema
NameRequiredDescriptionDefault
descYes
priceYes
titleYes
imagesYes
deliveryNo无需邮寄
post_priceNo
original_priceNo
can_self_pickupNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It reveals useful behavioral details: automatic category recognition, use of default address, and price unit in yuan. However, it does not disclose mutation implications, permission requirements, or failure semantics, leaving significant transparency gaps.

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

Conciseness5/5

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

A single compact sentence that front-loads the action and then adds parenthetical context. Every word earns its place, making it an excellent example of conciseness.

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

Completeness2/5

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

For a mutation tool with 8 parameters, no annotations, and no parameter descriptions, the description is too thin. It omits critical operational context such as required authentication, error behavior, and how auto-detection interacts with provided inputs. The presence of an output schema helps with return values but not with usage semantics.

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

Parameters2/5

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

With schema coverage at 0%, the description must compensate but only mentions that price is in yuan. It fails to explain the meaning of title, desc, images, delivery modes, post_price, original_price, or can_self_pickup, leaving most parameters semantically opaque.

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

Purpose4/5

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

The description clearly states '发布商品' (publish item) as the verb and resource, and adds specific context (auto-category recognition, default address, price unit) that helps distinguish it from siblings like item_delete or item_get. However, it does not explicitly name alternatives, so it lacks full sibling differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. It does not mention prerequisites, exclusions, or that category and location are auto-handled, which would help an agent decide to use this instead of calling category_recommend or location_default separately.

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 更全,抗风控)

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses the browser-driven approach and anti-risk-control behavior, offering some insight beyond the basic operation. However, it does not detail potential side effects, prerequisites (e.g., login), or reliability implications, leaving gaps.

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

Conciseness5/5

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

The description is a single concise sentence that packs the core action, the differentiating factor (more complete fields), and a key behavioral trait (anti-risk) without unnecessary words. It is front-loaded and highly efficient.

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

Completeness4/5

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

For a simple read-only tool with one parameter and an output schema, the description adequately covers the main purpose and distinguishes it from item_get. It could mention prerequisites or configuration, but given the tool's simplicity, it is sufficiently complete for an agent to select and invoke it correctly.

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

Parameters2/5

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

The schema has 0% description coverage, and the description does not add any explanation for the item_id parameter. While the parameter is straightforward, the description fails to compensate for the missing schema description, providing no additional semantic context.

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

Purpose5/5

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

The description explicitly states the tool's purpose: '浏览器视角查看商品详情' (view product details from browser perspective). It distinguishes itself from the sibling item_get by noting it provides more complete fields and anti-risk-control, making its purpose and differentiation clear.

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

Usage Guidelines4/5

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

The description provides clear comparative guidance by referencing item_get and stating that this tool has more complete fields and is anti-risk-control. This implies when to use it over alternatives, though it does not explicitly state exclusions or when-not-to-use scenarios.

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

location_defaultB

获取账号默认发布地址

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeNo
longitudeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. '获取' implies a read-only 'get' operation, but it does not mention whether authentication is needed, potential side effects, or behavior when no default exists. Minimal transparency beyond the verb.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the action verb and resource. Every word earns its place with no redundant details.

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

Completeness3/5

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

For a simple getter with an output schema, the core purpose is clear, and the output schema can cover return values. However, missing parameter semantics and usage context leave notable gaps, making this adequate but incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention latitude or longitude at all. The input schema shows defaults but not their meaning or effect on the result, so the agent has little guidance on how to use these parameters.

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

Purpose5/5

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

Description '获取账号默认发布地址' (get account's default publishing address) uses a specific verb and resource, clearly indicating the tool's purpose. It distinguishes itself from sibling tools like item_publish by focusing specifically on retrieving the default location.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor are there prerequisites, exclusions, or contextual hints. The description only states what it does, not when it should be used.

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 + 尺寸

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states only the basic action and return value, without mentioning side effects, authentication requirements, file size/type constraints, or whether the upload is permanent. This is insufficient for a tool with no annotation support.

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

Conciseness5/5

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

The description is a single sentence in Chinese that conveys the action and the result efficiently. It is front-loaded with the verb and resource, and every word adds value. There is no redundant or irrelevant information.

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

Completeness2/5

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

Though the tool is simple, the description is too brief to be complete. It lacks details about the 'path' parameter, input requirements, and any behavioral constraints. With no annotations and an output schema present, the description should provide more context, but it only covers the basic function.

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

Parameters1/5

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

The input schema has one parameter 'path' with no description, and the schema description coverage is 0%. The description does not explain what 'path' means (e.g., local path, URL, base64), nor how it relates to the upload action. With low schema coverage, the description was expected to compensate, but it fails to provide any parameter semantics.

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

Purpose5/5

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

The description clearly states the tool uploads an image to Xianyu CDN and returns the image URL plus dimensions. The verb '上传' (upload) is specific, the resource '图片到闲鱼 CDN' is precise, and the outcome is mentioned. This distinguishes it from sibling tools, none of which handle media uploads.

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

Usage Guidelines3/5

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

The description implies usage for uploading images but provides no explicit guidance on when to use this tool versus alternatives. Since there is no competing upload tool among siblings, the context is clear enough, but the description does not state any exclusions or prerequisites.

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

message_historyA

拉取指定 cid 会话的历史消息(翻页到底)

ParametersJSON Schema
NameRequiredDescriptionDefault
cidYes
limit_per_pageNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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 the key behavior of paginating to the end, but does not mention auth requirements, rate limits, or error handling. For a simple read tool, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that clearly communicates the action, resource, and behavior. There is no unnecessary information.

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

Completeness4/5

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

Given that an output schema exists, return values are already defined. The tool is simple with two parameters, and the description covers purpose and pagination behavior. It lacks edge-case handling details, but is complete for its complexity.

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

Parameters4/5

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

Schema coverage is 0%, but the description gives meaning to both parameters: 'cid' is the conversation identifier, and '翻页到底' implies that limit_per_page controls page size while fetching all pages. This compensates well for the missing schema descriptions.

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

Purpose5/5

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

The description clearly states the verb '拉取' (fetch) and the resource '指定 cid 会话的历史消息' (history messages of a specified cid conversation), with the added behavior of paginating to the end. This distinctly differentiates it from siblings like message_send or message_watch.

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

Usage Guidelines4/5

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

The context is clear: use when needing to fetch complete history for a specific conversation. It implies usage without explicitly mentioning alternatives or exclusions, but the purpose is specific enough to guide selection.

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

message_list_chatsA

拉取会话列表(左栏):session.sync 基线 + 可选 WS 增量补 cid

ParametersJSON Schema
NameRequiredDescriptionDefault
fetch_numNo
watch_secsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals the non-obvious 'session.sync baseline + optional WS incremental' behavior, which hints at a possible open WebSocket connection when watch_secs > 0. However, it does not mention side effects, permissions, or the nature of the output beyond the 'cid' reference, leaving gaps.

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

Conciseness4/5

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

The description is a single sentence, front-loaded with the primary action and context ('拉取会话列表(左栏)'). It is concise and does not waste words, though the technical jargon (session.sync, WS, cid) may reduce accessibility. Still, it earns its place by packing substantial meaning into minimal length.

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

Completeness3/5

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

Given the existence of an output schema, return values are defined elsewhere. The description provides the core purpose and sync mechanism, which is useful, but it does not clarify the watch_secs behavior or how cid is populated. For a tool with two optional parameters and no annotations, the description is adequate but leaves some behavioral details unexplored.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It mentions 'baseline' and 'incremental' which map conceptually to fetch_num and watch_secs, but it never explicitly defines either parameter or their defaults. The link between the mechanism and the actual parameters is left implicit, providing only weak guidance.

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

Purpose5/5

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

The description clearly states '拉取会话列表' (fetch chat list) and specifies the left column context, making it distinct from sibling tools like message_history, message_send, and message_watch which operate on individual messages. The verb and resource are specific and unambiguous.

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

Usage Guidelines4/5

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

The description gives clear context that this is the primary tool for loading the chat list in the left sidebar. It implies usage for listing conversations, while siblings handle message-level operations. However, it does not explicitly state when not to use it or name alternatives, but the sibling names and left-column hint effectively guide selection.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
cidYes
kindNotext
textNo
toidYes
item_idNo
image_urlNo
image_widthNo
image_heightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It discloses the requirement for text (though this conflicts with the schema where text is optional) and that images use URL+dimensions, but omits auth needs, side effects, or failure behavior.

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

Conciseness4/5

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

The description is a single, very concise sentence that front-loads the main action. However, it lacks structure and packs multiple details awkwardly, but it is not verbose or redundant.

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

Completeness2/5

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

Given the tool has 8 parameters, no annotations, and an output schema, the description is under-specified. It fails to explain core parameters like cid and toid, making it incomplete for reliable tool invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only clarifies text and image parameters (text required, image uses url+wh), but leaves cid, toid, item_id, and dimension fields unexplained, which is insufficient for 8 parameters.

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

Purpose5/5

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

The description clearly states the tool sends a message (text/image) to a conversation, using the verb 'send' and specifying the resource. It distinguishes itself from sibling tools like message_history and message_list_chats, which are for reading or listing messages.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description mentions text/image but does not explain when to choose one kind or when other messaging tools might be more appropriate.

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

message_watchA

常驻 IM 长连接,下行事件以 JSONL 输出到 stdout(Ctrl-C 退出)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description shoulders the transparency burden. It discloses key behavioral traits: the long-lived nature ('常驻'), output format (JSONL to stdout), and termination method (Ctrl-C). This goes beyond a bare restatement of the name, though it omits potential details like reconnection behavior or error handling, which are less critical for a simple watch tool.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the key concept ('常驻 IM 长连接'), followed by output specifics and exit instruction. Every word contributes meaning without redundancy or fluff.

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

Completeness5/5

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

Given the tool has zero parameters and an output schema exists, the description adequately covers the tool's purpose, mode of operation, and termination. It tells the agent what to expect (JSONL stream) and how to stop it, making it sufficient for safe invocation. No additional context is necessary.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4. No parameter documentation is needed, and the description focuses on the tool's behavior, which is appropriate for a parameterless tool.

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

Purpose5/5

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

The description clearly identifies the tool as a persistent IM long connection that outputs downstream events as JSONL to stdout, and mentions exit via Ctrl-C. This distinguishes it from siblings like message_history (past messages) and message_send (sending), establishing a specific watch/stream scope.

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

Usage Guidelines3/5

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

The description implies usage for live event monitoring ('常驻' meaning resident/continuous) and provides exit instructions, but it does not explicitly state when to prefer this over alternatives like message_history for historical data. No exclusions or alternative tool names are given, leaving usage guidance implicit rather than explicit.

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

search_itemsB

搜索闲鱼商品(浏览器路径,抗风控)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of disclosing behavior. It reveals that the tool uses a browser path and is designed for anti-risk-control, which gives some sense of its operational nature. However, it does not mention whether it requires authentication, rate limits, or any side effects, leaving significant gaps for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single concise sentence with a parenthetical qualifier, containing no redundant words. It is front-loaded with the core action and resource, and the parenthetical adds essential context efficiently. Every word contributes value.

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

Completeness3/5

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

The tool has an output schema, so return value documentation is partially covered. However, the description lacks critical context about pagination behavior, how the limit parameter works, or any constraints on search queries. It is adequate for a simple search tool but leaves clear gaps in understanding the full behavior.

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

Parameters2/5

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

The schema has 0% description coverage, and the description does not mention the 'query' or 'limit' parameters at all. It adds no meaning beyond the schema field names and default value, so it fails to compensate for the lack of parameter documentation.

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

Purpose4/5

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

The description clearly states the tool's function: '搜索闲鱼商品' (search Xianyu products), using a specific verb and resource. It also adds contextual distinction with '(浏览器路径,抗风控)' (browser path, anti-risk-control), which differentiates it from potential API-based siblings like item_list. However, it does not explicitly name alternative tools for comparison, so it does not fully distinguish from siblings.

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

Usage Guidelines3/5

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

The parenthetical '(浏览器路径,抗风控)' implies that this tool is used when a browser-based, risk-control-resistant search is needed, suggesting a specific scenario. However, it does not explicitly state when to use this tool versus alternatives such as item_list or category_recommend, nor does it mention prerequisites or exclusions.

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 指定目录)

ParametersJSON Schema
NameRequiredDescriptionDefault
destNo
listNo
forceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

The core behavior is transparent: it copies built-in skills to a destination. However, it does not disclose the effects of the 'force' flag (e.g., overwriting existing files) or the 'list' flag (e.g., listing without copying), and with no annotations the description carries the full burden for safety info.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently communicates the primary purpose. It contains no filler and is appropriately sized for its simplicity.

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

Completeness2/5

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

The tool has three parameters and no annotations, yet the description only covers the main copy action. The 'list' and 'force' flags likely alter behavior significantly but are omitted, leaving the tool under-specified for an agent to use all features correctly.

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

Parameters2/5

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

The schema offers zero descriptions for three parameters, and the description only hints at 'dest' via '--dest'. The 'list' and 'force' flags remain completely unexplained, so the description provides insufficient compensation for the low schema coverage.

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

Purpose5/5

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

The description clearly states a specific action: copying built-in Claude Skills to a target directory (~/.claude/skills/ or a --dest path). It uses a concrete verb and resource and is easily distinguished from all sibling tools, which concern auth, items, messages, or media.

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

Usage Guidelines3/5

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

The description implies when to use the tool (when installing/copying built-in skills) but provides no explicit guidance on alternatives, prerequisites, or exclusions. Since no sibling tools serve a similar purpose, the context is adequate but not richly explanatory.

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

Tool Schema Changelog

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

  1. 17 tool updatesv0.3.0
    • First observedauth_login
    • First observedauth_reset_guard
    • First observedauth_status
    • First observedcategory_recommend
    • First observeditem_delete
    • First observeditem_get
    • First observeditem_list
    • First observeditem_publish
    • First observeditem_view
    • First observedlocation_default
    • First observedmedia_upload
    • First observedmessage_history
    • First observedmessage_list_chats
    • First observedmessage_send
    • First observedmessage_watch
    • First observedsearch_items
    • First observedskills_install

TDQS

B3.3/5.0
Disambiguation4/5

Most tools are clearly distinct by resource and action, but item_get and item_view both retrieve item details with overlapping purposes. The descriptions clarify the difference (API vs browser, field richness), so ambiguity is limited.

Naming Consistency4/5

Tool names are mostly lowercase snake_case following a resource_action pattern (item_publish, message_send). However, a few names like search_items, skills_install, location_default, and message_list_chats deviate from the pattern, creating minor inconsistency.

Tool Count4/5

At 17 tools, the set is slightly heavy but still well-scoped for the dual domains of item management and messaging. Each tool addresses a distinct function, and none feel redundant or extraneous.

Completeness4/5

The tool surface covers auth, item publishing, listing, detail view, search, delete, and messaging workflows. A notable gap is the lack of an item update/edit tool, but the core lifecycle is otherwise present.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An 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.
    11
    24
    -
  • F
    license
    A
    quality
    D
    maintenance
    A lightweight MCP server that lets AI assistants publish notes to Xiaohongshu (Little Red Book) via browser automation. Supports login, image-text note publishing with up to 9 images, and search.
    4
    1
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Xiaohongshu (xiaohongshu.com) enabling login, note/video publishing, search, recommendations, and comment management via CLI or MCP protocol.
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that exposes browser automation tools and Taobao product search/detail lookup via Playwright. It requires a logged-in Taobao session and is best-effort scraping, not an official API.
    -

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fancyboi999/goofish-cli'

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