Skip to main content
Glama
liu-xindi

polylens-bilibili

by liu-xindi

search_videos

Read-only

Find Bilibili videos by keyword, filter results with jq, sort by relevance, date, views, danmaku, or favorites, and paginate to browse more.

Instructions

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

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

(search videos, find video by keyword)

Input Schema

TableJSON 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。体积大、多数任务用不到的字段:url(后续调用其他工具时需要)、author_url(查看 UP 主时需要)、tags、summary;特定任务需要时照常使用。分页字段不在输入里;只筛本批,筛完为空时仍以 has_more 判断有无下一批。结果为字符串时原样返回,其他结果编码为表格或 JSON;结果为数组时 jq_count 是其长度。
orderNo排序。relevance 是 B 站的综合排序。relevance
queryYes搜索关键词。
cursorNo续取游标:不传从头开始,回传上次返回的 next_cursor 取下一批。

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
resultsYes
has_moreYes
jq_countNo
elapsed_sNo
next_cursorNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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"
      +}
  2. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnly/openWorld safety, but the description adds genuinely useful behavior: a 30-item batch cap, a 30-batch ceiling, paid courses being filtered out, batches possibly being short, and summaries being platform-truncated. These tell the agent how to interpret and iterate results, which the annotations do not.

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?

It is short with no filler, but the ordering buries the primary purpose at the very end behind pagination limits and field notes. The batch/pagination caveats are useful but would land better after a leading statement of what the tool does.

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 an output schema present, return-value detail is not required, and pagination (cursor/next_cursor) plus the truncated-summary caveat are covered. Combined with annotations covering the safety profile, an agent has enough to invoke and iterate correctly, though the lack of sibling routing detail 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 the schema already documents query, order, cursor, and jq thoroughly. The description adds almost nothing parameter-specific beyond noting that pagination fields are not part of the jq input, which the schema already implies. Baseline 3 is appropriate when the schema does the heavy lifting.

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 trailing parenthetical states a clear verb+resource ('search videos, find video by keyword'), so the agent knows this searches the video catalog by keyword. It also hints at a sibling relationship by naming get_video_info for full descriptions. It does not, however, distinguish itself from suggest_keywords or list_up_videos, so differentiation is partial.

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

Usage Guidelines3/5

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

The description gives one concrete routing rule — use get_video_info to get the untruncated summary — and explains the pagination flow via next_cursor. Beyond that there is no explicit when-to-use/when-not guidance relative to the other search-adjacent siblings, leaving selection mostly to inference.

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