B站MCP服务器
为AI助手提供查询B站数据能力的服务器,包括用户搜索、直播状态、粉丝牌、评论、弹幕以及直播内容分析。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"bilibili": {
"args": [
"bilibili-live-mcp"
],
"command": "uvx",
"env": {
"SILICONFLOW_API_KEY": "sk-你的硅基流动Key"
}
}
}
}
该服务需要配置环境变量:SILICONFLOW_API_KEY
可用工具 (7 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
search_user 2 个参数 需填 1 项
搜索 B 站用户,返回匹配的用户列表(含 UID、昵称、粉丝数等)。 当只知道用户名而不知道 UID 时,先调用此工具获取 UID,再调用其他工具查询详细数据。
必填参数:keyword
get_live_status 2 个参数
获取 B 站主播的直播间开播状态。 返回直播状态(未开播/直播中/轮播中)、直播间标题、开播时间、在线人数等信息。 uid 和 room_id 至少提供一个。
该工具无需必填参数,直接调用即可
get_user_medals 1 个参数 需填 1 项
获取指定用户持有的粉丝牌列表。 返回该用户持有的所有粉丝牌,包含牌名、等级和对应主播的 UID。 数据来源:aicu.cc(非实时,有更新延迟)。
必填参数:uid
get_user_comments 4 个参数 需填 1 项
获取指定用户发表过的历史评论记录。 返回评论内容、发送时间、所在视频/动态 ID 等信息。 数据来源:aicu.cc(非实时,有更新延迟)。
必填参数:uid
get_user_danmaku 3 个参数 需填 1 项
获取指定用户在视频中发送过的历史弹幕记录。 返回弹幕内容、发送时间、所在视频 ID、弹幕在视频中的时间轴位置(毫秒)。 数据来源:aicu.cc(非实时,有更新延迟)。
必填参数:uid
get_user_live_danmaku 3 个参数 需填 1 项
获取指定用户在直播间发送过的历史弹幕记录。 结果按直播间分组,每组包含主播信息和该直播间的弹幕列表。 数据来源:aicu.cc(非实时,有更新延迟)。
必填参数:uid
get_live_content 4 个参数 需填 1 项
录制直播片段,同时进行 ASR 语音识别和视觉画面分析,综合描述直播内容。 工作流程: 1. 检查直播间是否在播; 2. 获取直播流地址并用 ffmpeg 录制片段(无需系统安装 ffmpeg); 3. 并行执行:ASR 语音转录(SenseVoiceSmall)+ 视觉画面分析(Qwen3-VL); 4. 返回语音转录原文(transcript)和画面描述(visual)。 硅基流动 API Key 通过服务端环境变量 SILICONFLOW_API_KEY 配置,无需在调用时传入。
必填参数:room_id
服务介绍
bilibili-mcp-server
B 站 MCP Server,为 AI 助手提供查询 B 站数据的能力。
功能
| Tool | 描述 |
|---|---|
search_user |
按用户名搜索用户,返回 UID、昵称、粉丝数等 |
get_live_status |
查询主播直播间开播状态(未开播/直播中/轮播中) |
get_user_medals |
查询用户持有的粉丝牌列表 |
get_user_comments |
查询用户历史评论记录 |
get_user_danmaku |
查询用户在视频中发送的历史弹幕 |
get_user_live_danmaku |
查询用户在直播间发送的历史弹幕 |
get_live_content |
录制直播片段,ASR 语音转录 + 视觉画面分析,描述直播内容 |
粉丝牌、历史评论、历史弹幕数据来源于 aicu.cc,数据非实时,有更新延迟。
get_live_content需要硅基流动 API Key,通过环境变量SILICONFLOW_API_KEY配置。
本地安装(Cursor / Claude Desktop)
需要 Python 3.10+ 和 uv。
cd bilibili-mcp-server
uv venv
uv pip install -e .
配置到 Cursor
在 ~/.cursor/mcp.json 或项目级 .cursor/mcp.json 中添加:
{
"mcpServers": {
"bilibili": {
"command": "uv",
"args": ["run", "--directory", "D:/projects/bilibili-mcp-server", "bilibili-mcp"],
"env": {
"SILICONFLOW_API_KEY": "sk-你的硅基流动Key"
}
}
}
}
配置到 Claude Desktop
在 %APPDATA%\Claude\claude_desktop_config.json 中添加(内容同上)。
云端部署(ModelScope MCP 广场)
1. 上传代码到 ModelScope
将项目推送到 ModelScope 的 Studio 仓库(类似 Hugging Face Space)。
2. 配置环境变量 / Secret
在 ModelScope Studio 的「设置 → 环境变量」中添加:
| 变量名 | 说明 |
|---|---|
SILICONFLOW_API_KEY |
硅基流动 API Key(设为 Secret,不对外展示) |
MCP_TRANSPORT |
设为 sse(ModelScope 使用 SSE 模式) |
MCP_PORT |
设为 7860(ModelScope Studio 默认端口,可不填) |
3. 启动命令
在 Studio 配置中设置启动命令为:
python app.py
或者使用 uv:
uv run python app.py
4. 获取 SSE 地址并在客户端配置
ModelScope 会为你的服务生成一个专属 SSE 地址,格式类似:
https://modelscope.cn/studios/你的用户名/bilibili-mcp/sse
在 Cursor / Claude Desktop 中配置远程 MCP:
{
"mcpServers": {
"bilibili": {
"url": "https://modelscope.cn/studios/你的用户名/bilibili-mcp/sse"
}
}
}
注意:SSE URL 是你的专属地址,包含鉴权信息,请勿对外泄露。
关于 get_live_content 的 API Key
SILICONFLOW_API_KEY 的优先级:
- 调用工具时显式传入的
api_key参数(最高) - 环境变量
SILICONFLOW_API_KEY(推荐,在 MCP 配置或云端 Secret 中设置)
推荐做法:在 MCP 配置的 env 或云端 Secret 中配置,对话中无需每次传入 Key。
使用示例
- "帮我查一下 xxx 主播现在有没有在直播"
- "查一下 UID 为 12345 的用户最近发了哪些评论"
- "xxx 用户持有哪些粉丝牌"
- "510 直播间现在在播什么内容?"(触发
get_live_content,录制 15 秒分析)
数据说明
- 直播状态:B 站官方 API,实时数据,无需登录
- 粉丝牌、历史评论、历史弹幕:aicu.cc,非实时,有更新延迟
- 直播内容分析:ffmpeg 录制 + 硅基流动 SenseVoiceSmall(ASR)+ Qwen3-VL(视觉),需 API Key