Skip to main content
Glama
Gsxcheng
by Gsxcheng

bilibili-agent-mcp

让 AI Agent 直接使用 B 站的 MCP 服务。

非 Bilibili-Evolved 官方项目。功能参考并部分移植自 the1812/Bilibili-Evolved(MIT),在此致谢。

把 Bilibili-Evolved 里「能脱离浏览器页面独立运行」的功能移植成 MCP 服务,让 Claude / Cursor 等 AI 客户端可以直接调用:查视频、下视频、抓弹幕、拿字幕文字稿、看评论、搜索、热榜、UP 主信息、稍后再看 / 收藏 / 历史 / 动态。

版本 V0.1 · Node.js ≥ 18.17 · 本地 stdio / 远程 HTTP 两种模式 · 15 个工具 + 1 个提示词模板

为什么不是“直接把脚本包一层”

Bilibili-Evolved 是油猴脚本,运行在 B 站网页里,大部分组件是改 DOM / 改样式 / 改播放器行为。这类功能离开浏览器没有意义,AI 也调用不了。本项目只移植以数据和 B 站接口为核心的功能,并在服务端补上浏览器原本自动完成的部分(WBI 签名、buvid 风控 Cookie、Referer、ffmpeg 合并)。

Bilibili-Evolved 功能

MCP 工具

说明

BV 号转换、av 号链接

bili_resolve

识别链接 / BV / av / ep / ss / md / cv / UID / 直播间,展开 b23.tv 短链

展开完整简介、查看封面、视频元数据

bili_video_info

标题、完整简介、封面、UP 主、数据、标签、分 P、合集;番剧返回剧集与评分

下载视频(DASH,AVC/HEVC/AV1)

bili_video_streams

清晰度 / 编码列表与直链

下载视频 + 输出插件、批量下载、下载音频、查看封面

bili_download / bili_download_status

后台任务;ffmpeg 自动合并并写入章节;可附带封面 / 弹幕 / 字幕 / 元数据

下载弹幕、弹幕转换器(XML→ASS)

bili_danmaku

stats 统计高频弹幕与高能时间点、lines 带时间戳文本、ass/xml/json 存文件

下载字幕

bili_subtitles

文字稿(最适合 AI 总结)、SRT、ASS、JSON

保存视频元数据(ffmetadata / OGM 章节)

bili_chapters

UP 主看点章节;番剧 OP/ED 转章节

评论区增强

bili_comments

热门 / 最新、置顶、IP 属地、楼中楼,可翻页

搜索栏 / Launch Bar 搜索

bili_search

视频、用户、番剧、影视、直播间、专栏

热搜、排行

bili_hot

热搜词、综合热门、分区排行、每周必看

UID 搜索、查看头像

bili_user

资料、粉丝、获赞、认证、最近投稿

直播相关

bili_live_room

标题、开播状态、人气、分区

稍后再看、收藏、历史、动态

bili_account

需登录 Cookie,只读

稍后再看添加 / 移除

bili_watch_later_edit

写操作,默认关闭

—

提示词 summarize_bilibili_video

一键「总结这个视频」:信息 + 字幕 + 章节 + 弹幕反应

没有移植的(依赖网页 DOM 或纯视觉):夜间模式、自定义导航栏、播放器定位 / 快捷键 / 手势、宽屏、去广告、样式调整、直播礼物框隐藏等。

Related MCP server: Bilibili API MCP Server

安装

git clone https://github.com/Gsxcheng/Bilibili-Agent-mcp.git bilibili-agent-mcp
cd bilibili-agent-mcp
npm install          # 会自动编译到 dist/
npm test             # 可选:36 个离线测试

想要下载后自动合并音视频,请安装 ffmpeg 并确保在 PATH 中(或设置 BILIBILI_FFMPEG)。

接入 AI 客户端

两种方式:

方式

适用客户端

怎么接

本地 stdio

Claude Desktop、Claude Code、Cursor 等能启动本地程序的客户端

在客户端配置里写启动命令(见下)

远程 HTTP

Claude 网页版 / 手机 App 的连接器、ChatGPT 网页版 Developer mode

npm run start:http + Cloudflare Tunnel,详见 部署说明

本地 stdio

下面的 /绝对路径/bilibili-agent-mcp 换成你本机路径(Windows 用 C:\\path\\to\\... 形式)。

Claude Desktop(设置 → 开发者 → 编辑配置,claude_desktop_config.json):

{
  "mcpServers": {
    "bilibili": {
      "command": "node",
      "args": ["/绝对路径/bilibili-agent-mcp/dist/index.js"],
      "env": {
        "BILIBILI_COOKIE": "SESSDATA=...; bili_jct=...; buvid3=...",
        "BILIBILI_DOWNLOAD_DIR": "/Users/你/Downloads/bilibili"
      }
    }
  }
}

Claude Code:

claude mcp add bilibili -e BILIBILI_COOKIE="SESSDATA=...; bili_jct=..." -- node /绝对路径/bilibili-agent-mcp/dist/index.js

Cursor(~/.cursor/mcp.json):与 Claude Desktop 相同的 mcpServers 结构。

配置后重启客户端,直接对 AI 说:「总结一下 https://b23.tv/xxxx」「把这个视频 1080P 下载下来并带上弹幕」「这期视频观众在哪几分钟最激动?」。

远程 HTTP(Claude / ChatGPT 网页版连接器)

cp .env.example .env     # 可选:填 Cookie 等配置
npm run start:http       # 启动后会打印带访问密钥的连接器地址
cloudflared tunnel --url http://127.0.0.1:8787   # 临时隧道,先跑通用

