Skip to main content
Glama
nuko777
by nuko777

bilibili-mcp

CI npm beta License: MIT

一个面向 DeepSeek Harness (DSH) 以及任意 MCP 客户端的 Bilibili MCP Server。

  • Node.js >= 20.10(推荐 24),零运行时依赖

  • stdio JSON-RPC 2.0,可直接接入 DSH、Claude Desktop、其他 MCP 客户端

  • 22 个只读工具 + 7 个写工具

  • 支持排行榜、热门、每周必看、视频信息/字幕/关键帧、评论、搜索、用户、关注、收藏、通知、私信、动态流

  • 写操作默认 dry-run,只有 confirm=true 才执行

  • 登录态由外部 skill/脚本注入,MCP 本身不读取浏览器、不解密 Cookie 数据库

本项目是个人向工具,不是 B 站官方 SDK。接口可能随 B 站调整而变化;使用前请阅读 安全说明。

npm beta

包名:@lobo777/bilibili-mcp(scoped,避免和已有的 bilibili-mcp 冲突)。

已发布 0.1.0-beta.2(npm dist-tag:beta):

npm install -g @lobo777/bilibili-mcp@beta
bili --help

bili-mcp 是 stdio MCP server,不要直接在交互终端里裸跑;调试用 bili CLI。

如果 npm registry 是镜像源(例如 npmmirror),安装时加:

npm install -g @lobo777/bilibili-mcp@beta --registry=https://registry.npmjs.org

也可以从 GitHub 安装最新 main:

npm install github:nuko777/bilibili-mcp
npx bili --help

不安装直接跑:

npx -y -p @lobo777/bilibili-mcp@beta bili --help

Related MCP server: bilibili-mcp

快速开始

直接从 npm 安装 beta:

npm install -g @lobo777/bilibili-mcp@beta
bili --help

如果 npm registry 是镜像源(例如 npmmirror),加 --registry=https://registry.npmjs.org。

从源码运行:

git clone https://github.com/nuko777/bilibili-mcp.git
cd bilibili-mcp
npm test          # 12 个离线测试,不需要登录
npm start         # 启动 stdio MCP Server

要求 Node.js >= 20.10(推荐 24)。可选安装 ffmpeg 并加入 PATH,或设置 BILI_FFMPEG,用于视频关键帧裁切。

接入 DSH

先全局安装 npm beta(见上),再在 DSH 的 profile patch 中加入:

- insert:
    - id: mcp-bilibili
      name: "@deepseek-ai/dsh-mcp-client"
      config:
        transport: stdio
        serverName: bilibili
        command: bili-mcp
        args: []
        toolCallTimeoutMs: 180000
        failOnStartupError: false

不想全局安装时,用 npx:

command: npx
args:
  - "-y"
  - "-p"
  - "@lobo777/bilibili-mcp@beta"
  - "bili-mcp"

Windows 上如果客户端无法解析 .cmd,用 bili-mcp.cmd 或上面的 npx 写法。

重启/重载 MCP 连接后,工具会以 mcp__bilibili__* 出现。

接入其他 MCP 客户端

任何支持 stdio MCP 的客户端都可以使用(全局安装后):

{
  "mcpServers": {
    "bilibili": {
      "command": "bili-mcp",
      "args": []
    }
  }
}

或使用 npx:

{
  "mcpServers": {
    "bilibili": {
      "command": "npx",
      "args": ["-y", "-p", "@lobo777/bilibili-mcp@beta", "bili-mcp"]
    }
  }
}

登录态

MCP 只消费登录态,不提取登录态。推荐流程:

  1. 浏览器登录 https://www.bilibili.com/。

  2. 使用仓库内的 bilibili-login skill:

    • 有 chrome-devtools MCP:从已登录页面的 nav 请求读取 Cookie;

    • 有 agent-browser:导出 Cookie 到本地文件;

    • 或由用户在自己的终端执行 node scripts/save-cookie.mjs --verify。

  3. 校验:

node scripts/save-cookie.mjs --verify   # stdin 输入 Cookie,随后 Ctrl-D / Ctrl-Z
node scripts/import-cookie-file.mjs ./cookies.txt --verify

Cookie 文件位置:

  • Windows: %APPDATA%\bilibili-mcp\cookies.json

  • macOS/Linux: ~/.config/bilibili-mcp/cookies.json

  • 可用 BILI_CONFIG_DIR 覆盖。

也支持环境变量:BILI_COOKIE(完整 Cookie 头,优先级最高),或 BILI_SESSDATA / BILI_JCT / BILI_DEDEUSERID / BILI_BUVID3 / BILI_BUVID4(与文件合并)。

运行中的 MCP 会检查 cookies.json 的 mtime,文件更新后自动重载;若客户端仍显示旧登录态,重连 MCP。

详细步骤见 skills/bilibili-login/SKILL.md。

工具

读取(22)

类别

工具

账号

auth_status

榜单

rank_list、popular_list、weekly_issues、weekly_list、precious_list

视频

video_info、video_transcript、video_frames、video_comments、related_videos

搜索/用户

search、user_info、user_videos

社交

list_followings、list_followers、list_favorites

消息

notifications、messages

动态/历史

dynamic_feed、history、toview

写入(7)

工具

说明

like_video

点赞/取消点赞

coin_video

投币 1–2 枚,可选同时点赞;不可撤销

favorite_video

收藏/取消收藏

post_comment

评论/回复,可选本地图片

post_dynamic

发布文本/图片动态

follow_user

关注/取关

send_message

发送私信

所有写工具默认返回 dry_run;只有传入 "confirm": true 才会真正执行。发布评论、动态、私信属于公开/对外行为。

示例

mcp__bilibili__rank_list {"limit": 10, "include_tags": true}
mcp__bilibili__video_info {"video": "BV1xx411c7mD"}
mcp__bilibili__video_transcript {"video": "BV1xx411c7mD"}
mcp__bilibili__video_frames {"video": "BV1xx411c7mD", "times": ["10%", "50%"], "max_images": 2}
mcp__bilibili__search {"keyword": "DeepSeek R1", "limit": 5}
mcp__bilibili__post_comment {"video": "BV1xx411c7mD", "message": "测试", "confirm": false}

分页约定:

  • dynamic_feed 优先使用 offset 游标;page 是便捷封装。

  • 其他列表使用 page / ps / limit,具体见工具 schema。

  • 标签补齐默认只补前 20 条;设置 include_tags=false 可减少请求。

