Evidence-aware Bilibili video research MCP for language, vision, and multimodal analysis.
Three tools with complete schemas and descriptions. Tool naming follows verb_noun pattern (analyze_*, inspect_*). Descriptions are detailed (150-250 chars) and explain WHAT, WHEN, and output. All parameters have types and descriptions. However, output schemas are undocumented, LLMs cannot predict response structure. Error handling returns raw exceptions without recovery guidance. No parameter validation constraints (e.g., video_path existence, time window logic). Missing idempotency hints for tools that may be retried.
Resolves a public Bilibili URL, always returns public metadata and an explicit community-context status, and optionally samples 20 most-liked root comments while displaying only 3 hot comments plus up to 2 distinct high-signal comments. Supports language-only, visual-only, and multimodal research.
Creates an audio-free copy of a local video and sends it to the configured video-analysis provider for visual research. Visible interfaces, code, charts, labels, and subtitles remain usable visual evidence.
Extracts an audio-free temporary clip for the requested source-video time window, then sends that clip to the configured video-analysis provider for visual-only analysis. Temporary media and remote uploads are removed after the answer.
Output schemas undocumented. Tools return text responses but LLMs cannot predict structure (fields, types, nested objects). Downstream tool chaining and data extraction require guesswork.
Error handling returns raw exception messages without recovery guidance. 'error instanceof Error ? error.message : String(error)' provides no actionable next steps for LLM retry or fallback.
No input validation. video_path parameter accepts any string; no check for file existence, readability, or format. start_seconds/end_seconds lack cross-parameter validation (end > start). Errors occur at runtime instead of being caught early.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
analyze_bilibili_video source_quality.fps uses union type with enum [30, 60] but schema declares 'union' with 'enum', ambiguous JSON Schema. Should be z.enum([30, 60]) or z.union([z.literal(30), z.literal(60)]).
No idempotency hints. Tools that create temporary files and call external providers may be retried by agents on transient failures. Lack of idempotentHint annotation leaves retry safety unclear.