Skip to main content
Glama

bilinote

B 站视频转笔记工具集:把 B 站的字幕、语音转写、搜索、评论、合集等能力, 整理成 AI 编码工具(Claude Code / Codex / ZCode / DSH)可直接挂载的 MCP 工具面, 外加一个久经打磨的 批量字幕/音频命令行工具

agent(Claude Code / Codex / ZCode / DSH)与人类用户
 │  MCP (stdio)                        │ shell
 ├── bilinote-mcp(15 个工具)──────────┤
 │        │                            ▼
 │        │                    bili-subtitle(批量 CLI)
 │        ▼                            │
 │   batch.py 批量引擎(续跑/熔断/并发/进度回调)
 │        │                            │
 └────────► bili/ 协议层(自维护,Wbi 签名)──► B 站 Web API
  • 协议层自维护:核心端点为自实现(参考 biliAPI / bilibili-API-collect), 不依赖第三方 B 站 SDK;Wbi 签名已内置(搜索/播放器接口已签名)。

  • 单运行时:纯 Python(>=3.10),无 node 工具链。

安装

推荐:pipx(隔离安装,不碰你的 Python 环境)

pipx install git+https://github.com/caiqianzhang/bilinote.git
# 或 uv:uv tool install git+https://github.com/caiqianzhang/bilinote.git

pipx 把 bilinote 及其全部依赖装进独立虚拟环境,只把 bili-subtitlebilinote-mcp 两个命令暴露到 PATH——安装/升级/卸载都不影响你已有的任何 Python 项目。

传统方式(装进当前 Python 环境;依赖少且版本宽松,但与已安装的包共享解释器, 存在互相影响版本的可能):

pip install git+https://github.com/caiqianzhang/bilinote.git@v0.2.0

开发者:克隆 + pip install -e .[dev]

要求 Python ≥ 3.10(3.10 / 3.14 由 CI 双版本验证)。安装后获得两个命令: bili-subtitle(批量下载 CLI)与 bilinote-mcp(MCP 服务器)。

Related MCP server: Bilibili API MCP Server

MCP 接入

服务器命令:bilinote-mcp(stdio)。各家注册示例见 docs/setup,速查:

// Claude Code(.mcp.json 或 claude mcp add)/ ZCode 通用 JSON 形态
{ "mcpServers": { "bilinote": { "command": "bilinote-mcp" } } }
# Codex CLI(~/.codex/config.toml)
[mcp_servers.bilinote]
command = "bilinote-mcp"

DeepSeek Harness(DSH):若其支持标准 stdio MCP 客户端,用同一命令即可; 不支持时可用 bili-subtitle CLI 兜底(任何能跑 shell 的 agent 都能用)。

工具清单(15 个)

工具

说明

search_videos

综合搜索(Wbi 已签名,未登录可用)

get_video_info

视频详情 + 分 P 列表

get_video_subtitles

单集字幕正文(CC/AI 轨,含时间戳)

get_video_chapters

视频章节(UP 主分段,笔记骨架)

download_audio

音频轨直连下载(不经 yt-dlp)

asr_transcribe

必剪 ASR 语音转字幕(srt/lrc/txt/json)

list_comments

评论区只读(热门/最新)

list_uploader_videos

UP 主投稿列表

list_uploader_collections / get_collection_videos

合集与合集内视频

list_favorite_folders / list_favorite_videos

收藏夹只读(需登录)

qr_login_start / qr_login_poll

扫码登录(跨调用轮询)

batch_download_subtitles

批量下载(直调引擎:断点续跑、结构化进度)

CLI(批量字幕/音频)

bili-subtitle "https://www.bilibili.com/video/BVxxx" --all-parts --format srt --output notes.srt
bili-subtitle "https://www.bilibili.com/video/BVxxx" --audio --audio-dir out/audio

支持:全部分 P、?p=N/短链解析、断点续跑(已存在跳过)、并发 --jobs + 全局限速 --rate、 连续失败熔断 --fail-fast、浏览器 Cookie 自动读取。音频走 playurl 直连(0.2.0 起不再依赖 yt-dlp)。 详细参数 bili-subtitle -h

