bili_quickstart
返回哔哩哔哩开放平台的核心约定:主机、OAuth2 换 token/刷新、2.0 签名算法、通用返回结构、错误码分段、视频投稿技术限制。第一次使用或需要写对接代码前先调它。
170 篇官方文档、100 个端点、41 个推送事件、19 个 MCP 工具。文档检索、结构化规格、2.0 签名、OAuth2、直播长连、Webhook 验签、主站 Cookie 调用 —— 一次接好。所有接口均为官方公开提供,凭据自备、只在本机。
git clone https://github.com/3810220770/bili-open-mcp-bilibili-mcp-server.git然后 cd bili-open-mcp-bilibili-mcp-server && npm ci,把 src/server.mjs 填进客户端的 MCP 配置即可。
不是把文档搬过来,是把文档变成可以直接调用的能力。
170 篇官方文档解析成结构化规格:参数名、类型、必填、响应字段、子结构全都带,AI 检索命中率远高于喂原始 Markdown。
2.0 签名(HMAC-SHA256)已实现:六个 x-bili-* 头按字典序拼串、body md5、nonce、时间戳,一步生成可直接粘贴的 curl。
授权链接拼装 → code 换 token → refresh 续期 → 凭据体检。换到的 token 自动落盘,还能看清每一格凭据到底从哪来。
官方直播间 WebSocket 协议:16 字节包头、Operation 表、zlib 多包拆解,附可运行的 Python 客户端。
41 个推送事件的内容字段,以及 SHA1(secret + 原始 body) 的验签代码 —— 这是最容易错的一步,必须用原始字节。
另一套体系:用你自己的浏览器 Cookie 调主站 Web 接口,POST 自动补 csrf,/wbi/ 路径自动算 w_rid。
开放平台文档里没有的那些 —— 举报、拉黑、动态、评论、收藏、历史、消息、直播、创作中心,112 条主站 Web 接口,每条带无 Cookie 实测状态与坑位说明。
找文档 → 看懂接口 → 生成签名 → 发请求 → 排错,一条链路走完。
返回哔哩哔哩开放平台的核心约定:主机、OAuth2 换 token/刷新、2.0 签名算法、通用返回结构、错误码分段、视频投稿技术限制。第一次使用或需要写对接代码前先调它。
按目录或类型列出开放平台文档。folder 支持包含匹配(如 "视频稿件"、"直播"、"消息推送");type 可选 api / guide / event / protocol / multi-api。返回每条含 ref(#num)、标题、METHOD 路径、所在目录。
在 170 篇开放平台文档里搜索接口名、字段名、错误信息、协议细节。先按标题/目录/摘要命中,再回退全文。返回 ref(#num) 可用于 bili_api_spec / bili_docs_get。
按 ref(#num / id / 标题 / 文件名 / 接口URL)返回文档完整 Markdown。协议、长连、Webhook 等非接口文档用它。maxChars 默认 40000。
返回某个接口的方法、完整 URL、scope、url/body 参数(类型+是否必填+说明)、响应字段、请求与响应样例。这是写调用代码前该看的工具。
按开放平台规则生成 Authorization 与 x-bili-* 头,并输出可直接粘贴的 curl。凭据可用参数传入,否则读环境变量 BILI_CLIENT_ID / BILI_APP_SECRET / BILI_ACCESS_TOKEN。body 传对象会自动 JSON 序列化(GET 请忽略)。
给 ref(#num/标题/URL)或直接 url,自动签名并发起真实请求。query/body 传对象。dryRun=true 时只返回将要发出的请求与 curl,不发送。凭据读 BILI_CLIENT_ID / BILI_APP_SECRET / BILI_ACCESS_TOKEN。
查开放平台错误码含义。支持 4002 / 127007 这种完整码,也支持 4 位前缀模糊(如 1230 列出所有视频稿件码)。
按 method / scope / host / 路径关键词过滤端点,返回 #ref、METHOD、PATH、scope。适合「所有需要 SHOP_ORDER_INFO 的 POST 接口」这类问题,比全文搜索更准。默认最多 40 条。source:"web" 时改列开放平台文档里没有的「隐藏能力」(主站 Web,如举报 / 拉黑 / 动态 / 评论 / 直播),source:"all" 两边一起列。默认最多 40 条。
不带参数:列出全部 scope 及覆盖的端点数。带 scope:列出该 scope 下所有端点。带 ref:返回该接口需要的 scope 及每个 scope 下的其它接口。用于确认应用该申请哪些权限。
把 query/body 按文档类型做转换(int→数字、bool→布尔、[]x→数组),检查必填是否缺失、是否多传了文档没有的字段,并给出最终 URL/body 与签发 curl 的下一步。写代码前用它避免类型错误。
按接口规格生成可运行代码骨架,含完整 2.0 签名实现、该接口的全部参数(必填直接写入、可选注释掉)、返回码处理。lang 支持 python / node / curl / java / php / go。比手写签名可靠。
给文件大小,算出该用单文件还是分片、分几片、每片范围、part_number 起止,并输出完整调用顺序(init → upload → complete → 提交)与可直接粘的 curl。
action=help 讲清整条链路;authorize-url 拼出授权页链接;status 看 clientId/secret/token 各自有没有、从哪来;exchange 用 code 换 access_token;refresh 续期(refresh_token 只能用一次)。换到的 token 会自动写入 secrets/open-platform.json。凭据取自参数、BILI_CLIENT_ID/BILI_APP_SECRET 或该文件。
action=list 列出 41 个推送事件(按模块分组);action=detail 看某个事件的内容字段;action=verify-code 生成验签 + verify_webhooks 应答代码(python/node)。验签用 SHA1(secret + 原始 body),必须用原始字节。
返回直播间 WebSocket 长连协议(建连流程、16 字节包头、Operation 表、zlib 多包解析),可选生成内联 Python 客户端。对应文档 #43–#46。
action=list 列出 43 个 mock 接口(按模块);action=map 把正式接口换算成 mock 地址(两者路径不总一致);action=call 真实调用 mock(同样走 2.0 签名,凭据不足时用 dryRun)。
管理主站 www.bilibili.com 的浏览器 Cookie(与开放平台 client_id/secret 是两套体系)。action=status 列关键 cookie 与过期时间;whoami 验证登录态;import 收下 EditThisCookie 数组 / {name:value} / "k=v; k=v";set / clear / export。默认脱敏,reveal:true 才显示原值。
用 Cookie 罐调主站/主 API 的 Web 接口(不是开放平台的那套签名接口)。自动带 Cookie、UA、Referer;POST 若给 form 则按 x-www-form-urlencoded 并自动补 csrf=bili_jct。路径含 /wbi/、/polymer/ 等会自动做 wbi 签名(w_rid+wts),可显式 wbi:true/false 覆盖。dryRun 只看请求。
任意支持 MCP stdio 的客户端,本质就是启动 node src/server.mjs 再收发 JSON-RPC。
{
"mcpServers": {
"bili-open": {
"command": "node",
"args": ["C:/path/to/bili-open-mcp/src/server.mjs"],
"env": {
"BILI_CLIENT_ID": "your_client_id",
"BILI_APP_SECRET": "your_app_secret",
"BILI_ACCESS_TOKEN": "your_access_token"
}
}
}
}claude mcp add bili-open -- node "C:/path/to/bili-open-mcp/src/server.mjs"{
"mcpServers": {
"bili-open": {
"command": "node",
"args": ["C:/path/to/bili-open-mcp/src/server.mjs"]
}
}
}[mcp_servers.bili-open]
command = "node"
args = ["C:/path/to/bili-open-mcp/src/server.mjs"]
env = { BILI_CLIENT_ID = "", BILI_APP_SECRET = "", BILI_ACCESS_TOKEN = "" }{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bili-open": {
"type": "local",
"command": ["node", "C:/path/to/bili-open-mcp/src/server.mjs"],
"enabled": true,
"timeout": 60000
}
}
}完整 6 类客户端的配置、凭据获取步骤与排错表见 使用方法。
需要 Node.js ≥ 18。跑 npm ci,再用 npm run selftest 确认 19 个工具都能起来。
开放平台凭据放 secrets/open-platform.json;主站 Cookie 放 secrets/cookies.json。没有凭据也能用文档类工具。
把 src/server.mjs 填进任意支持 stdio 的 MCP 客户端,让 AI 调一次 bili_quickstart 就算通了。
两个凭据都不配,仍然能用文档检索、错误码、代码生成、沙盒与签名演示。
| 你想做的事 | 需要什么 | 用哪些工具 |
|---|---|---|
| 查文档、看参数、生成调用代码 | 不需要凭据 | bili_docs_* · bili_api_spec · bili_codegen |
| 查错误码、看长连 / 推送协议 | 不需要凭据 | bili_error_lookup · bili_ws_protocol · bili_webhook |
| 打官方沙盒 | 不需要凭据 | bili_mock |
| 真调开放平台接口、投稿、上传 | secrets/open-platform.json | bili_api_call · bili_upload_plan · bili_oauth |
| 以你的登录身份调主站 Web 接口 | secrets/cookies.json | bili_cookie · bili_web_call |