A video editing server with MCP (Model Context Protocol) integration for timeline management, media ingestion, caption handling, and asset library operations
24 tools with significant structural gaps. Most tools have basic descriptions (10-50 chars) but lack depth on WHEN to use them or prerequisites. Input schemas present but many use generic 'object' types without field-level documentation (e.g., updateClip.patch, addOverlay.overlay, updateOverlay.patch). No output schemas documented. Error handling absent, no recovery guidance, no categorization of retryable vs fatal errors. Tool names follow verb_noun pattern (good), but composition issues: addClip/updateClip/deleteClip are well-separated, but overlay/caption/audio operations are repetitive. No pagination on list_media or get_chat. Destructive tools (deleteClip, deleteAudio, etc.) lack confirmation patterns. Chat tools (post_chat, get_chat) are low-value additions to a video editor.
Add an audio track to the timeline at a specified position with duration
Add a caption/subtitle to the timeline at a specified time with text and styling
Add a video clip to the timeline at a specified position with duration and optional label
Add an image or text overlay to the timeline at a specified position with duration and positioning
Remove an audio track from the timeline
Remove a caption from the timeline
Remove a clip from the timeline
Remove an overlay from the timeline
Generic 'object' parameters without field-level schemas. updateClip.patch, addOverlay.overlay, updateOverlay.patch, updateCaption.patch, updateAudio.patch all accept untyped objects. LLMs cannot infer valid fields or constraints.
No output schemas documented for any tool. get_project_info, list_media, get_timeline return unspecified structures. LLMs cannot plan downstream calls or extract required fields.
Destructive tools (deleteClip, deleteOverlay, deleteCaption, deleteAudio) lack confirmation or dry-run patterns. No error guidance on recovery. Agents can irreversibly delete content without safeguards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Export the project as a publishable package with all assets and metadata
Export the edited video project to a file with specified format and quality settings
Retrieve chat messages from the project collaboration channel
Retrieve information about the current video project including tracks, clips, and metadata
Retrieve the current timeline structure with all tracks and their contents
Import media files from the filesystem into the project
List all imported media files in the project with their properties and probe information
Post a message to the project chat/collaboration channel
Redo the last undone editing action(s)
Set the canvas/output dimensions and frame rate for the video project
Split a clip at a specified time point on the timeline
Undo the last editing action(s)
Update properties of an existing audio track (start time, in-point, duration)
Update properties of an existing caption (text, timing, styling)
Update properties of an existing video clip (in-point, duration, label)
Update properties of an existing overlay (position, duration, anchor point)
Descriptions too brief (40-60 chars) and lack WHEN/WHY context. 'Update properties of an existing clip' does not explain when to call updateClip vs splitAt or when in-point vs duration matters. LLMs cannot disambiguate.
list_media and get_chat lack pagination (limit, offset, cursor). No documented result caps. Large projects could return thousands of items, exhausting context window.