配置

环境变量

作用

BILI_COOKIE

完整 Cookie 头;优先级最高

BILI_SESSDATA / BILI_JCT / BILI_DEDEUSERID / BILI_BUVID3 / BILI_BUVID4

单项 Cookie,与文件合并

BILI_CONFIG_DIR

Cookie 配置目录

BILI_CACHE_DIR

缓存目录(关键帧等)

BILI_FFMPEG

ffmpeg 可执行文件路径

BILI_TEST_BVID

可选:test:live / verify 使用的测试视频

BILI_LIVE_TEST / BILI_LIVE_WRITE

开启真实网络测试 / 可逆写测试

测试

npm test          # 12 个离线测试(WBI、Cookie、参数校验、MCP 协议等)
npm run test:live # 需要有效 Cookie;BILI_TEST_BVID 可选
npm run verify    # 只读端到端检查;未设置 BILI_TEST_BVID 时跳过视频项

真实写测试默认关闭,避免误操作:

BILI_LIVE_TEST=1 BILI_LIVE_WRITE=1 npm run test:live

Release

发布流程已配置在 .github/workflows/release.yml:

  1. 更新 package.json 版本号和下方 Changelog;

  2. 提交并打 tag:git tag vX.Y.Z && git push origin vX.Y.Z;

  3. GitHub Actions 会运行测试、npm pack、上传 tarball、创建 GitHub Release;

  4. 若仓库配置了 NPM_TOKEN secret,还会执行 npm publish --provenance(已发布的版本会跳过)。

NPM_TOKEN 建议使用 npm Granular Access Token:对 @lobo777/bilibili-mcp 有 Read and write 权限,并启用 Bypass 2FA。不要使用过期或已泄露的 token。

已发布:v0.1.0-beta.1(prerelease,含 npm tarball)。

后续计划

  • 弹幕:查看当前视频弹幕、发送弹幕(先 dry-run,确认后再发送)。

  • 删除:删除自己发布的评论、删除自己发布的动态。

  • 置顶动态:把指定动态置顶到个人空间,并支持取消置顶。

  • 以上功能需要新的 B 站端点和写权限校验,尚未在本版本实现;欢迎 issue 讨论优先级。

