bilibili-mcp
by 77rickliu
README.md
# bilibili-mcp
> 🍴 **优化版 Fork** · 基于 [adoresever/bilibili-mcp](https://github.com/adoresever/bilibili-mcp) 二次开发
>
> **原作者:[adoresever](https://github.com/adoresever)**(原始项目采用 MIT 协议,版权归原作者所有)。
> 本仓库在原始版本基础上,新增了**私信读取工具**、**TV 通道扫码登录**,以及一套**「搜索 → 审核 → 定时回复」的自动化运营脚本**,用于围绕指定运营目标、在相关视频评论区安全可控地铺内容。优化工作由 **77rickliu(Rick)** 完成。
B站(Bilibili)MCP Server —— 让 AI 助手直接操作B站。
支持 OpenClaw / Claude Code / Cursor / Cline 等所有 MCP 客户端。
**29 个工具**,覆盖登录认证、搜索采集、内容发布、数据分析、互动运营。
## 功能
### 登录认证
| Tool | 功能 | 说明 |
|------|------|------|
| `bili_login` | 扫码登录 | 生成二维码(base64图片),AI直接展示给用户扫码 |
| `bili_login_check` | 登录状态检查 | 轮询扫码状态,扫码成功后自动保存凭证 |
| `bili_check_credential` | 凭证验证 | 检查当前登录是否有效,返回用户名等信息 |
> **TV 通道登录(本仓库新增)**:除 MCP 内扫码外,另提供 `bili_login_helper.py`,使用 `QrCodeLoginChannel.TV` 通道生成二维码并轮询。TV 通道的 cookie 来自 `cookie_info`,不受 Web 端 `url` 字段偶发为空的影响,登录更稳。
>
> ```bash
> .venv/Scripts/python.exe bili_login_helper.py
> ```
### 数据采集
| Tool | 功能 | 说明 |
|------|------|------|
| `bili_search` | 搜索视频 | 按关键词搜索,支持按播放量/最新/弹幕排序 |
| `bili_comments` | 获取评论 | 获取视频热门评论,含子评论 |
| `bili_subtitle` | 获取字幕 | 获取视频AI字幕(语音转文字) |
| `bili_danmaku` | 获取弹幕 | 获取视频弹幕列表 |
| `bili_video_info` | 视频详情 | 获取播放量、评论数、收藏数等 |
| `bili_reply` | 回复评论 | 发表评论或回复评论(支持楼中楼) |
| `bili_crawl` | 批量采集 | 搜索+评论+字幕一步到位 |
### 内容发布
| Tool | 功能 | 说明 |
|------|------|------|
| `bili_send_dynamic` | 发图文动态 | 发布文字/图文动态,支持定时发布、话题关联 |
| `bili_upload_video` | 上传视频 | 单P视频上传,支持封面、标签、分区选择 |
| `bili_upload_video_multi` | 多P上传 | 多分P视频合并投稿 |
| `bili_send_opus` | 图文专栏 | 发布图文长内容(Opus) |
| `bili_video_zones` | 分区查询 | 获取常用分区ID,辅助视频上传 |
### 数据分析
| Tool | 功能 | 说明 |
|------|------|------|
| `bili_hot_videos` | 热门视频 | 获取当前B站热门视频列表 |
| `bili_hot_buzzwords` | 热搜关键词 | 获取B站热搜词/热门话题 |
| `bili_weekly_hot` | 每周必看 | 获取每周必看推荐视频 |
| `bili_rank` | 排行榜 | 全站及17个分区排行榜 |
| `bili_user_info` | 用户信息 | 获取UP主粉丝数、等级、总播放量等 |
| `bili_user_videos` | 用户视频 | 获取UP主投稿列表,支持排序和搜索 |
### 互动运营
| Tool | 功能 | 说明 |
|------|------|------|
| `bili_favorite_lists` | 收藏夹列表 | 获取自己或他人的收藏夹 |
| `bili_favorite_content` | 收藏夹内容 | 获取收藏夹内视频,支持搜索 |
| `bili_send_message` | 发私信 | 给指定用户发送文字私信 |
| `bili_list_messages` | 私信会话列表(本仓库新增) | 列举私信会话,支持只列未读;返回 `talker_id` / 未读数 / 最后一条消息 |
| `bili_read_session` | 读取私信会话(本仓库新增) | 按 `talker_id` 读取某段会话完整消息,兼容两层嵌套 JSON 内容 |
| `bili_unread_messages` | 未读消息 | 获取私信、@、回复、点赞等未读数 |
| `bili_received_replies` | 收到的回复 | 获取评论回复通知(含他人回复我的评论) |
| `bili_received_at_and_likes` | @和点赞 | 获取@提及和点赞通知 |
## 自动化运营(本仓库新增)
围绕指定运营目标设计的一套**草稿 + 人工审核**工作流,由 `auto_daily.py` 与 `auto_send.py` 两个脚本组成,配合 MCP 工具使用。
### 设计原则
- **绝不自动发送**:`auto_daily.py` 只负责准备与汇报,把计划写入 `auto_plan.json`(`confirmed=False`);真正发送必须由人在审核通过后,手动带 `--confirm` 触发。
- **降低风控与重复**:20 条目标评论会自然铺到 4+ 个视频(每视频最多 5 条);3 条候选文案按 `A/B/C/A/B/C…` 轮流分配,平均铺开。
- **无外链推广**:默认文案不携带注册链接,更自然、更安全。
### auto_daily.py —— 每日准备与汇报
- 按日期轮换选用一个关键词(在脚本 `KEYWORDS` 中配置,例如 `<关键词A>` / `<关键词B>` / `<关键词C>`)
- 搜索并选取 **20 条**目标评论(跨多个视频、按赞排序的前几条,单视频 ≤5 条)
- 每次生成 **3 条不同风格候选文案**(A 纯体验口播 / B 场景种草 / C 换角度口播),供用户审核
- 检查**未读私信**并全部列举;同时检测**他人回复我的评论**并列举(与私信同等呈现)
- 发送间隔预置为 **60–120s 随机**
- 输出结构化报告,计划写入 `auto_plan.json`
### auto_send.py —— 人工确认后发送
- 读取 `auto_plan.json`,对 20 条目标逐条回复,间隔 60–120s 随机
- 文案默认采用 3 条候选**轮流分配**;可用 `--text "..."` 整体覆盖为单一自定义文案
- **安全护栏**:必须带 `--confirm`(或环境变量 `AUTO_CONFIRM=1`)才会真正发送,否则直接拒绝,避免被定时任务或误操作误发
```bash
# 准备(草稿,不发送)
.venv/Scripts/python.exe auto_daily.py
# 人工审核 auto_plan.json 后,确认发送
.venv/Scripts/python.exe auto_send.py --confirm
# 或统一用自定义文案
.venv/Scripts/python.exe auto_send.py --confirm --text "这是一条自定义评论文案示例"
```
> 典型用法:把 `auto_daily.py` 挂到定时任务(如工作日固定时间),脚本生成报告与候选文案供你审核;确认后手动运行 `auto_send.py --confirm` 完成发布。
## 快速开始
### 1. 克隆项目
```bash
git clone https://github.com/77rickliu/bilibili-mcp.git
cd bilibili-mcp
```
### 2. 安装依赖
```bash
pip install -r requirements.txt
```
需要 Python 3.10+,视频上传自动截取封面需要 ffmpeg。
> **依赖版本锁定(本仓库新增)**:`requirements.txt` 中 `mcp` 已锁定为 `>=1.0.0,<2.0.0`。MCP 2.0.0 移除了 `FastMCP`,会导致原版启动报 `ImportError`;锁定后随 `mcp` 1.x 稳定可用。
### 3. 登录
**方式一:通过 AI 工具登录(推荐)**
接入 MCP 后,直接对 AI 说"登录B站",AI 会调用 `bili_login` 生成二维码展示给你扫码,全程无需终端操作。
**方式二:TV 通道命令行登录(更稳定)**
```bash
python bili_login_helper.py
```
**方式三:原版命令行登录**
```bash
python bili_login.py
```
### 4. 测试运行
```bash
npx @modelcontextprotocol/inspector python mcp_server.py
```
## 接入 AI 工具
### OpenClaw
```bash
npm i -g mcporter
npx mcporter config add bilibili-mcp "python /path/to/bilibili-mcp/mcp_server.py"
```
或直接把 GitHub 链接粘贴到 OpenClaw 对话框,让它自动配置。
### Claude Code
在项目目录创建 `.mcp.json`:
```json
{
"mcpServers": {
"bilibili-mcp": {
"command": "python",
"args": ["/path/to/bilibili-mcp/mcp_server.py"]
}
}
}
```
### Cursor / Cline
在设置中添加 MCP Server,command 填 `python`,args 填 `mcp_server.py` 的完整路径。
## 使用示例
接入后,你可以直接用自然语言让 AI 操作:
- "登录B站"(AI会展示二维码给你扫)
- "搜索B站上关于AI Agent的热门视频"
- "获取这个视频的评论,分析用户需求"
- "获取视频字幕,总结视频内容"
- "帮我回复这条评论"
- "批量采集OpenClaw相关视频的评论和字幕"
- "帮我发一条B站动态,配上这几张图片"
- "把这个视频上传到B站科技区"
- "看看B站现在什么最火"
- "获取科技区排行榜前10的视频"
- "分析这个UP主的粉丝和投稿数据"
- "我有多少未读私信和回复?"
- "检索一下我的私信会话,并读取其中一段的完整内容"(本仓库新增能力)
- "看看我的收藏夹里有什么"
## 技术栈
- **[bilibili-api-python](https://github.com/Nemo2011/bilibili-api)** — B站 API 封装库,提供搜索、评论、字幕、弹幕等全部接口
- **[MCP (Model Context Protocol)](https://modelcontextprotocol.io/)** — Anthropic 提出的开放协议,标准化 AI 与工具的交互
- **[FastMCP](https://github.com/modelcontextprotocol/python-sdk)** — MCP Python SDK(本仓库锁定 `mcp<2.0.0` 以兼容 `FastMCP`)
## 项目结构
```
bilibili-mcp/
├── mcp_server.py # MCP Server 主文件(29个tool)
├── bili_login.py # 命令行扫码登录(备用)
├── bili_login_helper.py # TV通道扫码登录(本仓库新增,登录更稳)
├── auto_daily.py # 每日自动准备与汇报脚本(草稿,不发送)【本仓库新增】
├── auto_send.py # 人工确认后发送脚本(带 --confirm 护栏)【本仓库新增】
├── auto_plan.json # 自动任务计划产出(自动生成,已 gitignore)
├── bili_credential.json # 登录凭证(自动生成,勿提交,已 gitignore)
├── requirements.txt # Python 依赖(锁定 mcp<2.0.0)
├── README.md # 项目说明
├── LICENSE # MIT 开源协议
└── .gitignore # Git 忽略文件
```
## 注意事项
- 首次使用通过 AI 对话即可完成登录,无需终端操作
- 凭证保存在本地,不会上传(见 `.gitignore`)
- 请求间隔自动控制,避免频率过快
- 回复评论/发私信功能请谨慎使用,遵守B站社区规则
- 视频上传未指定封面时,自动从视频第3秒截取(需要ffmpeg)
- 自动化脚本默认**草稿模式**,务必人工审核 `auto_plan.json` 后再 `--confirm` 发送
- 本项目仅用于学习和研究
## 致谢 / 原作者
- 原始项目与核心 MCP 工具来自 **[adoresever/bilibili-mcp](https://github.com/adoresever/bilibili-mcp)**,采用 MIT 协议,版权归原作者 **adoresever** 所有。
- 本仓库的私信读取工具(`bili_list_messages` / `bili_read_session`)、TV 通道登录(`bili_login_helper.py`)、自动化运营脚本(`auto_daily.py` / `auto_send.py`)及依赖版本锁定,由 **77rickliu(Rick)** 在原始项目基础上新增与优化。
## License
MIT(继承自原项目;新增代码同样以 MIT 协议发布)
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues