Skip to main content
Glama

dsh-bili-feed

把 B 站的热榜 / 搜索 / 视频详情 / 弹幕,做成 DeepSeek Harness(DSH)里可以直接调用的 MCP 工具。

不登录、不需要 Cookie、零依赖、不花钱。 一个文件几十行,装完 IDE 里就有 mcp__bili__* 五个工具。

Bilibili hot list / search / video detail / danmaku as MCP tools for DeepSeek Harness. No login, no cookie, no dependencies.


装

DSH 的插件是挂在某个 profile 上的。以 web profile 为例(Windows 下的默认路径是 %APPDATA%\dsh-desktop\harness\profiles\web):

  1. 在 profiles/web/package.json 的 dependencies 里加一行:

    "dsh-bili-feed": "github:Doomsgeats/dsh-bili-feed"
  2. 在同一个文件的 dsh.profile.bundles 数组里加一项:

    "dsh-bili-feed"
  3. 在 profile 目录里装依赖:

    pnpm install
  4. 重启 DSH。之后模型就能看到 mcp__bili__bili_hot、mcp__bili__bili_search、 mcp__bili__bili_video、mcp__bili__bili_danmaku、mcp__bili__bili_week。

为什么是 bundle 而不是直接往 cordis.patch.yml 里抄一段配置:这个包里的 cordis.patch.yml 用 ctx.biliFeed.node / ctx.biliFeed.server 读自己装在哪, 所以仓库里没有写死任何绝对路径。你 clone 到 D 盘、C 盘、还是别的机器,都不用改配置。

环境变量(可选)

变量

默认

作用

BILI_MCP_SERVER

bili

工具命名空间,最终名字是 mcp__<它>__<工具>

DSH_BILI_NODE

跑 DSH 的那个 node

用哪个 node 起 MCP server

Related MCP server: Bilibili API MCP Server

用

装好之后,直接跟模型说话就行:

  • 「B站今天有什么热的」→ bili_hot

  • 「搜一下三角洲 S12 的新爆料」→ bili_search

  • 「这个 BV 号播放多少、简介讲了什么」→ bili_video

  • 「这视频弹幕都在刷什么」→ bili_danmaku

  • 「每周必看这期有什么」→ bili_week

也可以完全不进 DSH,当命令行用(需要 Node ≥ 22):

node lib/bili.mjs hot 10
node lib/bili.mjs search "三角洲 新赛季" 1
node lib/bili.mjs video BV1GJ411x7h7
node lib/bili.mjs danmaku BV1GJ411x7h7 12
node lib/bili.mjs week

工具

工具

入参

返回

bili_hot

count 1–50,默认 12

综合热门榜:标题、UP主、播放量、时长、分区、BV号

bili_search

keyword、page

搜索结果列表,同上字段

bili_video

bvid

标题 / UP主 / 分区 / 时长 / 发布 / 播放·弹幕·点赞·投币·收藏·评论 / 简介 / cid

bili_danmaku

bvid、top

刷得最多的一批弹幕 + 末尾最新几条

bili_week

无

「每周必看」

为什么返回纯文本而不是 JSON

因为它的下游是模型,不是程序。B 站热榜原始 JSON 约 172 KB(≈4.5 万 token), 搜一页 32 KB,直接塞进上下文既贵又吵。这里统一压成「一行标题 + 一行元信息」, 一次查询几百 token,模型该知道的都在。

想拿原始 JSON 的话,去 lib/bili.mjs 里把 getJSON 的返回值直接 console.log —— 代码就是文档。

已知边界(说清楚,别指望它做不到的事)

  • 没有登录态:拿不到推荐流、关注动态、播放历史、字幕。这些接口都要 Cookie。

  • 搜索接口目前免签名,B 站随时可能加 wbi 签名或验证码,挂了就得跟。

  • 热榜走的是 popular 而不是 ranking/v2:后者现在会撞风控(code=-352), 代码里写了 popular 优先、失败回退 ranking。

  • 弹幕只取当前第一 P。多 P 视频要自己按 cid 拉。

  • 只读。不会登录、不会点赞、不会发弹幕。

验证

lib/mcp-server.mjs 是手写的 stdio JSON-RPC(不到两百行),这样这个包一个运行时依赖都没有。 用官方的 @modelcontextprotocol/sdk 当客户端验过:

工具: bili_hot, bili_search, bili_video, bili_danmaku, bili_week
bili_hot 前 100 字: # B站热门(popular)2026/10/22 16:48:25(2 条) | 1. 《影之刃零》最终预告 ...
bili_video 首行: # 【官方 MV】Never Gonna Give You Up - Rick Astley  (BV1GJ411x7h7)
空参数 isError: true | bili_search 失败:keyword 不能为空

握手、tools/list、tools/call、错误分支都通。

License

MIT。B 站的数据归 B 站和各自 UP 主;这个包只是把公开接口读出来给你自己看。

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Bilibili (哔哩哔哩) through its API, supporting video search and recommendations, user search, dynamic feeds, video collections, and danmaku retrieval through natural language.
    5
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables agents to search, explore trending content, retrieve video metadata and hot comments, and obtain subtitle transcripts for summarisation on Bilibili, with an anonymous tier and an optional account tier for personalized feeds.
    10
    3
    MIT