Skip to main content
Glama

yunxin-console-mcp

CI npm license

网易云信控制台 MCP Server。官方 yunxin-mcp-server 覆盖的是服务端 IM/RTC API;本项目补全应用后台管理能力:应用管理、AppKey/AppSecret、 回调、证书、推送配置、IM 功能开关、测试账号、敏感词、数字人和统计。

非官方项目:本项目调用云信控制台内部 frontApi,与网易云信无官方关联。 控制台升级后接口可能变化;请仅用于管理你拥有权限的账号,并遵守云信服务条款。

功能

  • 应用管理:应用列表、应用详情、创建/修改应用、AppKey/AppSecret

  • 应用配置:标识管理、推送证书、第三方回调、消息抄送(只读)、IP 白名单、自定义推送、第三方推送分类、功能变更记录

  • IM 管理:完整 IM 配置读取、按字段更新、测试账号、敏感词、安全通/反垃圾、机器人、数字人、存储清理

  • 数据统计:用户增长、地域分布、IM 消息数、群组/聊天室/推送/安全通、功能使用统计

  • 通用兜底:yunxin_api_call 可调用任意 /frontApi 接口,覆盖尚未封装的能力

Related MCP server: Mattermost MCP Server

环境要求

  • Node.js 20+

  • 本机安装 Google Chrome 或 Microsoft Edge(仅首次登录使用)

安装

从 npm 安装:

npx -y @devdengchao/yunxin-console-mcp --version
npm install -g @devdengchao/yunxin-console-mcp

直接从 GitHub 安装(会自动构建):

npx -y github:DevDengChao/yunxin-console-mcp

从源码运行:

git clone https://github.com/DevDengChao/yunxin-console-mcp.git
cd yunxin-console-mcp
npm install
npm run build

首次登录

控制台使用 Cookie 会话。运行一次:

npx -y @devdengchao/yunxin-console-mcp login

会打开一个专用 Chrome 配置窗口。登录成功后会保存 Cookie 到用户配置目录并自动关闭浏览器。 之后 MCP Server 直接使用该会话,不再需要浏览器常驻。

如果不想打开浏览器,也可以从 DevTools 的 Network 面板复制请求头里的 Cookie:

npx -y @devdengchao/yunxin-console-mcp auth import --cookie "cookie1=value1; cookie2=value2"

或者直接在 Network 面板右键请求 → Copy → Copy as cURL,然后粘贴:

npx -y @devdengchao/yunxin-console-mcp auth import --curl "curl 'https://app.yunxin.163.com/frontApi/...' -H 'cookie: ...'"
# 或把内容保存到文件
npx -y @devdengchao/yunxin-console-mcp auth import --curl-file curl.txt

检查登录态:

npx -y @devdengchao/yunxin-console-mcp auth status

退出登录:

npx -y @devdengchao/yunxin-console-mcp auth logout

MCP 客户端配置

Claude Desktop / Cursor / OpenCode 等支持 stdio 的客户端:

{
  "mcpServers": {
    "yunxin-console": {
      "command": "npx",
      "args": ["-y", "@devdengchao/yunxin-console-mcp"],
      "env": {
        "YUNXIN_CONSOLE_DEFAULT_APP": "your-app"
      }
    }
  }
}

如果从源码运行,把 command 改为 node,args 改为 ["E:/path/to/yunxin-console-mcp/dist/cli.js"]。

工具列表

工具

作用

yunxin_auth_status

检查登录态、当前账号、企业信息

yunxin_apps_list

应用列表,支持关键字和分页

yunxin_app_get

应用信息 + 产品配置(可选 IM 配置)

yunxin_app_admin

创建/修改应用、应用设置、消息抄送、变更记录、功能矩阵

yunxin_app_keys

查询 AppKey/AppSecret、重置密钥

yunxin_app_identity

iOS/Android/HarmonyOS 标识管理

yunxin_app_cert

APNs/FCM/华为/小米/OPPO/vivo 证书增删改查

yunxin_app_callback

第三方回调地址、超时、默认策略、事件开关

yunxin_app_ip_whitelist

服务端 IP 白名单

yunxin_app_custom_push

自定义推送文案

yunxin_app_third_push

第三方推送消息分类

yunxin_im_config_get

读取完整 IM 配置

yunxin_im_config_update

按字段更新 IM 配置

yunxin_im_user

测试账号列表/创建/更新/封禁/解禁

yunxin_im_lexicon

敏感词/正则词条管理

yunxin_im_antispam

安全通/易盾状态、开关、配置、疑似处理

yunxin_im_robot

机器人管理

yunxin_im_digital_human

数字人和知识库文档

yunxin_im_storage_cleanup

IM 存储清理任务

yunxin_stats_users

用户增长、趋势、地域、实时在线

yunxin_stats_im

IM 消息与相关指标统计

yunxin_stats_app

功能使用和安全通状态统计

yunxin_api_call

调用任意 /frontApi 接口

多数工具使用 action 参数区分读写操作;app 参数支持应用名称或 appid。

安全模型

  • 写操作默认开启。如需只读模式,设置 YUNXIN_CONSOLE_ALLOW_WRITE=false。

  • 删除、重置密钥、封禁、发布、存储清理等破坏性操作必须传 confirm: true。

  • AppSecret 默认打码;需要完整值时显式传 includeSecret: true。

  • 所有非 GET 请求写入本地审计日志,Cookie、AppSecret、Token 等字段自动脱敏。

  • 审计日志默认位于:

    • Windows:%APPDATA%\yunxin-console-mcp\audit.log

    • macOS/Linux:~/.config/yunxin-console-mcp/audit.log

环境变量

变量

默认值

说明

YUNXIN_CONSOLE_HOME

系统配置目录

会话、Chrome 配置和审计日志目录

YUNXIN_CONSOLE_COOKIE

-

直接提供 Cookie,优先于本地会话

YUNXIN_CONSOLE_DEFAULT_APP

-

默认应用名称或 appid

YUNXIN_CONSOLE_ALLOW_WRITE

true

设为 false 进入只读模式

YUNXIN_CONSOLE_TIMEOUT_MS

15000

HTTP 超时时间

YUNXIN_CONSOLE_USER_AGENT

Chrome UA

自定义请求 User-Agent

YUNXIN_CONSOLE_LOGIN_TIMEOUT_MS

1800000

登录等待时间,默认 30 分钟

