MCP server for connecting to Krillinai service, providing tools for subtitle processing, file uploads, and media handling
Server has 5 tools with mixed quality. Tool naming follows verb_noun pattern (get_, set_, upload_, start_, get_) which is good. However, descriptions vary significantly in quality and completeness. Critical gaps: parameter descriptions are present but often lack constraint details (enums, ranges, formats); output schemas are not documented; error handling lacks recovery guidance; no tool annotations (readOnlyHint/destructiveHint). The code shows basic implementation but lacks production-grade polish expected for A/B tier. Average tool score: 52/100.
获取当前 Krillin 连接器配置,主要是 Krillin 服务的 BASE URL。
获取 Krillinai 字幕任务的当前状态、进度和结果(如果已完成)。 如果任务完成且可能生成了嵌入字幕的视频,会尝试添加这些视频的潜在下载链接。 请根据 start_krillinai_subtitle_task 时的参数来选择返回嵌入视频的链接
设置 Krillinai 服务的 BASE URL。 注意: 此更改将影响当前 MCP 服务器实例后续所有对 Krillinai 的调用。
为 Krillinai 服务上已上传的媒体文件或外部链接启动字幕处理任务。
将 MCP 服务器可访问路径下的文件上传到 Krillinai 服务。 可用于上传视频进行字幕处理,或上传音频进行音色克隆。
Output schemas not documented. Tools return dicts with 'error', 'msg', 'data' structure but LLMs cannot see what fields 'data' contains. This forces LLMs to guess downstream field names and breaks tool chaining.
Parameter descriptions lack constraint details. 'new_url' in set_krillinai_base_url has a description but no format validation hint; 'language' enum is declared but 'target_lang' in start_krillinai_subtitle_task accepts free-form string with no validation guidance. LLMs will hallucinate invalid language codes.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). set_krillinai_base_url and start_krillinai_subtitle_task are destructive/state-modifying but lack annotations. Agents cannot distinguish safe reads from risky writes without explicit hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
Error handling lacks recovery guidance. Code catches exceptions and returns {'error': 1, 'msg': ...} but does not tell LLM what to do next. E.g., 'File not found' should suggest 'Ensure file exists at path or use upload_file_to_krillinai first.'
start_krillinai_subtitle_task has 14 parameters, many optional with interdependencies not documented. E.g., 'vertical_major_title' only applies if embed_subtitle_video_type='vertical' or 'all', but this constraint is not stated in parameter descriptions. Undocumented dependencies cause silent misuse.