bilibili-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bilibili_accountA | Account-tier operations: tier status, following feed, favorites. [RATIONALE] The account tier is one logical surface (your logged-in Bilibili world) with several sub-surfaces; one tool with an operation discriminator keeps it compact while the auth-gated ops are honestly marked requires_login. Return Format{"success": bool, "operation": str, "data": {...}, "message": str} Examplesbilibili_account(operation="status") bilibili_account(operation="following") bilibili_account(operation="favorites") |
| bilibili_exploreA | Discover what is trending on Bilibili: popular feed, rankings, hot keywords. [RATIONALE] Discovery has three list surfaces (popular, rank, hot search) that share a single 'video-ish list' output; one tool with an operation discriminator keeps the surface compact and discoverable. Return Format{"success": bool, "operation": str, "data": [...], "count": int} Examplesbilibili_explore(operation="trending", limit=10) bilibili_explore(operation="rank", rid=3, limit=15) bilibili_explore(operation="hot_search", limit=10) |
| bilibili_helpA | Explain how to use the bilibili-mcp server. Return Format{"success": bool, "data": {"help": str, "tools": [...]}, "message": str} Examplesbilibili_help() bilibili_help(topic="transcript") |
| show_bilibili_trending_cardA | Show what is trending on Bilibili right now as a rich in-chat card. [RATIONALE] Status/list tools MUST ship a Prefab surface per fleet SOTA - this card renders the popular feed in chat without the agent reading raw JSON. Return FormatToolResult with content (plain text fallback) + structured PrefabApp card. Examplesshow_bilibili_trending_card(limit=5) |
| show_bilibili_status_cardA | Show bilibili-mcp configuration status as a rich in-chat card. [RATIONALE] Status tools MUST ship a Prefab surface - one call shows tier, cookie state and cache headroom at a glance. Return FormatToolResult with content (plain text fallback) + structured PrefabApp card. Examplesshow_bilibili_status_card() |
| show_bilibili_cache_cardB | Show and clear the Bilibili response cache. [RATIONALE] A tiny status surface for the TTL cache - helps debug rate-limit staleness. Return FormatToolResult with content + structured PrefabApp card. Examplesshow_bilibili_cache_card() |
| bilibili_searchA | Search Bilibili for videos or creators. Return Format{"success": bool, "operation": str, "data": [...], "count": int} Examplesbilibili_search(operation="video", keyword="微积分") bilibili_search(operation="user", keyword="罗翔", limit=5) |
| bilibili_shutdownA | Gracefully stop the bilibili-mcp server. Return Format{"success": bool, "message": str} Examplesbilibili_shutdown(confirm=True) |
| bilibili_transcriptA | Fetch a video's auto-generated subtitle track as plain text. Returns the transcript as text so an LLM can summarise or translate it. Some videos have no subtitles (or subtitles require login to access); in that case the tool returns an honest, actionable error rather than empty. Return Format{"success": bool, "data": {"bvid": str, "cid": int, "lang": str, "text": str, "word_count": int}, "message": str} Examplesbilibili_transcript(bvid="BV1xx411c7mD") bilibili_transcript(bvid="https://www.bilibili.com/video/BV1xx411c7mD", part_index=2) |
| bilibili_videoA | Inspect a single Bilibili video: metadata, comments, or part list. Return Format{"success": bool, "operation": str, "data": {...}, "message": str} Examplesbilibili_video(operation="info", bvid="BV1xx411c7mD") bilibili_video(operation="comments", bvid="BV1xx411c7mD", limit=10) bilibili_video(operation="pages", bvid="BV1xx411c7mD") |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| bilibili_research | Discover what is trending on Bilibili and summarise a video's transcript. |
| bilibili_briefing | Produce a short 'what is trending on Bilibili' briefing. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| skill_bilibili_expert | The bilibili-expert skill - how to use the server well. |
| Prefab Renderer (show_bilibili_trending_card) | |
| Prefab Renderer (show_bilibili_status_card) | |
| Prefab Renderer (show_bilibili_cache_card) |
TDQS
Scored across 10 tools
Core tools cleanly separate account, explore, search, transcript, and video resources. Minor overlap exists between bilibili_explore(trending) and show_bilibili_trending_card, and bilibili_account(operation='status') could be confused with show_bilibili_status_card, but the descriptions make the distinction recoverable.
All tools use a bilibili_ prefix or show_bilibili_*_card pattern, so the two naming families are internally consistent. The mix of noun-style names like bilibili_account and verb-style names like bilibili_search is a minor deviation but still predictable and readable.
Ten tools is well-scoped for a Bilibili-oriented server covering discovery, search, video inspection, transcripts, account data, and system status. The card tools add some redundancy but each has a distinct presentation purpose.
The read/inspect/search/transcribe workflow is well covered: videos, comments, pages, transcript, search, trending, rankings, hot search, account following, and favorites. Minor gaps include no user profile detail, no comment thread replies, and no authenticated actions beyond reading.