验证情况

详细记录见 docs/verification.md。账号、应用和数据均已脱敏。

  • 58 个单元/集成测试通过,覆盖 Cookie 会话、HTTP 错误映射、应用解析、IM 配置映射、统计日期和审计日志。

  • 已在真实控制台环境跑通只读工具:应用列表、应用详情、IM 配置、测试账号、用户统计、IM 消息统计、应用设置、证书、IP 白名单。

  • 已通过 MCP 工具执行 as-is 无副作用写测试:deletemsgtime、roaming、sendMsgCheckFriend、chatroomIONoNotify、publishoffline、updateInfo 全部返回 res:200,回读配置无变化。

复跑实时只读冒烟:

npm run smoke

已知限制

  • 控制台内部 API 可能随前端升级变化;接口集中在 src/api/,便于修复。

  • 登录态失效后需要重新执行 login,目前不会自动刷新。

  • 消息抄送写操作、IM 总开关映射、数字人新增等少量接口尚未做真实写测试,已标记为待验证。

  • 当前应用下敏感词列表接口返回「参数错误」,控制台页面同样报错;安全通未开通时配置接口会返回未开通提示。

  • 其他产品(RTC、短信、点播、直播、白板、大模型 API)暂未封装专用工具,可通过 yunxin_api_call 调用。

开发

npm install
npm run build
npm test
node dist/cli.js login
node dist/cli.js auth status

CI 使用 Node 20/22/24,覆盖 Ubuntu 和 Windows。发布新版本:

npm version patch
git push --follow-tags

License

MIT

Available Tools

23 tools
yunxin_api_callCall any Yunxin console frontApi endpointA
Destructive

直接调用云信控制台内部 /frontApi 接口,用于覆盖尚未封装成专用工具的能力。path 例如 /frontApi/app/queryAppInfo;query 会拼到 URL;body 会以 JSON 发送。写操作(非查询类 POST/PUT/DELETE)必须传 confirm: true。

NameRequiredDescriptionDefault
bodyNoJSON 请求体
pathYes以 /frontApi 开头,或省略前缀直接写 /app/...
queryNoURL 查询参数
methodNoHTTP 方法,默认 GET
confirmNo写操作确认;查询类请求不需要

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already flag readOnlyHint=false and destructiveHint=true, so the safety profile is known; the description adds the concrete confirm gate for write methods, which is real behavioral context. It doesn't cover auth/permission requirements or what the raw response looks like, but the write-confirmation rule is the operationally important part.

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?

Front-loads the purpose, then covers path/query/body and the confirm rule in a few dense sentences with no filler. It is slightly jargon-heavy for non-Chinese readers but structurally tight.

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 generic passthrough tool with no output schema, the description needs to explain invocation and risk, and it does: the target path shape, how query/body are sent, and when confirm is required. The main remaining gap is that return values and error behavior are unmentioned, though the response is inherently arbitrary for a generic frontApi call.

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 100%, so baseline is 3, but the description earns extra by explaining how each parameter maps to the request: path as a /frontApi path, query appended to the URL, body sent as JSON. This is meaning a caller would not infer purely from field descriptions.

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

Purpose5/5

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

States a specific action (直接调用云信控制台内部 /frontApi 接口) and its role as the fallback for capabilities not yet wrapped by dedicated tools, which distinguishes it from all named sibling tools. The example path (/frontApi/app/queryAppInfo) makes the resource concrete.

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

Usage Guidelines5/5

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

Explicitly frames the tool as covering capabilities 尚未封装成专用工具, which routes the agent here only when no dedicated sibling exists. It also gives a hard precondition for writes: non-query POST/PUT/DELETE 必须传 confirm: true.

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

yunxin_app_adminYunxin app administrationB
Destructive

应用级管理:create 创建应用、update 修改应用名称/行业/简介、settings 查询应用设置、msg_copy 查询消息抄送、change_records 查询功能变更记录、function_matrix 查询功能矩阵。

NameRequiredDescriptionDefault
appNo
endNo变更记录结束日期 YYYY-MM-DD
dataNocreate/update 的字段,例如 {appname, category, appdesc}
limitNo
startNo变更记录开始日期 YYYY-MM-DD
actionYes
offsetNo
confirmNo
functionsNo变更记录功能编码过滤

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description usefully splits the mixed surface by verb, showing that create/update mutate while settings/msg_copy/change_records/function_matrix are 查询 (read) calls. However it says nothing about the `confirm` parameter that gates destructive actions, nor about irreversibility, required permissions, or rate limits.

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

Conciseness5/5

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

A single compact sentence, front-loaded with the scope (应用级管理) followed by an action-by-action enumeration. Every clause carries information and nothing is 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?

This is a nine-parameter, action-multiplexed tool with a nested `data` object, destructive capability, and no output schema. The description does not say which parameters belong to which action, and omits the `confirm` boolean entirely, leaving an agent unable to know that mutations may need explicit confirmation.

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 only 44%, so the description must compensate: it names the action values with meanings and gives a `data` field example ({appname, category, appdesc}), which is real added value. But it leaves `confirm` (critical for a destructive tool), `app`, and `limit`/`offset` entirely unexplained, and never maps which parameters apply to which action.

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 gives a specific verb+resource pair for each of the six actions (create 创建应用, update 修改应用名称/行业/简介, settings 查询应用设置, msg_copy 查询消息抄送, change_records 查询功能变更记录, function_matrix 查询功能矩阵), which is far richer than the bare enum in the schema. It never names a sibling tool (yunxin_app_get, yunxin_apps_list) as an alternative, so sibling differentiation is absent.

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?

Each action's meaning implies when to use it, but there is no explicit when-to-use vs when-not guidance and no mention of what selects this tool over yunxin_app_get or yunxin_apps_list for read operations. Prerequisites (permissions, the `confirm` gate before mutations) are unstated.

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

yunxin_app_callbackManage Yunxin app callbacksA
Destructive

查询或设置第三方回调地址、超时时间、失败默认策略,以及回调事件开关。修改回调会直接影响消息投递,必须 confirm: true。

NameRequiredDescriptionDefault
appNo
actionYes
confirmNo
callbackUrlNo
callbackFlagNo回调事件开关,例如 {p2pMsgEnable: true}
callbackResultNo失败默认策略:1 放行,0 不放行
callbackTimeoutNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true; the description earns credit by adding the consequence (修改回调会直接影响消息投递) and the mandatory confirm: true precondition, which annotations cannot express. It does not state whether changes are reversible or what the set call returns.

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

Conciseness5/5

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

Two sentences, zero filler, with the operation scope first and the high-risk mutation warning plus confirm precondition front-loaded where an agent will see it before choosing action=set.

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 destructive, dual-mode tool with a nested-object parameter and no output schema, the description covers the mutation risk and the required safety flag. It stops short of describing what the get path returns or how callbackFlag keys affect delivery.

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 only 29%, so the description must carry the load, and it does: it maps callbackUrl, callbackTimeout, callbackResult, and callbackFlag to concrete meanings and states the confirm requirement. Only `app` remains undefined in both schema and description.

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?

States a specific verb pair (查询/设置) and a specific resource (第三方回调), enumerating the four configurable aspects: URL, timeout, failure policy, and event switches. This clearly separates it from siblings like yunxin_app_get or yunxin_im_config_update, though it never names an alternative explicitly.

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 action enum (get/set) plus the statement that modification requires confirm: true gives a clear condition for the mutating path, and the delivery-impact warning warns when caution is needed. It lacks explicit routing rules to sibling tools such as yunxin_im_config_update.

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

yunxin_app_certManage push certificatesB
Destructive

推送证书管理:list 查询证书;add/edit/delete 新增、修改、删除证书。证书类型包括 ios、IOSP8、IOS_PUSHKIT、HARMONY 等。删除证书必须 confirm: true。

NameRequiredDescriptionDefault
appNo
limitNo
actionYes
fieldsNoadd/edit/delete 的接口字段
offsetNo
confirmNo
certtypeNo证书类型,例如 ios / IOSP8 / HARMONY

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered; the description usefully adds that deletion demands confirm:true. It does not say whether delete is irreversible, whether add/edit have prerequisites, or what happens on duplicate cert types, leaving meaningful behavioral 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?

Three short clauses, front-loaded with the resource and the action mapping, and no filler. Slightly compressed to the point of terseness, but nothing is wasted.

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?

This is a 4-action tool with a free-form nested 'fields' object, no output schema, and 29% schema coverage, yet the description never explains what fields add/edit/delete require or what list returns. For that complexity, the definition is under-specified.

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 only 29% across 7 params, so the description must compensate; it does explain the action enum semantics, lists valid certtype values (ios/IOSP8/IOS_PUSHKIT/HARMONY), and flags confirm. It says nothing about app, limit, offset, or the structure of the nested fields object, which is the biggest unknown for add/edit/delete.

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 gives a specific verb set (query/add/edit/delete) against a specific resource (push certificates) and enumerates which action enum values do what. It is clearly distinct from siblings like yunxin_app_keys or yunxin_app_third_push, though it never explicitly says how it differs from them.

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 per-action mapping (list = query, add/edit/delete = mutate) implies which action to pick, and the confirm:true requirement for delete is a concrete usage rule. However, there is no guidance on when this tool is the right choice versus sibling certificate-adjacent tools such as yunxin_app_third_push or yunxin_app_custom_push.

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

yunxin_app_custom_pushManage custom push contentB
Destructive

自定义推送文案:list 列表、get 详情、add 新增、update 修改、delete 删除、set_default 设为默认。删除必须 confirm: true。

NameRequiredDescriptionDefault
appNo
dataNoadd/update/delete/set_default 的请求体
actionYes
paramsNoget 的查询字段
confirmNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is set. The description adds real value with the 'delete requires confirm:true' rule, but stays silent on what gets destroyed, whether deletion is reversible, or how data/params are consumed.

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?

Front-loaded with the resource and a compact enumerated action list plus the confirm rule. Efficient and largely waste-free, though the enumeration style is list-like rather than explanatory.

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 five-parameter, nested-object, multi-action tool with no output schema and only 40% param coverage, the description does not explain data/params payload structure or return behavior. An agent could select the right action but would likely fumble the payload shapes.

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

Parameters2/5

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

Schema coverage is only 40% and the description compensates minimally: it clarifies the confirm flag and echoes the action enum, but leaves the meaning of app, data (nested body), and params (query fields) essentially unexplained beyond the terse schema hints. For a nested-object tool this leaves significant gaps.

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 names the resource (custom push content) and enumerates all six operations with their meanings (list/get/add/update/delete/set_default). It is clearly a custom-push management tool, though it never explicitly contrasts itself with siblings like yunxin_app_third_push or yunxin_app_callback.

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 action-to-operation mapping provides implied usage for each mode, and it adds a concrete prerequisite ('删除必须 confirm: true'). However, it offers no guidance on when to choose this tool versus the other push/callback siblings, nor any exclusions.

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

yunxin_app_getGet Yunxin application detailsA
Read-only

查询单个应用的基本信息、产品配置,可选返回 IM 配置。app 参数支持应用名称(如 DemoApp)或 appid。

NameRequiredDescriptionDefault
appNo应用名称或 appid;不传则使用 YUNXIN_CONSOLE_DEFAULT_APP
includeConfigNo是否包含产品配置,默认 true
includeImConfigNo是否包含 IM 配置,默认 false

TDQS

A3.6/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read. The description adds that IM configuration is only returned on request, which is useful behavioral context, but says nothing about permissions, what happens with an unknown app name, or response shape beyond the field list.

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

Conciseness5/5

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

Two compact sentences with no waste; the returned-data summary comes first and the parameter hint second, so the agent gets the essentials immediately.

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 zero-required-parameter read tool with full schema coverage and a readOnly annotation, the definition covers scope and the optional IM config flag adequately. Missing only edge-case behavior (unknown app, default resolution) to be fully 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 100%, so all three parameters are already documented, including the YUNXIN_CONSOLE_DEFAULT_APP fallback and the defaults for includeConfig/includeImConfig. The description repeats the app name/appid flexibility without adding new syntax or format detail, so baseline 3 applies.

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?

States a specific verb (查询) and resource (单个应用) and enumerates what is returned: 基本信息、产品配置, with IM 配置 optional. The singular scope implicitly separates it from yunxin_apps_list, but no sibling is named, 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.

Usage Guidelines3/5

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

The phrase '查询单个应用' implies usage for single-app lookups versus the list tool, but there is no explicit when-to-use guidance, no mention of alternatives such as yunxin_apps_list or yunxin_im_config_get, and no statement about failure behavior when the app is not found.

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

