Skip to main content
Glama
polylens-bilibili

polylens-bilibili

by liu-xindi

search_videos

Read-only

Search Bilibili videos by keyword to find matching content, then paginate results and filter fields with jq before retrieving full details separately.

Instructions

每批最多 30 条,最多翻 30 批。

结果已滤掉付费课程,一批可能不满 30 条。summary 是平台截断过的简介, 完整简介通过 get_video_info 获取。

(search videos, find video by keyword)

Input Schema

NameRequiredDescriptionDefault
jqYes必填的 jq 表达式。输入是本批条目组成的数组,每条字段:title,url,author,author_url,published_at,duration_sec,category,tags,summary,view_count,danmaku_count,comment_count,like_count,favorite_count。体积大、多数任务用不到的字段:author_url(查看 UP 主时需要)、tags、summary;特定任务需要时照常使用。分页字段不在输入里;只筛本批,筛完为空时仍以 has_more 判断有无下一批。结果为字符串时原样返回,其他结果编码为表格或 JSON;结果为数组时 jq_count 是其长度。
orderNo排序。relevance 是 B 站的综合排序,推荐用默认值,不推荐其他排序。relevance
cursorNo续取游标:不传从头开始,回传上次返回的 next_cursor 取下一批。
keywordYes搜索关键词。
descriptionYes格式为 工具名:目的。

Output Schema

NameRequiredDescriptionDefault
countYes
resultsYes
has_moreYes
jq_countNo
elapsed_sNo
next_cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.12.1
    • addedInput schema / properties / description
      Added value: +{
      +  "description": "格式为 工具名:目的。",
      +  "title": "Description",
      +  "type": "string"
      +}
    • changedInput schema / properties / jq / description
      Previous value: -"必填的 jq 表达式。输入是本批条目组成的数组,每条字段:title,url,author,author_url,published_at,duration_sec,category,tags,summary,view_count,danmaku_count,comment_count,like_count,favorite_count。体积大、多数任务用不到的字段:url(后续调用其他工具时需要)、author_url(查看 UP 主时需要)、tags、summary;特定任务需要时照常使用。分页字段不在输入里;只筛本批,筛完为空时仍以 has_more 判断有无下一批。结果为字符串时原样返回,其他结果编码为表格或 JSON;结果为数组时 jq_count 是其长度。"New value: +"必填的 jq 表达式。输入是本批条目组成的数组,每条字段:title,url,author,author_url,published_at,duration_sec,category,tags,summary,view_count,danmaku_count,comment_count,like_count,favorite_count。体积大、多数任务用不到的字段:author_url(查看 UP 主时需要)、tags、summary;特定任务需要时照常使用。分页字段不在输入里;只筛本批,筛完为空时仍以 has_more 判断有无下一批。结果为字符串时原样返回,其他结果编码为表格或 JSON;结果为数组时 jq_count 是其长度。"
    • addedInput schema / properties / keyword
      Added value: +{
      +  "description": "搜索关键词。",
      +  "title": "Keyword",
      +  "type": "string"
      +}
    • changedInput schema / properties / order / description
      Previous value: -"排序。relevance 是 B 站的综合排序。"New value: +"排序。relevance 是 B 站的综合排序,推荐用默认值,不推荐其他排序。"
    • removedInput schema / properties / query
      Removed value: -{
      -  "description": "搜索关键词。",
      -  "title": "Query",
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "query",
      -  "jq"
      -]New value: +[
      +  "description",
      +  "keyword",
      +  "jq"
      +]
  2. Changed3 schema fields changedv0.3.1
    • addedInput schema / properties / jq
      Added value: +{
      +  "description": "必填的 jq 表达式。输入是本批条目组成的数组,每条字段:title,url,author,author_url,published_at,duration_sec,category,tags,summary,view_count,danmaku_count,comment_count,like_count,favorite_count。体积大、多数任务用不到的字段:url(后续调用其他工具时需要)、author_url(查看 UP 主时需要)、tags、summary;特定任务需要时照常使用。分页字段不在输入里;只筛本批,筛完为空时仍以 has_more 判断有无下一批。结果为字符串时原样返回,其他结果编码为表格或 JSON;结果为数组时 jq_count 是其长度。",
      +  "title": "Jq",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "query"
      -]New value: +[
      +  "query",
      +  "jq"
      +]
    • addedOutput schema / properties / jq_count
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Jq Count"
      +}
  3. First observedv0.1.0

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the readOnly/openWorld annotations, it discloses real behavioral traits: a 30-item batch cap, a 30-batch total ceiling, paid courses being filtered out, and batches sometimes being short. These are non-obvious operational facts an agent could not infer from annotations or schema.

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 text is short with no filler, but it is not front-loaded: it opens with batch limits and truncation quirks before the purpose, which is buried in a trailing parenthetical. Purpose should lead, so structure is only adequate.

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?

An output schema exists, so return values need no explanation, and the description covers pagination, filtering, and the summary-truncation caveat. Combined with the rich schema, an agent has enough to call it correctly; only the sibling-routing gap keeps it from a 5.

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 all five parameters in detail, including the jq input fields and the order enum. The description adds only marginal parameter context (batch size, filtering) and does not explain syntax 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.

Purpose4/5

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

The parenthetical 'search videos, find video by keyword' gives a clear verb+resource, and the body notes it filters out paid courses. It distinguishes itself from list_up_videos and get_feed implicitly, but never names those siblings, so it stops short of an explicit contrast.

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 routes the agent usefully: summary is truncated, so use get_video_info for the full description, and it explains pagination via batch limits and the cursor. There is no guidance on choosing this over suggest_keywords or get_feed, so it falls short of a 5.

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