MCP server that enables Claude to control YukkuriMovieMaker4 (YMM4) video editing software via HTTP API, supporting timeline manipulation, character voice synthesis, video composition, and preview capture
This server has major definition quality gaps across all three tools. The primary issues are: (1) All three tools have descriptions in Japanese that are extremely dense, technical, and poorly structured for LLM consumption. The ymm4_interact tool description is 1,256 characters, far exceeding the 1,024-char baseline and burying key information. (2) Parameter descriptions are sparse and often missing entirely, violating the pattern that every parameter needs a description. (3) No output schemas are documented anywhere in the source code, LLMs cannot plan what data they'll receive. (4) Tool names are weakly action-oriented (ymm4_interact, ymm4_preview, ymm4_advanced are generic and do not clearly signal intent). (5) The ymm4_advanced tool exposes reflection-based introspection without constraint, creating a massive attack surface. (6) Error handling and recovery guidance are absent. (7) Dry-run and confirmation patterns exist for some operations (add_script) but are not consistently applied across destructive actions.
【YMM4全機能アクセス】個別ツールで未対応のYMM4内部機能に、リフレクション経由で直接アクセスする上級ツール。YMM4内部の任意のViewModel/Model/Projectのプロパティ取得・設定、任意メソッド呼び出し、任意コマンド実行、オブジェクト構造の調査(inspect)ができる。 action一覧: - inspect: 対象オブジェクトのプロパティ・メソッド・コマンド一覧を取得(まず構造を調べる時に使う) - get: 任意プロパティ/フィールドの現在値を取得(path指定で深掘り可: 'ActiveTimeline.Items[0].Item.Length') - set: 任意プロパティ/フィールドに値を設定 - invoke: 任意メソッドを引数付きで呼び出す(戻り値がTaskなら自動await) - command: 任意のICommandを実行(UndoCommand等UIメニュー限定機能を直接トリガー) - list_commands: 利用可能な全コマンドと現在実行可能かを一覧 target一覧: 'Main'(MainViewModel) / 'ActiveTimeline' / 'Player' / 'Project'。pathで 'A.B[2].C' のようにドット・インデックスで深掘りできる。ReactivePropertyの.Valueは自動展開される。
validate=タイムライン整合性・期待する配置の検証。add_scriptはdry_runで実行前に確認できます。YMM4を操作・情報取得するための単一ツール。制作前にymm4://skills/{jikkyou,kaisetsu,chaban,story}の該当リソースを読んでください。action='get_info'(status/project/items/characters/capabilities/effects_list/selection/commands/effects/keyframes), 'control'(play/stop/save/undo/redo/split/align), 'add_item'(video/audio/image/text/voice/tachie/face), 'edit_item'(face_param/property/effect/delete/duration/move/select/resolve_overlaps/shift/keyframe), 'add_script'(複数セリフ一括追加・実音声長で重なり自動回避)を指定する。
YMM4のプレビュー映像・音声を認識するツール。capture=現在フレームを画像取得、seek_capture=指定フレームに移動して画像取得、position=再生位置取得、record=システム音声録音(ループバック)
ymm4_interact: Tool description is 1,256 characters, exceeding the 1,024-char baseline by 22%. The description mixes action enum values, sub_action options, and parameter explanations in a single dense paragraph. This violates the tool-description pattern (10-1024 chars, state WHAT/WHEN/WHY). LLMs cannot parse this structure and will struggle to determine when to call this tool vs. ymm4_preview or ymm4_advanced.
All three tools: Japanese-language descriptions are not optimized for English-speaking LLMs. Machine translation of technical jargon (タイムライン整合性 = 'timeline consistency validation', 配置 = 'placement', リフレクション = 'reflection') introduces ambiguity. LLMs trained primarily on English will struggle to parse intent from Japanese text, especially for specialized domain concepts.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 39 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
ymm4_interact and ymm4_advanced: Many input parameters lack descriptions. Examples in ymm4_interact: 'from_frame', 'delta', 'gap', 'filename', 'lines', 'fps', 'chars_per_sec', 'start_frame' are declared but have only 1-2 sentence descriptions or are context-dependent. Parameter descriptions must explain expected format, range, and constraints. Current descriptions fail to answer: What format? What range? When does this parameter apply?
No output schemas are documented for any tool. The source code shows input schemas (JSON Schema format) but provides no description of what ymm4_interact, ymm4_preview, or ymm4_advanced return. LLMs cannot infer output structure and will fail to chain results to downstream tools. This violates the response-shaper pattern (document the output schema).
ymm4_interact: The 'action' enum lists 6 values (get_info, control, add_item, edit_item, add_script, validate), but only 'add_script' mentions dry_run support. The schema shows dry_run as a boolean parameter, but its applicability to other actions (e.g., does 'control'→'play' support dry_run?) is undefined. This undocumented parameter dependency violates the constrained-input pattern.
ymm4_advanced: The tool exposes arbitrary reflection-based access to YMM4 internals via 'inspect', 'get', 'set', 'invoke', 'command'. No permission gates, no input sanitization, no rate limits, and no validation of 'path' strings. An LLM could craft a path like 'Project.Items[0]/../../../Config.Secret' to traverse object hierarchies and exfiltrate sensitive data. This violates the tool-gateway and permission-gate patterns.
ymm4_advanced: Parameter 'path' is a free-form string with no constraints, format specification, or examples. The description hints at dotted notation ('A.B[2].C') but does not enforce or validate it. LLMs cannot infer valid path syntax and will guess, causing tool failures. No actionable error guidance if a malformed path is passed.
Tool naming: ymm4_interact, ymm4_preview, and ymm4_advanced are not strongly action-oriented. 'interact' is vague (what interaction?), 'preview' is vague (preview what?), and 'advanced' is not a verb. Stronger names would be: 'edit_timeline_item', 'render_timeline_preview', 'inspect_ymm4_object'. Current names force LLMs to read long descriptions to understand purpose, increasing latency and error likelihood.
No error handling or recovery guidance. The source code shows HTTP response codes (401, 403, 409) and some error JSON structures (error_code, error fields), but the tool definitions provide no guidance on what errors to expect, when they are retryable, or what the LLM should do next. This violates the recovery-guide pattern.
ymm4_preview: The 'element' parameter description says '(省略可)' (optional, in Japanese), but the schema does not list it as non-required. Unclear whether 'element' is optional or required. Schema does not include 'required' array, forcing inference of which parameters are mandatory.