扫码登录(推荐)

bili-subtitle --login    # 终端显示二维码,B 站 App 扫码确认,Cookie 存 cookies.json

MCP 里用 qr_login_start(返回二维码图片内容 + PNG 路径 + ASCII 文本 + 链接, 四层展示任选)+ qr_login_poll 轮询;cookies.json 会被自动发现并加载。

优先级:显式参数 > 环境变量 BILI_COOKIE > cookies.json > 浏览器自动读取 > 匿名。 匿名可用:搜索 / 视频信息 / 部分字幕 / 音频。需登录:高清晰度播放流、收藏夹、 以及多数视频的 CC/AI 字幕(B 站策略)。

安全边界(有意设计):不提供任何读取/导出 Cookie 的工具;全部工具为只读, 唯一的批量写路径是"下载文件到本地"。投稿/点赞/评论发布等账号写操作不在此库范围内。

已知限制(如实记录)

  • 必剪 ASR:全链路可用(实测 7 分钟音频 → 162 段中文识别 → SRT 正确)。 该免费接口有 IP 频控:短时间内反复上传会触发临时 -412(request was banned), 等待数分钟冷却即自行恢复,请勿高频连续调用。

  • UP 主投稿列表:B 站风控较严,出现 -412 时需提供登录 Cookie。

  • 弹幕(protobuf)、直播回放、历史记录在路线图中未实现,见 docs/architecture.md。

测试

python -m pytest tests/ -q --cov=bilinote       # 离线 101 项(默认跳过真实网络测试)
BILINOTE_LIVE=1 python -m pytest -m live -q     # 真实网络 11 项(搜索/字幕/合集/多P/收藏/入口/MCP 协议)

分层说明:离线测试覆盖 Wbi 签名/客户端重试与缓存、CLI 回归(28 项迁移基准)、 真实响应结构冻结(test_parsing.py)、MCP 工具包装层、ASR 状态机与导出格式、 扫码登录各状态解析;live 测试打 @live 标记,验证链路可用性,断言宽松(内容依赖)。 cli.py 为行为冻结区,不纳入覆盖率统计。

许可证

MIT © 2026 caiqianzhang。B 站接口协议参考了社区公开文档 (bilibili-API-collectrenmu123/biliAPI),实现为原创。

仅用于个人学习与效率工具用途,请遵守 B 站用户协议,勿用于批量抓取等滥用场景。

Available Tools

15 tools
asr_transcribeA

必剪 ASR 语音转字幕(无需登录)。audio_path 支持 flac/aac/m4a/mp3/wav; fmt: srt / lrc / txt / json / segments。长音频上传+识别可能需要 1-3 分钟。

ParametersJSON Schema
NameRequiredDescriptionDefault
fmtNosrt
audio_pathYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that no login is required, mentions the latency for long audio ('可能需要 1-3 分钟'), and lists supported formats. It does not cover potential errors, side effects, or asynchronous behavior, but it provides meaningful operational context beyond the schema.

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

Conciseness5/5

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

The description is two sentences: the first states purpose and a key condition, the second provides parameter details and latency. It is front-loaded with the primary function, uses no filler, and every sentence adds value. It is concise yet comprehensive.

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 tool with two parameters and no output schema, the description covers the essential aspects: input formats, output formats, no-login requirement, and expected latency. It does not detail the structure of returned data for json/segments formats, but that may be acceptable given the fmt parameter. Overall, it is nearly complete for a straightforward transcription tool.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It does so thoroughly: it specifies valid audio_path formats (flac/aac/m4a/mp3/wav) and the exact fmt values (srt/lrc/txt/json/segments), which the schema lacks. This is essential for correct invocation.

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 the exact function ('必剪 ASR 语音转字幕') with a specific verb and resource, and explicitly notes '无需登录' (no login required). It also lists supported input and output formats, making it clear this is a transcription tool, distinct from siblings like get_video_subtitles (fetching existing subtitles) or download_audio (downloading audio).

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

