bilibili-mcp-server
# Bilibili MCP Server
[English](./README_en.md) | [中文](./README.md)
B 站的 MCP 服务。提供视频搜索、评论管理、弹幕字幕、用户信息、动态专栏、扫码登录、直播截图视觉分析等功能,共 31 个工具。
## 工具列表
| 类别 | 工具 | 数量 |
|:----:|------|:----:|
| 评论 | `bilibili_reply`、`bilibili_delete_comment`、`bilibili_like_comment` | 3 |
| 搜索 | `bilibili_search`、`bilibili_search_hot` | 2 |
| 视频 | `bilibili_video_info`、`bilibili_video_comments`、`bilibili_video_subtitle`、`bilibili_video_danmaku`、`bilibili_hot` | 5 |
| 用户 | `bilibili_user_info`、`bilibili_user_videos`、`bilibili_user_favorites`、`bilibili_user_follow`、`bilibili_user_unfollow`、`bilibili_user_followings`、`bilibili_user_followers` | 7 |
| 内容 | `bilibili_user_dynamics`、`bilibili_article_info`、`bilibili_user_articles` | 3 |
| 消息 | `bilibili_detect_replies`、`bilibili_notifications` | 2 |
| 直播 | `bilibili_live_info`、`bilibili_live_screenshot` | 2 |
| 登录 | `bilibili_login`、`bilibili_login_check` | 2 |
| 系统 | `bilibili_refresh_cookie` | 1 |
| 下载 | `bilibili_video_download`、`bilibili_article_download`、`bilibili_download_list` | 3 |
| 弹幕 | `bilibili_send_danmaku` | 1 |
## 快速开始
### 环境要求
- Node.js 22+
- B 站账号(用于需要登录的操作)
- ffmpeg(**仅**视频下载工具需要;macOS: `brew install ffmpeg`,Windows: `choco install ffmpeg`,Linux: `apt install ffmpeg`)
### 安装
```bash
# 直接运行
npx bilibili-mcp-server
# 或全局安装
npm install -g bilibili-mcp-server
bilibili-mcp-server
```
### 配置
支持环境变量或项目目录下的 `.env` 文件:
```bash
# 必填 - 从浏览器开发者工具 → Application → Cookies → bilibili.com 获取
export BILIBILI_SESSDATA=你的sessdata
export BILIBILI_BILI_JCT=你的bili_jct
export BILIBILI_DEDE_USER_ID=你的uid
# 可选 - Cookie 自动刷新
# 获取方式: bilibili.com → F12 → Console → 输入:
# console.log(localStorage.getItem('ac_time_value'))
export BILIBILI_REFRESH_TOKEN=你的refresh_token
# 可选 - 完整 Cookie(热搜等功能需要)
# export BILIBILI_FULL_COOKIE="buvid3=xxx; buvid4=xxx; _uuid=xxx; ..."
# 可选
export BILIBILI_AUTO_REFRESH=true
export BILIBILI_COOKIE_FILE=/path/to/cookie.json
export BILIBILI_DETECT_FILE=/path/to/detect.json
```
### MCP 客户端配置
```json
{
"mcpServers": {
"bilibili": {
"command": "npx",
"args": ["-y", "bilibili-mcp-server"],
"env": {
"BILIBILI_SESSDATA": "你的sessdata",
"BILIBILI_BILI_JCT": "你的bili_jct",
"BILIBILI_DEDE_USER_ID": "你的uid"
}
}
}
}
```
### 扫码登录
不想手动复制 Cookie 的话,可以调扫码登录:
1. 调 `bilibili_login` 获取二维码
2. 手机 B 站 App 扫码
3. 调 `bilibili_login_check` 检测登录状态
4. 登录成功自动保存 Cookie
## 工具说明
### 登录与认证
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_login` | 生成扫码登录二维码 | - |
| `bilibili_login_check` | 轮询扫码状态,登录成功自动保存 | `loginKey`, `maxRetries?` |
| `bilibili_refresh_cookie` | 手动触发 Cookie 刷新 | - |
### 评论管理
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_reply` | 发布评论或回复 | `videoId`, `message`, `parentRpid?` |
| `bilibili_delete_comment` | 删除自己的评论 | `videoId`, `rpid` |
| `bilibili_like_comment` | 点赞/取消赞 | `videoId`, `rpid`, `action` |
### 视频与搜索
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_search` | 搜索视频 | `keyword`, `order?`, `page?`, `duration?` |
| `bilibili_video_info` | 视频详情 | `videoId` |
| `bilibili_video_comments` | 获取评论列表 | `videoId`, `max?` |
| `bilibili_video_subtitle` | 获取字幕 | `videoId`, `lang?` |
| `bilibili_video_danmaku` | 获取弹幕 | `videoId`, `segment?` |
| `bilibili_hot` | 热门视频 | `page?`, `max?` |
| `bilibili_search_hot` | 热搜关键词 | - |
### 用户
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_user_info` | 用户信息 | `uid` |
| `bilibili_user_videos` | UP 主视频列表 | `uid`, `max?` |
| `bilibili_user_favorites` | 收藏夹 | `uid`, `folderId?`, `max?` |
### 动态与专栏
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_user_dynamics` | UP 主最新动态 | `uid`, `max?` |
| `bilibili_article_info` | 专栏文章详情 | `cvid` |
| `bilibili_user_articles` | UP 主专栏列表 | `uid`, `max?` |
### 关注管理
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_user_follow` | 关注 UP 主 | `uid` |
| `bilibili_user_unfollow` | 取消关注 | `uid` |
| `bilibili_user_followings` | 关注列表 | `uid`, `page?`, `pageSize?` |
| `bilibili_user_followers` | 粉丝列表 | `uid`, `page?`, `pageSize?` |
> 关注/取关操作会被 B 站风控监控,不建议短时间内大量操作。
### 弹幕
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_send_danmaku` | 发送弹幕 | `videoId`, `cid`, `progress`, `message`, `color?`, `mode?` |
> 弹幕发送是高风控操作,建议每天不超过 5 条。
### 下载
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_video_download` | 下载视频(需 ffmpeg) | `videoId`, `cid?`, `quality?`, `outputDir?` |
| `bilibili_article_download` | 下载专栏为 Markdown | `cvid`, `outputDir?`, `downloadImages?` |
| `bilibili_download_list` | 查看已下载列表 | `outputDir?` |
> 视频下载会自动下载 DASH 音视频并用 ffmpeg 合并为 mp4。默认保存到 `./bilibili-downloads/`。
### 消息通知
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_detect_replies` | 检测新回复 | `max?` |
| `bilibili_notifications` | 查看未读通知 | - |
### 直播
| 工具 | 功能 | 参数 |
|------|------|------|
| `bilibili_live_info` | 查询直播间信息 | `uid` |
| `bilibili_live_screenshot` | 截取直播间当前画面(视觉分析) | `uid` |
> `bilibili_live_screenshot` 会把关键帧截图作为图片返回给模型,让具备视觉能力的 AI 分析直播内容。如模型无视觉能力,仅返回文字元数据。
## 项目结构
```
src/
├── index.ts
├── env.ts
├── config.ts
├── api/
│ ├── http.ts
│ ├── bilibili.ts
│ ├── wbi.ts
│ ├── cookie.ts
│ ├── login.ts
│ └── danmaku.ts
├── tools/
│ ├── comment.ts
│ ├── video.ts
│ ├── user.ts
│ ├── content.ts
│ ├── message.ts
│ ├── login.ts
│ └── live.ts
└── types/
└── index.ts
```
## 开发
```bash
npm install
npm run dev # 开发模式
npm run build # 构建
npm test # 测试
```
## 许可证
MIT
TDQS
Scored across 21 tools
Most tools target distinct resources (videos, users, articles, live, auth), making selection generally clear. Minor ambiguity exists between bilibili_hot vs bilibili_search_hot and bilibili_notifications vs bilibili_detect_replies, but descriptions resolve the differences.
All tools share the bilibili_ prefix, but the pattern is mixed: some are resource_noun (video_info, user_followers), some are verb-only (search, hot, reply), and pairing is inconsistent (video_download vs download_list, search_hot vs hot). Still readable, but not a uniform verb_noun convention.
21 tools is on the heavy side, but the server covers a broad Bilibili surface including auth, videos, users, articles, live, and downloads. Each tool has a concrete purpose, so the count feels slightly over a lean scope rather than bloated.
Coverage is solid for read operations and basic interactions (comments, danmaku, downloads), and auth is fully handled. Notable gaps exist: bilibili_search explicitly references a bilibili_user_videos tool that does not exist, and there are no like/coin/favorite, follow/unfollow, or comment moderation tools, leaving some workflows incomplete.