The open-source, local-first AI canvas for image and video creation and analysis. Provides MCP tools for skill management, project management, asset handling, canvas operations, generation control, and video/image editing.
The BeatDesign MCP server provides 29 tools with consistent naming patterns (verb_noun style: bdesign_<domain>_<action>) and basic parameter schemas. All tools have descriptions, though many are terse (1-50 chars). Input schemas are present for most tools but parameter descriptions are minimal or missing. Output schemas are not documented. Error handling guidance is absent. This is a solid foundational implementation with room for enrichment to production grade.
Extract a frame from a project video asset
Get details of a specific asset
Import an asset from a local file path
List assets in a project
Apply a canvas operation/command to the project
Continue video generation from the last frame of the canvas
Get the current canvas state for a project
Most tool descriptions are terse (under 50 characters) and lack context for when/why to call the tool or what it returns. e.g., 'List available BeatDesign skills' lacks explanation of what a 'skill' is, when to call this vs bdesign_skill_get, and what fields are returned.
Parameter descriptions are missing for many parameters. For example, bdesign_project_list has 'limit' but no description of valid range, units, or default behavior. bdesign_project_target has 'projectId' with minimal guidance. LLMs cannot infer parameter meaning from names alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2025-06-18+ | v2 |
Search for clips or elements on the canvas
Get a semantic view of the canvas at a specific time
Get diagnostic information about the timeline
Apply an editor operation/command to the timeline
Get the timeline editor state for a project
Get edit history for the timeline
Import SRT subtitle file into the timeline
Render the timeline to a video asset
Get a semantic snapshot of the timeline at a specific time
Get a view of timeline elements at a specific time
Get generation history for a project
Get details of a specific generation model
List available generation models
Get the status of a generation task
Submit a generation task (image or video)
Create a new project
Get details of a specific project
List projects in the BeatDesign workspace
Open a project and return workspace handoff information
Set the targeted project for MCP operations
Get details of a specific BeatDesign skill
List available BeatDesign skills
No output schemas are documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., after calling bdesign_project_create, what fields does it return? Is there a projectId for chaining?). This forces LLMs to guess and wastes context on reasoning about response structure.
No error handling guidance provided. Tools return errors but offer no recovery suggestions (e.g., 'project not found, try bdesign_project_list to find valid IDs' or 'Asset format unsupported, accepted: png, jpg, mp4'). Agents cannot self-correct.
Ambiguous parameter naming in canvas/editor commands: bdesign_canvas_apply and bdesign_editor_edit both accept a generic 'command' object with no schema. LLMs cannot know what fields are valid (is it {type, data}? {action, args}?). This invites hallucinated command structures.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk categories (READ_ONLY, WRITE). This prevents clients from inferring safety properties and offering appropriate confirmations or guards.
Pagination not visible in list tools. bdesign_project_list, bdesign_asset_list, bdesign_generation_history have a 'limit' parameter but no offset/cursor or total_count in the response schema. Large result sets may exceed context limits without clear pagination support.