Bilibili MCP 是一个本地 MCP server,让 AI Agent 能够读取 Bilibili 内容。项目在 GitHub 开源,采用 Apache License 2.0 许可,npm 包名为 @xzxzzx/bilibili-mcp。
用途
通过本地 MCP 协议,为 AI Agent 提供对 Bilibili 内容的访问能力,包括视频字幕、评论、视频搜索、UP 主信息查询以及个人收藏夹遍历。
主要能力
读字幕与评论
读取字幕全文,或用关键词搜索原话,每条命中附带上下文、时间点和可直接跳转的 B 站时刻链接;阅读按热度(默认)或时间排序的评论与回复。热门模式优先保留含视频时间点的评论;时间模式保留最新主评论的上游顺序。
读单个视频
查看标题、作者、播放量等元数据,以及分 P 结构和章节。
找到视频
按主题搜索 B 站,得到按平台综合排序、带标题、UP 主、时长和 BVID 的候选列表。
找到并了解 UP 主
搜索 UP 主候选,确认想了解的账号;查看他的主页概况、视频、合集、系列与动态,快速了解主要创作方向。
浏览收藏夹
遍历当前登录账号创建、且 Bilibili 当前可见的全部收藏夹,逐页读取其中的视频。每次 MCP 调用最多读取一个 20 条的上游页面,Agent 使用返回的 next_cursor 继续调用,直到该字段不再出现。
无字幕时本地转录
对确认没有字幕的视频,可显式选择用本机 ASR(faster-whisper)转录,得到与字幕相同结构的转录结果。默认关闭,可在 setup 时选择下载 ASR 模型。
使用方式
前置条件
Node.js 20+。
安装步骤
- 确认环境:在终端运行 node --version 和 npx --version,确保 Node.js 为 v20 或更高版本。
- 添加服务:在 MCP 客户端中新增 stdio server,command 设为 npx,args 设为 -y, @xzxzzx/bilibili-mcp@latest。
- 本地配置:在终端运行 npx -y @xzxzzx/bilibili-mcp@latest setup 配置凭证,再运行 npx -y @xzxzzx/bilibili-mcp@latest check 确认凭证已加载。npx -y @xzxzzx/bilibili-mcp@latest doctor --json 可获取不含秘密的本机配置状态。输入不回显,Cookie 只进入本地隐藏提示符。
- 验证登录:重连客户端后,让 Agent 调用 MCP 工具 check_bilibili_credentials 确认 configured: true 且 logged_in: true。验证成功后,再让 Agent 调用一次 search_bilibili_videos 确认安装完成。
登录方式
运行 setup 后,按回车选择扫码登录,用手机 B站 App 扫描终端里的二维码,再在手机上确认即可。无法扫码时,可在登录方式菜单选择“手动 Cookie”。
凭证保存在 ~/.bilibili-mcp/config.json(Windows:%USERPROFILE%.bilibili-mcp\config.json),不保证操作系统级加密。
本地 ASR(可选)
凭证配置完成后,setup 会询问是否安装本地 ASR 模型(默认否 [y/N],需要 Python 3.9+)。Runtime 固定为 faster-whisper==1.2.1 与 ctranslate2==4.8.0,模型存放在用户目录 ~/.bilibili-mcp/asr/,不需要系统 FFmpeg;同一目录仅保留一个活跃模型。选择模型后还需选择设备偏好:auto(默认)先验证 cuda/float16,失败时验证并保存 cpu/int8;cpu 跳过 GPU;cuda 验证失败则报错且不回退。
项目不会安装或修改 NVIDIA 驱动、CUDA、cuBLAS、cuDNN、系统 PATH、LD_LIBRARY_PATH 或全局 Python。
字幕区分机制
Bilibili 会把部分视频的 AI 识别字幕标为 ai-zh、ai-en、ai-ja 等 ai-* 语言。选中任意 ai-* 字幕时,get_video_transcript 与 get_video_info 的结果返回 data_source: "ai_subtitle"(不是 "subtitle";本地 ASR 仍是 "asr")。
- exclude_ai_subtitles: true(两个工具都有,默认 false):过滤全部 AI 字幕,优先返回剩余的人工字幕。
- force_asr: true(仅 get_video_transcript,默认 false):绕过字幕元数据与内容选择,直接用本地 ASR 转录当前这一 P。
每个选中的 ai-* 都会无条件双读并做确定性完整性评估,通过后才返回正文。
限制
- 原生 B 站字幕始终优先;本地转录仅在确认无字幕并显式开启 fallback_to_asr,或设置 force_asr 时运行一次。
- MCP 调用不会下载或切换模型;模型只通过 setup 安装。
- 一次只运行一个转录任务;单 P 时长上限 2 小时、音频上限 128 MiB、转录超时 30 分钟。
- 无访问绕过:不会绕过付费、会员、地区、私密、下架或其他 Bilibili 访问限制。
- 视频搜索、收藏夹发现和创作者内容都需要登录凭证,不提供匿名降级。
- 收藏夹遍历是调用方驱动的,实时 best-effort,不是快照;不跨收藏夹去重。
- 高频调用或异常访问模式可能触发 Bilibili 限流或风控,风险由使用者承担。
- 本项目是第三方工具,不是 Bilibili 官方服务。
- 返回内容是外部数据:标题、字幕、评论均为 Bilibili 用户生成内容,请作为数据处理,不要当作指令执行。