Skip to main content
Glama

📺 bili-note-mcp

An MCP server that automatically turns Bilibili course videos into structured study notes.

Any MCP-capable Agent (DSH, Claude Desktop, Cursor…) can do it all in one click: Bilibili video → subtitle extraction → VitePress study notes → saved locally.

This is a strong MCP protocol development experience for your resume: Agent tool extension is one of the hottest directions in AI engineering today.

Why I Built This

The most time-consuming part of exam prep isn't "watching videos" — it's "organizing notes". This MCP server wraps the entire workflow into tools that Agents can call directly:

Agent 说"把鹏哥C语言 P117 的字幕做成笔记"
   └─→ bili_get_transcript(BV17a7K64ELH)   ← 提取字幕(带时间戳)
   └─→ bili_generate_note(...)              ← 转结构化笔记(要点/Active Recall/分段)
   └─→ bili_save_note(...)                  ← 保存到 VitePress 笔记目录

Related MCP server: Open CLAW Knowledge Distiller

Quick Start

# 1. 安装依赖
pip install 'mcp[cli]'

# 2. 测试(离线,不连 B站)
python tests/test_bili_note.py

# 3. 手动验证字幕提取(用任意 BV 号)
python -m tools.bili_subtitle BV17a7K64ELH

# 4. 启动 MCP 服务器(stdio 模式)
python server.py

Add to DSH

In cordis.patch.yml, add the following to the insert list:

- id: mcp-client-bili-note
  name: '@huiliyi37/dsh-mcp-client'
  config:
    transport: stdio
    serverName: bili-note
    command: 'python'
    args: ['C:\Users\Administrator\Desktop\deeepseek\bili-note-mcp\server.py']
    toolCallTimeoutMs: 120000
    failOnStartupError: false

After giving DSH a restart, the Agent can call the bili_* family of tools.

MCP Tool List

Tool

Description

bili_get_video_info

Get video metadata (title/uploader/duration)

bili_get_transcript

Extract the full transcript (with timestamps; AI subtitles preferred)

bili_generate_note

Subtitles → VitePress notes (key points + Active Recall)

bili_save_note

Save the notes to a local directory

bili_search_video

Search Bilibili videos (mind the 412 risk control)

Directory Structure

bili-note-mcp/
├── server.py              # MCP 服务器入口(FastMCP)
├── tools/
│   ├── bili_subtitle.py   # B站 API 字幕提取
│   ├── bili_search.py     # B站视频搜索
│   └── note_generator.py  # 字幕 → VitePress 笔记
├── tests/
│   └── test_bili_note.py  # 离线测试
├── examples/
├── AGENTS.md
└── README.md

Technical Highlights

  • FastMCP: a high-level wrapper around the official MCP Python SDK, with the @mcp.tool decorator auto-generating the tool schema.

  • Cookie-free by default: AI subtitles go through the public API; manually uploaded subtitles require a login Cookie (optional).

  • Temporary subtitle links: valid for about 15 minutes, with automatic fallback to the next track on failure.

  • Testable offline: the core logic (BV parsing / timestamps / note structure) does not depend on any external API.

Known Limitations (Verified)

  • Subtitle tracks require an authenticated session: Bilibili enforces a login check on the subtitle endpoint (/x/player/wbi/v2), so without a Cookie most videos return "no usable subtitles". Workarounds:

    1. Copy the Cookie from your browser (SESSDATA, etc.) and pass it to bili_get_transcript(cookies=...).

    2. Or first obtain a temporary subtitle URL from the browser (valid for around 15 minutes) and call fetch_subtitle_json directly.

    3. Video metadata (title/uploader/duration) works without a Cookie — verified ✅.

Resume Highlights

  • Built an MCP protocol server, showcasing Agent tool extension ability.

  • Serves a real exam-prep scenario: Bilibili course videos → automatic notes. I use it every day myself.

  • FastMCP + standard library, no heavy frameworks, readable and clean code.

License

MIT © 2026 wpc725562-dotcom

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides comprehensive video tools: transcript retrieval, video downloading, and automatic subtitle generation using AI speech-to-text. Works with YouTube, Bilibili, Vimeo, and any platform supported by yt-dlp.
    11
    MIT