已知限制

  • 评论可能进入 state=17(审核中/仅自己可见);工具会返回 state/visible/visibility_unknown,但无法绕过审核。

  • videoshot 回退依赖 ffmpeg;未安装 ffmpeg 时返回整张雪碧图,不裁切单帧。

  • 未实现每日签到、银瓜子兑换、直播、付费/DRM 内容。

  • 弹幕查看/发送、删除评论/动态、置顶动态在后续计划中,当前版本尚未提供。

  • B 站接口可能随时调整;端点集中在 src/api/*,错误会带原始 code 便于更新。

  • 动态详情的旧接口已不可用,只保留动态流读取。

安全

  • 投币不可撤销;发布评论/动态/私信是公开行为。

  • image_paths 按设计允许读取本机任意可读图片路径(由调用方显式传入)。这是一个本地特权能力:不要在不可信提示/不可信 agent 下启用写工具。

  • 图片会做格式魔数、大小、文件名清洗和单次总量限制,但不限制目录。

  • Cookie 等价于账号密码;登录 skill 的 chrome-devtools 流程会让 Cookie 出现在工具输出中,注意会话记录。详见 docs/SECURITY.md。

Changelog

0.1.0-beta.2 — 2026-10-21

  • GitHub Actions Release workflow:打 tag 后自动测试、打包、创建 GitHub Release,并通过仓库 secret NPM_TOKEN 发布到 npm(已用 v0.1.0-beta.2 验证)

  • 新增置顶动态的后续计划

  • 补充 release 流程、npm beta 安装说明和版本化 Changelog

0.1.0-beta.1 — 2026-10-21

首个公开 beta 版本,npm dist-tag beta。

  • 29 个 MCP 工具:22 个只读 + 7 个写操作

  • 排行榜、综合热门、每周必看、入站必刷

  • 视频详情、AI 字幕、关键帧截图、评论、相关推荐

  • 搜索、用户信息/投稿、关注/粉丝、收藏夹、通知、私信、动态流、历史、稍后再看

  • 点赞、投币、收藏、评论/回复/带图评论、文本/带图动态、关注、私信

  • 写操作默认 dry-run,confirm=true 才执行;非 GET 请求默认不自动重试

  • WBI 签名与最终 query 使用同一编码器;支持带空格/特殊字符的搜索

  • 工具参数运行时校验;Cookie 文件 mtime 热重载;图片魔数/大小/文件名检查

  • 修复评论 state=17 的可见性提示、图片上传 multipart、CSRF 字段、分页和标签完整性等问题

Unreleased

  • 查看/发送弹幕

  • 删除自己的评论/动态

  • 置顶/取消置顶自己的动态

  • 以上功能尚未实现,欢迎 issue 讨论优先级

目录

src/
  server.mjs            stdio MCP 入口
  mcp/protocol.mjs      JSON-RPC 结果/工具描述
  tools/index.mjs       29 个工具 schema + 参数校验
  core/                 HTTP、WBI、Cookie、配置、错误、格式化
  api/                  榜单、视频、互动、关系、收藏、消息、动态
  media/                字幕、关键帧、播放流、ffmpeg
scripts/                Cookie 导入、只读验收
skills/                 DSH skills
docs/                   设计与安全说明
test/                   离线 / MCP / live 测试

License

MIT. 详见 LICENSE。

Available Tools

29 tools
auth_statusB站登录态与账号状态A
Read-only

读取当前 B 站登录态、昵称、UID、硬币、等级、未读通知/私信数。MCP 不提取登录态;未登录时请使用 bilibili-login skill 从浏览器注入 Cookie。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the non-obvious behavioral fact that login state is not obtained by this tool and that an authenticated cookie must already exist, which is exactly the kind of context annotations cannot express. It does not discuss failure modes or caching, keeping it 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.

Conciseness5/5

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

Two sentences, no filler, with the return-value enumeration front-loaded and the login caveat following. Every clause earns its place and there is no redundancy with the title or annotations.

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?

There is no output schema, so the description usefully enumerates the returned fields, and it explains the unauthenticated path via the login skill. For a zero-parameter read tool this is nearly complete; only minor detail (e.g., whether values are live vs cached, error shape when unauthenticated) is absent.

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 takes zero parameters, so the schema has nothing to misinterpret and the baseline for an argument-free tool applies. No parameter information is needed or missing.

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+resource (读取当前 B 站登录态) and enumerates exactly what it returns: 昵称、UID、硬币、等级、未读通知/私信数. That is far more specific than the title alone. It stops short of explicitly distinguishing itself from siblings like user_info or notifications, 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?

It gives an explicit precondition and redirect: when not logged in, use the bilibili-login skill to inject the Cookie from the browser, and it states that the MCP itself does not perform login. That is a real when/when-not signal with a named alternative. It does not, however, say when to prefer this over user_info or notifications for overlapping data.

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

coin_video投币A
Destructive

给视频投 1-2 枚硬币。默认只预览;confirm=true 才执行。硬币不可撤销,请先确认余额与数量。

ParametersJSON Schema
NameRequiredDescriptionDefault
videoYes视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...
confirmNo必须为 true 才执行
multiplyNo投币数量 1-2
select_likeNo是否同时点赞

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false. The description adds genuinely new behavioral context beyond those flags: a dry-run-by-default preview mode requiring confirm=true, and the irreversibility of coins with a warning to verify balance and quantity.

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 compact sentences front-load the action, then the preview/confirm rule, then the irreversibility warning. Every sentence carries operational weight with 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?

For a 4-parameter mutation tool with no output schema and full annotation coverage, the description supplies the key operational facts (dry-run default, confirm gate, irreversibility, balance check). Only the relationship to like_video/select_like is left unaddressed.

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 four parameters (video, confirm, multiply, select_like) are already documented in the schema. The description echoes the confirm gate and the 1-2 quantity without adding syntax or edge-case semantics, 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: '给视频投 1-2 枚硬币' clearly names the action (coin a video) and its scope (1-2 coins). It does not, however, differentiate itself from the related sibling like_video even though the select_like parameter overlaps with that tool's purpose.

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?

Gives a useful operating rule ('默认只预览;confirm=true 才执行') so the agent knows the default is a preview and execution is opt-in. But it offers no when-to-use-vs-alternative guidance, notably not routing the agent away from or toward like_video for the select_like case.

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

dynamic_feed关注动态流A
Read-only

读取关注动态流,包含作者、文本、图片、视频卡片与互动数。支持翻页:用返回的 next_offset 作为 offset 继续,或直接传 page;B 站每页 20 条。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo页码,从 1 开始;不传 offset 时生效
typeNo动态流类型all
offsetNo游标;优先于 page。把上一页返回的 next_offset 传进来

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint, so the description carries the burden of return-shape disclosure and does so: it names the fields returned (author, text, media cards, interaction counts) and states the 20-items-per-page cadence. It stops short of describing error or rate-limit 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?

Two tight sentences with the purpose front-loaded and pagination mechanics following; nearly every clause earns its place. Slightly dense packing of cursor semantics at the end.

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

Completeness4/5

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

For a read-only feed tool with annotations covering the safety profile and no output schema, the description supplies the return contents and pagination model an agent needs. It omits any statement that this is the authenticated user's following feed, which an agent would otherwise have to infer.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents page, type, and offset, including offset's precedence over page. The description restates that offset precedence and adds only the page-size fact (20 per page), so baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb (读取) and resource (关注动态流) and enumerates what the feed contains (author, text, images, video cards, interaction counts), which clearly separates it from sibling post_dynamic. It does not explicitly name an alternative tool, so it falls just short of 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 Guidelines3/5

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

The description explains how to paginate (reuse next_offset, or pass page) but never says when this tool should be chosen over notifications, search, or user_videos. Usage is implied by the resource name rather than stated as a when/when-not rule.

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

favorite_video收藏 / 取消收藏A
Destructive

把视频加入或移出指定收藏夹。默认只预览;confirm=true 才执行。不传 folder_id 时会返回可用收藏夹列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
videoYes视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...
confirmNo必须为 true 才执行
favoriteNotrue 收藏,false 取消
folder_idNo目标收藏夹 media_id

TDQS

A4.1/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 safety is partly covered. The description adds the critical non-annotation fact that the tool is a dry run by default and only mutates when confirm=true, which materially changes how an agent should call 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 clauses, front-loaded with the action, then the safety default, then the fallback behavior. No filler and nothing misplaced.

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 4-param destructive tool with no output schema, the description covers operation, safety default, and the folder-discovery path. It omits what a preview response actually contains, a minor gap given no output schema is declared.

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 the parameters are documented structurally. The description still adds meaning beyond it, explaining the conditional behavior of folder_id (omission returns the folder list) and the confirm gating, which the schema does not state.

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 concrete verb and resource (add/remove a video to/from a favorite folder) plus the toggle semantics, so an agent can tell it apart from like_video or coin_video in the sibling set. It does not, however, name any sibling explicitly, which keeps 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 Guidelines4/5

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

Gives clear invocation context that most tool descriptions omit: the default is a preview only, work happens only with confirm=true, and omitting folder_id yields the list of available folders. It stops short of saying when to prefer this over like_video/coin_video or when not to use it.

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

follow_user关注 / 取关A
Destructive

关注或取关某个用户。默认只预览;confirm=true 才执行。可逆。

ParametersJSON Schema
NameRequiredDescriptionDefault
midYes目标用户 UID
followNotrue 关注,false 取关
confirmNo必须为 true 才执行

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false. The description adds two things annotations cannot convey: the default is a non-mutating preview, and the action is reversible. It omits auth requirements, rate limits, and what the preview actually returns, so not 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.

Conciseness5/5

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

Three short clauses, zero filler, with the action and its default-preview constraint front-loaded. Every sentence carries distinct information (action, gating, reversibility).

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 3-param mutation tool with no output schema, the description covers the critical facts: what it does, that it is preview-only by default, and that it is reversible. The remaining gap is the shape/content of the preview response, which the agent would need to interpret before confirming.

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 each of the 3 params is documented in-schema, so the baseline is 3. The prose reinforces the confirm gating semantics but adds no format or syntax detail beyond what the schema already states.

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 + resource (follow/unfollow a user), which is distinct from the read-only siblings list_followings/list_followers. However, it never names an alternative or explicitly differentiates itself from the many write siblings (like_video, coin_video, send_message), 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 Guidelines4/5

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

Gives the operative usage rule: the call is a preview by default and only mutates with confirm=true. That tells the agent when the tool actually does something, but there is no guidance on choosing between follow vs unfollow paths beyond the parameter, and no exclusions or alternative tools named.

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

history观看历史B
Read-only

读取当前账号的观看历史(扩展能力)。

ParametersJSON Schema
NameRequiredDescriptionDefault
psNo返回条数 1-30

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that results are scoped to the currently authenticated account, which is genuinely useful behavioral context. It says nothing about ordering, pagination beyond the ps cap, or return 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?

One short front-loaded sentence with no redundancy. The parenthetical "(扩展能力)" is the only wasted token and it conveys no actionable 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?

For a simple read-only listing tool with one optional parameter this is close to adequate, but there is no output schema and the description never indicates what a history entry contains or how results are ordered/limited across pages. An agent can call it, but cannot predict the response.

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

Parameters3/5

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

Schema description coverage is 100%, with ps fully documented (1-30, default 20, bounds in schema), so the schema does the heavy lifting per the baseline rule. The description adds no additional meaning about what ps controls or whether results are ordered newest-first.

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+resource (读取观看历史) scoped to the current account, so an agent can tell it apart from write-side siblings like like_video or favorite_video. The trailing "(扩展能力)" is vague filler that adds no distinguishing information, and nearby siblings such as toview (watch-later) are not explicitly contrasted.

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 statement of when to use this tool versus alternatives; the closest sibling, toview, stores a separate watch-later list and is never mentioned. The agent must infer from the name that this returns already-watched content rather than a saved list.

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

like_video点赞 / 取消点赞A
Destructive

点赞或取消点赞视频。默认只预览,不执行;confirm=true 才真正发送请求。可逆。

ParametersJSON Schema
NameRequiredDescriptionDefault
likeNotrue 点赞,false 取消
videoYes视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...
confirmNo必须为 true 才执行

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly=false, destructive=true, idempotent=false, openWorld=true, so the safety profile is partly covered. The description still adds real value the annotations cannot: a dry-run-by-default two-step commit protocol (confirm=true) and a reversibility claim. The word 可逆 sits in tension with destructiveHint=true, which tempers the score but is not a flat polarity flip.

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 front-loaded clauses: action first, then the safety workflow, then reversibility. Nothing is padded, though the terse final claim 可逆 does little work and slightly conflicts with the destructive annotation.

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 3-parameter mutation tool with no output schema, the description covers the action, the confirm gate, and reversibility — enough to call it correctly. It does not mention what the preview mode returns or the auth prerequisite, which a preview/commit tool would ideally state.

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%: like (true=点赞/false=取消), video (BV/av/link formats) and confirm (must be true to execute) are all fully documented in the schema. The description restates the confirm semantics for emphasis but adds no format, default, or edge-case detail beyond what the schema already provides, 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?

The description names a specific verb+resource pair (点赞/取消点赞视频), so an agent immediately knows this toggles a like on a video rather than adding a coin or favorite. It stops short of explicitly differentiating itself from siblings like coin_video or favorite_video, which are the most confusable alternatives.

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 gives workflow guidance — default is preview-only, confirm=true actually sends the request — which helps the agent pick the right call pattern. But it never says when to choose this tool over coin_video/favorite_video, nor warns that it requires authentication first, so usage context is only implied.

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

list_favorites收藏夹与收藏内容A
Read-only

不传 folder_id 时列出收藏夹;传 folder_id 时读取该收藏夹的视频内容(支持分页)。

ParametersJSON Schema
NameRequiredDescriptionDefault
psNo每页 1-40
pageNo页码
orderNo排序:mtime / view / pubtimemtime
keywordNo收藏夹内搜索关键词
folder_idNo收藏夹 media_id;不传则只列收藏夹

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and scope are covered structurally. The description adds the dual-mode output behavior and pagination support, which is useful, but says nothing about authentication requirements (auth_status exists as a sibling) or what the returned items look like.

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

Conciseness5/5

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

A single sentence with zero padding, front-loading the no-folder_id case before the folder_id case so the default behavior is read first.

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-param read-only tool the description covers the two operating modes and pagination, which is what an agent needs to pick the right call. It omits any sense of the return shape, but with no output schema and annotation-covered safety this is a minor gap.

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 ps, page, order, and keyword are already documented in the schema. The description only restates the folder_id semantics (parameter-conditional mode) that the schema itself already explains; it adds no syntax, format, or default details beyond that.

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 (list/read) and two concrete resources (收藏夹 folders vs 收藏夹内的视频), and its behavior is conditional on folder_id. It is clearly distinguishable from siblings such as favorite_video (a write) or search, though it does not explicitly name any sibling.

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 states the exact condition that selects each mode: without folder_id you get folders, with folder_id you get that folder's videos. This is real when-to-use guidance, but there is no explicit exclusion or pointer to an alternative tool.

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

list_followers粉丝列表(扩展)B
Read-only

获取当前账号(或指定用户)的粉丝列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
psNo每页 1-50
midNo用户 UID;不传则使用当前登录账号
pageNo页码

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety and data-scope profile is covered. The description adds no further behavioral context such as pagination behavior, rate limits, or what happens when the target user is private or inaccessible.

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 front-loaded sentence with zero filler, well sized for a simple list tool. It is efficient, though the extreme brevity is arguably under-specification rather than purposeful conciseness.

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 low-complexity, zero-required-param list tool with full schema coverage and read-only annotations, the description is minimally adequate. It omits return shape and pagination expectations, and there is no output schema to compensate.

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 ps ('每页 1-50'), mid ('用户 UID'), and page ('页码') are fully documented in the schema. The description only loosely echoes the mid parameter ('指定用户') and adds no format or constraint details beyond it, 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?

The description gives a specific verb+resource ('获取...粉丝列表') with a clear scope modifier ('当前账号或指定用户'). It distinguishes itself from the sibling list_followings implicitly through the resource name, but never explicitly names or contrasts the two, 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 Guidelines2/5

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

There is no when-to-use guidance and no mention of alternatives such as list_followings. The only usage hint ('或指定用户') maps to the schema's mid parameter rather than routing the agent between tools.

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

list_followings关注列表A
Read-only

获取当前账号(或指定用户)的关注列表,支持分页。

ParametersJSON Schema
NameRequiredDescriptionDefault
psNo每页 1-50
midNo用户 UID;不传则使用当前登录账号
pageNo页码

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered, and the description correctly reinforces that this is a read/list operation. It adds the default-account fallback and pagination behavior, but says nothing about result ordering, page-size ceilings, or how paging terminates beyond what the schema already encodes.

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 short sentence that front-loads the resource and scope and appends the pagination note. No filler, no repetition of the title.

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 expected to convey more about what comes back, yet it only mentions pagination. For a three-parameter list tool the essentials (who, how many, which page) are covered, but the sibling-relationship distinction and return shape remain unaddressed.

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 ps, mid, and page are already documented in the schema; the baseline is 3. The description reinforces the mid semantics ('不传则使用当前登录账号') and pagination, but adds no format, ordering, or boundary detail beyond the 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?

States a specific verb and resource ('获取...关注列表') plus scope ('当前账号(或指定用户)') and pagination support, so the operation is unambiguous. It does not explicitly distinguish itself from the sibling list_followers, which retrieves the reverse relationship, so an agent must infer '关注' vs '粉丝' from the name alone.

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?

Implied usage: retrieve followings for the logged-in account by default, or for a given user via mid, with pagination. No explicit when-to-use or when-not-to-use guidance, and the near-identical sibling list_followers is never named as the alternative.

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

messages私信会话 / 聊天记录A
Read-only

不传 talker_id 时列出私信会话;传 talker_id 时读取与该用户的聊天记录(按时间升序)。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo会话数或消息数 1-100
talker_idNo会话对方的 UID;不传则列出会话

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the ascending-time ordering and the mode-dependent return shape, which are useful, but says nothing about pagination, cursors, rate limits, or how limit behaves per mode.

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

Conciseness5/5

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

A single sentence with two balanced clauses, zero redundancy, and the conditional trigger front-loaded so an agent can branch immediately without reading the schema.

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 two-parameter read tool with full schema coverage and safety annotations, the definition covers what it needs: both modes and the ordering of results. It stops short of describing pagination or the fields present in each return shape, which matters slightly since there is no output 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 schema already documents both parameters, including talker_id's '不传则列出会话' semantics. The description largely restates that behavior; the only extra signal is the ascending order of the message mode, so baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb+resource pair (list DM conversations / read chat history) and makes the two operating modes explicit via the talker_id condition. It is clear but never distinguishes itself from the sibling write tool send_message, which sits right next to it in the toolset.

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 gives clear, actionable context: use without talker_id to list conversations, with talker_id to read that user's history. No exclusions, prerequisites, or alternative-tool routing are offered, so it falls just short of the 5 bar.

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

notifications回复 / @ / 点赞通知A
Read-only

读取 B 站消息中心通知。kind=unread 返回未读数;reply 返回“回复我的”;at 返回“@ 我的”;like 返回“收到的赞”。

ParametersJSON Schema
NameRequiredDescriptionDefault
psNo每页 1-20
kindNo通知类型unread
pageNo页码(reply/at/like 有效)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is carried structurally. The description adds one useful behavioral distinction — kind=unread returns a count while the other kinds return lists — but says nothing about pagination behavior, auth requirements, or result volume.

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

Conciseness5/5

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

One sentence plus a compact kind-to-return mapping, front-loaded with the core purpose. Every clause carries information; nothing is redundant.

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 sketches what the unread and list kinds return, and 100% schema coverage handles parameters, so an agent can call it correctly. It stops short of describing the shape of returned notification items, which would have made it fully self-contained.

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 description coverage is 100%, so the baseline is 3; the description goes beyond the schema's terse '通知类型' by explaining the return meaning of each enum value, which materially helps the agent choose a kind. Pagination parameters (ps/page) are left to the 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?

It states a specific verb+resource (读取 B 站消息中心通知) and enumerates what each kind returns, so an agent understands the tool's scope. It does not explicitly distinguish itself from the sibling 'messages' tool, which could plausibly overlap, 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 Guidelines4/5

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

Each kind value is mapped to its meaning (unread=未读数, reply=回复我的, at=@我的, like=收到的赞), which effectively tells the agent which selector to pick. There is no explicit when-not or named alternative, so it is strong context rather than full routing guidance.

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

post_comment发表评论 / 回复A
Destructive

在视频或动态下发表评论,可选本地图片;提供 root/parent 可回复某条评论。默认只预览;confirm=true 才发布。评论是公开内容。

ParametersJSON Schema
NameRequiredDescriptionDefault
rootNo根评论 rpid(回复二级评论时)
videoNo视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...
parentNo父评论 rpid(回复某条评论时)
confirmNo必须为 true 才发布
messageYes评论内容,最多 1000 字
dynamic_idNo动态 ID;与 video 二选一
image_pathsNo本地图片路径数组,最多 9 张(jpg/png/gif)

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/openWorldHint=true/non-idempotent, and the description adds real behavioral context beyond them: a preview-by-default flow gated behind confirm=true, and the fact that comments become public content. It doesn't describe auth requirements or return format, but materially clarifies the write 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?

Compact, front-loaded Chinese prose that states the primary action first, then image/ reply options, then the crucial publish gate. 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?

For a 7-parameter, 1-required mutation tool with no output schema, the description supplies the critical context (preview default, confirm gate, public visibility, reply semantics). Auth/permission specifics are the only notable omission, mostly implied by openWorldHint.

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 100%, so the schema already documents all seven parameters (root, parent, video, dynamic_id, confirm, message, image_paths). The description mainly restates root/parent usage and the confirm gate; it adds only marginal relational meaning over the schema, so baseline 3 is appropriate.

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

Purpose4/5

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

The description names a specific verb (发表评论) and resource (video/dynamic comment), and notes reply capability via root/parent. It is clearly a write/create tool, not a read tool like video_comments, though it never names a sibling tool explicitly to differentiate itself.

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 gives concrete usage conditions: default is preview-only and confirm=true is required to actually publish, plus root/parent to reply. That is clear operational guidance, but it does not contrast against alternatives (e.g., post_dynamic or send_message) or state when a plain comment is preferable.

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

post_dynamic发布动态A
Destructive

发布一条动态(文本,可选本地图片路径)。默认只预览;confirm=true 才发布。动态是公开内容。

ParametersJSON Schema
NameRequiredDescriptionDefault
textNo动态正文,最多 2000 字
confirmNo必须为 true 才发布
image_pathsNo本地图片路径数组,最多 9 张(jpg/png/gif)

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare this is a non-readOnly, destructive, open-world, non-idempotent write. The description adds genuinely new traits: the default preview/dry-run behavior and the public visibility of the content, which the annotations do not convey. Return format is not described but that is minor here.

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 purpose and immediately followed by the critical preview-vs-publish distinction. No filler or redundancy.

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

Completeness4/5

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

With no output schema and safety already handled by annotations, the description supplies the two things an agent most needs: the confirm gate and the public nature of the content. Only the lack of any return/preview-result explanation keeps it from being 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 the schema already documents text length, confirm semantics, and image count/format. The description echoes the same concepts (text, optional local image paths, confirm) without adding syntax or edge-case detail beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource — publish a dynamic with text and optional local image paths — and clarifies that the resulting content is public. Clear enough that an agent understands the action, though it does not explicitly distinguish itself from nearby posting siblings like post_comment or send_message.

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?

Explains the core workflow: by default only a preview is produced, and confirm=true is required to actually publish. This gives clear operational context, but there is no guidance on when to prefer this tool over alternatives or what prerequisites (auth, account) apply.

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

precious_list入站必刷C
Read-only

获取 B 站“入站必刷”列表(扩展能力)。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返回条数 1-100
tag_limitNo最多补标签条数
include_tagsNo是否补齐标签

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, so safety and externality are covered. The description adds only a vague parenthetical “(扩展能力)”, without disclosing return format, pagination, or any additional behavioral context.

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, front-loaded sentence with no wasted clauses. The parenthetical “(扩展能力)” adds little value but does not bloat the text.

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-retrieval tool with complete parameter documentation and read-only annotations, the description is minimally sufficient. However, it omits what the returned list contains and any pagination behavior, and no output schema exists to fill that gap.

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, tag_limit, include_tags) are already documented in the schema. The description adds no parameter meaning beyond what the schema provides, which is the baseline for high schema coverage.

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 (B站“入站必刷”列表), which clearly identifies the tool's function. It does not explicitly contrast with sibling list tools like popular_list or rank_list, but the named list is distinct enough for an agent to distinguish it.

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 alternatives, nor any prerequisites or exclusions. The description only says what it retrieves, leaving the agent to infer usage from the resource name alone.

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

rank_listB站排行榜A
Read-only

获取 B 站排行榜(对应 /v/popular/rank/all)。返回标题、BV 号、链接、UP 主、分区、统计与标签。标签需逐条补齐,默认只补前 20 条。

ParametersJSON Schema
NameRequiredDescriptionDefault
ridNo分区 ID;0 为全站
typeNo榜单类型all
limitNo返回条数 1-100
tag_limitNo最多为多少条视频补齐标签
include_tagsNo是否补齐标签(默认 true)

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds useful behavioral context: it lists the returned fields and discloses that tags are completed item by item with only the first 20 filled by default, which signals extra latency/work when tag_limit or include_tags are changed.

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 compact sentences: purpose plus endpoint, return fields, then the tag-completion caveat. Every sentence carries information, and the operationally important caveat is front-loaded enough to be noticed.

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 five-parameter read tool with no output schema, the description supplies the return field list and warns about per-item tag fetching, which is sufficient to invoke it correctly. It stops short of explaining the meaning of the type enum or rid values, and does not relate this endpoint to the other ranking tools.

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 description coverage is 100%, so 3 is the baseline. The description adds real meaning to tag_limit/include_tags by explaining that tag completion is done per item and defaults to the first 20, clarifying the cost implication of raising those parameters beyond what the schema states.

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 ('获取 B 站排行榜') and even gives the backing endpoint (/v/popular/rank/all). However, it does not distinguish this tool from the overlapping sibling list tools such as popular_list, weekly_list, and precious_list, so an agent must infer the difference.

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 when-to-use, when-not-to-use, or alternative guidance is given. With four similar ranking/list siblings in the tool set, the absence of routing guidance leaves the agent to guess which endpoint to call.

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

send_message发送私信A
Destructive

给指定用户发送私信。默认只预览;confirm=true 才发送。私信会立即送达对方。

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes私信内容,最多 2000 字节
confirmNo必须为 true 才发送
receiver_idYes接收者 UID

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=false, and the description adds the crucial non-obvious behavior that the call is a dry-run unless confirm=true, plus that delivery is immediate. It does not cover retraction, rate limits, or duplicate-send behavior, but it goes meaningfully 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?

Three short sentences, front-loaded with the action, then the preview/send rule, then the delivery consequence. No filler or repetition.

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 mutation tool with no output schema, the definition covers the action, the safety gate, and the delivery effect, which is what an agent needs to call it correctly. Minor gaps remain around failure modes and rate limits, but nothing essential is missing.

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 100%, so receiver_id, text, and confirm are already documented in the schema. The description restates the confirm-to-send semantics and adds nothing about formats or constraints beyond the schema, so baseline 3 applies.

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 verb and resource ('给指定用户发送私信') plus the recipient scope, which cleanly separates it from read-side siblings like messages and from content-posting siblings like post_comment or post_dynamic.

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

Usage Guidelines4/5

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

Explicitly defines the operating mode: default is preview only, and confirm=true is required to actually send. That is clear when-to-use guidance for the send path, though it never names an alternative tool or says when not to message a user.

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

toview稍后再看(扩展)B
Read-only

读取当前账号的“稍后再看”列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
psNo返回条数 1-30

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the list belongs to the current account, implying authentication context, but it does not describe pagination behavior, rate limits, or failure modes.

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 no filler. It is appropriately sized for a simple read tool.

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

Completeness4/5

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

For a read-only tool with one optional, fully documented parameter and annotations covering safety, the description is nearly sufficient. It does omit any note about pagination behavior or the returned list structure, which would help since there is no output 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 only parameter 'ps' is documented in the schema as a 1-30 return count. The description adds no parameter meaning beyond the schema, so the 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?

Description states a specific verb ('读取') and resource ('当前账号的稍后再看列表'), and scoping to the current account helps distinguish it from general list siblings. It does not explicitly name an alternative tool, so it is clear but not fully differentiated.

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 when-to-use condition, prerequisites, or alternative tool is mentioned. The agent must infer that this is the watch-later list rather than history, favorites, or another list, so there is essentially no usage guidance.

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

user_info用户信息B
Read-only

获取 UP 主/用户的名片信息、等级、粉丝数、关注数。

ParametersJSON Schema
NameRequiredDescriptionDefault
midYes用户 UID

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds value by naming the returned fields (card info, level, follower count, following count), which matters since there is no output schema. It still omits error behavior for invalid/private UIDs.

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 with the action and the returned fields front-loaded. No wasted text, though it is terse enough that it provides no structure beyond the one clause.

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 one-parameter read tool with no output schema, the description supplies the key information an agent needs: what entity it targets and what fields come back. Only routing guidance relative to the many sibling tools is absent.

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 single 'mid' parameter is documented as '用户 UID' in the schema. The description adds no syntax, format, or sourcing detail for mid, so the baseline of 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+resource ('获取...用户的名片信息') and enumerates the data returned (等级、粉丝数、关注数), so an agent knows it retrieves a user profile. It does not explicitly contrast itself with neighbours like list_followers/list_followings, but the resource focus on a single user's card is clear.

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 versus list_followers, list_followings, user_videos or other user-related siblings. Usage must be inferred entirely from the one-line purpose.

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

user_videos用户投稿C
Read-only

获取指定 UP 主的投稿视频列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
midYes用户 UID
pageNo页码
limitNo每页 1-50
orderNo排序:pubdate / click / stowpubdate

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond purpose: no note on pagination behavior, result ordering, or what happens for a nonexistent/empty account.

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 front-loaded sentence with no wasted words. It is efficient, though its brevity is closer to under-specification than to richness.

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 no output schema and full schema coverage, the description is minimally viable. It omits usage context and edge-case behavior, but the structured fields carry the invocation details.

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 mid, page, limit, and order are all fully documented in the schema. The description adds no parameter detail beyond restating that a user is specified, so the 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?

The description states a specific verb and resource ('获取指定 UP 主的投稿视频列表'), and '投稿' (uploaded/submitted) meaningfully separates it from siblings like list_favorites or history. However, it never names an alternative tool, so an agent must infer the boundary itself.

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 explicit when-to-use guidance, no exclusions, and no mention of sibling tools such as user_info or video_info. The only implied guidance is that a specific user ('指定 UP 主') must be targeted, which is minimal.

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

video_comments视频评论A
Read-only

读取视频评论区(热门或按时间),包含评论内容、作者、点赞数与部分回复。

ParametersJSON Schema
NameRequiredDescriptionDefault
psNo每页 1-49
pageNo页码
sortNo排序hot
videoYes视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description usefully enumerates returned fields (comment content, author, like count, partial replies), but says nothing about rate limits, pagination behavior, or reply completeness beyond '部分'.

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 with zero redundancy, and the key capability (reading the comment section) is front-loaded. It packs scope and return fields efficiently, though brevity leaves gaps elsewhere.

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

Completeness4/5

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

For a read-only tool with no output schema, the description partially compensates by naming what is returned (content, author, like count, partial replies). Combined with annotations and full schema coverage, this is close to sufficient, missing only reply-truncation/rate-limit detail.

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 ps, page, sort, and video are fully documented in the schema. The description only loosely echoes the sort enum ('热门或按时间') without adding syntax or format detail beyond what the schema already provides, 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 (读取/read) and resource (视频评论区/video comment section) plus the sort modes and returned fields. The read verb implicitly distinguishes it from the write sibling post_comment, though it never names that sibling explicitly.

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 mentions the two modes (热门 hot / 按时间 by time) but gives no guidance on when to prefer one, no exclusions, and no routing away from alternatives like post_comment. Usage is only implied.

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

video_frames视频关键帧截图A
Read-only

截取视频关键帧并作为图片返回。默认取 15%/50%/85% 三帧;可传秒数、时间(1:23)或百分比。DASH 抽帧失败时回退 B 站缩略图雪碧图;无 ffmpeg 时返回整张雪碧图。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo分P 序号
countNo默认取帧数 1-6
timesNo时间点数组,例如 ["10%","50%","1:23"] 或 [12, 60];不传则按 count 均匀取点
videoYes视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...
widthNo输出宽度 320-1920
fallbackNo抽帧失败时回退 videoshot 缩略图
max_heightNo选流最大高度
max_imagesNo随结果返回的图片数量 1-4

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint. The description adds real behavioral detail beyond that: the default sampling positions, the DASH-extraction fallback to Bilibili's thumbnail sprite, and the no-ffmpeg behavior of returning the entire sprite. These degradation paths are exactly the failure-mode information an agent cannot get from 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?

Three tight sentences: purpose first, then defaults/input formats, then fallback behavior. Each sentence carries distinct information and nothing is padding.

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 an 8-parameter extraction tool with no output schema, the description covers the return medium, default sampling, accepted inputs, and fallback modes well. It does not detail issues like rate limits or oversized multi-image returns, leaving a small gap, but it is largely self-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?

Schema coverage is 100%, so the baseline is 3. The description still adds value by clarifying the accepted `times` syntax (seconds, time like 1:23, or percentage) and pinning the default frame positions, which reinforces and clarifies the schema entries rather than merely repeating them.

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 verb + resource ('截取视频关键帧并作为图片返回') and the return medium (images) that distinguishes it from text-returning siblings like video_transcript. An agent can tell what it produces 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 Guidelines3/5

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

The description explains how to use the tool (default 15%/50%/85%, accepted time formats, fallback behavior) but never says when to prefer it over an alternative such as video_transcript. Usage is implied rather than contrasted, so it is only minimum-viable on this dimension.

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

video_info视频详情B
Read-only

获取视频详情:标题、简介、封面、UP 主、统计、分P、标签、可用字幕语言。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo分P 序号,从 1 开始
videoYes视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...
include_subtitlesNo是否查询可用字幕语言(默认 true)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, setting a lower bar. The description adds useful context that the tool returns multiple metadata categories including available subtitle languages, but omits behavioral details like authentication requirements, rate limits, or pagination behavior.

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 that states the purpose and enumerates returned fields without any wasted words. The structure is efficient and immediately informative.

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 metadata tool, the description is nearly complete: it enumerates the returned fields (compensating for the lack of an output schema) and annotations cover safety. Minor gaps remain around pagination behavior and how multi-part pages are handled.

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 fully documented in the schema. The description adds no parameter-specific syntax, defaults, or constraints beyond what the schema provides, making the baseline 3 appropriate.

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

Purpose4/5

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

States a specific verb and resource: '获取视频详情', and enumerates the returned metadata fields (title, description, cover, uploader, statistics, multi-part, tags, subtitle languages). This clearly distinguishes it from siblings like video_transcript or video_comments, though it does not explicitly name alternatives.

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 explicit when-to-use guidance, prerequisites, or alternatives are provided. The only implied usage is the obvious one of fetching video details, but nothing helps an agent choose this over video_transcript, video_frames, or video_comments.

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

video_transcript视频字幕/转写文本A
Read-only

读取视频字幕全文与时间分段。B 站 AI 字幕通常可用;无字幕时返回可用语言与改用 video_frames 的提示。支持多语言字幕。

ParametersJSON Schema
NameRequiredDescriptionDefault
langNo首选字幕语言,例如 ai-zh、zh-CN、ai-en;不传则自动选择中文优先
pageNo分P 序号,从 1 开始
videoYes视频标识:BV 号、av 号或视频链接,例如 BV1xx411c7mD / https://www.bilibili.com/video/BV...

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: B站 AI 字幕通常可用 and the no-subtitle path returns available languages plus a hint to switch tools.

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 what the tool returns, then the availability caveat and the fallback. No filler and every sentence carries 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?

With no output schema, the description compensates by stating the return shape (full text plus time segments) and the degraded case (available languages). Nothing critical is missing for a read-only three-parameter tool.

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

Parameters3/5

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

Schema description coverage is 100%, so lang, page and video are already fully documented in the schema. The description only adds that multiple subtitle languages are supported, which loosely maps to lang but adds no syntax or format detail beyond the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 读取视频字幕全文与时间分段 (read the full video transcript and its time segments). It also differentiates from the relevant sibling by naming video_frames as the fallback when no subtitles exist.

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 gives a clear condition for use and an explicit alternative: when subtitles are unavailable the tool points the agent to video_frames. It does not spell out when to prefer this over video_info or search, but the primary routing decision is covered.

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

weekly_issues每周必看期数B
Read-only

列出 B 站每周必看的期数、主题与链接(对应 /v/popular/weekly)。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返回期数 1-50

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered; the description adds the endpoint mapping and confirms it is a listing of items rather than a mutation. It adds no detail on pagination, result count behavior, or data freshness beyond the structured fields.

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

Conciseness4/5

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

A single front-loaded sentence that states the resource, the returned fields, and the upstream endpoint with no filler. It is appropriately sized for a one-parameter read tool, though it stops short of anything else an agent might need.

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 list tool with full schema coverage, complete annotations, and no output schema, the description covers what is returned and how it maps to the source. The missing piece is any distinction from the similarly named sibling weekly_list.

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 single limit parameter is documented there (range 1-50, default 12). The description says nothing about the limit, so baseline 3 applies — it neither compensates nor adds value beyond the 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?

States a specific verb (列出) and resource (B 站每周必看的期数) and even names the returned fields (期数、主题、链接) plus the backing endpoint /v/popular/weekly. It does not, however, distinguish itself from the sibling tool weekly_list, which sounds highly overlapping.

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 when-to-use guidance, no statement of when this should be preferred over weekly_list/rank_list/popular_list, and no prerequisites or rate-limit caveats. The agent must infer selection 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.

weekly_list每周必看单期A
Read-only

获取指定期数的每周必看视频列表(对应 /v/popular/weekly?num=395)。不传 number 时默认最新一期。返回标题、链接、标签等。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo返回条数 1-100
numberNo期数,例如 395
tag_limitNo最多补标签条数
include_tagsNo是否补齐标签(默认 true)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the default-to-latest behavior and names the return fields (title, link, tags), which is useful since there is no output schema, but says nothing about paging, rate limits, or auth requirements.

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, front-loaded sentences: what it fetches, the default-argument behavior, then the payload fields. No filler and nothing important buried at the end.

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 list tool with four all-optional parameters and full schema coverage, the description covers purpose, default behavior, and return fields. With no output schema, the mention of returned title/link/tags is the needed compensation; only cross-tool routing is missing.

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 the baseline is 3, but the description adds meaning the schema lacks: 'number' has no default in the schema, and the description supplies the important semantic that no number means the latest issue. It does not cover limit, tag_limit, or include_tags, but those are documented in the 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+resource ('获取指定期数的每周必看视频列表') and pins it to an endpoint, so the agent knows exactly what is retrieved. It also implies single-issue scope ('单期'), which separates it from weekly_issues, though the sibling is never named explicitly.

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 one genuinely useful usage note is that omitting 'number' returns the latest issue, which tells the agent how to call it with zero arguments. However, there is no explicit guidance on when to pick this tool over weekly_issues, popular_list, precious_list, or rank_list — the agent has to infer the split.

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. 29 tool updatesv0.1.0-beta.2
    • First observedauth_status
    • First observedcoin_video
    • First observeddynamic_feed
    • First observedfavorite_video
    • First observedfollow_user
    • First observedhistory
    • First observedlike_video
    • First observedlist_favorites
    • First observedlist_followers
    • First observedlist_followings
    • First observedmessages
    • First observednotifications
    • First observedpopular_list
    • First observedpost_comment
    • First observedpost_dynamic
    • First observedprecious_list
    • First observedrank_list
    • First observedrelated_videos
    • First observedsearch
    • First observedsend_message
    • First observedtoview
    • First observeduser_info
    • First observeduser_videos
    • First observedvideo_comments
    • First observedvideo_frames
    • First observedvideo_info
    • First observedvideo_transcript
    • First observedweekly_issues
    • First observedweekly_list

TDQS

B3.4/5.0

Scored across 29 tools

Disambiguation4/5

Most tools target clearly different resources+actions: reads (video_info, user_info, video_comments), news sources (rank_list, popular_list, weekly_list, precious_list), and writes (like_video, coin_video, post_comment, send_message). The main risk is weekly_issues vs weekly_list, whose boundaries (episode metadata vs videos of an episode) could confuse an agent, plus the cluster of distinct-but-similar list sources.

Naming Consistency3/5

Everything is snake_case, but conventions are mixed: some names are verb_noun (list_followings, list_followers, list_favorites, post_comment, follow_user), while many use noun+list or bare nouns (rank_list, popular_list, weekly_list, precious_list, notifications, messages, history, toview). It stays readable but is not a predictable single pattern.

Tool Count3/5

29 tools is on the heavy side for any single server, but the B站 domain is genuinely broad (feeds, search, users, comments, frames, and seven distinct write actions). Each tool maps to a real endpoint, so it is defensible though borderline.

Completeness4/5

Coverage is strong across the video-lifecycle: discover (search/rank/popular/weekly), inspect (video_info, video_frames, video_transcript, video_comments, user_info), and act (like/coin/favorite/comment/dynamic/follow/message) with a preview-confirm safety pattern. Minor gaps remain (no thread-level comment retrieval beyond video_comments, no edit/delete of own content).

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers