🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

B站分身 Yaemikoreal/BilibiliPlayer

MCP
Yaemikoreal5 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

让智能体替你搜索、发动态、运营B站小号

29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Yaemikoreal/BilibiliPlayer.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 5 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 105 处,展示前 62 条)
  • 发起网络请求
    dsh-plugin/client.js:648
    const apiGet = (path) => fetch(`${API}${path}`).then((r) => r.json())
  • 发起网络请求
    dsh-plugin/client.js:649
    const apiPost = (path, body) => fetch(`${API}${path}`, {
  • 发起网络请求
    dsh-plugin/client.js:653
    const apiPut = (path, body) => fetch(`${API}${path}`, {
  • 发起网络请求
    dsh-plugin/client.js:866
    const res = await fetch(`${API}/overview`, ac ? { signal: ac.signal } : undefined)
  • 发起网络请求
    dsh-plugin/client.js:964
    fetch(`${API}/overview`, ac ? { signal: ac.signal } : undefined)
  • 写入剪贴板
    dsh-plugin/client.js:3325
    onClick: () => navigator.clipboard?.writeText(log.data?.path || ''),
  • 读取本地文件
    dsh-plugin/index.js:75
    return candidates.find((p) => existsSync(p)) ?? candidates[0]
  • 发起网络请求
    dsh-plugin/index.js:94
    const r = await fetch(BILI_GEN, { headers: { 'User-Agent': BILI_UA } })
  • 发起网络请求
    dsh-plugin/index.js:105
    const res = await fetch(biliPollUrl(loginSession.key), { headers: { 'User-Agent': BILI_UA }, redirect: 'manual' })
  • 发起网络请求
    dsh-plugin/index.js:114
    const r2 = await fetch(BILI_SPI, { headers: { 'User-Agent': BILI_UA } })
  • 写入本地文件
    dsh-plugin/index.js:123
    writeFileSync(tmp, JSON.stringify({
  • 写入本地文件
    dsh-plugin/index.js:128
    renameSync(tmp, BILI_CRED_FILE)
  • 读取本地文件
    dsh-plugin/index.js:153
    const pkg = JSON.parse(readFileSync(join(p, 'package.json'), 'utf8'))
  • 读取本地文件
    dsh-plugin/index.js:155
    if (existsSync(main)) { z = require(main); break }
  • 读取本地文件
    dsh-plugin/index.js:303
    try { if (!existsSync(d)) mkdirSync(d, { recursive: true }) } catch { }
  • 写入本地文件
    dsh-plugin/index.js:303
    try { if (!existsSync(d)) mkdirSync(d, { recursive: true }) } catch { }
  • 读取本地文件
    dsh-plugin/index.js:307
    try { return JSON.parse(readFileSync(p, 'utf8')) } catch { return fallback }
  • 写入本地文件
    dsh-plugin/index.js:318
    writeFileSync(tmp, JSON.stringify(data, null, 2), 'utf8')
  • 写入本地文件
    dsh-plugin/index.js:319
    renameSync(tmp, p)
  • 删除本地文件
    dsh-plugin/index.js:322
    try { unlinkSync(tmp) } catch { }
  • 读取本地文件
    dsh-plugin/index.js:350
    const baks = readdirSync(dir)
  • 删除本地文件
    dsh-plugin/index.js:355
    try { unlinkSync(join(dir, f)) } catch { }
  • 写入本地文件
    dsh-plugin/index.js:369
    if (!existsSync(target)) copyFileSync(file, target)
  • 执行外部命令固定命令
    dsh-plugin/index.js:604
    const killer = spawn('taskkill', ['/PID', String(pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })
  • 删除本地文件
    dsh-plugin/index.js:898
    try { unlinkSync(p) } catch { }
  • 删除本地文件
    dsh-plugin/index.js:906
    try { unlinkSync(p) } catch { }
  • 执行外部命令来自配置/变量
    dsh-plugin/index.js:1243
    const child = spawn(process.execPath, [cli, ...args], {
  • 执行外部命令来自配置/变量
    dsh-plugin/index.js:1613
    const child = spawn(cmd, Array.isArray(args) ? args : [], {
  • 删除本地文件
    dsh-plugin/index.js:1663
    removeFile: (p) => { try { unlinkSync(p) } catch { } },
  • 发起网络请求
    dsh-plugin/index.js:1666
    const r = await fetch(url, opts)
  • 执行外部命令来自配置/变量
    dsh-plugin/index.js:1935
    const child = spawn(VENV_PYTHON,
  • 删除本地文件
    dsh-plugin/index.js:2103
    try { unlinkSync(bodyFile) } catch { }
  • 读取本地文件
    dsh-plugin/lib/api.js:392
    if (existsSync(deps.logFile)) raw = readFileSync(deps.logFile, 'utf8')
  • 读取本地文件
    dsh-plugin/lib/api.js:392
    if (existsSync(deps.logFile)) raw = readFileSync(deps.logFile, 'utf8')
  • 读取本地文件
    dsh-plugin/lib/api.js:401
    if (existsSync(deps.seenFile)) raw = readFileSync(deps.seenFile, 'utf8')
  • 读取本地文件
    dsh-plugin/lib/api.js:401
    if (existsSync(deps.seenFile)) raw = readFileSync(deps.seenFile, 'utf8')
  • 读取本地文件
    dsh-plugin/lib/config.js:80
    if (!existsSync(file)) return {}
  • 读取本地文件
    dsh-plugin/lib/config.js:81
    const raw = JSON.parse(readFileSync(file, 'utf8'))
  • 写入本地文件
    dsh-plugin/lib/config.js:96
    writeFileSync(tmp, JSON.stringify(fields, null, 2), 'utf8')
  • 写入本地文件
    dsh-plugin/lib/config.js:97
    renameSync(tmp, file)
  • 读取本地文件
    dsh-plugin/lib/ledger-index.js:42
    const st = statSync(file)
  • 读取本地文件
    dsh-plugin/lib/ledger.js:14
    if (existsSync(file) && statSync(file).size > rotateBytes) {
  • 读取本地文件
    dsh-plugin/lib/ledger.js:14
    if (existsSync(file) && statSync(file).size > rotateBytes) {
  • 写入本地文件
    dsh-plugin/lib/ledger.js:15
    renameSync(file, file + '.old')
  • 写入本地文件
    dsh-plugin/lib/ledger.js:22
    appendFileSync(file, line, 'utf8')
  • 读取本地文件
    dsh-plugin/lib/ledger.js:92
    if (!existsSync(file)) return []
  • 读取本地文件
    dsh-plugin/lib/ledger.js:93
    text = readFileSync(file, 'utf8')
  • 读取本地文件
    dsh-plugin/lib/logsink.js:52
    if (!existsSync(file)) return false
  • 读取本地文件
    dsh-plugin/lib/logsink.js:53
    if (statSync(file).size < maxBytes) return false
  • 读取本地文件
    dsh-plugin/lib/logsink.js:54
    const buf = readFileSync(file)
  • 读取本地文件
    dsh-plugin/lib/logsink.js:67
    if (existsSync(oldest)) unlinkSync(oldest)
  • 删除本地文件
    dsh-plugin/lib/logsink.js:67
    if (existsSync(oldest)) unlinkSync(oldest)
  • 读取本地文件
    dsh-plugin/lib/logsink.js:72
    if (existsSync(from)) renameSync(from, archivedPath(file, i))
  • 写入本地文件
    dsh-plugin/lib/logsink.js:72
    if (existsSync(from)) renameSync(from, archivedPath(file, i))
  • 写入本地文件
    dsh-plugin/lib/logsink.js:76
    writeFileSync(archivedPath(file, 0), buf.subarray(start))
  • 写入本地文件
    dsh-plugin/lib/logsink.js:77
    writeFileSync(file, Buffer.alloc(0))
  • 读取本地文件
    dsh-plugin/lib/persona.js:71
    if (!existsSync(c) || !statSync(c).isFile()) continue
  • 读取本地文件
    dsh-plugin/lib/persona.js:71
    if (!existsSync(c) || !statSync(c).isFile()) continue
  • 读取本地文件
    dsh-plugin/lib/persona.js:72
    const text = readFileSync(c, 'utf8').trim()
  • 读取本地文件
    dsh-plugin/lib/persona.js:98
    let file = existsSync(target) ? target : null
  • 读取本地文件
    dsh-plugin/lib/persona.js:100
    if (file && statSync(file).isDirectory()) {
  • 读取本地文件
    dsh-plugin/lib/persona.js:104
    if (!file || !existsSync(file) || !statSync(file).isFile()) {
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
BilibiliPlayer | 让 AI 直接操作B站 29 个 MCP 工具,一个跑在本机的 MCP Server —— 把B站变成智能体可调用的能力。 搜索 · 字幕 · 弹幕 · 评论 · 点赞 · 发动态 · 投稿 · 排行榜 · 私信 · 收藏夹 - 🔒 纯本地运行:MCP Server 只跑在你自己的机器上,登录凭证写在本地 bili_credential.json(已 .gitignore),不经过任何第三方服务器,也没有远程后端。 - 🧰 真接口,不是爬虫壳:29 个工具全部基于 bilibili-api-python,读写都走B站 Web API,登录沿用官方扫码流程。 - 🤖 智能体拿来就能干活:标准 MCP(stdio)接入 Claude Code / Cursor / Cline / OpenClaw;还附赠 DSH 插件「B站分身」——看板 + 操作台 + 值班章程,能让智能体自己运营一个小号。
展开完整文档(README 剩余 1 节)
BilibiliPlayer | 让 AI 直接操作B站

29 个 MCP 工具,一个跑在本机的 MCP Server —— 把B站变成智能体可调用的能力。
搜索 · 字幕 · 弹幕 · 评论 · 点赞 · 发动态 · 投稿 · 排行榜 · 私信 · 收藏夹

- 🔒 纯本地运行:MCP Server 只跑在你自己的机器上,登录凭证写在本地 bili_credential.json(已 .gitignore),不经过任何第三方服务器,也没有远程后端。
- 🧰 真接口,不是爬虫壳:29 个工具全部基于 bilibili-api-python,读写都走B站 Web API,登录沿用官方扫码流程。
- 🤖 智能体拿来就能干活:标准 MCP(stdio)接入 Claude Code / Cursor / Cline / OpenClaw;还附赠 DSH 插件「B站分身」——看板 + 操作台 + 值班章程,能让智能体自己运营一个小号。

⚡ 30 秒上手

git clone https://github.com/Yaemikoreal/BilibiliPlayer.git && cd BilibiliPlayer
python -m venv .venv && source .venv/bin/activate # Windows: .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

在项目根目录新建 .mcp.json(把 /path/to 换成你的实际路径;Windows 写法见安装文档):

{
"mcpServers": {
"bilibili-mcp": {
"command": "/path/to/BilibiliPlayer/.venv/bin/python",
"args": ["/path/to/BilibiliPlayer/mcp_server.py"]
}
}
}

重启客户端 → 对 AI 说 「登录B站」 → 用B站 App 扫码确认 → 开始使唤它。

完整安装(Windows / macOS / Linux)、Cursor / Cline / OpenClaw 配置、ffmpeg、MCP Inspector 调试、常见安装故障:docs/INSTALL.md

🧩 它能做什么

| | 能力 | 一句话 |
| 🔐 | 登录与账号 | 扫码登录、凭证校验,换号或过期一条 force=true 重来 |
| 🔍 | 采集与分析 | 搜索、评论、AI 字幕、弹幕、视频详情,还有一步到位的批量采集 |
| 📤 | 内容发布 | 发动态、图文长内容、单P / 多P 投稿,封面可自动截帧 |
| 📊 | 发现与榜单 | 热门、热搜、每周必看、分区排行榜、UP 主与收藏夹数据 |
| 💬 | 互动与消息 | 评论/楼中楼回复、点赞、私信、未读与 @/点赞通知 |

每个工具的参数、默认值与上限见下方 29 个工具全览。

🧰 29 个工具全览

全部注册在 mcp_server.py(FastMCP,stdio 传输),工具名与下方表格逐一对应。数量上限来自代码里的钳位逻辑,不是宣传口径。

🔐 登录认证(3) — 扫码、轮询、验活

| Tool | 作用 | 要点 |
| bili_login | 生成B站扫码登录二维码 | 返回 base64 图片 + 本地 PNG + 终端二维码 + 扫码 URL,180 秒有效;force=true 强制换号 |
| bili_login_check | 轮询扫码状态 | 手机确认后返回 done,凭证原子写入本机 |
| bili_check_credential | 校验当前凭证 | 返回 UID、用户名等登录状态 |

🔍 数据采集(6) — 搜索、评论、字幕、弹幕、详情、批采

| 工具 | 作用 | 要点 |
| bili_search | 搜索视频 | order:综合 / 播放量 / 最新 / 弹幕,最多 50 条 |
| bili_comments | 获取热门评论 | 按点赞排序、含子评论,最多 100 条 |
| bili_subtitle | 获取 AI 字幕 | 语音转文字全文,适合让模型总结视频 |
| bili_danmaku | 获取弹幕 | 最多 1000 条,按时间顺序分页取 |
| bili_video_info | 视频详情 | 播放量、评论数、收藏数、标签等 |
| bili_crawl | 批量采集 | 搜索 + 每个视频的评论 + 字幕,一次调用拿全 |

📤 内容发布(5) — 动态、图文、投稿

| 工具 | 作用 | 要点 |
| bili_send_dynamic | 发布图文动态 | 支持 @ 和表情、话题、定时发布,最多 9 张图 |
| bili_upload_video | 上传单P视频 | 标题/简介/分区/标签/封面/转载来源;未给封面时自动截第 3 秒,失败回退第 0 秒 |
| bili_upload_video_multi | 上传多P视频 | 多个分P合并为一个投稿,逐 P 指定标题 |
| bili_send_opus | 发布图文长内容 | 以动态形式发长图文(不是独立专栏) |
| bili_video_zones | 查询分区 ID | 投稿前查 tid |

📊 发现与榜单(7) — 热门、热搜、排行、UP 主

| 工具 | 作用 | 要点 |
| bili_hot_videos | 当前热门视频 | 分页,每页最多 50 |
| bili_hot_buzzwords | 热搜词 | 分页,做选题用 |
| bili_weekly_hot | 每周必看 | week=0 返回期数列表 |
| bili_rank | 分区排行榜 | 全站 + 24 个分区/分类,三日榜 / 七日榜 |
| bili_user_info | UP 主数据 | 粉丝数、等级、投稿数、总播放等 |
| bili_user_videos | UP 主投稿列表 | 分页 + 排序(最新/播放/收藏)+ 关键词过滤 |
| bili_followings | 我关注的 UP 主 | 分页 + 「最常访问」/ 最近关注排序 + 昵称过滤 |

💬 互动与消息(8) — 评论、点赞、收藏夹、私信、通知

| 工具 | 作用 | 要点 |
| bili_reply | 发表评论 / 回复评论 | 支持楼中楼:rpid 指定楼层,root 指定根评论 |
| bili_like | 点赞 / 取消点赞 | like=false 取消 |
| bili_favorite_lists | 收藏夹列表 | uid=0 表示自己的收藏夹 |
| bili_favorite_content | 收藏夹内容 | 分页 + 夹内关键词搜索 |
| bili_send_message | 发送私信 | 指定接收者 receiver_uid |
| bili_unread_messages | 未读消息数 | 私信 / @ / 回复 / 点赞分类计数 |
| bili_received_replies | 收到的回复 | 最近的评论回复通知 |
| bili_received_at_and_likes | @ 与点赞通知 | 最近的 @ 提及和点赞记录 |

🖥️ DSH 插件「B站分身」

dsh-plugin/ 是 DeepSeek Harness 插件:把上面 29 个工具挂载给 DSH 的智能体,再配一套值班章程,让它按配额自动运营一个小号——刷到 → 看 → 赞 → 评 → 被回复 → 我回,全程可审计。控制台按 DSH UI 规范重做为 7 页:概览 / 实时 / 活动 · 生命周期 / 日报 / 判重表 / 人设工作室 / 设置。

更多界面截图:实时 / 活动生命周期 / 判重表 / 人设工作室 / 日报 / 设置

| 实时(阶段轨 + 事件流) | 活动生命周期 |

| 人设工作室(8 页签) | 设置(DSH 设置卡) |

| 判重表 | 日报 |

截图数据来自真实快照(账本 / 人设卡 / 日报 / seen.md),界面按 DSH 设计规范:960px 页面容器、宿主 --dsw-* token、深浅主题跟随宿主、focus-visible / reduced-motion 齐全。

它多出来的一件事:除了全量 mcp__bili-fenshen__bili_* 工具,还注册两个宿主工具 bili_fenshen_status(状态与配额)、bili_fenshen_run(立刻跑一轮)。值班轮会拉起独立 headless 会话,只暴露最小工具白名单(BILI_MCP_TOOLS),上传、私信这类高权限工具在那一轮里根本不存在。

1) 先把 dsh-plugin/cordis.patch.yml 里的 command / args / cwd 三处路径改成你的项目位置
2) 安装并重启 DSH
dsh plugin --profile desktop add link:<项目路径>/dsh-plugin

装好后:重启 DSH → 左侧栏「B站分身」→ 右上角「重新扫码」→ 手机B站确认 → 点「跑一轮」。

账本(~/.dsh/bili-fenshen/ledger.jsonl)、配置字段与安全边界详见 dsh-plugin/README.md;领域术语(值班轮 / 章程 / 压审 / 活动生命周期)见 CONTEXT.md。

🏗️ 架构

flowchart LR
U["你 / Agent 会话"] -->|自然语言| C["MCP ClientClaude Code · Cursor · Cline · OpenClaw"]
U -->|值班调度| P["dsh-plugindsh-bili-fenshen看板 + 操作台 + 章程"]
C -->|stdio / JSON-RPC| S["mcp_server.pyFastMCP · 29 tools"]
P -->|白名单挂载| S
S --> L["bilibili-api-python"]
L -->|Web API| B[("B站")]
S -.->|只读本机| K["bili_credential.jsonSESSDATA 等,已 gitignore"]

技术栈:MCP(Model Context Protocol) · FastMCP · bilibili-api-python · Python 3.10+;插件侧是纯 ESM 的 Node.js 模块,没有第三方运行时依赖。

💬 自然语言用法

接入之后,不用记工具名,直接说人话:

- 「登录B站」——AI 展示二维码,扫码后自动保存凭证
- 「搜索B站上关于 AI Agent 的热门视频,按播放量排」
- 「把这条视频的字幕拿下来,总结成 5 条要点」
- 「看看这条视频的评论区,大家最在意什么」
- 「帮我回复这条评论,语气友好一点」
- 「批量采集『大模型评测』相关视频的评论和字幕」
- 「发一条B站动态,配这三张图,加个话题」
- 「把这个视频投到科技区,标题叫……」
- 「B站现在什么最火?给我全站和科技区榜单前 10」
- 「分析这个 UP 主的粉丝和投稿数据」
- 「我有多少未读私信和回复?」

涉及本地文件的参数(上传视频、封面、动态配图)请传本机绝对路径——MCP Server 就跑在你的机器上。

🔐 安全与免责

- 凭证不出本机:bili_credential.json 只含 sessdata、bili_jct、buvid3、dedeuserid,已在 .gitignore 中;路径可用 BILI_CRED_FILE 环境变量覆盖。不要提交、分享或上传这个文件,泄露处置见 SECURITY.md。
- 写操作是真实的:评论、点赞、私信、发动态、投稿都会真实作用于你的B站账号,请谨慎使用并遵守B站社区规则。
- 请控制频率:搜索、评论、弹幕等批量操作内置了请求间隔(0.3 / 0.5 / 1 秒),仍建议压低频率,避免触发风控。
- 最小授权:BILI_MCP_TOOLS 可把工具注册限制在白名单内;DSH 插件在值班轮里默认只开最小集,并用 BILI_FENSHEN_HOME 隔离插件数据目录。
- 自动化有风险:无人值守的点赞/评论可能被平台限制,建议只用小号,并自行承担账号风险。
- 本项目仅用于学习与研究,与哔哩哔哩官方无关。

📁 项目结构

BilibiliPlayer/
├── mcp_server.py # MCP Server 主文件(29 个工具,FastMCP / stdio) ├── bili_login.py # 命令行扫码登录(备用入口) ├── requirements.txt # Python 依赖(bilibili-api-python / aiohttp / mcp) ├── CONTEXT.md # 领域术语表:值班轮 / 章程 / 账本 / 活动……
├── docs/
│ ├── INSTALL.md # 完整安装与客户端配置 │ ├── demo/ # 控制台静态预览 + 截图 │ ├── superpowers/ # 控制台设计稿与实施方案 │ └── research/ # 人设与真人评论语料调研笔记 ├── .github/ # CI(Python 语法检查 + 插件单测)与 issue / PR 模板 ├── dsh-plugin/ # DSH 插件「B站分身」 │ ├── index.js # Host 半部:值班调度、路由、轮次生命周期 │ ├── client.js # Client 半部:看板 + 操作台 │ ├── cordis.patch.yml # bundle 挂载声明(MCP + Host 插件) │ ├── lib/ # 纯逻辑模块:账本 / 报告 / 活动 / 配置 / 回复 / 账号 / api 路由 │ ├── prompts/ # 值班章程 + 小号人设 │ ├── locale/ # 中英文案 │ └── test/ # node --test 单测与冒烟脚本 ├── SECURITY.md / CONTRIBUTING.md ├── LICENSE # MIT └── bili_credential.json # 登录后生成(已忽略,勿提交)

❓ 常见问题

提示「未登录B站」? 调 bili_login 生成二维码 → 手机上确认 → 调 bili_login_check 轮询到 done。凭证会自动复用。

凭证过期了,bili_login 却返回 already_logged_in? 登录前会先验凭证;若它仍然判断为已登录而你确认失效了,传 bili_login(force=true) 强制重新扫码。

返回 no_session? 扫码会话只存在于内存,进程重启后就没了。重新调 bili_login 即可。

上传视频报「未找到 ffmpeg」? 安装 ffmpeg 并加入 PATH,或直接传 cover_path 指定封面。安装方式见 docs/INSTALL.md。

接口空结果或报错? 先用 bili_check_credential 验登录,再降低频率稍后重试;B站接口会有风控和偶发抖动。

客户端里一个工具都看不到? 客户端需要支持 stdio 的 MCP Server;确认 command 指向同一个 venv 里的 Python 绝对路径、args 指向 mcp_server.py 绝对路径。可以用 npx @modelcontextprotocol/inspector 单独验证 Server 能否正常启动。

🤝 参与贡献

欢迎 issue 和 PR:新工具、B站接口变化适配、文案与文档都算贡献。动手前请读 CONTRIBUTING.md(开发环境、代码风格、测试命令、提交信息规范);安全问题请走 SECURITY.md 的私下渠道。

python -m py_compile mcp_server.py bili_login.py # 语法检查
cd dsh-plugin && npm test # 插件单测(node --test)

致谢:数据层源自 adoresever/bilibili-mcp(MIT);值班轮 / 发后复核 / 环境自愈等模式参考 dsh-bili-scroll(MIT);B站接口封装来自 bilibili-api-python。

📄 License

MIT —— 可自由使用、修改、分发,请保留版权声明。

用 DeepSeek Harness 构建 · 给智能体一个真实的B站
预览分享卡片长什么样 ↓Yaemikoreal/BilibiliPlayer
分享 · DeepSeek Harness Hub
Yaemikoreal/BilibiliPlayer

让智能体替你搜索、发动态、运营B站小号

这是你的仓库?认领条目

回到顶部