Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for Bilibili MCP Server

Pod holds 23 of 43 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to Bilibili MCP Server.

Most discussed

Add backward-compatible structured output to get_video_transcript

Problem

get_video_transcript already produces a structured VideoTranscriptData object, but MCP clients receive it only as formatted JSON in content[0].text. Clients that support MCP structured tool output must parse the presentation text again.

Objective

Add an accurate outputSchema and return the same existing VideoTranscriptData object as structuredContent, while preserving the current formatted JSON text exactly.

Scope

  • Only change get_video_transcript.
  • Inline i

Read the thread · 2026-07-25 · closed · 5 comments

Prepare v1.8.0 structured transcript evidence release

Objective

Prepare @xzxzzx/bilibili-mcp v1.8.0 as the Structured Transcript Evidence release, packaging the already-merged Issue #16 structured output and Issue #17 citation-ready source/timestamp links.

Scope

  • Bump package.json and package-lock.json to 1.8.0.
  • Add matching Chinese and English v1.8.0 changelog entries.
  • Update the Chinese and English verified test count while keeping README release links on the latest real Release; switch those links to v1.8.0 only dur

Read the thread · 2026-07-26 · closed · 4 comments

[Bug] force_asr 对存在可用 DASH 音频的视频返回 ASR_AUDIO_UNAVAILABLE

问题摘要

@xzxzzx/bilibili-mcp@1.13.0 中,对一个可正常访问且存在 DASH 音频的视频调用 get_video_transcript 并设置 force_asr: true,连续两次返回 ASR_AUDIO_UNAVAILABLE

同一台机器、同一份本地登录凭证可以从 Bilibili 官方 playurl 接口获得该 P 的 DASH 音频,并能用已经安装的 faster-whisper-small 在本地完成转写。因此目前证据更指向 MCP 的音频解析、候选选择或下载链路,而不是 ASR 模型不可用。

环境

  • 包版本:@xzxzzx/bilibili-mcp@1.13.0
  • 平台:Windows,win32 x64
  • Node.js:v25.6.1
  • 凭证:configured: truesource: global_configloadable: true
  • ASR:status: readymodel: small
  • doctor --json 总状态

Read the thread · 2026-08-23 · closed · 3 comments

Remove stale npm test stub guidance from agent rules

Problem

The repository has a real Vitest baseline (package.json defines "test": "vitest run"), but the always-loaded AGENTS.md and CLAUDE.md still state that npm test is a failing stub. This caused a Claude implementation report to repeat false test status even after 160 tests passed.

Current Evidence

  • package.json: scripts.test is vitest run.
  • Live npm test on 2026-07-19: 17 files, 160 tests passed.
  • Stale current-tense guidance remains in the Development Commands, r

Read the thread · 2026-07-19 · closed · 3 comments

Add authenticated all-Favorites Video discovery

Objective

Add one read-only list_bilibili_favorite_videos MCP tool that automatically discovers every created Favorite Folder of the locally authenticated Bilibili account and traverses its Video memberships with a bounded opaque cursor.

User outcome

A user can ask an MCP Host to read all of their Bilibili Favorites without supplying a Folder URL or ID. The Host follows next_cursor until it is absent, then decides independently whether and how to retrieve transcripts or generate not

Read the thread · 2026-07-27 · closed · 2 comments

Add bounded authenticated Bilibili video discovery

Objective

Add one read-only search_bilibili_videos MCP tool that lets an Agent turn a topic into a bounded set of authenticated Bilibili Video candidates, then pass a selected BVID to the existing evidence tools.

Planning sources:

  • docs/bilibili-video-search-prd.md
  • docs/research/2026-07-26-bilibili-video-search-contract.md
  • CONTEXT.md term: Video Discovery

User value

Today every content tool requires a BVID or Bilibili URL. This ticket must prove the complete workflow:

`

Read the thread · 2026-07-26 · closed · 2 comments

Add citation-ready links to transcript evidence

Summary

Add citation-ready browser links to get_video_transcript only.

Planning sources:

  • docs/transcript-evidence-links-prd.md
  • docs/research/2026-07-26-bilibili-timestamp-link-contract.md

Public Contract

  • Add required source_url: string to every successful VideoTranscriptData result.
  • Add required timestamp_url: string to every returned TranscriptMatch.
  • Ordinary source URL: https://www.bilibili.com/video/<exact-bvid>/.
  • Multi-Part source URL adds `p=<resolved p

Read the thread · 2026-07-26 · closed · 2 comments

Clear fingerprint timeout when fetch fails

Problem

The optional buvid fingerprint request returns null on fetch failure as designed, but its request timeout is cleared only after a successful await fetch. A rejected fetch leaves the timeout pending until it fires.

Confirmed reproduction

npm test -- --run tests/bilibili-fingerprint.test.ts fails deterministically in about 0.25 seconds: getBuvid resolves null, while clearTimeout is called zero times instead of once.

Scope

  • Guarantee cleanup of the existing fingerprint requ

Read the thread · 2026-07-19 · closed · 2 comments

Most recent

[ASR] 在首次 ASR 中一次性迁移 v1 状态并完成跨平台验收

Parent

#55

What to build

让持有旧 v1 ASR 状态的升级用户在第一次明确请求本地 ASR 时完成一次受控设备迁移,而不重新安装模型。迁移在现有单 ASR 槽位内执行:GPU readiness 成功时同一个请求直接使用 GPU,失败时保存脱敏结论并由同一个请求继续使用 CPU;后续普通 ASR 不重复探测,用户只能通过再次运行 setup 主动重新验证。

Acceptance criteria

  • v1 用户的现有模型继续复用,不重新下载、重新安装或把迁移误当成模型未就绪。
  • 只有升级后的第一次明确 ASR 请求触发自动迁移;普通字幕读取、doctor 或其他 MCP 调用不隐式探测 GPU。
  • 迁移占用现有单 ASR 槽位;并发第二个 ASR 请求返回可重试的 ASR_BUSY,不并行加载模型、争抢显存或写状态。
  • readiness 成功后,同一个请求使用验证过的 cuda/float16;自动迁移失败后,同一个请求明确提示回退并使用 cpu/int8
  • 自动失

Read the thread · 2026-08-23 · closed · 0 comments

[ASR] 端到端验证并持久化 CPU Execution Profile

Parent

#55

What to build

让现有 CPU 安装路径端到端验证并持久化实际的 ASR Execution Profile。新 setup 在完成 cpu/int8 模型加载与最小推理后原子保存状态,doctor --json 如实报告实际 Profile 和 ASR Device Readiness;旧 v1 状态继续保留“模型已就绪”的事实,但显示设备迁移待执行,不强制重新安装或下载模型。

Acceptance criteria

  • 新状态只接受受控的 Execution Profile、readiness、迁移状态和脱敏失败类别枚举;非法、损坏或注入值 fail closed,不能成为任意 Python 参数。
  • 当前 CPU setup 使用所选本地模型与程序生成的固定短 WAV,完成 cpu/int8 模型加载、最小推理和结果生成器消费后才标记 ready,并立即清理临时音频。
  • v1 状态读取为“模型已就绪、设备迁移待执行”,不重新下载模型,也不误报 GPU ready。

Read the thread · 2026-08-23 · closed · 0 comments

[Fake-IP] 完成跨 Node 与真实 FlClash 验收

Parent

#56

What to build

为 Fake-IP DNS 诊断留下可发布判断的自动化与真实环境证据。验证 Node 20、22、25 下的固定 HTTPS 解析契约和 MCP 错误结构,并在脱敏的 FlClash/Mihomo TUN + Fake-IP 环境中证明:未配置域名过滤时会在模型运行前返回专用诊断;保留 TUN、加入两个域名过滤项并重新加载后,同一 ASR 路径能够继续正常执行。

Acceptance criteria

  • Node 20、22、25 均通过与 DNS lookup、固定 HTTPS、音频候选聚合和 MCP Fake-IP 错误相关的聚焦测试。
  • npm run build 与完整 npm test 通过,现有公网 DNS、TLS、候选回退及其他 ASR 行为无回归。
  • 在真实 TUN + Fake-IP 环境中,未配置 bilivideo 域名过滤时,force_asr 在运行 ASR 模型前返回 ASR_FAKE_IP_DNS。
  • 在保持 TUN/规则模式的情况下加入

Read the thread · 2026-08-23 · closed · 0 comments

[Fake-IP] 让 AI Agent 讲清原因、方法并等待用户选择

Parent

#56

What to build

让 AI Agent 在收到 ASR_FAKE_IP_DNS 后,能够用中英文把问题原因、安全拦截目的、排除项和三种处理方法解释清楚。Agent 必须说明每种方法的具体步骤与影响,把保留 TUN 的域名过滤方案放在首位,并在列出选择后等待用户决定,不自动修改网络配置或重复调用 ASR。

Acceptance criteria

  • 中英文指导都说明代理 DNS 返回了占位 Fake-IP,而不是真实 Bilibili 音频 CDN 公网地址,并说明具体地址会随用户、域名、缓存和时间变化。
  • 指导说明项目为了避免请求进入本机、内网或特殊用途地址而主动停止音频下载,并明确这通常不是 Cookie、ASR 模型、BVID 或普通临时播放故障。
  • 推荐方法明确要求保持 TUN/规则模式,在当前生效配置的 fake-ip-filter 中加入 +.bilivideo.com 和 +.bilivideo.cn,保存并重新加载配置或重启内核,然后重试 ASR。
  • 替代 DNS 方法说明可

Read the thread · 2026-08-23 · closed · 1 comment

[Fake-IP] 从 DNS 到 MCP 返回专用安全诊断

Parent

#56

What to build

让使用 Local ASR Transcript 的用户在标准 Fake-IP DNS 环境中获得准确、可机器读取的专用诊断。媒体域名的全部解析结果都位于 IANA 198.18.0.0/15 时,系统仍拒绝连接,但能够把该安全拒绝沿音频候选回退链传递到 MCP,并在所有已尝试候选都属于这一原因时返回 ASR_FAKE_IP_DNS。后续候选可用时应继续成功,失败原因混合时应保留通用错误,避免误诊。

Acceptance criteria

  • 只有单个媒体候选的全部解析结果都位于 198.18.0.0/15 时,才将其识别为标准 Fake-IP;范围边界和段外相邻地址有确定性测试。
  • Fake-IP 地址继续作为非公网特殊用途地址被拒绝,TLS、Host、SNI、凭据剥离和连接固定安全规则保持不变。
  • 所有已尝试音频候选都因标准 Fake-IP 失败时,MCP 返回 ASR_FAKE_IP_DNS、network、retryable false 和 user_action_requ

Read the thread · 2026-08-23 · closed · 0 comments

[Spec] 识别 ASR Fake-IP DNS 并让 AI Agent 引导用户处理

Problem Statement

当用户在 FlClash、Mihomo 或其他 Clash 系客户端中同时使用 TUN 与 Fake-IP DNS 时,Bilibili 音频 CDN 域名可能被本机 DNS 映射到基准测试保留地址段 198.18.0.0/15。项目现有的 HTTPS 固定连接安全检查会正确拒绝这类非公网地址,避免 SSRF 与 DNS 重绑定风险;但上层目前只能得到通用的 ASR_AUDIO_UNAVAILABLE,AI Agent 容易把它解释成 Cookie 失效、ASR 模型故障、视频不可用或临时网络波动,并建议无效重试。

问题的关键不是某一个固定 IP。Fake-IP 地址、真实 CDN 地址、所选域名、缓存结果和分配顺序都可能因用户、客户端配置和时间而变化,因此不能硬编码一次现场观测到的地址。项目需要在不削弱现有网络安全边界的前提下,识别标准 Fake-IP 场景,向主要交互界面——AI Agent——返回明确、双语、可操作的结构化诊断。Agent 必须把原因和每种处理方法讲清楚,然后让用户决定下一步,不得擅自修改网络配置或反复尝试 ASR

Read the thread · 2026-08-23 · closed · 1 comment

[Feature] ASR 安装增加速度档位与可选 NVIDIA GPU/CUDA 加速

Problem Statement

现有 ASR 已支持受控的 tinybasesmall 模型选择,但安装界面只展示模型名称和体积,无法让用户直接理解速度、质量与资源开销之间的取舍。安装验证与实际转写均固定为 cpu/int8,即使用户已经拥有可用的 NVIDIA GPU,也不能安全地使用 GPU 加速。

GPU 支持不能等同于“检测到显卡”或“能运行 nvidia-smi”。只有 NVIDIA 驱动、CUDA 运行库、cuBLAS/cuDNN、受控版本的 CTranslate2、所选模型真实加载,以及一次最小推理全部成功,项目才能宣称 GPU 可用。同时必须保持现有 CPU 路径、模型 allowlist、ASR 资源上限、临时音频清理、MCP 成功结构与网络安全边界不变。

该功能还必须兼容已经存在的 v1 state.json。用户升级 MCP 后,不应被强制重新安装模型;在下一次明确请求 ASR 时,项目应执行一次受控的自动设备迁移:GPU 完整验证成功则使用 GPU,否则继续使用 CPU。失败结果必须被记住,避免每次 ASR 都重复昂贵

Read the thread · 2026-08-23 · closed · 1 comment

[Bug] 字幕接口被 B 站风控拦截返回 HTTP 412(NETWORK_ERROR):传输层错误未触发 /x/player/v2 降级

标题

[Bug] 字幕接口被 B 站风控拦截返回 HTTP 412(NETWORK_ERROR):传输层错误未触发 /x/player/v2 降级

环境

  • 包版本:@xzxzzx/bilibili-mcp@1.13.0(check_mcp_update 显示已是最新)
  • 运行环境:Linux (WSL2),Node v20.19.4,直连公网 IP(非代理)
  • 客户端:OpenCode(MCP stdio)
  • 凭证状态:Cookie 已配置且有效(/x/web-interface/nav 返回 isLogin=true)

现象

  • get_video_metadata 正常;get_video_infoget_video_transcript 均报错: code=NETWORK_ERROR, message="网络请求失败", details.status_code=412
  • 受影响视频示例:BV1P4uP6CEXx(该视频实际存在 6 条 AI 字幕 ai-zh/ai-en/ai-ja 等)

复现与诊断(cur

Read the thread · 2026-08-22 · closed · external user · 0 comments

Creator Dynamics: expose text, reposts, images, and Video references

Parent

  • #44

What to build

Extend Creator Content Discovery with the dynamics section so an Agent can traverse all public Creator Dynamic feed-entry types and receive bounded textual, repost, image, and Video-reference evidence. The MCP server retrieves evidence; the Agent chooses images and referenced Videos to inspect and performs all interpretation.

Acceptance criteria

  • Original, repost, text, image, and Video-share Dynamics are included and explicitly typed when Bilibili

Read the thread · 2026-08-19 · closed · 1 comment

Creator Collections and Series: preserve Video memberships

Parent

  • #44

What to build

Extend Creator Content Discovery with distinct collections and series sections so an Agent can list each Bilibili container family and traverse one selected container's Video memberships. Preserve creator-provided organization and repeated membership context without confusing containers with multi-Part Videos or Favorite Folders.

Acceptance criteria

  • Collection and Series container lists remain separate typed results with stable upstream identity

Read the thread · 2026-08-19 · closed · 1 comment

Creator Video Catalog: traverse currently listable Videos

Parent

  • #44

What to build

Add the overview and videos sections of get_bilibili_creator_content so an Agent can inspect one selected Creator and traverse every Video metadata row currently listable to the authenticated request identity. The traversal must remain bounded, preserve Bilibili order, expose conservative charge/access evidence, and feed selected BVIDs into existing Video tools without automatically crawling them.

Acceptance criteria

  • The tool accepts a validat

Read the thread · 2026-08-19 · closed · 1 comment

Creator Search: return stable UP candidates

Parent

  • #44

What to build

Add the complete search_bilibili_creators tracer bullet so an Agent can turn an ambiguous UP name into a small Bilibili-ordered set of distinguishable Creator candidates. Each candidate must expose stable numeric mid identity and bounded upstream profile evidence; the tool must never auto-select a Creator by display name.

Acceptance criteria

  • A required non-empty query returns at most the requested number of candidates, with default 5 and maximum

Read the thread · 2026-08-19 · closed · 0 comments

Spec: discover a Creator's Videos, organization, and Dynamics

Problem Statement

Users can retrieve deep evidence after they know a BVID, but cannot reliably identify a Bilibili Creator or traverse that Creator's Videos, Collections, Series, and Dynamics. Display names are ambiguous, large Creator histories cannot fit in one response, Collection and Series memberships are non-exclusive, charge metadata does not prove playback entitlement, and Dynamic images need to remain inspectable without turning the server into an OCR or vision service.

Solution

Read the thread · 2026-08-19 · closed · 1 comment

ai-zh(B站AI识别字幕)与人工字幕混标为 subtitle,用户无法区分,建议区分或提供排除开关

问题描述

get_video_transcript / get_video_info 返回的 data_source 字段对 AI 识别字幕(ai-zh)UP主人工上传字幕 一视同仁,都标成 "subtitle"。但 ai-zh 是 B 站平台自动语音识别生成的,错误率很高,用户拿到后极易误认为是人工精校的 CC 字幕,并可能直接引用其内容。

复现

任意没有人工字幕的视频,例如:

  • BV1k5411a714(李永乐高中数学课堂实录,116万播放)
  • BV15kyBB5Eg8(厚大教育官方号 2026 罗翔刑法理论卷)

调用 get_video_transcript 后返回:

{
  "data_source": "subtitle",
  "language": "ai-zh"
}

源码位置 dist/bilibili/subtitle.js

const LANGUAGE_PRIORITY = ["zh-Hans", "ai-zh", "zh-CN", "zh-H

[Read the thread](https://github.com/XZXZZX-Ai/bilibili-mcp/issues/40) · 2026-08-17 · closed · external user · 0 comments

### [Harness v2] Three-adapter conformance, real pilots, and migration acceptance

## Parent

- #28

## What to build

Complete Harness v2 migration and acceptance by bringing forward only approved project decisions and research into a clean baseline, running the common conformance suite, and completing one real bounded pilot in each of the three execution adapters. Compare operational evidence across adapters, verify security and release boundaries, prove package exclusion, and refresh the durable project map and Harness evaluation.

This ticket is the integration gate. Mocke

[Read the thread](https://github.com/XZXZZX-Ai/bilibili-mcp/issues/36) · 2026-08-09 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/XZXZZX-Ai/bilibili-mcp/issues).