MCP server for extracting knowledge from 11+ self-media platforms (YouTube, Bilibili, Douyin, Xiaohongshu, Kuaishou, TikTok, Twitter/X, Instagram, WeChat Channels, Weibo, Vimeo). Supports dual-ASR cross-validation, OpenAI-compatible LLM, pluggable storage backends (Obsidian/Feishu/Notion/Yuque/SQLite), async periodic scheduler, batch runner, and credential-leak-proof source loader.
VidkNot MCP server has significant definition quality gaps. Tool schemas are present with proper JSON Schema structure (types, enums, descriptions), but descriptions are inconsistent in depth. Two tools (video_knowledge, video_to_notes) are near-duplicates, violating single-responsibility principle. Error handling is minimal, no recovery guidance, no categorization of error types. Parameter descriptions lack constraint details (e.g., max_workers max=8 is mentioned but not in schema). Output schemas are not documented. The server lacks tool annotations (readOnlyHint, destructiveHint) despite having both READ_ONLY and WRITE operations.
Process multiple video URLs in batch. Supports parallel processing with configurable worker count. Returns summary of success/failure for each URL.
Query the status and availability of supported video platforms. Returns platform health information and supported features.
Search for videos on supported platforms (reserved interface, not yet implemented). Currently requires direct video URL provision.
Process a single video URL and extract structured knowledge/notes. Supports multiple destination backends (obsidian, feishu, notion, yuque, both, none) and output formats (structured, raw). Returns markdown notes with optional save to configured storage backend.
Alias for video_knowledge tool. Process a single video URL and extract structured knowledge/notes.
Duplicate tools: video_knowledge and video_to_notes have identical schemas and nearly identical descriptions. This violates single-responsibility and forces LLMs to reason about which to call.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data from responses. Descriptions mention 'returns markdown notes' but field structure is opaque.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools marked WRITE risk (video_knowledge, video_to_notes, batch_process) should declare destructiveHint=true to signal irreversible side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
search_video is marked 'not yet implemented' but exposed as a tool. This invites LLM calls that will fail. Either remove it or return a clear 'not implemented' error with guidance.
Error handling lacks recovery guidance. Code shows generic error responses (e.g., 'Invalid JSON', 'Method not found') with no actionable next steps for LLMs. No categorization of retryable vs. fatal errors.