Bbili-open-mcpMCP
★
第三方项目 · 与哔哩哔哩无隶属关系 · 97 个接口 · 19 个 MCP 工具

把哔哩哔哩开放平台
变成 AI 能直接调用的工具

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篇官方文档
100个 HTTP 端点
41个推送事件
118个错误码
112个隐藏能力
19个 MCP 工具
43个沙盒接口

它能做什么

不是把文档搬过来,是把文档变成可以直接调用的能力。

📚文档即数据

170 篇官方文档解析成结构化规格:参数名、类型、必填、响应字段、子结构全都带,AI 检索命中率远高于喂原始 Markdown。

🔐签名不用手拼

2.0 签名(HMAC-SHA256)已实现:六个 x-bili-* 头按字典序拼串、body md5、nonce、时间戳,一步生成可直接粘贴的 curl。

🔑OAuth2 一条龙

授权链接拼装 → code 换 token → refresh 续期 → 凭据体检。换到的 token 自动落盘,还能看清每一格凭据到底从哪来。

📡直播长连协议

官方直播间 WebSocket 协议:16 字节包头、Operation 表、zlib 多包拆解,附可运行的 Python 客户端。

🔔Webhook 验签

41 个推送事件的内容字段,以及 SHA1(secret + 原始 body) 的验签代码 —— 这是最容易错的一步,必须用原始字节。

🍪主站 Cookie 调用

另一套体系:用你自己的浏览器 Cookie 调主站 Web 接口,POST 自动补 csrf,/wbi/ 路径自动算 w_rid。

🚩隐藏能力全收齐

开放平台文档里没有的那些 —— 举报、拉黑、动态、评论、收藏、历史、消息、直播、创作中心,112 条主站 Web 接口,每条带无 Cookie 实测状态与坑位说明。

19 个 MCP 工具

找文档 → 看懂接口 → 生成签名 → 发请求 → 排错,一条链路走完。

bili_quickstart

返回哔哩哔哩开放平台的核心约定:主机、OAuth2 换 token/刷新、2.0 签名算法、通用返回结构、错误码分段、视频投稿技术限制。第一次使用或需要写对接代码前先调它。

bili_docs_list

按目录或类型列出开放平台文档。folder 支持包含匹配(如 "视频稿件"、"直播"、"消息推送");type 可选 api / guide / event / protocol / multi-api。返回每条含 ref(#num)、标题、METHOD 路径、所在目录。

bili_docs_get

按 ref(#num / id / 标题 / 文件名 / 接口URL)返回文档完整 Markdown。协议、长连、Webhook 等非接口文档用它。maxChars 默认 40000。

bili_api_spec

返回某个接口的方法、完整 URL、scope、url/body 参数(类型+是否必填+说明)、响应字段、请求与响应样例。这是写调用代码前该看的工具。

bili_api_sign

按开放平台规则生成 Authorization 与 x-bili-* 头,并输出可直接粘贴的 curl。凭据可用参数传入,否则读环境变量 BILI_CLIENT_ID / BILI_APP_SECRET / BILI_ACCESS_TOKEN。body 传对象会自动 JSON 序列化(GET 请忽略)。

bili_api_call

给 ref(#num/标题/URL)或直接 url,自动签名并发起真实请求。query/body 传对象。dryRun=true 时只返回将要发出的请求与 curl,不发送。凭据读 BILI_CLIENT_ID / BILI_APP_SECRET / BILI_ACCESS_TOKEN。

bili_error_lookup

查开放平台错误码含义。支持 4002 / 127007 这种完整码,也支持 4 位前缀模糊(如 1230 列出所有视频稿件码)。

bili_endpoints

按 method / scope / host / 路径关键词过滤端点,返回 #ref、METHOD、PATH、scope。适合「所有需要 SHOP_ORDER_INFO 的 POST 接口」这类问题,比全文搜索更准。默认最多 40 条。source:"web" 时改列开放平台文档里没有的「隐藏能力」(主站 Web,如举报 / 拉黑 / 动态 / 评论 / 直播),source:"all" 两边一起列。默认最多 40 条。

bili_scopes

不带参数:列出全部 scope 及覆盖的端点数。带 scope:列出该 scope 下所有端点。带 ref:返回该接口需要的 scope 及每个 scope 下的其它接口。用于确认应用该申请哪些权限。

bili_api_prepare

把 query/body 按文档类型做转换(int→数字、bool→布尔、[]x→数组),检查必填是否缺失、是否多传了文档没有的字段,并给出最终 URL/body 与签发 curl 的下一步。写代码前用它避免类型错误。

bili_codegen

按接口规格生成可运行代码骨架,含完整 2.0 签名实现、该接口的全部参数(必填直接写入、可选注释掉)、返回码处理。lang 支持 python / node / curl / java / php / go。比手写签名可靠。

bili_upload_plan

给文件大小,算出该用单文件还是分片、分几片、每片范围、part_number 起止,并输出完整调用顺序(init → upload → complete → 提交)与可直接粘的 curl。

bili_oauth

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 或该文件。

bili_webhook

action=list 列出 41 个推送事件(按模块分组);action=detail 看某个事件的内容字段;action=verify-code 生成验签 + verify_webhooks 应答代码(python/node)。验签用 SHA1(secret + 原始 body),必须用原始字节。

bili_ws_protocol

返回直播间 WebSocket 长连协议(建连流程、16 字节包头、Operation 表、zlib 多包解析),可选生成内联 Python 客户端。对应文档 #43–#46。

bili_mock

action=list 列出 43 个 mock 接口(按模块);action=map 把正式接口换算成 mock 地址(两者路径不总一致);action=call 真实调用 mock(同样走 2.0 签名,凭据不足时用 dryRun)。

bili_web_call

用 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。

json
{
  "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"
      }
    }
  }
}

完整 6 类客户端的配置、凭据获取步骤与排错表见 使用方法。

三步跑起来

1克隆并安装

需要 Node.js ≥ 18。跑 npm ci,再用 npm run selftest 确认 19 个工具都能起来。

2配好凭据

开放平台凭据放 secrets/open-platform.json;主站 Cookie 放 secrets/cookies.json。没有凭据也能用文档类工具。

3接进客户端

把 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.jsonbili_api_call · bili_upload_plan · bili_oauth
以你的登录身份调主站 Web 接口secrets/cookies.jsonbili_cookie · bili_web_call