yunxin_app_identityManage Yunxin app identifiersA
Destructive

查询或修改 iOS Bundle Identifier、Android Package Name、HarmonyOS Package Name,以及标识安全校验开关。修改标识会影响客户端登录,写入需 confirm: true。

NameRequiredDescriptionDefault
appNo
dataNoset 时的字段,例如 {iosbundle, packagename}
actionYes
confirmNo
checkAppBundleNoset_check_bundle 时是否开启校验

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, and the description adds genuinely useful context beyond them: that changes impact client-side login and that writes require confirm: true. It does not clarify that the 'get' action is itself a safe read within an otherwise destructive-annotated tool, which is the notable remaining gap.

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?

Two tight sentences with the resource list first and the risk/confirm caveat second. No filler, though the confirm requirement could have been attached more explicitly to the write actions rather than the tool as a whole.

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 5-parameter tool with a nested object, partial schema coverage, and no output schema, the description covers impact and the confirm gate but omits action-enum semantics and what 'get' returns. Adequate but not 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 only 40%, so the description carries weight — and it does explain the confirm gate and the intent of the data object (iosbundle, packagename) and checkAppBundle. But the 'app' parameter and the exact meaning of the three action enum values are left unexplained in both places.

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 names a specific verb pair (查询/修改) and concrete resources — iOS Bundle Identifier, Android Package Name, HarmonyOS Package Name, and the identifier security-check switch. It is clearly distinct from sibling tools like yunxin_app_get or yunxin_app_admin, though it never explicitly contrasts itself with them.

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?

It states the consequence of modification (affects client login) and a prerequisite for writes (confirm: true), which implies when caution is needed. However, it does not route the agent away from siblings such as yunxin_app_get for simple reads, nor does it say when set_check_bundle is preferred.

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

yunxin_app_ip_whitelistManage app server IP whitelistB
Destructive

服务端 API IP 白名单:list 列表、status 开关状态、set 覆盖设置、edit 修改单条、delete 删除。写入需 confirm: true。

NameRequiredDescriptionDefault
idNoaction=edit 时的记录 id
ipNoaction=edit 时的新 IP
appNo
idsNoaction=delete 时的 id 列表
ipsNoaction=set 时的完整 IP 列表
actionYes
confirmNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered structurally. The description adds one genuinely new behavioral fact — writes require confirm:true — and signals that 'set' overwrites the whole list. It stops short of saying which actions are irreversible or what delete/set return.

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?

Two tight clauses, front-loaded with the resource and then the action breakdown; zero filler. It is arguably over-compressed for a destructive multi-action tool, but nothing is wasted.

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

Completeness3/5

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

With 7 parameters, a destructive hint and no output schema, the description should at least distinguish read actions (list/status) from mutating ones and explain the app scoping parameter. It covers confirm and action well but leaves the agent guessing about the app parameter and what list/status return.

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 57%; id, ip, ids and ips are documented in the schema, and the description adds meaning for confirm (write precondition) and the action enum semantics. The app parameter and the exact confirm semantics (required only for writes, not for list/status) remain unexplained in both places.

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 names the specific resource (服务端 API IP 白名单) and enumerates the five operations mapped to the action enum, so an agent knows exactly what the tool covers. It does not differentiate itself from siblings like yunxin_app_admin or yunxin_app_keys, which keeps it from a 5.

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

Usage Guidelines3/5

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

The action-to-operation mapping (list/status/set/edit/delete) implies which variant to pick, and '写入需 confirm: true' gives a concrete precondition for write paths. However, there is no explicit guidance on when to choose this tool over the many sibling app-management tools, and no when-not conditions.

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

yunxin_app_keysManage Yunxin app keysA
Destructive

查询 AppKey/AppSecret,或重置 AppSecret。action=get 查询;set_secret 设置指定密钥;random 随机生成新密钥。重置密钥会让使用旧密钥的客户端失效,必须传 confirm: true。

NameRequiredDescriptionDefault
appNo应用名称或 appid
actionNo默认 get
confirmNo重置密钥时必须为 true
appSecretNoaction=set_secret 时的新 AppSecret
includeSecretNoget 时是否返回完整 AppSecret,默认打码

TDQS

A3.9/5.0
Behavior4/5

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

Goes beyond the destructiveHint annotation by naming the real-world consequence: clients still using the old secret will fail. It also states the hard requirement of confirm: true for the destructive path. It does not say whether the old secret is recoverable or whether there is a grace period, so it falls short of a 5.

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?

Three short clauses plus a warning sentence; the destructive consequence and confirm requirement are placed last but clearly flagged. There is no filler. Slightly telegraphic ('必须传 confirm: true') but every sentence earns its place.

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

Completeness4/5

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

For a 5-parameter, no-output-schema tool with destructive semantics, the description covers the action split, the destructive warning, and the confirm gate. It omits what get actually returns (masked vs. full secret) and whether the app parameter is required, but those are covered by the schema.

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

Parameters3/5

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

Schema description coverage is 100%, and the description largely repeats what the schema already documents (action enum meanings, confirm requirement). The only marginal addition is restating the confirm gate as a hard rule rather than a field hint.

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?

States specific verbs and resources: query AppKey/AppSecret or reset AppSecret, and enumerates the three actions with one-clause semantics each. Clear, but does not distinguish this from the sibling yunxin_app_get, which plausibly also returns app details.

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?

Maps each action value to a purpose (get = query, set_secret = set a supplied secret, random = generate a new one) and gives a clear precondition for reset (confirm: true). Lacks any explicit statement of when to prefer this over yunxin_app_get or yunxin_app_admin.

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

yunxin_apps_listList Yunxin applicationsA
Read-only

列出当前账号下的云信应用,返回应用名称、appid、已开通产品、套餐和创建时间。支持按名称关键字搜索和分页。

NameRequiredDescriptionDefault
limitNo每页数量,默认 20
offsetNo偏移量,默认 0
keywordNo应用名称关键字,留空列出全部

TDQS

A3.8/5.0
Behavior4/5

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

readOnlyHint=true already covers the safety profile, and the description adds genuinely useful context: which fields come back and that results are searchable and paginated. It does not mention whether a total count is returned or any rate/account-scope limits, but with annotations present a 4 is warranted.

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 front-loaded sentence with the resource first, followed by return contents, then capabilities. No filler, and everything stated is relevant to deciding whether to call it.

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?

