Skip to main content
Glama
liu-xindi

polylens-bilibili

by liu-xindi

get_comment_replies

Read-only

Fetch secondary replies for selected main comments on a Bilibili video, ordered by time, with pagination and jq filtering; login required.

Instructions

二级评论按时间正序排列。需要登录。

total 是该主评论下平台能列出的二级评论总数,可用来算页数。 withheld 是该主评论下平台未列出的二级评论条数(已删除或被折叠)。 某条主评论取不到(评论不存在、不属于这个视频)时只在它的 error 里说明,其他照常返回。 中途被风控或限流时,已取完的照常返回,其余的 error 里说明原因。 parent_id 为空表示直接回复主评论,否则是所回复的那条二级评论的 id。 parent_id 指向的二级评论不在列表里时,那条被平台隐藏了,取不到。 结果缓存 30 分钟,cached_at 是缓存的抓取时间。 image_urls、link_titles 是字符串,多个时以换行分隔。

(comment replies, sub-replies, thread)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
jqYes必填的 jq 表达式。输入是单条主评论下的二级评论组成的数组,每条字段:id,author,author_url,author_level,is_up,ip_location,content,like_count,parent_id,created_at,is_top,up_liked,image_urls,link_titles。体积大、多数任务用不到的字段:author_url(查看评论者资料时需要)、is_up、created_at、is_top、up_liked;特定任务需要时照常使用。结果为字符串时原样返回,其他结果编码为表格或 JSON;结果为数组时 jq_count 是其长度。
urlYes视频链接、b23.tv 短链,或裸 BV/av 号;含链接的分享文案也可直接传入。
pagesYes每条主评论取几页,每页 20 条。has_more 表示后面还有。
start_pageNo每条主评论从第几页开始,1 起。
comment_idsYes主评论 id 列表,从 get_comments 返回的 comments 表里取。

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultsYes
video_idYes
elapsed_sNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.3.1
    • addedInput schema / properties / jq
      Added value: +{
      +  "description": "必填的 jq 表达式。输入是单条主评论下的二级评论组成的数组,每条字段:id,author,author_url,author_level,is_up,ip_location,content,like_count,parent_id,created_at,is_top,up_liked,image_urls,link_titles。体积大、多数任务用不到的字段:author_url(查看评论者资料时需要)、is_up、created_at、is_top、up_liked;特定任务需要时照常使用。结果为字符串时原样返回,其他结果编码为表格或 JSON;结果为数组时 jq_count 是其长度。",
      +  "title": "Jq",
      +  "type": "string"
      +}
    • removedInput schema / properties / limit
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "每个楼只取最早的多少条回复,has_more 表示被截断。不传则取完整个楼。",
      -  "title": "Limit"
      -}
    • addedInput schema / properties / pages
      Added value: +{
      +  "description": "每条主评论取几页,每页 20 条。has_more 表示后面还有。",
      +  "title": "Pages",
      +  "type": "integer"
      +}
    • addedInput schema / properties / start_page
      Added value: +{
      +  "default": 1,
      +  "description": "每条主评论从第几页开始,1 起。",
      +  "title": "Start Page",
      +  "type": "integer"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "url",
      -  "comment_ids"
      -]New value: +[
      +  "url",
      +  "comment_ids",
      +  "pages",
      +  "jq"
      +]
    • addedOutput schema / $defs / ReplyThreadItem / properties / cached_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Cached At"
      +}
    • addedOutput schema / $defs / ReplyThreadItem / properties / error
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Error"
      +}
    • addedOutput schema / $defs / ReplyThreadItem / properties / jq_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Jq Count"
      +}
    • addedOutput schema / $defs / ReplyThreadItem / properties / total
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Total"
      +}
  2. First observedv0.1.0

TDQS

A4/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses 30-minute result caching with cached_at, partial-return semantics when throttled or risk-controlled, per-comment error isolation, withheld/deleted reply counts, and how parent_id indicates the reply target. That is exactly the operational context an agent needs before calling.

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

Conciseness3/5

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

The content is useful but unstructured: it opens with an ordering property and a login note rather than the tool's action, then runs through output-field explanations and failure modes as a flat block. Given an output schema exists, several of these sentences are redundant padding, and the length is not front-loaded around the primary purpose.

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, 5-parameter, paginated call it covers login requirement, pagination via pages/has_more, error and throttling behavior, and caching freshness. Minor omissions remain (no guidance on how many comment_ids are sensible per call, no explicit rate-limit ceiling), but nothing essential for correct invocation 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 description coverage is 100%, so url, pages, start_page, jq and comment_ids are already documented in the schema; the description adds little parameter-level meaning beyond what is there. Most of its prose concerns returned fields (total, withheld, parent_id, image_urls, link_titles), not inputs. 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 identifies a specific resource and scope – second-level replies under a given main comment, returned in ascending time order – and the trailing '(comment replies, sub-replies, thread)' keywords reinforce it. It also ties itself to the sibling get_comments by stating comment_ids are taken from get_comments' comments table. It never states the core action in a single upfront verb+object sentence, so it is clear but not maximally crisp.

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?

Prerequisites are given ('需要登录', comment_ids sourced from get_comments), which implicitly lays out the workflow. It also explains the degraded cases – per-comment errors, partial results under rate limiting. It does not explicitly say when not to use it or name a competing tool, but no sibling overlaps this purpose.

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