Usage Guidelines3/5

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

The description implies usage (it is for transcribing audio to subtitles) and mentions a condition ('无需登录'), but it does not explicitly compare against alternatives or state when not to use it. No exclusions or references to sibling tools are provided, so the agent must infer the appropriate context.

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

batch_download_subtitlesA

批量下载字幕(断点续跑,已存在自动跳过)。all_parts=True 下载全部分 P; fmt: text/srt/json;output 为输出文件路径(all_parts 时自动加 .pN 后缀)。 长任务可能耗时数分钟;返回结构化进度事件与结果汇总。

ParametersJSON Schema
NameRequiredDescriptionDefault
fmtNosrt
urlYes
limitNo
outputYes
all_partsNo

TDQS

A4/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and does an excellent job: it discloses resume/breakpoint behavior, auto-skip for existing files, all_parts naming behavior, acceptable formats, output file suffix handling, potentially long duration, and structured progress/result returns. This goes well beyond minimal expectations.

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

Conciseness5/5

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

The description is compact and front-loaded with the most important behavioral differentiators first. Every sentence carries actionable information, and it avoids filler or redundant restating of the tool name.

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?

The description is strong for task selection and invocation basics, but with no output schema and no annotations, it leaves gaps: the 'structured progress events and result summary' format is not specified, and the limit parameter is left undocumented. More detail on limit or return shape would make it fully complete.

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 0%, so the description must compensate. It adds meaning for all_parts (downloads all parts, .pN suffix), fmt (text/srt/json), and output path semantics. It does not explain limit or url, but the majority of parameters are clarified.

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 clearly states the action with a specific verb ('batch download subtitles') and resource, and adds key details like resuming and skipping existing files. However, it does not explicitly differentiate itself from the sibling tool get_video_subtitles, relying mainly on the word 'batch' for distinction.

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

Usage Guidelines3/5

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

Usage is implied through 'batch download' and the description of long-running behavior, but there is no explicit guidance about when to use this tool versus get_video_subtitles or another alternative. It does not state exclusions or conditions under which a sibling should be preferred.

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

download_audioA

直连下载视频的音频轨(m4s,选最低码率省流量)。为 asr_transcribe 备料; 需要完整音频文件时也可用 batch 工具或 bili-subtitle CLI 的 --audio。

ParametersJSON Schema
NameRequiredDescriptionDefault
pNo
output_dirNo./out
url_or_bvidYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the format (m4s) and bitrate selection (lowest to save traffic), but does not mention potential side effects like creating files, needing authentication, or possible failure modes. It is not contradictory, but it lacks depth for a tool without annotation support.

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

Conciseness5/5

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

The description is concise, two sentences, with the primary purpose front-loaded and the alternative usage clearly appended. Every sentence adds value without redundancy.

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?

The tool is simple (downloads audio) and has no output schema, but given the 0% schema coverage and no annotations, the description should cover parameter semantics and possibly error conditions. It does mention the primary use case and alternatives, but omits crucial parameter explanations and any behavioral caveats. It is adequate but not comprehensive.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters (p, output_dir, url_or_bvid). While output_dir and url_or_bvid are somewhat self-explanatory, 'p' is ambiguous (likely a page or part index) and remains unexplained. The description fails to compensate for the lack of parameter documentation.

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: '直连下载视频的音频轨' (directly download the audio track of a video), with format m4s and lowest bitrate. It also explains its role as preparation for asr_transcribe, clearly distinguishing its purpose from that of other tools like batch_download_subtitles or the CLI.

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

Usage Guidelines5/5

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