With no output schema, the description usefully lists the return fields, and all parameters are covered by the schema. It falls short only on pagination response semantics (total count, ordering) and on how it relates to the many app-scoped sibling tools.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters (limit, offset, keyword) are already documented with defaults and bounds. The description only restates that keyword search and pagination are supported, adding no format or behavior detail beyond the schema; baseline 3 applies.

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?

States a specific verb and resource (list the cloud apps under the current account) and enumerates what is returned (name, appid, enabled products, plan, creation time). An agent can distinguish this from yunxin_app_get by name and scope, though no sibling is explicitly named.

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 — browse all apps, optionally search by name keyword, or page through results — but never states when to prefer this over yunxin_app_get or other app-level siblings. The reader must infer that this is the discovery/entry point.

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

yunxin_app_third_pushManage third-party push categoriesA
Destructive

第三方推送消息分类配置:get 查询、set 新增/更新、delete 删除。写入需 confirm: true。

NameRequiredDescriptionDefault
appNo
dataNo
actionYes
confirmNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, so the safety profile is partly covered; the description adds the non-obvious guardrail that mutations require confirm: true, which the annotations do not express. It stops short of saying deletes are irreversible or what happens to existing categories on set.

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?

Two short clauses, front-loaded with the resource and action mapping; every element carries information. It is terse to the point of omitting needed detail, but nothing is wasted.

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 mutating tool with a nested free-form 'data' object, no output schema and zero schema descriptions, the definition says nothing about what fields belong in data, what get returns, or what delete removes. An agent could pick the right action but not construct a correct call.

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 clarifies that 'set' is an upsert (新增/更新) and that confirm gates writes, but leaves the 'app' and especially the nested 'data' object entirely unexplained — a real gap for a 4-parameter tool with a free-form object.

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?

States a specific resource (third-party push message category configuration) and the three operations it covers (get/set/delete). An agent can tell it's a CRUD manager for push categories, though it doesn't distinguish itself from the sibling yunxin_app_custom_push.

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 'write requires confirm: true' line gives one concrete prerequisite for set/delete, but there is no guidance on when to prefer this tool over yunxin_app_custom_push or yunxin_app_get, and no exclusions are stated.

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

yunxin_auth_statusYunxin console login statusA
Read-only

检查云信控制台登录态,返回当前账号、企业信息、默认应用和写操作开关。登录态失效时会给出重新登录提示。

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds real value beyond that: it lists exactly which state is returned, flags a 'write operation switch' that is important for gating mutations, and discloses the failure path (re-login prompt on expired session). It stops short of describing the response shape or whether failure is an error vs. a status field.

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

Conciseness5/5

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

Two compact sentences, front-loaded with purpose followed by return contents and then the failure case. Every clause carries information; no 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?

With no input params and no output schema, the description carries the return-value burden and does so by enumerating the four things returned plus the expiry behavior. Only the exact shape/typing of those values remains unspecified, which is a minor gap for a status check.

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?

Zero parameters, so there is nothing to disambiguate; the baseline applies. The description correctly avoids inventing parameter detail.

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?

States a specific verb and resource ('检查云信控制台登录态') and enumerates what it surfaces (account, enterprise info, default app, write switch), which clearly separates it from the app/IM/stats siblings. It does not name a sibling explicitly, keeping it just 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.

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is a pre-flight auth/context check, but the description never says when to call it versus calling a sibling directly, nor any exclusions. The expiry sentence describes output behavior rather than invocation guidance.

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

yunxin_im_antispamManage IM anti-spam / YidunA
Destructive

内容安全:status 查询易盾开通状态、open/close 开通/关闭、probation 免费试用、config 查询 IM 安全通配置、suspect 查询疑似处理配置。开关操作需 confirm: true。

NameRequiredDescriptionDefault
appNo
actionYes
confirmNo
productTypeNo默认 IM

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag the tool as mutating and destructive, and the description adds the non-obvious operational requirement that switch actions must pass confirm: true — a real gate the agent would otherwise miss. It stops short of explaining what close actually affects or whether it is reversible, so it is not fully transparent.

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?

One compact sentence, front-loaded with the domain and then the action-by-action breakdown; every clause maps to a distinct action value. It is terse to the point of being dense, but nothing is wasted.

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?

There is no output schema, so the description should ideally indicate what `status`, `config`, and `suspect` return; it only says they are queries. Combined with two undocumented parameters, the definition is usable but leaves the agent guessing about return shapes and the `app` scope.

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?

With only 25% schema description coverage, the description compensates well for `action` by defining all six enum values, and it explains `confirm`. However, `app` and `productType` receive no explanation at all (productType only has a terse '默认 IM' in the schema), leaving two of four parameters undocumented.

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 opens with the resource domain (内容安全 / 易盾 anti-spam) and then enumerates every action verb with its meaning: status = query activation state, open/close = enable/disable, probation = free trial, config/suspect = query configurations. An agent can distinguish this from siblings like yunxin_im_config_get or yunxin_im_lexicon purely from the text.

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?

Each of the six enum values is mapped to a concrete intent, so the agent knows which action to pick for a given goal, and the prerequisite 'confirm: true' for toggle operations is stated explicitly. What is missing is any routing guidance relative to sibling tools (e.g., when to use this config action vs. yunxin_im_config_get), so it falls short of a 5.

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

yunxin_im_config_getGet IM configurationA
Read-only

读取应用完整的 IM 配置,包括总开关、鉴权方式、多端登录、撤回时长、漫游、群聊、聊天室、圈组、回调、安全通、推送等字段。

NameRequiredDescriptionDefault
appNo

TDQS

A3.6/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes the safety profile, and the description adds value beyond it by enumerating the returned config domains (总开关、鉴权方式、多端登录、撤回时长、漫游、群聊、聊天室、圈组、回调、安全通、推送). That partial disclosure of return content is meaningful since no output schema exists, though it doesn't state whether all fields are always returned or how large the payload is.

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?

A single well-formed sentence that leads with the action and resource before listing fields. Efficient with no filler; the enumeration is dense but each item adds scope information.

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

Completeness3/5

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

With no output schema, the description is the only source for return content, and it does provide a field-domain overview. However, it omits how the app parameter resolves, whether results are app-wide or default-app, and any note on response shape/size, leaving gaps for a zero-coverage schema.

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?

There is one optional parameter (app) with 0% schema description coverage, so the description must carry it, and it only indirectly implies app-scoping via '应用'. It does not explain the expected app identifier format or what happens when app is omitted.

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?

States a specific verb (读取/get) and resource (应用完整的 IM 配置) and enumerates the config domains covered, which clearly distinguishes it from the sibling yunxin_im_config_update (the mutating counterpart). It is clear what the agent gets, though it doesn't explicitly contrast with yunxin_app_get.

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?

Usage is only implied: the tool is described as reading the full IM config, and the presence of yunxin_im_config_update in the sibling list hints this is the read variant. There is no explicit when-to-use/when-not-to-use statement or guidance on choosing between this and yunxin_app_get for overlapping app data.

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

yunxin_im_config_updateUpdate IM configurationA
Destructive

按字段更新 IM 配置。只传需要修改的字段,其余保持不变。每个字段会调用后台对应的写接口,并返回逐字段结果。修改服务级开关(如图中 imMainSwitch、callbackUrl)必须传 confirm: true。

NameRequiredDescriptionDefault
appNo
confirmNo
roamingNo
kickpolicyNo多端登录策略
authtypesetNo登录鉴权方式,例如 '0' 静态 token
callbackUrlNo
imMainSwitchNoIM 总开关(接口映射待真实写测试确认)
beforeHistoryNo
deletemsgtimeNo消息撤回时长(秒)
callbackResultNo
checkAppBundleNo
publishofflineNo
pushbadgelimitNoiOS 角标未读上限,'-1' 表示无限制
callbackTimeoutNo
customKickPolicyNo自定义多端登录策略
chatroomIONoNotifyNo
chatroomMultiLoginNo
sendMsgCheckFriendNo非好友是否允许发送消息

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's job is to add detail beyond that. It does: each field fans out to a separate backend write call and results come back per field, which signals possible partial application. It does not state whether a partial failure is rolled back or which fields are irreversible, which is the main remaining gap for a destructive 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?

Three short sentences, front-loaded with the partial-update contract, followed by the fan-out behavior and then the confirm requirement. No filler and nothing redundant with the schema.

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?

Covers the essentials an agent needs to avoid a bad call (partial update + confirm), but with a destructive 18-parameter write and no output schema, the definition should say more about what the per-field result looks like when something fails and what the many undocumented fields do. Adequate but with clear gaps.

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

Parameters3/5

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

With 18 parameters and only 39% schema coverage, the description should compensate but mostly doesn't. It does add real meaning for confirm (must be true for service-level switches) and flags imMainSwitch/callbackUrl as the dangerous ones; the other cryptic fields (callbackResult, checkAppBundle, publishoffline, customKickPolicy) stay undocumented in both places.

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?

States a specific verb and resource ('按字段更新 IM 配置') and clarifies the partial-update semantics ('only pass fields to modify'). It never distinguishes itself from the sibling read tool yunxin_im_config_get, so the agent must infer the pair from names alone.

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?

Gives an actionable rule: send only the fields you want changed and pass confirm: true for service-level switches such as imMainSwitch and callbackUrl. It does not say when to prefer yunxin_im_config_get or what to do if a per-field write fails, so exclusions/alternatives are missing.

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

yunxin_im_digital_humanManage IM digital humansB
Destructive

数字人管理:list 列表、get 详情、add 新增、update 修改、delete 删除、rag_list 查询知识库文档、rag_embed 训练文档、rag_delete 删除文档。删除/训练操作需 confirm: true。

NameRequiredDescriptionDefault
appNo
dataNo
limitNo
actionYes
paramsNo
confirmNo
createTimeNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds value by flagging that delete/rag_embed need confirm: true, which the annotations do not convey. It stops short of saying what is actually destroyed (a digital human persona? its knowledge base?), whether deletes are recoverable, or what rag_embed training costs in time.

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?

A single dense line with zero filler; the action enumeration is front-loaded and the confirm rule closes it. The terse comma-separated listing is efficient, though the lack of any separation between the CRUD group and the rag_* group slightly blunts scanability.

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 destructive, multi-action tool with nested free-form objects and no output schema, the description should explain what belongs in data/params for each action. It does not, leaving the agent to guess payload shape for add/update/rag_embed — the highest-risk operations here.

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 carries the full burden and largely fails it: of seven parameters, only action and confirm are addressed. The meaning of app, data, params, limit, and createTime is left entirely undocumented, and for a tool where data/params are free-form nested objects whose expected keys differ per action, that is a serious gap.

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 enumerates all eight action verbs against the resource (list/get/add/update/delete plus the three rag_* document operations), so an agent knows precisely what capability set is behind this multiplexed tool. It does not, however, distinguish itself from near-neighbours such as yunxin_im_robot or yunxin_im_lexicon, which also manage IM sub-entities.

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?

There is one real usage rule: delete and rag_embed (train) operations require confirm: true. That is genuinely helpful routing guidance. But nothing says when to pick this tool over yunxin_im_robot, nor when rag_list versus get is appropriate, and there are no stated prerequisites or side-effect conditions.

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

yunxin_im_lexiconManage IM sensitive wordsA
Destructive

敏感词/正则词条管理:list 列表、create 新增、update 修改、delete 删除、fuzzy 模糊查询、publish 发布、thesaurus 查询词库。删除和发布必须 confirm: true。

NameRequiredDescriptionDefault
appNo
dataNo
limitNo
actionYes
offsetNo
confirmNo
keywordNo

TDQS

A3.9/5.0
Behavior4/5

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

The annotations already declare destructiveHint: true, and the description adds the important safety requirement that delete and publish must pass confirm: true. It does not describe irreversible effects, permission requirements, or response behavior, but it adds key operational context beyond the annotations.

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

Conciseness5/5

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

The description is two compact sentences with no wasted text; the action list is front-loaded, and the confirm warning follows directly. It is appropriately sized for a multiplexed action tool.

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 seven-parameter tool with a required action enum, a nested data object, and no output schema or schema descriptions, the definition is too thin. The critical data shape for create/update and the meanings of app, keyword, limit, and offset are absent.

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, yet it explains only the action values and the confirm requirement for delete/publish. It leaves app, data, limit, offset, and keyword undocumented, and the nested data object used by create/update is especially opaque.

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 that the tool manages sensitive words and regex entries, and it enumerates every action supported by the action enum. An agent can identify the resource and the operation set without opening the schema.

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