把 https://<隧道域名>/mcp/<访问密钥> 填到 Claude 的 Customize → Connectors → Add custom connector,或 ChatGPT 的 Settings → Apps → Developer mode → Create app。固定域名、开机自启、常见问题见 docs/DEPLOY-CLOUDFLARE.md。

远程模式要点:访问密钥自动生成并持久保存(~/.bilibili-agent-mcp/token),密钥不对一律返回 404;默认只监听 127.0.0.1;返回普通 JSON(不用 SSE),兼容 Cloudflare 临时隧道;生成的文件会附带受密钥保护的下载链接。

环境变量

变量

作用

默认

BILIBILI_COOKIE

浏览器里完整 Cookie 字符串(推荐)

空(游客)

BILIBILI_SESSDATA / BILIBILI_BILI_JCT

只填这两项也可以

空

BILIBILI_DOWNLOAD_DIR

下载与导出目录

~/Downloads/bilibili

BILIBILI_FFMPEG

ffmpeg 路径

ffmpeg

BILIBILI_ALLOW_WRITE

true 才开放会修改账号的工具

关闭

BILIBILI_USER_AGENT

自定义 UA

Chrome 130

BILIBILI_MCP_TOKEN

远程模式访问密钥(≥16 位)

自动生成

BILIBILI_MCP_PORT / BILIBILI_MCP_HOST

远程模式监听端口 / 地址

8787 / 127.0.0.1

BILIBILI_MCP_PUBLIC_URL

远程模式对外地址(生成下载链接用)

从请求头识别

以上变量都可以写在 .env 里(项目根目录或 ~/.bilibili-agent-mcp/.env),参考 .env.example。系统环境变量优先。

不配 Cookie 能用什么:视频信息、480P 以下流与下载、弹幕、评论、搜索、热榜、用户、直播间、章节。 需要 Cookie 的:720P/1080P 及以上(部分需大会员)、AI 字幕、稍后再看 / 收藏 / 历史 / 动态。

获取 Cookie:浏览器登录 bilibili.com → F12 → 应用(Application) → Cookie → https://www.bilibili.com,复制 SESSDATA、bili_jct、buvid3。

安全设计

  • Cookie 只发往 *.bilibili.com / b23.tv,不会发给视频 CDN(bilivideo.com、hdslb.com)或其他域名。

  • 修改账号数据的工具默认禁用,需显式设置 BILIBILI_ALLOW_WRITE=true,且工具带 destructiveHint 标注,客户端会提示确认。

  • 本服务只读写 BILIBILI_DOWNLOAD_DIR 下的文件;远程模式的文件下载接口同样需要访问密钥,且只能访问该目录。

  • 远程模式的连接器地址等同于密码,请勿外泄;更换方法见部署说明。

  • SESSDATA 等同于登录态,请勿把含 Cookie 的配置文件提交到 Git 或分享给他人;Cookie 过期后重新复制即可。

验证情况(V0.1)

项目

状态

WBI 签名、av⇄BV 算法

公开参考向量 + 5 个线上真实 av/BV 对比通过

弹幕 protobuf 解码与 ASS 转换

用线上 seg.so / dm/web/view 真实二进制数据解码通过

wbi/view、wbi/playurl、player/wbi/v2、reply/wbi/main、wbi/search/type、热搜、排行、每周必看、用户卡片、直播间、番剧季信息、buvid 获取

2026-10 线上请求,返回结构与代码一致

发现并修复

未签名的 /x/web-interface/view 现在会被返回 HTTP 412,已改用 wbi/view 并保留回退

MCP 协议、15 个工具、后台下载、ffmpeg 合并 + 章节写入、备用 CDN 回退、Cookie 隔离

26 个离线测试(真实 MCP Client + 模拟 B 站后端 + 真实 ffmpeg)

远程 HTTP 模式:密钥校验、Bearer 头、JSON 响应、文件下载链接、路径穿越防护、CLI 启动

10 个离线测试(真实 Streamable HTTP 客户端)

经 Cloudflare Tunnel 实际接入 Claude / ChatGPT

UNVERIFIED:开发环境无法建立隧道,需在你自己电脑上按部署说明验证

从 CDN 实际下载媒体、登录态接口(稍后再看 / 收藏 / 历史 / 动态 / AI 字幕 / 写操作)

UNVERIFIED:开发环境无法直连 B 站 CDN,且未使用登录账号测试

已知限制 / 路线图

  • B 站风控变化频繁;遇到 -352 / -412 时,配置完整 Cookie(含 buvid3)通常能解决。

  • 弹幕 ASS 的文字宽度是估算值(原脚本在浏览器里用 canvas 精确测量),极少数情况下滚动弹幕间距略有差异。

  • 下载任务保存在内存中,服务重启后任务列表清空(已下载的文件不受影响)。

  • 后续可加:专栏 / 动态图文、直播弹幕实时流、合集 / 收藏夹批量下载、视频截图(videoshot)、OAuth 登录(替代地址密钥)、发布到 npm。

许可与致谢

MIT。弹幕转换器、字幕 ASS 转换、DASH 选流逻辑移植自 the1812/Bilibili-Evolved(MIT),源文件头部标注了出处。本项目不分发 Bilibili-Evolved 脚本本体。B 站接口为非公开接口,请遵守 B 站用户协议,仅用于个人学习与合理使用;下载内容版权归原作者所有。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Bilibili (哔哩哔哩) through its API, supporting video search and recommendations, user search, dynamic feeds, video collections, and danmaku retrieval through natural language.
    5
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server that enables users to search Bilibili videos, access trending rankings, and retrieve detailed information about videos, content creators, and anime schedules. It allows AI applications to interact directly with Bilibili content via simple API interfaces.
    52 npm
    194
    MIT