AI-powered video editing MCP server with Submagic API integration for automated caption generation, video effects, and clip creation
Server has 7 tools with complete input schemas and descriptions. Naming follows verb_noun convention (list_, create_, get_, update_, export_). Descriptions are substantive (100-300 chars) and explain WHAT the tool does. However, parameter descriptions lack actionable constraints (no enums for template_name, language patterns are present but not all params have format guidance). Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from tool definitions. No tool annotations (readOnlyHint, destructiveHint) despite clear read/write semantics. Composition is sound: tools chain logically (list_templates → create_project). Security: API key injection via environment (Config pattern) is correct.
Automatically generate viral short-form clips from a YouTube video with full control. Args: title: Project title for the clips collection youtube_url: Full YouTube URL language: Language code for captions webhook_url: URL to receive notification user_theme_id: UUID of custom branded theme min_clip_length: Minimum clip duration in seconds (15-300) max_clip_length: Maximum clip duration in seconds (15-300)
Create a new video project with AI-powered captions and effects. Args: title: Descriptive project title (1-100 characters) language: Language code (get from submagic_list_languages) video_url: Public URL to video file (must be accessible) template_name: Styling template (get from submagic_list_templates) user_theme_id: Custom theme UUID (cannot use with template_name) webhook_url: URL for completion notification dictionary: Custom words for better transcription accuracy magic_zooms: Enable AI-powered dynamic zooms (default: true) magic_brolls: Auto-insert B-roll footage (default: true) magic_brolls_percentage: B-roll coverage 0-100% (default: 75) remove_silence_pace: Silence removal speed: natural/fast/extra-fast (default: natural) remove_bad_takes: Remove filler words automatically (default: true)
Export and download a completed project video. Args: project_id: UUID of completed project fps: Frames per second (1-60). width: Video width in pixels (100-4000). height: Video height in pixels (100-4000). webhook_url: URL to receive notification when export completes
No output schemas documented. LLMs cannot predict response structure (fields, types, pagination). Forces agents to guess what data is returned.
Missing tool annotations (readOnlyHint, destructiveHint, idempotentHint). create_project, update_project, export_project are WRITE operations but lack destructiveHint. list_* and get_* lack readOnlyHint. Agents cannot infer safety/retry semantics.
Parameter 'template_name' in create_project accepts free-form string but should be an enum. Description says 'get from submagic_list_templates' but LLMs may hallucinate invalid template names. No enum constraint.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | <=2025-11-25 | v2 |
Get detailed information about a specific project including processing status. Args: project_id: UUID of the project (from submagic_create_project)
Get list of supported languages for transcription and captions. Returns comprehensive list of 100+ language codes that can be used when creating projects. Useful for determining which language code to use for your video content. Returns: List of language codes with names (e.g., "en - English", "es - Spanish")
Get list of available video styling templates. Returns all pre-made templates that can be applied to projects. Popular templates include: - Hormozi series: High-energy business/marketing style - Sara: General social media optimized (default) - Beast: MrBeast-inspired style Returns: List of template names that can be used in submagic_create_project
Update project settings - only supports editing features, not AI toggles
No error handling guidance in tool descriptions. What happens if video_url is inaccessible? If project_id is invalid? If API rate limit is hit? Agents have no recovery path.
update_project description is vague ('only supports editing features, not AI toggles'). Unclear what 'items' array structure is. Parameter 'items' lacks detailed format documentation.