MCP server exposing renderly-core's command API and perception tools to AI agents
Renderly MCP has 12 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (new_project, open_project, apply_command, export). Descriptions are present but brief (avg ~60 chars, below the 194-char baseline). Parameters have types and descriptions, but lack constraints (enums, ranges, patterns). Output schemas are not documented, LLMs cannot predict return structure. Error handling is minimal; no recovery guidance. The apply_command tool accepts a generic 'object' type with no schema detail, forcing LLMs to guess at valid Command structure. No tool annotations (readOnlyHint, destructiveHint) despite clear read/write semantics. Security: new_project and export perform file I/O without visible path validation or sanitization checks.
Apply one renderly-core Command and save the project
Analyze audio peaks in a media item
Render the project to a video file
Return the current project JSON
Create a new empty .renderly.json project file and open it
Open an existing .renderly.json project file
Analyze the current frame for visual content
Probe a media file and return its metadata
apply_command accepts generic 'object' type with no schema detail. LLMs cannot infer valid Command structure; forces guessing at nested fields and types.
No output schemas documented for any tool. LLMs cannot predict return structure, field names, or types, breaks downstream tool chaining and forces exploratory calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools like export and new_project clearly modify state, but LLMs have no machine-readable signal to avoid unsafe retries.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Render a single frame at a specific time
Detect scene changes in a media item
Detect silence in a media item
Transcribe audio from a media item
Descriptions are too brief (avg ~50 chars vs 194-char baseline). Missing WHEN to use each tool and dependencies. E.g., 'Transcribe audio from a media item' does not explain when to call it vs perceive, or whether media_id must exist first.
No input validation or error recovery guidance. Tools like new_project and export accept file paths with no visible sanitization; no guidance on what happens if path is invalid, already exists, or lacks permissions.