Usage Guidelines4/5

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

It maps each action to its purpose (list, create, update, delete, fuzzy, publish, thesaurus) and explicitly states that delete and publish require confirm: true. It does not explain when to choose one action over another or describe prerequisites, but the action-level guidance is clear.

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

yunxin_im_robotManage IM robotsB
Destructive

聊天机器人:list 列表、get 详情、create 新增、update 修改、status 启停。启停必须 confirm: true。channel=1 默认机器人,channel=2 自定义机器人。

NameRequiredDescriptionDefault
appNo
dataNo
limitNo
actionYes
offsetNo
paramsNo
channelNo
confirmNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare destructiveHint=true, and the description usefully adds that status changes require confirm: true, which is real behavioral context. It does not disclose what create/update/status affect, whether changes are reversible, or that read-style actions coexist in a destructive-annotated tool.

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?

It is a compact, front-loaded line that packs the action list, the confirm rule, and the channel mapping without filler. Slightly terse given the complexity it must cover.

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 an 8-parameter, destructive-annotated mutation tool with nested objects and no output schema, the description covers the action surface and confirm guard but leaves the shape of data/params and pagination entirely implicit. Adequate but incomplete for the complexity.

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%, and the description explains only three of eight parameters: the action enum, channel (1=default, 2=custom), and confirm. The nested data/params payloads plus app, limit, and offset remain undocumented in both schema and description, leaving a meaningful gap.

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 names the resource (IM robots) and enumerates every action the tool supports (list/get/create/update/status), so an agent understands the multi-action surface immediately. It stops short of explicitly contrasting itself with siblings like yunxin_im_user or yunxin_im_digital_human.

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 action glossary implies which operation to use for which intent, and the confirm requirement for status is stated. However, there is no guidance on when to choose this tool over sibling tools or on prerequisites for each action.

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

yunxin_im_storage_cleanupManage IM storage cleanup tasksB
Destructive

IM 存储清理:list 任务列表、get 任务详情、create 创建任务、cancel 取消、confirm 确认删除、recover 恢复回收站文件、send_sms 发送验证码。除查询外均需 confirm: true。

NameRequiredDescriptionDefault
appNo
dataNo
actionYes
paramsNo
confirmNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description adds the meaningful detail that non-query actions require confirm: true and that 'confirm' deletes and 'recover' restores from the recycle bin. It does not describe what is destroyed, whether deletes are reversible, or what permissions are needed, so the added behavioural context is useful but thin.

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 one dense, front-loaded block: resource first, then action glossary, then the confirm rule. Every clause carries information and there is no padding.

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?

This is a multi-action tool with five parameters, nested objects, 0% schema descriptions, and no output schema. The description explains the action names and the confirm gate but gives no guidance on what data or params each action needs, so an agent cannot reliably invoke create, cancel, recover, or send_sms without guessing at payload shapes.

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 carry the parameter burden. It does translate the action enum into meaningful Chinese labels and explains the confirm parameter's role, but it says nothing about app, data, or params, leaving the nested-object parameters undocumented.

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 names the resource (IM storage cleanup) and enumerates its seven operations (list, get, create, cancel, confirm, recover, send_sms), so an agent can tell this is a task-management tool distinct from the app/config/user siblings. It stops short of explicitly contrasting with any named sibling tool.

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?

It states an important usage rule: all actions except queries require confirm: true. That much is explicit. It does not say when to choose this tool over alternatives, or which action applies in which situation beyond the one-word labels.

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

yunxin_im_userManage IM test accountsC
Destructive

测试账号管理:list 查询、create 创建、update 更新、block 封禁、unblock 解禁。封禁必须 confirm: true。

NameRequiredDescriptionDefault
appNo
uidNoblock/unblock/update 的云信 ID
dataNocreate/update 的请求体
nameNolist 的名称搜索
limitNo
actionYes
offsetNo
confirmNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, so mixed read/write is already implied structurally. The description adds one genuinely new behavioral fact beyond the annotations: block requires an explicit confirm: true flag. However, it never says what blocking does to an account, whether it is reversible, or that list is a safe read within an otherwise destructive tool.

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?

One compact sentence with the action mapping front-loaded and the confirm constraint attached last. It is efficient, though the terseness edges toward under-specification rather than optimal density.

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?

With 8 parameters, a nested request-body object, no output schema, and a destructive annotation, the description should clarify the data payload for create/update, what identify fields are needed, and the consequences of block/unblock. It covers only the action list and one flag, leaving the agent to infer how to actually construct a working call.

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

Parameters2/5

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

Schema description coverage is only 38% and the description compensates for almost none of it, mentioning only the confirm flag for block. Parameters such as app, data (the create/update request body), limit, and offset are left entirely to the schema, with no explanation of payload shape or pagination semantics.

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 names the resource (测试账号 / IM test accounts) and enumerates each action verb (list, create, update, block, unblock), so an agent can map action enum values to intent without opening the schema. It does not explicitly contrast with siblings like yunxin_stats_users or yunxin_im_config_update, 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.

Usage Guidelines2/5

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

The only usage rule given is that block requires confirm: true. There is no guidance on when to pick this tool over sibling tools, no prerequisites (app id, auth), and no indication of which actions are safe vs irreversible.

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

yunxin_stats_appQuery app function usage statisticsC
Read-only

查询应用功能使用情况,以及 IM 安全通检测状态统计。

NameRequiredDescriptionDefault
appNo
includeYidunNo是否同时查询安全通状态,默认 true

TDQS

C2.9/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds that the call also returns IM security-check status, which is useful beyond the annotations. However, it doesn't describe what the statistics contain, time ranges, or response shape.

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?

A single compact sentence that is front-loaded with the primary purpose and adds the secondary security-check scope. No filler, though it is arguably too terse given the gaps it leaves.

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 2-parameter stats tool with no output schema and an undocumented app parameter, the definition should clarify the app identifier and what the statistics represent. The annotations cover safety, but the description does not fill the remaining informational gaps.

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?

Only 50% schema coverage: includeYidun is documented in the schema, but the app parameter has no description in either the schema or the description. The description's mention of '应用功能' hints at the app parameter but adds no format, type, or meaning beyond the field name, failing to compensate for the coverage gap.

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 names a specific verb (查询/query) and two concrete resources: application feature usage and IM security-check (安全通) detection status. This is clear enough to distinguish it from the config or auth siblings, though it doesn't explicitly contrast with close statistics siblings like yunxin_stats_im or yunxin_stats_users.

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?