It explicitly states when to use this tool (for asr_transcribe preparation) and when not to (when a complete audio file is needed, use the batch tool or the CLI's --audio option). This provides clear guidance and names alternatives.

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

get_collection_videosB

合集(season_id)或系列(series_id)内的视频列表,二选一。

ParametersJSON Schema
NameRequiredDescriptionDefault
midYes
pageNo
season_idNo
series_idNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals the constraint that exactly one of season_id/series_id must be chosen, but it does not state whether the operation is read-only, how pagination behaves, what happens if both are provided, or any authentication/rate-limit considerations.

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 sentence with no wasted words, and the core either/or constraint is front-loaded. However, its extreme brevity sacrifices necessary detail, making it more under-specified than genuinely concise.

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

Completeness2/5

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

With 4 parameters, no output schema, and no annotations, a brief purpose statement is insufficient. The description fails to clarify the role of mid, the meaning of page, or the behavior when both season_id and series_id are set. An agent would struggle to invoke this tool correctly without additional schema documentation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains season_id and series_id as the collection/series identifiers which are mutually exclusive, but it does not explain the meaning of the required parameter mid or the page parameter. This is a significant gap given that mid is required by 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 action ('list videos') and resource ('within a collection (season_id) or series (series_id)'), and explicitly notes the either/or requirement. This distinguishes it from siblings like list_uploader_videos, which lists all videos by an uploader, and list_uploader_collections, which lists collections rather than their contents.

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

Usage Guidelines3/5

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

The description implies the use case — when you have a specific season_id or series_id — but does not explicitly contrast it with alternatives or state when not to use it. No mention of prerequisites such as the uploader identity (mid) or when to prefer a sibling tool.

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

get_video_chaptersB

视频章节(UP 主手动分段,来自播放器接口)。无章节返回空列表。是笔记的结构骨架。

ParametersJSON Schema
NameRequiredDescriptionDefault
pNo
url_or_bvidYes

TDQS

B3.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It explicitly notes that an empty list is returned when no chapters exist, which is valuable. It also indicates the data source (player interface). However, it does not mention read-only status or pagination, though the empty-list behavior partially compensates.

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 concise, using three short sentences with no filler. The key information (what it retrieves) is front-loaded, and the empty-list behavior is added as a useful note. Structure is adequate for the content length.

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

Completeness2/5

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

The tool has no output schema and no annotations, so the description must fully explain inputs and outputs. It fails to describe the parameters (p, url_or_bvid) and provides no information about the return format beyond the empty-list case. For a simple tool this is still incomplete; an agent would need to guess parameter semantics.

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

Parameters1/5

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

The schema has 0% description coverage for its two parameters (p and url_or_bvid). The description does not explain either parameter's meaning or usage, leaving the agent to rely on parameter names alone. This is a significant gap that the description should have addressed.

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

Purpose5/5

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

The description clearly states the tool retrieves video chapters, specifies the source (player interface) and that they are manually segmented by the uploader. It distinguishes this from sibling tools like get_video_subtitles or get_video_info by focusing on chapters specifically.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving chapter data but does not explicitly state when to use it over alternatives or when not to use it. No exclusion criteria or comparison with sibling tools is provided, leaving the agent to infer based on the name.

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

get_video_infoA

视频详情:标题/简介/UP主/分P列表(含每集 cid 与时长)。支持 BV 号或任意 B 站链接。

ParametersJSON Schema
NameRequiredDescriptionDefault
url_or_bvidYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does add useful behavior information: accepted input formats (BV or any Bilibili link) and the specific output fields. However, it does not mention error behavior, authentication requirements, or rate limits, which are relevant for a network-backed retrieval 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?

The description is compact and front-loaded: it states the returned fields first and then the accepted input formats. There is no filler or repetition, and every clause conveys essential 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?

For a simple one-parameter read-only tool with no output schema, the description covers the core input constraints and the expected return content. It could be more explicit about failure modes or the exact output shape, but the essential information for invoking the tool correctly is present.

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 0%, so the description must compensate for the undocumented url_or_bvid parameter. It does so by explicitly stating that the parameter accepts a BV number or any Bilibili link, which adds meaningful semantics beyond the raw 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 clearly identifies the resource ('video details') and enumerates the returned fields: title, description, uploader, and multi-part list with cid and duration. It is distinguishable from siblings like get_video_subtitles and get_video_chapters, though it lacks an explicit verb such as '获取'.

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 guidance is provided about when to use this tool versus alternatives among the sibling tools. The note about supporting BV numbers or any Bilibili link clarifies input, not selection criteria, so an agent is left to infer the appropriate use case.

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

get_video_subtitlesA

取单集字幕正文(B 站已有 CC/AI 字幕时)。返回语言、分段(含时间戳)与全文。 没有字幕轨时报错——此时用 download_audio + asr_transcribe 现场转写。

ParametersJSON Schema
NameRequiredDescriptionDefault
pNo
langNozh-CN
url_or_bvidYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the return structure and the important error behavior: it errors when no subtitle track exists, and suggests the fallback. It does not explicitly state read-only semantics or auth/rate-limit behavior, but 'get' plus the described return/error profile makes the behavior reasonably transparent.

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 tight sentences: the first states what the tool returns, the second states the error condition and the fallback path. No filler, and the core purpose is front-loaded.

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?

The description covers purpose, output, error behavior, and fallback, which is strong for a getter. However, with no output schema, no annotations, and 0% schema description coverage, leaving 'p' and 'lang' unexplained is a real gap, so the description is not fully complete for correct invocation.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate. It does not explain what 'p' means (e.g., episode/part index) or what values 'lang' accepts. '单集' and '返回语言' weakly hint at p and lang, but the description adds little concrete parameter meaning beyond the schema's names and defaults.

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 uses a specific verb and resource — '取单集字幕正文' (get single-episode subtitle text) — and states the exact return contents: language, segments with timestamps, and full text. It also clearly distinguishes itself from download_audio/asr_transcribe and batch_download_subtitles.

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

Usage Guidelines5/5

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

It explicitly says to use this tool when Bilibili already has CC/AI subtitles, and gives the alternative for the no-subtitle case: use download_audio + asr_transcribe. This is direct when-to-use and when-not-to-use guidance with named alternatives.

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

list_commentsB

视频评论区(只读)。order: hot=热门, time=最新。高赞评论常含勘误与补充,做笔记前值得看。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
orderNohot
url_or_bvidYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden. It explicitly notes the tool is read-only ('只读'), which is a key behavioral trait. It also explains the order parameter values. However, it does not disclose pagination, return format, or any rate limiting, leaving gaps for an agent invoking the 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?

The description is extremely concise – a single line with the core purpose, a parameter explanation, and a practical usage tip. It is front-loaded and every phrase earns its place. No wasted words.

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 three parameters and no output schema, the description is partially complete. It covers the order parameter and gives a usage context, but it omits explanation of the required url_or_bvid parameter, the page parameter, and the return format. An agent would need to infer the meaning of url_or_bvid from the tool name alone, which is not ideal.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains the 'order' parameter ('hot=热门, time=最新') but provides no meaning for 'url_or_bvid' or 'page'. The required parameter 'url_or_bvid' is left completely unexplained, and 'page' is ignored. This is insufficient given the lack of schema descriptions.

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 '视频评论区(只读)' which clearly identifies the resource (video comments) and implies the action (listing). It distinguishes from siblings like subtitles or video info. However, it does not explicitly state a verb like 'list' or 'fetch', relying on the tool name for the action, so it falls short of a 5.

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

Usage Guidelines3/5

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

The description provides a usage hint: '高赞评论常含勘误与补充,做笔记前值得看' – suggesting the tool is useful before taking notes. It does not explicitly mention alternatives or when not to use it, nor does it contrast with sibling tools. This is implied guidance rather than explicit direction.

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

list_favorite_foldersA

当前登录用户创建的收藏夹列表(需登录 Cookie)。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It explicitly exposes the authentication requirement (login Cookie) and scopes the result to the current user, which is meaningful beyond the tool name. It does not mention pagination, sorting, or error behavior, but for a simple read-only list operation this is a minor gap.

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 compact sentence conveys purpose, scope, and authentication requirement with no filler. The main object is front-loaded and the condition is neatly appended.

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?

The tool has no parameters and no output schema, and the description covers the essential invocation condition (login Cookie) and result scope. It could additionally describe the returned folder shape, but that is not required for a correct call.

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

Parameters4/5

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

There are 0 parameters in the input schema, so there is nothing for the description to document. The baseline of 4 applies, and the description correctly adds no extraneous parameter claims.

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 the resource ('favorite folders') and the ownership scope ('created by current logged-in user'), and '列表' conveys a listing operation. This clearly differentiates the tool from siblings like list_favorite_videos, which target a different resource type.

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 defines the applicable context: the current logged-in user's own created favorite folders and requires a login cookie. It does not explicitly name alternative tools or exclusion conditions, so it doesn't reach a 5, but the context is clear.

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

list_favorite_videosB

收藏夹内的视频列表(需登录 Cookie)。配合字幕/ASR 可把收藏夹整体转笔记。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
folder_idYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral transparency burden. It usefully discloses an authentication requirement ('需登录 Cookie'), which is a meaningful prerequisite. However, it does not mention pagination behavior, possible failure modes, read-only nature, or response shape, leaving several behavioral aspects undisclosed.

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

Conciseness5/5

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

The description is very concise: two short sentences, with the core purpose front-loaded and a relevant use-case hint in the second sentence. No filler or redundant restatement of the schema is present.

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?

Given that there is no output schema, no annotations, and two unannotated parameters, the description is only partially complete. It covers the essential purpose, the login Cookie requirement, and a workflow use case, but it omits explicit guidance on how folder_id is obtained and what the returned list contains beyond being 'videos'.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for missing parameter documentation. It only vaguely maps folder_id to a favorites folder via '收藏夹内' and says nothing about the page parameter, pagination limits, or where folder_id can be obtained.

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 clearly identifies the resource as '收藏夹内的视频列表' (video list inside a favorites folder) and adds the prerequisite of a login Cookie. It is distinguishable from sibling tools like list_favorite_folders, but it does not state an explicit action verb such as 'list' or 'fetch' in the description itself.

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 an implied use case: combined with subtitles/ASR, it can turn an entire favorites folder into notes. However, it does not explicitly say when to choose this over alternatives, nor does it mention using list_favorite_folders to obtain folder_id or that get_collection_videos handles public collections.

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

list_uploader_collectionsA

UP 主的合集/系列列表(课程大多以合集组织)。返回 id/name/total,配合 get_collection_videos 用。

ParametersJSON Schema
NameRequiredDescriptionDefault
midYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose the output shape (id/name/total) and provides context that courses are organized as collections, but it omits pagination, ordering, or rate-limit behavior, so it is only partially transparent.

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

Conciseness5/5

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

The description is a single concise sentence that packs purpose, return fields, and a pointer to the companion tool without any filler. Every element is load-bearing.

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 one-parameter listing tool with no output schema, the description provides the core call path and return contract, and orients the agent to the relevant sibling. The main gap is the lack of pagination or sorting behavior, which an agent might still need to discover.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must clarify the mid parameter. The phrase 'UP主的合集' implies mid identifies the uploader, but this is never explicitly stated nor are any constraints or examples given. The schema's bare 'mid' title provides minimal help.

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: listing the uploader's collections/series, with an added detail that most courses are organized as collections. It also names the return fields (id/name/total), which clearly distinguishes it from sibling tools like get_collection_videos.

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

Usage Guidelines4/5

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

The description explicitly says to use it together with get_collection_videos, giving an agent a clear next step and establishing this tool as the collection-level listing entry point. It does not spell out when-not-to-use it, but for a simple list tool this is adequate.

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

list_uploader_videosC

UP 主投稿列表。order: pubdate/click/stow。配合批量字幕可把整个 UP 主的课程转笔记。

ParametersJSON Schema
NameRequiredDescriptionDefault
midYes
pageNo
orderNopubdate

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral burden. It mentions order options (pubdate/click/stow), which adds some behavioral context, but it does not disclose read-only vs. mutating behavior, pagination behavior, authentication requirements, or what happens on invalid input. This is a significant gap for a tool with no annotation safety hints.

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 brief (two short segments) and front-loads the primary purpose. The final clause about batch subtitles adds a tangential use case but does not bloat the text. It is appropriately sized for a simple listing tool, though the incomplete parameter coverage prevents a 5.

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

Completeness2/5

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

Given 3 parameters, no output schema, and no annotations, the description is not complete. It lacks information about the return format, pagination semantics, error behavior, and any prerequisites. An agent calling this tool would not know what data it receives or how to handle pages, making it inadequate for reliable invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for all parameters. It only explains the 'order' parameter (pubdate/click/stow) and leaves 'mid' and 'page' entirely undocumented. The description does not clarify that mid is the uploader's ID or that page controls pagination, which are essential for correct invocation.

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 'UP 主投稿列表' (uploader's submission list), which clearly indicates a list operation on an uploader's videos. It distinguishes from siblings like list_uploader_collections by focusing on '投稿' (submissions) rather than collections, though it does not explicitly name the alternative.

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 a concrete use case ('配合批量字幕可把整个 UP 主的课程转笔记' – with batch subtitles, convert the uploader's courses into notes), which implies when it could be used. However, it does not explicitly contrast with sibling tools (e.g., search_videos) or state when not to use it, leaving some inference to the agent.

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

qr_login_pollA

查询扫码登录状态(waiting=未扫/scanned=已扫未确认/confirmed=成功)。 confirmed 时返回 cookies;提供 cookies_path 则同时保存到文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
qrcode_keyYes
cookies_pathNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well: it discloses the side effect of writing cookies to a file when cookies_path is provided, and specifies what is returned on confirmed. It could note failure/expiry behavior, but the core behaviors an agent must know are covered.

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

Conciseness5/5

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

Two compact sentences with no waste. The state enum is front-loaded first, then the return behavior and optional side effect. Every clause earns its place.

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

Completeness4/5

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

Given the tool's low complexity and no output schema, it covers the main flows: state values, the confirmed return value, and the optional file-save side effect. It doesn't describe the exact shape of the non-confirmed responses or error handling, but for a simple poll tool this is near-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 0%, so the description must compensate. It adds real meaning for cookies_path (triggers saving to file) but says nothing about where qrcode_key comes from or its format, which an agent would need to know to chain this with qr_login_start. Partial compensation for the coverage gap.

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 (查询/query) and resource (扫码登录状态/QR login status), and enumerates the three possible states (waiting/scanned/confirmed) so an agent knows exactly what to expect. It is clearly distinguishable from sibling qr_login_start as the polling counterpart without needing to open either 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 context is implied: this is the polling step after starting a QR login, so an agent can infer when to call it. However, it never explicitly names qr_login_start as its prerequisite or the alternative, and gives no guidance on polling cadence or when to stop polling versus fall back to other auth approaches.

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

qr_login_startA

开始扫码登录:返回二维码(图片内容 + PNG 路径 + ASCII 文本 + 原始链接)。

把二维码展示给用户,用 B 站 App 扫码并在手机上点确认; 然后用返回的 qrcode_key 调 qr_login_poll 轮询状态,confirmed 即登录成功 (保存的 cookies.json 会被后续需要登录的工具自动使用)。 render: "png"=返回图片内容与 PNG 路径(默认,推荐); "ascii"=仅返回终端文本二维码;"none"=仅返回链接。

ParametersJSON Schema
NameRequiredDescriptionDefault
renderNopng

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses that this is a login-start operation, that it produces a cookie file for later tools, and that user confirmation is required. It could add more about whether repeated calls invalidate previous QR sessions, but the disclosed behavior is already substantial.

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

Conciseness5/5

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

The description is compact, front-loaded with the return payload, and then explains the usage flow and parameter options. Every sentence adds operational value without redundancy.

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

Completeness5/5

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

For a one-parameter tool with no output schema and no annotations, the description is complete: it explains what the tool returns, how to proceed, what side effects occur, and all render option meanings. An agent has enough context to call it correctly and continue the login flow.

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

Parameters5/5

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

The schema only defines a 'render' string with 0% description coverage, but the description fully explains the three accepted values: 'png' returns image content and PNG path (default, recommended), 'ascii' returns terminal text QR code, and 'none' returns only the link. This is exactly the semantic value the schema lacks.

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 names a specific verb and resource: '开始扫码登录' (start QR-code login) and explicitly lists what it returns (image content, PNG path, ASCII text, raw link). It is clearly distinguishable from the sibling qr_login_poll, which is the polling step.

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

Usage Guidelines5/5

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

The description gives an explicit workflow: display QR to user, scan with Bilibili app, confirm on phone, then call qr_login_poll with the returned qrcode_key. It also states that saved cookies will be used automatically by later tools, which tells the agent when and why to invoke this tool.

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

search_videosC

综合搜索 B 站视频。返回 bvid/标题/UP主(mid)/播放数/时长/简介。

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
keywordYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only lists return fields and does not mention pagination behavior, sorting, authentication requirements, rate limits, or what happens with no results. This is a significant gap for a search tool.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that states the purpose first and then lists return fields. It is efficient with no wasted words, making it easy to parse quickly.

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

Completeness2/5

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

Given the tool's simplicity (2 parameters, no output schema, no annotations), the description still feels incomplete. It lacks usage guidance, parameter details, and behavioral context such as pagination or default sorting. An agent would have to infer or test many behaviors.

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

Parameters2/5

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

The schema has zero description coverage for both parameters. The description implies keyword is the search term but does not explicitly explain its meaning or how the page parameter works (e.g., default value, incrementing, max results). The description adds minimal 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?

The description clearly states the tool performs a comprehensive search of Bilibili videos and lists the returned fields (bvid, title, uploader mid, play count, duration, description). It is specific about the verb and resource, though it does not explicitly differentiate from sibling tools like list_uploader_videos.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no context for typical use cases, and no exclusions. It simply states what it does without indicating when it should be selected over other video-related tools.

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. 15 tool updatesv0.2.0
    • First observedasr_transcribe
    • First observedbatch_download_subtitles
    • First observeddownload_audio
    • First observedget_collection_videos
    • First observedget_video_chapters
    • First observedget_video_info
    • First observedget_video_subtitles
    • First observedlist_comments
    • First observedlist_favorite_folders
    • First observedlist_favorite_videos
    • First observedlist_uploader_collections
    • First observedlist_uploader_videos
    • First observedqr_login_poll
    • First observedqr_login_start
    • First observedsearch_videos

TDQS

A3.7/5.0

Scored across 15 tools

Disambiguation5/5

Each tool targets a distinct resource/action: search, video info, subtitles, chapters, audio download, ASR, comments, uploader/collection/favorite listing, and QR login. Even the subtitle-related tools are clearly separated by existing vs generated transcripts and single vs batch operations, with explicit cross-references.

Naming Consistency4/5

Most tools follow a predictable verb_noun pattern with consistent list_favorite_ and list_uploader_ prefixes. Minor deviations like asr_transcribe and get_collection_videos (instead of list_collection_videos) break the pattern slightly, but the overall style remains readable and navigable.

Tool Count5/5

With 15 tools, the server sits at the upper edge of the ideal range, and each tool maps to a concrete step in the video-to-notes workflow. There are no redundant or decorative tools, and the breadth is justified by the many ways Bilibili content can be discovered and collected.

Completeness5/5

The tool surface covers the full pipeline: search/discovery, video and chapter metadata, transcript acquisition via existing subtitles or ASR, comment context, batch collection/favorite workflows, and login support. Missing write operations are irrelevant for a read/extract server, so agents have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers