mcp-video-learn
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BILI_COOKIE | No | Bilibili cookie string, e.g. SESSDATA=...; bili_jct=... Optional; use a secondary account. | |
| VIDEO_AUDIT | No | Path to the audit log file. | ~/.cache/mcp-video-learn/audit.jsonl |
| VIDEO_YTDLP | No | Path or command name for yt-dlp, used only as a fallback when the Bilibili API fails. | yt-dlp |
| BILI_COOKIES | No | Path to a Netscape-format cookies.txt file for Bilibili login state. Optional; use a secondary account. | |
| SHARP_MODULE | No | Path to an already-installed sharp module, used to decode animated WebP files. | |
| VIDEO_FFMPEG | No | Path or command name for the ffmpeg executable. | ffmpeg |
| VIDEO_MAX_MB | No | Maximum download size per request in megabytes. | 60 |
| VIDEO_COOKIES | No | Legacy alias for BILI_COOKIES; path to a Netscape-format cookies.txt file. | |
| VIDEO_ALLOW_ROOTS | No | Path-separator-delimited list of local directories that media_frames is allowed to read. Defaults to the current directory plus the temporary directory. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bili_video_infoA | 看一个 B 站视频的元信息(不下载):标题、UP 主、时长、简介摘要、有没有字幕。用于判断值不值得看。 |
| bili_video_watchA | 真正“看”一个 B 站视频:走官方 API 下载低清流(机房 IP 也可用)→ 抽 N 帧拼成网格 + 字幕文本。适合回答“这个视频讲了什么”。注意:只有字幕能反映台词/讲解,纯语音内容会缺失。 |
| media_framesA | 把任意“动的东西”变成模型能看懂的帧网格:本地 GIF/WebP/视频、媒体直链、或 B 站链接。适合识别动图表情包、看短视频、检查本地素材。返回元信息(尺寸/帧数/时长)+ 一张网格图。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
bili_video_info is clearly a metadata-only check, but bili_video_watch and media_frames both accept Bilibili links and both return frame grids, creating real overlap. The descriptions do try to separate them (talking-head/subtitle use case vs. generic animated media), so an agent can usually choose correctly, but the boundary requires reading carefully.
Two tools share a bili_video_ resource prefix while the third uses a generic media_ prefix, and the verb/action component varies (info = noun, watch = verb, frames = noun). Readable and domain-suggestive, but no predictable verb_noun pattern across the set.
Three tools is on the lean side but each covers a distinct stage (triage metadata → deep watch → generic media inspection), so nothing feels redundant filler. The scope is intentionally narrow, so a small count is defensible.
The core workflow—decide whether to watch, then extract frames plus subtitles, plus a generic media path—is covered end to end. Gaps remain: no subtitle/transcript-only retrieval, no timestamp-targeted frame extraction, and pure-speech content is explicitly unsupported, which will dead-end some 'what does this say' queries.