There is no guidance on when to use this tool versus yunxin_stats_im or yunxin_stats_users, which cover adjacent statistics. The usage is only implied by the resource name, with no exclusions, prerequisites, or alternative routing.

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

yunxin_stats_imQuery IM message statisticsA
Read-only

IM 统计:按 tab/childTab 查询消息数、群组、聊天室、IM 存储、第三方回调、消息抄送、推送、安全通、圈组等数据。常用 tab=MESSAGE_COUNT,childTab=SINGLE_MESSAGE_COUNT/GROUP_MESSAGE_COUNT/CHATROOM_MESSAGE_COUNT。

NameRequiredDescriptionDefault
appNo
endNo结束日期,默认今天
tabYes统计页签,例如 MESSAGE_COUNT
startNo开始日期,默认最近 7 天
childTabNo子页签,例如 SINGLE_MESSAGE_COUNT
productNumberNo
yiDunBusinessIdNo

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe read operation. The description adds useful scope by naming the statistics categories and common tab values, but it does not describe return behavior, pagination, or any limits beyond what the schema and annotations provide.

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 compact and front-loaded, immediately stating the tool's purpose and then giving the most common tab/childTab values. Every sentence adds useful selection information without repetition.

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

Completeness3/5

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

For a 7-parameter statistics query with no output schema, the description covers the central required parameter and common childTab values but does not explain several optional parameters or what the result contains. It is minimally adequate but has clear gaps.

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

Parameters3/5

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

Schema description coverage is only 57%, so the description must carry more weight. It meaningfully explains tab and childTab with examples, but it leaves optional parameters such as app, productNumber, and yiDunBusinessId undocumented in both the description and schema.

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 states a specific verb and resource: query IM statistics by tab/childTab, and lists the data categories it covers. It is clear what the tool does, though it does not explicitly distinguish itself from sibling stats tools such as yunxin_stats_users or yunxin_stats_app.

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 gives useful common values like tab=MESSAGE_COUNT and childTab=SINGLE_MESSAGE_COUNT, but it does not explain when to use this tool versus the other stats siblings or when to prefer different tabs. Usage is implied rather than fully guided.

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

yunxin_stats_usersQuery IM user statisticsA
Read-only

用户统计:day 昨日概览、count 按日/小时趋势、province 省份分布、city 城市分布、realtime 实时在线。日期支持 YYYY-MM-DD 或毫秒时间戳;province/city 的日期为所选自然日。

NameRequiredDescriptionDefault
osNo操作系统过滤,例如 Android/iOS/PC/Web
appNo
endNo趋势结束日期
areaNoprovince 的区域,默认 GLOBAL
dateNoprovince/city 的统计日期,默认昨天
typeNo统计类型,默认 1
startNo趋势开始日期
actionYes
provinceNoaction=city 必填,省份名称
datacycleNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds date-format support and the natural-day caveat for province/city, but does not describe return shape, pagination, or rate limits; with annotations carrying the safety profile 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?

Two compact sentences with the action list front-loaded and a date caveat appended; no repetition 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?

For a 10-parameter read-only stats query, the description gives enough action-selection and date-format context to invoke correctly. The absence of an output schema means return details are not described, but the action labels convey what each query returns.

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 70%, and the description adds important meaning for the action enum (five modes) plus date format and province/city date semantics. Other parameters (os, app, type, area, datacycle) remain unexplained, so it improves on the schema without fully covering all ten parameters.

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

Purpose4/5

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

States the resource (用户统计) and enumerates five action modes (day/count/province/city/realtime), so the agent knows exactly what the tool reports. It does not name sibling stats tools (yunxin_stats_im/yunxin_stats_app) to differentiate, so it is clear but not fully sibling-differentiated.

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?

Maps each action to its statistical view (昨日概览, 按日/小时趋势, 省份分布, 城市分布, 实时在线), giving clear selection guidance within the tool. No when-not-to-use or sibling alternatives are stated.

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.

  1. 23 tool updatesv0.1.0
    • First observedyunxin_api_call
    • First observedyunxin_app_admin
    • First observedyunxin_app_callback
    • First observedyunxin_app_cert
    • First observedyunxin_app_custom_push
    • First observedyunxin_app_get
    • First observedyunxin_app_identity
    • First observedyunxin_app_ip_whitelist
    • First observedyunxin_app_keys
    • First observedyunxin_app_third_push
    • First observedyunxin_apps_list
    • First observedyunxin_auth_status
    • First observedyunxin_im_antispam
    • First observedyunxin_im_config_get
    • First observedyunxin_im_config_update
    • First observedyunxin_im_digital_human
    • First observedyunxin_im_lexicon
    • First observedyunxin_im_robot
    • First observedyunxin_im_storage_cleanup
    • First observedyunxin_im_user
    • First observedyunxin_stats_app
    • First observedyunxin_stats_im
    • First observedyunxin_stats_users

TDQS

A3.6/5.0

Scored across 23 tools

Disambiguation4/5

Most tools target distinct console resources (apps, keys, certificates, callbacks, IM users, lexicon, robots, stats, etc.) and the action subcommands inside each description clarify their scope. A few boundaries are slightly fuzzy, especially yunxin_app_get vs. yunxin_app_admin settings, yunxin_im_config_update callback fields vs. yunxin_app_callback, and the generic yunxin_api_call fallback overlapping all areas.

Naming Consistency4/5

The set uses a predictable snake_case pattern with clear domain prefixes such as yunxin_app_, yunxin_im_, and yunxin_stats_. There are minor deviations like singular yunxin_app_get versus plural yunxin_apps_list, and many tools are resource containers with internal action parameters rather than pure verb_noun names.

Tool Count4/5

At 23 tools this is a fairly heavy surface, but the server covers a broad Yunxin console domain with many distinct resource areas. Most tools consolidate multiple operations, so the count is reasonable rather than inflated, though it sits near the upper end of comfortable scoping.

Completeness5/5

The surface covers app discovery and administration, keys, identity, certificates, callbacks, IP whitelists, push configuration, IM configuration, test users, lexicon, content security, robots, digital humans, storage cleanup, and statistics. The yunxin_api_call tool also provides an explicit escape hatch for operations not yet wrapped, making the set robust and complete for the stated console-management purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers