Skip to main content
Glama

Descubrimiento público

mcp-video es un servidor MCP, una biblioteca de Python y una CLI para la edición de vídeo mediante agentes. Ayuda a los agentes de IA y a los scripts de automatización a inspeccionar, recortar, fusionar, subtitular, cambiar el tamaño, transcodificar, analizar y generar vídeo con FFmpeg y flujos de trabajo de creación basados en código.

Búsquedas más frecuentes: servidor MCP de edición de vídeo, edición de vídeo para agentes de IA, automatización con FFmpeg, herramientas de vídeo para Claude, vídeo MCP para Cursor, biblioteca de edición de vídeo en Python, canalización de medios para agentes, CLI de automatización de vídeo.

Related MCP server: video-editor

¿Qué es mcp-video?

Un servidor de edición de vídeo de código abierto construido sobre el Model Context Protocol (MCP). Ofrece a los agentes de IA, desarrolladores y creadores de vídeo la capacidad de editar y crear archivos de vídeo mediante programación.

Dos modos:

  1. Editar vídeo existente con FFmpeg: recortar, fusionar, superponer texto, añadir audio, aplicar filtros, estabilizar, detectar escenas, transcribir y más.

  2. Crear vídeo nuevo desde código con Hyperframes (nativo de HTML, Apache 2.0): crear composiciones, previsualizar en vivo, renderizar a MP4 y luego realizar postprocesamiento.

Tres interfaces:

Interfaz

Ideal para

Ejemplo

Servidor MCP

Agentes de IA (Claude Code, Cursor)

"Recorta este vídeo y añade un título"

Cliente Python

Scripts, automatización, canalizaciones

editor.trim("v.mp4", start="0:30", duration="15")

CLI

Scripts de shell, operaciones rápidas, humanos

mcp-video trim video.mp4 -s 0:30 -d 15


Instalación

Requisitos previos: FFmpeg debe estar instalado. Para las funciones de Hyperframes, también necesitas Node.js 22+.

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

Instalación:

pip install mcp-video
# or run without installing:
uvx mcp-video

Verifica tu configuración:

mcp-video doctor
mcp-video doctor --json

Inicio rápido

Como servidor MCP (para agentes de IA)

Claude Code:

claude mcp add mcp-video -- uvx mcp-video

Claude Desktop:

{
  "mcpServers": {
    "mcp-video": {
      "command": "uvx",
      "args": ["mcp-video"]
    }
  }
}

Cursor:

{
  "mcpServers": {
    "mcp-video": {
      "command": "uvx",
      "args": ["mcp-video"]
    }
  }
}

Luego simplemente pídele a tu agente: "Recorta este vídeo de 0:30 a 1:00, añade una tarjeta de título y cambia el tamaño para TikTok."

Como biblioteca de Python

from mcp_video import Client

editor = Client()

info = editor.info("interview.mp4")
clip = editor.trim("interview.mp4", start="00:02:15", duration="00:00:30")
video = editor.merge(clips=["intro.mp4", clip.output_path, "outro.mp4"])
video = editor.add_text(video.output_path, text="EPISODE 42", position="top-center", size=48)
result = editor.resize(video.output_path, aspect_ratio="9:16")

Flujo de trabajo en Python seguro para agentes

Para agentes autónomos, prefiere la inspección, el encadenamiento de canalizaciones y un punto de control de lanzamiento:

from mcp_video import Client

client = Client()
print(client.inspect("create_from_images"))  # Real params, aliases, return type

result = client.pipeline(
    [
        {"op": "create_from_images", "images": frames, "fps": 30},
        {"op": "effect_glow", "intensity": 0.2},  # safe capped default
        {"op": "add_audio", "audio_path": "soundtrack.wav", "mix": True},
        {"op": "export", "quality": "high"},
    ],
    output_path="final.mp4",
)

checkpoint = client.release_checkpoint(result.output_path)
print(checkpoint["thumbnail"], checkpoint["storyboard"])

Contrato del agente:

  • Las llamadas del cliente que producen medios devuelven EditResult con .output_path.

  • Las llamadas de análisis/descubrimiento devuelven informes tipados o diccionarios.

  • Client.inspect(name) expone parámetros, alias, categoría y tipo de retorno.

  • Los errores inesperados de palabras clave se convierten en orientación procesable de MCPVideoError.

  • No publiques vídeos generados por agentes sin assert_quality() o release_checkpoint() además de una inspección visual/auditiva humana.

Como herramienta CLI

mcp-video info video.mp4
mcp-video trim video.mp4 -s 00:02:15 -d 30
mcp-video convert video.mp4 -f webm -q high
mcp-video template tiktok video.mp4 --caption "Check this out!"

Herramientas MCP

87 herramientas MCP en 10 categorías, incluida la meta-herramienta search_tools para un descubrimiento rápido. Todas devuelven JSON estructurado. Consulta la referencia completa de herramientas para obtener todos los detalles.

Categoría

Cantidad

Destacados

Vídeo principal

32

recortar, fusionar, texto, audio, redimensionar, convertir, filtros, estabilizar, croma, subtítulos, marca de agua, lote, limpieza, vista previa de plantilla, exportar

Impulsado por IA

11

transcribir (Whisper), detección de escenas, separación de pistas (Demucs), escalado, gradación de color

Hyperframes

8

iniciar, renderizar, imagen fija, vista previa, composiciones, validar, añadir bloque, canalización

Síntesis de audio

7

generar formas de onda, preajustes, secuencias, efectos, audio espacial — NumPy puro

Efectos visuales

8

viñeta, aberración cromática, líneas de escaneo, ruido, brillo, clave de luminancia, máscara, máscara de forma

Transiciones

3

glitch, pixelar, morph

Diseño y movimiento

6

cuadrícula, pip, texto animado, contadores, barras de progreso, capítulos automáticos

Análisis

8

detección de escenas, miniatura, vista previa, guion gráfico, comparación de calidad, metadatos, forma de onda, punto de control de lanzamiento

Análisis de imagen

3

extracción de color, generación de paleta, análisis de producto

Meta

1

search_tools — búsqueda por palabras clave en todas las herramientas

Recursos

4

prompts, flujos de trabajo, plantillas, ejemplos

Descubrimiento de herramientas:

from mcp_video import Client
editor = Client()
results = editor.search_tools("subtitle")  # Find subtitle-related tools

Integración con Hyperframes

Crea vídeos mediante programación con Hyperframes, un marco nativo de HTML para vídeo.

1. Init project       -> hyperframes_init
2. Add blocks         -> hyperframes_add_block
3. Preview live       -> hyperframes_preview
4. Render             -> hyperframes_render
5. Post-process       -> hyperframes_to_mcpvideo

Consulta la documentación de Hyperframes y la referencia del cliente de Python.


Cliente Python

from mcp_video import Client
editor = Client()

Consulta la referencia completa del cliente de Python para todos los métodos y tipos de retorno.


Referencia de CLI

mcp-video [command] [options]

Consulta la referencia completa de CLI para todos los comandos y opciones.


DSL de línea de tiempo

Para ediciones complejas de múltiples pistas, describe todo en un único objeto JSON:

editor.edit({
    "width": 1080,
    "height": 1920,
    "tracks": [
        {
            "type": "video",
            "clips": [
                {"source": "intro.mp4", "start": 0, "duration": 5},
                {"source": "main.mp4", "start": 5, "trim_start": 10, "duration": 30},
                {"source": "outro.mp4", "start": 35, "duration": 10},
            ],
            "transitions": [
                {"after_clip": 0, "type": "fade", "duration": 1.0},
            ],
        },
        {
            "type": "audio",
            "clips": [
                {"source": "music.mp3", "start": 0, "volume": 0.7, "fade_in": 2},
            ],
        },
    ],
    "export": {"format": "mp4", "quality": "high"},
})

Plantillas

Plantillas preconstruidas para formatos comunes de redes sociales:

from mcp_video.templates import tiktok_template, youtube_shorts_template

timeline = tiktok_template(video_path="clip.mp4", caption="Check this out!", music_path="bgm.mp3")
result = editor.edit(timeline)

Compatible con: TikTok, YouTube Shorts, Instagram Reels/Posts, vídeos de YouTube.


Manejo de errores

Errores estructurados y procesables con sugerencias de corrección automática:

{
  "success": false,
  "error": {
    "type": "encoding_error",
    "code": "unsupported_codec",
    "message": "Codec error: vp9 — Auto-convert input from vp9 to H.264/AAC before editing",
    "suggested_action": {
      "auto_fix": true,
      "description": "Auto-convert input from vp9 to H.264/AAC before editing"
    }
  }
}

Flujos de trabajo

Canalizaciones por etapas al estilo ICM para producciones comunes, con contratos de etapa CONTEXT.md, configuración de fábrica references/ y scripts ejecutables workflow.py.

cd workflows/01-social-media-clip
python workflow.py /path/to/video.mp4

Flujo de trabajo

Etapas

Descripción

01-social-media-clip

5

Paisaje → TikTok / Short / Reel

02-podcast-clip

6

Destacado con capítulos + subtítulos incrustados

03-explainer-video

7

Vídeo explicativo de marca desde cero

04-hyperframes-video

5

Crear desde cero con Hyperframes, luego post-procesar

Consulta workflows/CONTEXT.md para la tabla de enrutamiento.

Arquitectura

mcp_video/
  client/                # Python Client API (mixins per domain)
  client/meta.py         # Client discovery mixin (search_tools)
  server.py              # MCP server (87 tools + 4 resources)
  server_tools_*.py      # Tool registration by category
  engine.py              # Core FFmpeg engine
  engine_*.py            # Specialized engines (thumbnail, edit, probe, etc.)
  models.py              # Pydantic models
  errors.py              # Error hierarchy + FFmpeg stderr parser
  ffmpeg_helpers.py      # Shared FFmpeg utilities
  audio_engine.py        # Procedural audio synthesis
  effects_engine.py      # Visual effects + motion graphics
  transitions_engine.py  # Clip transitions
  ai_engine.py           # AI features (Whisper, Demucs, Real-ESRGAN)
  hyperframes_engine.py  # Hyperframes CLI wrapper
  image_engine.py        # Image color analysis
  quality_guardrails.py  # Automated quality checks
workflows/               # ICM staged pipelines
  CONTEXT.md             # Layer 1 routing table
  01-social-media-clip/  # Stage contract + runnable script
  02-podcast-clip/       # Stage contract + runnable script
  03-explainer-video/    # Stage contract + runnable script

Formatos compatibles

Vídeo

Audio (extracción)

Subtítulos

MP4, WebM, MOV, GIF

MP3, AAC, WAV, OGG, FLAC

SRT, WebVTT


Descubrimiento de agentes


Desarrollo

git clone https://github.com/KyaniteLabs/mcp-video.git
cd mcp-video
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Comunidad y soporte

Pruebas

Las pruebas están excluidas del paquete PyPI. Para ejecutar localmente:

pip install -e ".[dev]"
pytest tests/ -v -m "not slow and not hyperframes"

Consulta docs/TESTING.md para conocer las categorías completas de pruebas y los detalles de CI.

Licencia

Apache 2.0 — consulta LICENSE.

Construido sobre FFmpeg, Hyperframes y el Model Context Protocol.

Consulta docs/LEGAL_REVIEW.md para notas sobre licencias de dependencias.

Available Tools

20 tools
hyperframes_doctorB

Run Hyperframes environment diagnostics.

NameRequiredDescriptionDefault
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral-disclosure burden. It does not say whether diagnostics are read-only, whether they may mutate state, what permissions are required, or what kind of checks are performed; only an output schema exists to cover return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero waste. It is appropriately sized for a simple diagnostic command.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and fully documented parameter reduce the need for return-value explanation. However, the absence of usage guidance and behavioral disclosure leaves gaps for an agent deciding when and how to invoke it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single optional overwrite parameter is fully documented in the schema. The description adds no parameter-level meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Run) and resource (Hyperframes environment diagnostics). It is clear what the tool does in general, but it does not distinguish itself from sibling tools like hyperframes_validate, hyperframes_inspect, or hyperframes_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusion conditions. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_toolsA

Find registered MCP tools by name, keyword, or a supported task phrase.

Returns JSON {success, query, count, tools:[{name, description, required_params}]}. Use to find the right tool for a task without reading every description. Pass query with a term such as blur, resize, subtitle, audio, or trim, or a task such as "remove filler words", "resume render", or "keep face in frame". Exact names rank first. Discovery describes contracts, not installed backend availability.

Args: query: Search term — e.g. "blur", "resize", "subtitle", "audio", "trim".

NameRequiredDescriptionDefault
queryYes
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the burden and does well: it gives the exact response shape, discloses ranking behavior ('Exact names rank first'), and warns that results describe contracts rather than installed backend availability — a real limitation an agent would otherwise misread. The unexplained 'overwrite' parameter is the one behavioral hole.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then return shape, then usage, then args — good ordering with no filler. Minor redundancy: the example terms 'blur, resize, subtitle, audio, trim' are listed in the body and then again in the Args block.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so explaining return fields is a bonus rather than a requirement, and the description still does it. For a 2-param discovery tool with no annotations, it covers what to pass and what comes back; only the 'overwrite' parameter and any result-count limits remain unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%; the description fully compensates for the undocumented 'query' by giving example terms and phrase forms, which is genuinely beyond the schema. However it never mentions 'overwrite', which is surprising for a search tool and is only described in the schema itself — an agent cannot tell from the description whether search can mutate anything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opening sentence states a specific verb and resource ('Find registered MCP tools') plus the three lookup modes (name, keyword, task phrase). Against ~190 siblings that are all concrete media operations, this is unmistakably the meta-discovery tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent when to reach for it ('to find the right tool for a task without reading every description') and supplies concrete query patterns, including task phrases like 'remove filler words' and 'resume render'. It does not state when NOT to use it (e.g. when the target tool name is already known), so not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_add_audioAdd or mix video audioA
Destructive

Add, replace, or mix an audio track into an existing video and render a new output file. Returns JSON {success, output_path}. Use to score or re-voice a video; source video and audio are read only. Pass video_path as the source video and audio_path as the audio file; set mix to combine or false to replace.

NameRequiredDescriptionDefault
mixNoTrue mixes the new audio with existing video audio; false replaces the original audio track.
volumeNoAudio gain from 0.0 to 2.0, where 1.0 preserves original loudness.
fade_inNoNon-negative fade-in duration in seconds applied to the inserted audio.
fade_outNoNon-negative fade-out duration in seconds applied near the inserted audio end.
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
audio_pathYesAbsolute path to an existing local audio file such as MP3, WAV, M4A, or AAC.
start_timeNoOptional start offset in seconds where the inserted audio begins.
video_pathYesAbsolute path to an existing local video file. The input file is read only.
output_pathNoDestination video path. Auto-generated when omitted; an existing supplied path may be overwritten.
duration_policyNoHow to reconcile audio and video length: keep_video (default, preserves the full video/outro), pad_audio, loop_audio, trim_audio, or shortest (may trim the outro).keep_video

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With destructiveHint=true and readOnlyHint=false already declared, the description adds real value by stating the source video and audio are read only and that a new file is rendered. It does not cover the overwrite permission or what happens to the existing output file, but the safety story is largely consistent and supplemented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with the action and output behavior, and every sentence carries information. The "Returns JSON {success, output_path}" clause is mildly redundant given an output schema exists, which keeps it off a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation with full schema coverage and an output schema, the description supplies the essential orientation: what is read, what is written, and the two key path parameters. The only notable omission is sibling disambiguation among the several audio-track tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all ten parameters are already documented, and the description's mapping of video_path/audio_path and mix to replace-vs-combine mostly restates the schema. Baseline 3 is appropriate; it adds no syntax, units, or edge cases beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb set (add, replace, mix) on a concrete resource (audio track in an existing video) and states that it renders a new output file, so the agent knows exactly what happens. It falls short of a 5 because it never distinguishes itself from a very close sibling, video_mix_audio, which an agent could easily confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use to score or re-voice a video" gives a genuine usage context and the mix flag adds a mode choice, so usage is implied clearly. But there are no exclusions and no routing to alternatives such as video_mix_audio, video_add_generated_audio, video_duck_audio, or video_audio_bed, which is a meaningful gap given how many audio-overlay siblings exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_add_textA

Overlay text on a video (titles, captions, watermarks). Returns JSON {success, output_path}. Use to burn a single text element into a video. Pass input_path as the source video, text with the string to draw, and position/size/color to style it; output_path is auto-named when omitted.

Args: input_path: Absolute path to the input video. text: Text to overlay. position: Position on screen. Named (top-left, top-center, etc.), pixel" " {"x": 100, "y": 50}, or percentage {"x_pct": 0.5, "y_pct": 0.5}. font: Path to font file. Uses system default if omitted. size: Font size in pixels. color: Text color (CSS color name or hex). shadow: Add text shadow for readability. start_time: When the text appears (seconds). Null = always visible. duration: How long text is visible (seconds). Requires start_time. output_path: Where to save the output. Auto-generated if omitted. crf: Override CRF value (0-51, lower = better quality). Default 23. preset: Override FFmpeg encoding preset (ultrafast, fast, medium, slow, veryslow).

NameRequiredDescriptionDefault
crfNo
fontNo
sizeNo
textYes
colorNowhite
presetNo
shadowNo
durationNo
positionNotop-center
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYes
start_timeNo
output_pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the return shape {success, output_path} and that output_path is auto-generated when omitted. It does not say whether the source video is modified, that the operation re-encodes (and is therefore lossy/quality-affecting), or what permissions/overwrite behavior apply beyond the crf/preset hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The prose lead is three tight, front-loaded sentences covering purpose, return value, and scoping. The long Args block is justified given near-zero schema description coverage, though it slightly duplicates the lead sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so restating the return JSON is minor redundancy; the description fills the real gaps with per-parameter semantics and auto-naming behavior. The remaining omission is behavioral: no disclosure that rendering re-encodes the video or how overwrite interacts with existing output files.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 8% across 13 parameters, so the description must compensate and largely does: it explains position's three syntaxes (named, pixel {x,y}, percentage {x_pct,y_pct}), that duration requires start_time, that start_time null means always visible, the CRF range and quality direction, and preset values. Only overwrite is left to the schema, which already documents it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (overlay text on video) with concrete examples (titles, captions, watermarks) and pins scope as 'a single text element', which implicitly distinguishes it from the sibling video_add_texts. It never names that sibling or other text-related tools explicitly, so differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to burn a single text element into a video' hints at when this tool applies versus multi-element alternatives, but no sibling (video_add_texts, video_subtitles, video_watermark, video_text_animated) is named and no when-not guidance or prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_add_textsA

Overlay multiple text elements on a video in a single FFmpeg pass.

Returns JSON {success, output_path}. Use when one video needs several captions at once. Pass input_path as the source video and texts as a list of overlay dicts (text plus optional position/size/color/timing).

Args: input_path: Absolute path to the input video. texts: List of text overlay dicts. Each dict may contain: - text (str, required) - position (str|dict, default "center") - font (str, optional) - size (int, default 48) - color (str, default "white") - shadow (bool, default True) - start_time (float, optional) - duration (float, optional) output_path: Where to save the output. Auto-generated if omitted. crf: Override CRF value (0-51, lower = better quality). Default 23. preset: Override FFmpeg encoding preset (ultrafast, fast, medium, slow, veryslow). auto_layout: Automatically distribute vertically stacked texts at the same named position. Default True.

NameRequiredDescriptionDefault
crfNo
textsYes
presetNo
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYes
auto_layoutNo
output_pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the single-pass FFmpeg behavior, the return shape {success, output_path}, auto-generated output path, and the auto_layout default that distributes stacked texts. It does not mention overwrite semantics or permissions, though overwrite is covered in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and return shape, then a well-organized Args block. The nested texts documentation is necessarily verbose but every line earns its place; minor redundancy in restating defaults already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 7 parameters and a nested texts list, the description covers all inputs, their defaults, sub-field structure, and the return format. An agent has everything needed to invoke it correctly; the output schema being present makes the return note a bonus rather than a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 14%, so the description must compensate, and it does: every parameter is documented with defaults (crf 0-51 lower=better default 23, preset enum values, auto_layout default True) and the texts dict sub-fields are fully enumerated with types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Overlay multiple text elements on a video in a single FFmpeg pass') and the plural/plural-batch scope distinguishes it from the singular sibling video_add_text. An agent can tell them apart without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use when one video needs several captions at once,' which implies the alternative (single-text tool) for other cases. It stops short of naming video_add_text as the fallback, but the routing condition is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_convertConvert video formatA
Destructive

Transcode a video into a different container or codec (mp4, webm, gif, mov, ...). Returns JSON {success, output_path}. Use for format conversion; prefer video_export for delivery presets. Pass input_path as the source video and format as the target container; long renders stream MCP progress.

NameRequiredDescriptionDefault
formatNoTarget output format: mp4, webm, gif, mov, hevc, av1, or prores.mp4
qualityNoEncoding quality preset: low, medium, high, or ultra.high
two_passNo
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYesAbsolute path to an existing local video file. The input file is read only.
output_pathNoDestination video path. Auto-generated when omitted; an existing supplied path may be overwritten.
target_bitrateNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, readOnlyHint=false and non-idempotent, and the schema's overwrite parameter documents the media-protection rule. The description adds one genuinely new behavioral fact — long renders stream MCP progress — but says nothing about the destruction/overwrite risk itself, so it is modest value on top of structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose before the routing rule and parameter notes. The 'Returns JSON {success, output_path}' sentence is wasted space because an output schema already exists, but overall there is little filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers purpose, the key alternative, the required parameter, and progress streaming. Gaps remain around quality/two_pass/bitrate selection and overwrite behavior, though annotations and schema partially backfill the latter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71%, so the baseline is 3. The description restates input_path and format, which the schema already documents, and is silent on quality, two_pass, target_bitrate, and overwrite — the parameters most likely to be misused for a transcode.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (transcode) and resource (video into a different container or codec) with example formats. It also explicitly distinguishes itself from the sibling video_export, so an agent can choose between them without reading either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use for format conversion; prefer video_export for delivery presets" gives an explicit alternative and the condition that selects it. It does not address adjacent siblings such as video_resize, video_hls_segment, or video_export_frames, so routing is clear only against the one named competitor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_doctorB

Return a read-only JSON readiness verdict for the next video job.

NameRequiredDescriptionDefault
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It does say the call is read-only and returns JSON, but it never says what the verdict consists of, whether it blocks or just reports, or — critically — why a supposedly read-only check exposes an 'overwrite' option that allows replacing existing media. That internal tension is left unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. Nothing is padded or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers the return shape, so the description needn't detail the verdict fields. However, for a doctor/preflight tool with no annotations, it should say what is being checked and clarify the read-only claim against the destructive-sounding overwrite parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter and schema description coverage is 100%, so the schema already explains 'overwrite' in detail. Baseline 3 applies; the description adds nothing about the parameter and does not resolve why a read-only verdict takes an overwrite flag.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource: return a readiness verdict (preflight check) for the next video job. That distinguishes it from siblings like video_trim or video_convert, though it does not explicitly contrast with the nearest peers (video_quality_check, hyperframes_doctor, video_rescue_inspect).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Readiness verdict for the next video job' implies a preflight/doctor step, but there is no statement of when to call this versus video_quality_check, hyperframes_doctor, or video_rescue_inspect, and no prerequisites or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_extract_frameA

Extract a frame using the same sampling as CLI and Python frame extraction.

Omitted timestamps use smart thumbnail selection when available, falling back to 10% of the clip duration. Pass 0 explicitly to extract the first frame.

Args: input_path: Absolute path to the video. timestamp: Explicit time in seconds, or None for automatic sampling. output_path: Where to save the frame. Auto-generated if omitted.

NameRequiredDescriptionDefault
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
timestampNo
input_pathYes
output_pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose non-obvious behavior: automatic output path generation and the fallback sampling strategy. It omits, however, whether the call writes a new file into the workspace, how existing files at output_path are treated (the schema's overwrite flag hints at collision protection but is never explained), and what errors occur on invalid timestamps or missing files.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, followed by the sampling rules, then a compact Args block – efficient and scannable. The opening clause about matching "CLI and Python frame extraction" adds little for an MCP agent and could be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and the sampling logic is covered. But with zero annotations on a tool that produces a file, the agent is left to infer side effects, overwrite protection, and failure modes; that is a meaningful gap for a write-producing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, so the description must compensate, and it largely does: it explains input_path must be absolute, timestamp semantics including the None and 0 cases, and that output_path is auto-generated when omitted. The overwrite parameter is not addressed in the description, but the schema itself documents it well, so the only gap is redundancy rather than omission.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Extract a frame") and clarifies the sampling behavior, so the agent knows exactly what it produces. It does not distinguish itself from plausible siblings like video_thumbnail, video_export_frames, or video_seek_frame, and the reference to "CLI and Python frame extraction" points outside the tool catalog rather than at an alternative MCP tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful parameter-level usage rules (omit timestamp for smart selection with a 10% fallback; pass 0 explicitly for the first frame), which is more than nothing. But it never says when to choose this over video_thumbnail or video_export_frames, nor any preconditions such as path validity or video format support, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_infoA

Probe a video file for metadata. Returns JSON {success, info:{duration, resolution, codec, fps, size, ...}}. Use before any edit to learn the source's dimensions and length. Pass input_path as the absolute path to the existing video. Set exact=true to also get the decoded frame_count and the raw r_frame_rate/avg_frame_rate strings (slower: the whole video stream is decoded).

Args: input_path: Absolute path to the video file. exact: Also report frame_count (decoded), frame_count_source, r_frame_rate and avg_frame_rate (raw ffprobe strings, null when not measurable).

NameRequiredDescriptionDefault
exactNo
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden and does well: it discloses cost (exact=true decodes the whole stream, so it is slower), what extra fields result, and that raw rate strings may be null. It never states this is a read-only/no-side-effect operation explicitly, nor mentions the overwrite parameter present in the schema, leaving a small gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then return shape, then the when-to-use hint, then parameter detail — a logical order with no filler. The Args block partially duplicates the prose but earns its place by adding semantics the prose only implies.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the description still usefully previews the returned fields; the performance tradeoff of exact is covered. What remains unaddressed is error/edge behavior (non-video or missing files, overwrite interaction) and differentiation from the other inspection siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, but the description compensates by explaining both key parameters: input_path must be an absolute path to an existing file, and exact triggers a full decode returning frame_count, frame_count_source and raw ffprobe rate strings. The third parameter (overwrite) is omitted from the Args block, so coverage is high but not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Probe a video file for metadata") and immediately describes the return shape, so an agent can distinguish it from siblings like video_doctor or video_quality_check which analyze content rather than report container/stream metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use before any edit to learn the source's dimensions and length" gives a clear triggering condition for a typical workflow. It does not name an alternative tool or state when not to use it (e.g. versus video_doctor or video_rescue_inspect), so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_mergeMerge video clipsA
Destructive

Concatenate two or more existing video clips into one rendered output file. Returns JSON {success, output_path}. Use to join ordered clips into a single video. Pass clips as an ordered list of absolute paths (at least two); output is auto-named or written to output_path.

NameRequiredDescriptionDefault
clipsYesOrdered absolute paths to existing video clips. Provide at least two clips; inputs are validated and never modified.
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
transitionNoOptional xfade transition applied to every clip boundary, such as fade, dissolve, wipeleft, wiperight, slideleft, or slideright.
output_pathNoDestination video path. Auto-generated when omitted; an existing supplied path may be overwritten.
transitionsNoOptional per-boundary xfade transitions. Overrides transition when provided.
transition_durationNoDuration in seconds for each transition; must fit inside neighboring clips.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and non-idempotent, so the safety bar is lower; the description still adds real context: output is auto-named or written to output_path, and concatenation produces a 'rendered output file' rather than metadata. It does not state re-run cost, processing time, or re-encoding behavior, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and followed by usage and parameter constraints; nothing is padded. The 'Returns JSON {success, output_path}' sentence is slightly redundant given the tool has an output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter mutation tool with full schema coverage and an output schema, the description covers action, ordering constraint, minimum input count, and output destination handling. Remaining gaps (failure modes on incompatible clips, transition-duration constraints) are documented in the schema, though failure behavior is nowhere stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces the two most important semantics an agent could miss — clips must be an ordered list of absolute paths and at least two are required — but adds nothing about transition, transitions, or overwrite beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Concatenate two or more existing video clips into one rendered output file') and restates the join intent in a second sentence. It is immediately distinguishable from analysis siblings (video_info) and image-sourced siblings, though it never explicitly names a nearest alternative such as video_composite_layers or video_create_from_images.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use to join ordered clips into a single video' implies the use case, and the ordered-list requirement adds practical setup context. There is no when-not-to-use guidance, no mention of alternatives, and no prerequisites (codec/resolution compatibility of inputs is unaddressed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_project_createB

Scaffold a cinematic video project with style, storyboard, and refs folders.

Args: slug: Project slug using lowercase letters, numbers, hyphens, or underscores. output_dir: Base directory for the projects/ folder. Defaults to the current working directory.

NameRequiredDescriptionDefault
slugYes
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
output_dirNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the folder structure and output_dir default, but does not explain overwrite behavior, what happens if the project already exists, permissions needed, or other mutation safety details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: the purpose appears in the first sentence, followed by only the argument details that add value beyond the schema. No sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter scaffold tool with an output schema, the description covers the core creation behavior and two of the three parameters. The remaining overwrite behavior is documented in the schema, so the definition is largely complete, though the lack of annotations means safety context is thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33%, but the description compensates well for two of the three parameters: it specifies the slug format (lowercase letters, numbers, hyphens, underscores) and explains output_dir as the base directory defaulting to the current working directory. The overwrite parameter is documented in the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Scaffold a cinematic video project' and names the folders it creates (style, storyboard, refs). It is clear what the tool does, but it does not distinguish itself from siblings such as video_init_project or hyperframes_init.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Scaffold' implies project initialization, but the description gives no explicit when-to-use guidance, prerequisites, or alternative tools. An agent must infer that this is for starting a new project rather than any sibling create/init tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_quality_checkB

Run visual quality checks on a video.

Analyzes brightness, contrast, saturation, audio levels, and color balance. Returns quality scores and recommendations.

Args: input_path: Absolute path to video file fail_on_warning: If True, treat warnings as failures

NameRequiredDescriptionDefault
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYes
fail_on_warningNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden; it does disclose the analysis dimensions and that results come back as scores plus recommendations, and explains that warnings can be escalated to failures. It does not state that the operation is read-only/non-destructive, whether it writes artifacts, or how long/costly the analysis is — meaningful gaps for a media-processing tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and scope, then a compact Args block; every line carries information. Slight redundancy between 'Returns quality scores and recommendations' and the presence of an output schema, but nothing wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need little explanation, and the analysis dimensions are covered. Missing: whether the call is safe/non-mutating, what happens to existing files, and why `overwrite` is a parameter at all on a 'check' tool — an agent could be surprised by write behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, so the description must compensate. It does document input_path (absolute path) and fail_on_warning (treat warnings as failures) with meaning beyond the schema, but leaves the safety-relevant `overwrite` flag entirely unexplained even though it governs whether existing media is replaced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run visual quality checks on a video') and enumerates the analyzed dimensions — brightness, contrast, saturation, audio levels, color balance — which helps distinguish it from abstract QC siblings. However, it never names or contrasts with the many closely-named siblings (video_design_quality_check, video_metric_qc, video_qc_vision, video_qc_narrative, video_compare_quality), so an agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives, despite an unusually crowded QC family in the sibling list. No prerequisites, no exclusions, no mention of which check suits which stage of a pipeline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_rescue_inspectC

Inspect a rescue plan or receipt and re-check artifact integrity.

NameRequiredDescriptionDefault
receiptYes
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden, but it does not disclose whether inspection is read-only, whether it can mutate artifacts, or what happens when integrity checks fail. The presence of an overwrite parameter in the schema suggests possible mutation, yet the description does not address that risk or any permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. The action and target are immediately clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although an output schema exists, the description is too sparse for a rescue-inspection tool that accepts an overwrite option and has no annotations. It omits mutation risk, prerequisites, and the relationship to the plan/render steps, leaving important context for safe invocation unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: the overwrite parameter is documented in the schema, while the required receipt parameter is not described. The description partially clarifies that the receipt relates to a rescue plan or receipt, but it does not explain the expected format or how the receipt identifies the plan.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a clear verb and resource: inspect a rescue plan or receipt and re-check artifact integrity. It distinguishes the tool from video_rescue_plan and video_rescue_render by framing it as an inspection step, though it does not explicitly name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as video_rescue_plan, video_rescue_render, or other inspection tools. The phrase 're-check artifact integrity' only weakly implies post-plan or post-render verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_resizeA

Resize a video or change its aspect ratio. Returns JSON {success, output_path}. Use to fit a video to target dimensions or a preset ratio. Pass input_path as the source video (e.g. from video_info) and either width/height or aspect_ratio to define the target.

Args: input_path: Absolute path to the input video. width: Target width in pixels. Use with height. height: Target height in pixels. Use with width. aspect_ratio: Preset aspect ratio (16:9, 9:16, 1:1, 4:3, 4:5, 21:9). Overrides width/height. quality: Quality preset (low, medium, high, ultra). output_path: Where to save the output. Auto-generated if omitted.

NameRequiredDescriptionDefault
widthNo
heightNo
qualityNohigh
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYes
output_pathNo
aspect_ratioNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose two real behavioral facts: aspect_ratio overrides width/height, and output_path is auto-generated when omitted. It does not cover re-encoding/lossiness, overwrite behavior (which the schema documents but the description omits), or what error occurs if neither width/height nor aspect_ratio is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded summary followed by a compact per-argument list; no filler sentences. Mild redundancy between 'Resize a video or change its aspect ratio' and the following 'Use to fit a video to target dimensions or a preset ratio' keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the brief return-value note is sufficient. But the combination rule between width/height and aspect_ratio is only half-stated ('Use with height'), and the overwrite safety flag present in the schema is never referenced in the description, leaving gaps for a 7-parameter mutation tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 14%, but the description compensates well: it enumerates the accepted aspect_ratio values (16:9, 9:16, 1:1, 4:3, 4:5, 21:9) and quality presets (low, medium, high, ultra), neither of which appears as an enum in the schema. Only the overwrite parameter is left to the schema's own description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Resize a video or change its aspect ratio') and names the two modes of operation (target dimensions or preset ratio). It does not, however, distinguish itself from adjacent siblings like video_crop, video_rotate, or video_convert, so an agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers implied usage ('Use to fit a video to target dimensions or a preset ratio') and one useful upstream hint ('input_path ... e.g. from video_info'), but never says when to prefer crop or convert instead, nor what happens when no dimension argument is supplied. Usage is inferable but not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_review_packageC

Assemble a review package and publish-gate verdict for a candidate artifact.

NameRequiredDescriptionDefault
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
project_dirYes
blocking_findingsNo
candidate_artifactYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it does not state that the tool likely writes files, what a review package contains, whether publishing is blocked or merely reported, or what permissions are needed. The schema's overwrite parameter hints at replacing existing media, but the description never warns about destructive behavior or file-protection rules.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is front-loaded and free of filler. It is concise, though its brevity contributes to the larger completeness problem rather than being a virtue by itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has four parameters, no annotations, and only 25% schema coverage, so the description needed to carry substantial context. It does not explain what the package includes, what the verdict means, or how blocking_findings changes behavior. The existence of an output schema excuses it from describing return values, but not from the rest.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, and the description adds no parameter-level meaning at all. Only overwrite is documented in the schema; project_dir and candidate_artifact are left to inference from their names, while blocking_findings is entirely unexplained despite likely affecting the publish-gate verdict.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb (assemble) and two outputs (review package and publish-gate verdict), giving a rough sense of the tool's job. However, "review package" and "publish-gate verdict" are undefined jargon, and it never distinguishes this tool from the many review/publish siblings such as video_publish_gate, video_review_run, video_review_decide, video_verdict, and video_acceptance_eval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. An agent seeing video_review_package next to video_review_run, video_publish_gate, and video_review_decision has no textual basis for choosing among them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_shortsC

Trim, caption, make vertical, and export selected segments in one call.

NameRequiredDescriptionDefault
styleNo
segmentsYes
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYes
output_pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure and comes up short. It doesn't say that this writes/export media files, whether outputs overwrite by default, or what permissions/paths are required; 'export' hints at file creation but nothing about side effects is stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the sequence of operations is easy to scan. It is arguably too terse for a 5-parameter composite tool, but there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, but for a complex 5-parameter tool with nested segment structures and zero annotations, the description leaves too much open: segment format, style semantics, output location, and overwrite behavior are all unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20% (just the overwrite flag), so the description needs to compensate but doesn't. It never explains what 'style' controls, the expected shape of a 'segments' entry, or how output_path is used, leaving 4 of 5 parameters semantically undocumented across both description and schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names four concrete operations (trim, caption, make vertical, export) on a specific resource (selected segments), which tells an agent exactly what capability this composes. The phrase 'in one call' implicitly distinguishes it from the single-purpose siblings like video_trim, video_add_text, and video_resize, though it doesn't name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'in one call' hints that this is the combined/batch alternative to chaining individual tools, which is useful routing context. However, it never states when to prefer this over the sibling tools or when not to use it, leaving the agent to infer the tradeoff between one-shot composition and granular control.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_speedChange video speedA
Destructive

Render a new video with playback speed changed; the source video is left unchanged. Returns JSON {success, output_path}. Use for slow-motion or fast-forward effects. Pass input_path as the source video and factor as the multiplier (below 1.0 slows, above 1.0 speeds up).

NameRequiredDescriptionDefault
factorNoPlayback speed multiplier. 2.0 is double speed, 0.5 is half speed, and 1.0 is unchanged.
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYesAbsolute path to an existing local video file. The input file is read only.
output_pathNoDestination video path. Auto-generated when omitted; an existing supplied path may be overwritten.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=false, and openWorldHint=false. The description adds useful behavioral context beyond that: it creates a new output file, leaves the source video unchanged, and returns JSON with success/output_path, though it does not discuss overwrite behavior or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the core action and result, and every sentence contributes useful information. The return format is mentioned briefly without bloating the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich input schema, existing output schema, and annotations covering safety and mutation profile, the description is complete enough. It supplies the key mental model: a new video is rendered, the source is untouched, and the factor controls slowdown or speedup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the factor parameter already documents 2.0 as double speed, 0.5 as half speed, and 1.0 as unchanged. The description restates input_path as the source and clarifies above/below 1.0 behavior, but adds little meaning beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: rendering a new video with changed playback speed, while explicitly noting the source video is unchanged. It also frames the intended effect as slow-motion or fast-forward, but does not explicitly distinguish itself from siblings such as video_reverse or video_convert.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context by saying to use it for slow-motion or fast-forward effects. However, it does not name alternatives or state when not to use this tool, so routing versus other video-edit siblings is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_trimA

Trim a video clip by start time and duration. Returns JSON {success, output_path} pointing at the rendered clip. Use to cut a segment out of a longer video. Pass input_path as the absolute path to the source video (e.g. from video_info), start as a timestamp, and duration or end to define the segment.

Args: input_path: Absolute path to the input video. start: Start timestamp (e.g. '00:02:15') or numeric seconds (e.g. 10.5). duration: Duration to keep (e.g. '00:00:30' or '30'). Exclusive with end. end: End timestamp. Exclusive with duration. output_path: Where to save the trimmed video. Auto-generated if omitted. accurate: Frame-accurate seeking (slower). Default False uses fast input seeking which may land on the nearest keyframe.

NameRequiredDescriptionDefault
endNo
startNo0
accurateNo
durationNo
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
input_pathYes
output_pathNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations the description carries the full burden, and it delivers real behavioral detail: the return shape {success, output_path}, auto-generated output paths, and the important caveat that accurate=False uses fast input seeking and 'may land on the nearest keyframe'. It omits overwrite/error behavior, but the overwrite parameter is at least documented in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and return value are front-loaded in the first two sentences, followed by practical guidance, with the Args block last. The Args block repeats some parameter names already visible in the schema, adding modest redundancy but earning its place through format examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with 14% schema coverage, the description fills nearly all the semantic gaps an agent needs: timestamp formats, exclusivity, output path defaults, and the accuracy/speed tradeoff. Output schema exists so return-value detail is not strictly required, and the overwrite guard is covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 14%, so the description must compensate, and it largely does: it documents input_path (absolute path), start (timestamp or numeric seconds), duration, end, output_path (auto-generated if omitted), and accurate (slower, keyframe caveat). Only overwrite is left to the schema, which does describe it adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Trim a video clip') plus the scope of the result ('cut a segment out of a longer video'), which is enough to place it apart from merge, split_screen, or crop siblings. It does not name any specific sibling it competes with (e.g. video_edit, video_export_frames), so it stops short of the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear operating context ('Use to cut a segment out of a longer video') and a prerequisite chain by pointing at video_info for the input path. It also flags the duration-vs-end mutual exclusivity, which prevents a common wrong call. No explicit when-not-use guidance or named alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_validate_text_layoutA

Validate a set of text overlays for visual failure modes before rendering.

Checks for: text overlap, low contrast, unsafe positioning, excessive sequential overlays, and missing shadows.

Args: overlays: List of overlay specs with keys: text, position, size, color, shadow (optional), start_time (optional), duration (optional). video_width: Video width in pixels. video_height: Video height in pixels. background_color: Background hex color for contrast checking.

Returns: dict with warnings list and clean boolean.

NameRequiredDescriptionDefault
overlaysYes
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
video_widthNo
video_heightNo
background_colorNo#000000

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden; it does disclose the checks performed and that output is a warnings list plus a clean boolean. It never says whether the tool is purely analytical or may write files, which matters because the schema exposes an `overwrite` parameter described as "allow replacing existing media" — an agent cannot tell whether this tool mutates anything. Warning severity levels are also undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and check list, then structured Args/Returns sections — each line carries information. The Args block slightly over-indents across lines and the Returns line is redundant given the output schema, costing a little economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a validation tool with a loose schema, the overlay contract is well covered and the output shape need not be restated since an output schema exists. Gaps remain: the `overwrite` parameter's purpose, whether any side effects occur, and how warnings are ordered or prioritized relative to the `clean` flag.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20%, but the description compensates strongly by enumerating the overlay spec keys (text, position, size, color, shadow, start_time, duration), which the schema leaves as an untyped `additionalProperties: true` object, and by explaining what video_width/height and background_color are used for. It omits the `overwrite` parameter entirely, leaving one of five parameters unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Validate a set of text overlays") and enumerates exactly what is checked: overlap, contrast, safe positioning, overlay density, missing shadows. It is clearly distinguishable from sibling mutators like video_add_text or video_add_texts, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "before rendering" gives a clear workflow slot for when to call it. It does not, however, state exclusions or point at the alternative (e.g., call video_add_text to apply overlays after validation passes, or video_preflight/quality_check for whole-video checks), so routing is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

video_workflow_inspectA

Summarize any receipt this project emits, with a read-only integrity check.

Reads a workflow render receipt, a dry-run workflow_plan artifact, or a layer_plan receipt (v1 legacy with NO receipt_kind field, or v2) at receipt_path and returns a NORMALIZED inspection: the kind (inferred from the tool field when receipt_kind is absent, per legacy tolerance), schema_version, tool, versions, a status summary (per-step statuses, failed step + error if any), a hash presence/integrity report (which recorded source/output hashes still match the bytes on disk NOW — a read-only re-check), outputs, warnings, cleanup state, plus human-review pointers and known limitations.

Nothing is rendered or modified. A malformed/unreadable receipt fails closed with invalid_workflow_receipt.

Args: receipt_path: Absolute path to the receipt JSON file to inspect. compare_path: Optional second receipt; when set, also return a diff (N3).

NameRequiredDescriptionDefault
overwriteNoExplicitly allow replacing existing media. Existing non-media files are protected.
compare_pathNo
receipt_pathYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so: it declares the operation strictly read-only ('Nothing is rendered or modified'), specifies the fail-closed error surface (invalid_workflow_receipt on malformed/unreadable input), and explains that hash verification is a live re-check of recorded hashes against bytes currently on disk. It also discloses the legacy kind-inference behavior and the shape of the returned normalized report.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads a one-line summary, then a detail paragraph, then an Args block — a sensible order. It is verbose in places (reST backticks, the unexplained '(N3)' tag) but nearly every clause conveys a real behavioral fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is optional, yet the description valuably previews the normalized report fields (kind, schema_version, per-step statuses, hash integrity, warnings, cleanup state). What's missing is any statement about the orphaned overwrite parameter and any routing to the alternative validate/rescue-inspect tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 33%; receipt_path and compare_path have no schema descriptions, and the description compensates well for those two (absolute path to the receipt JSON; optional second receipt producing a diff). However, the third parameter, overwrite, is never mentioned in the description, and its 'allow replacing existing media' semantics sit oddly on a tool declared read-only, leaving an unresolved ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — read and summarize a workflow render receipt / dry-run workflow_plan artifact / layer_plan receipt — and enumerates the accepted receipt variants (v1 legacy lacking receipt_kind, v2). It also states what it does not do ('Nothing is rendered or modified'), implicitly separating it from the render/plan siblings. It never names a specific sibling (e.g. video_workflow_validate or video_rescue_inspect) to disambiguate, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for use: point it at a receipt_path to get a normalized inspection, optionally with compare_path for a diff (N3). It explains the legacy tolerance (kind inferred from the tool field when receipt_kind is absent), which tells the agent this is safe on older artifacts. It does not say when to prefer video_workflow_validate, hyperframes_inspect, or video_rescue_inspect instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 188 tool updatesv1.16.5
    • Removedaudio_compose
    • Removedaudio_effects
    • Removedaudio_preset
    • Removedaudio_sequence
    • Removedaudio_synthesize
    • Removedeffect_chromatic_aberration
    • Removedeffect_glow
    • Removedeffect_noise
    • Removedeffect_scanlines
    • Removedeffect_vignette
    • Removedglitch_cmyk_split
    • Removedglitch_datamoshing
    • Removedglitch_depth_splatting
    • Removedglitch_digital_feedback
    • Removedglitch_macroblocking
    • Removedglitch_point_cloud
    • Removedglitch_rgb_shift
    • Removedglitch_scanline_jitter
    • Removedglitch_screen_tearing
    • Removedglitch_slit_scan
    • Removedglitch_turbulent_displacement
    • Removedglitch_vhs_tracking
    • Removedhyperframes_add_block
    • Removedhyperframes_benchmark
    • Removedhyperframes_capture
    • Removedhyperframes_catalog
    • Removedhyperframes_compositions
    • Removedhyperframes_info
    • Removedhyperframes_init
    • Removedhyperframes_inspect
    • Removedhyperframes_preview
    • Removedhyperframes_remove_background
    • Removedhyperframes_render
    • Removedhyperframes_snapshot
    • Removedhyperframes_still
    • Removedhyperframes_to_mcpvideo
    • Removedhyperframes_transcribe
    • Removedhyperframes_tts
    • Removedhyperframes_validate
    • Removedimage_analyze_product
    • Removedimage_edit
    • Removedimage_extract_colors
    • Removedimage_generate_palette
    • Removedrevideo_install
    • Removedrevideo_materialize
    • Removedrevideo_render
    • Removedrevideo_render_job
    • Removedshorts_package
    • Removedshorts_plan_show
    • Removedshorts_render
    • Removedshorts_review
    • Removedshot_prompt_render
    • Removedsound_capabilities
    • Removedsound_master_render
    • Removedsound_mix_render
    • Removedsound_plan_validate
    • Removedsound_qa_asr
    • Removedsound_qa_loudness
    • Removedsound_voice_batch
    • Removedstill_gate
    • Removedstill_grade
    • Removedstill_match
    • Removedstill_package
    • Removedstoryboard_read
    • Removedstyle_pack_read
    • Removedtransition_glitch
    • Removedtransition_morph
    • Removedtransition_pixelate
    • Removedvideo_acceptance_eval
    • Removedvideo_add_generated_audio
    • Removedvideo_ai_color_grade
    • Removedvideo_ai_remove_silence
    • Removedvideo_ai_scene_detect
    • Removedvideo_ai_stem_separation
    • Removedvideo_ai_transcribe
    • Removedvideo_ai_upscale
    • Removedvideo_analyze
    • Removedvideo_apply_mask
    • Removedvideo_audio_bed
    • Removedvideo_audio_spatial
    • Removedvideo_audio_waveform
    • Removedvideo_audiogram_plan
    • Removedvideo_auto_chapters
    • Removedvideo_batch
    • Removedvideo_benchmark_run
    • Removedvideo_body_swap
    • Removedvideo_brand_kit
    • Removedvideo_capabilities
    • Removedvideo_chroma_key
    • Removedvideo_cleanup
    • Removedvideo_compare_quality
    • Removedvideo_composite_layers
    • Removedvideo_composition_plan
    • Removedvideo_cost_ledger
    • Removedvideo_create_from_images
    • Removedvideo_creative_autopilot_plan
    • Removedvideo_crop
    • Removedvideo_cutfile_render
    • Removedvideo_cutfile_validate
    • Removedvideo_design_quality_check
    • Removedvideo_detect_scenes
    • Addedvideo_doctor
    • Removedvideo_dub_plan
    • Removedvideo_duck_audio
    • Removedvideo_edit
    • Removedvideo_edit_session
    • Removedvideo_estimate_operation
    • Removedvideo_export
    • Removedvideo_export_frames
    • Removedvideo_extract_audio
    • Removedvideo_fade
    • Removedvideo_filter
    • Removedvideo_find_moments
    • Removedvideo_fix_design_issues
    • Removedvideo_generate_subtitles
    • Removedvideo_generative_plan
    • Removedvideo_hls_segment
    • Removedvideo_hook_candidates
    • Changedvideo_info1 field changed
      • addedInput schema / properties / exact
        Added value: +{
        +  "default": false,
        +  "title": "Exact",
        +  "type": "boolean"
        +}
    • Removedvideo_info_detailed
    • Removedvideo_ingest
    • Removedvideo_init_project
    • Removedvideo_inspect_temporal
    • Removedvideo_intent
    • Removedvideo_language_coverage
    • Removedvideo_layout_grid
    • Removedvideo_layout_pip
    • Removedvideo_learning_report
    • Removedvideo_luma_key
    • Removedvideo_metric_qc
    • Removedvideo_mix_audio
    • Removedvideo_mograph_count
    • Removedvideo_mograph_progress
    • Removedvideo_normalize_audio
    • Removedvideo_otio_export
    • Removedvideo_otio_import
    • Removedvideo_overlay
    • Removedvideo_preflight
    • Removedvideo_preview
    • Removedvideo_project_recipe_export
    • Removedvideo_project_recipe_replay
    • Removedvideo_propose_broll
    • Removedvideo_propose_mutations
    • Removedvideo_publish_gate
    • Removedvideo_publish_validate
    • Removedvideo_punch_zoom_plan
    • Removedvideo_qc_narrative
    • Removedvideo_qc_vision
    • Removedvideo_read_metadata
    • Removedvideo_recipe_capture
    • Removedvideo_record_motion_acceptance
    • Removedvideo_release_checkpoint
    • Removedvideo_remote_egress_plan
    • Removedvideo_repurpose
    • Removedvideo_repurpose_plan
    • Removedvideo_rescue_plan
    • Removedvideo_rescue_render
    • Removedvideo_restoration_plan
    • Removedvideo_reverse
    • Removedvideo_review_decide
    • Removedvideo_review_decision
    • Removedvideo_review_run
    • Removedvideo_review_ui
    • Removedvideo_rotate
    • Removedvideo_salvage
    • Removedvideo_seek_frame
    • Removedvideo_semantic_query
    • Removedvideo_semantic_timeline
    • Removedvideo_shape_mask
    • Addedvideo_shorts
    • Removedvideo_split_screen
    • Removedvideo_stabilize
    • Removedvideo_storyboard
    • Removedvideo_subtitles
    • Removedvideo_subtitles_styled
    • Removedvideo_template_preview
    • Removedvideo_text_animated
    • Removedvideo_thumbnail
    • Removedvideo_timeline_edit_plan
    • Removedvideo_timeline_ir_validate
    • Removedvideo_translate_captions
    • Removedvideo_verdict
    • Removedvideo_visual_transform_plan
    • Removedvideo_watermark
    • Removedvideo_workflow_plan
    • Removedvideo_workflow_render
    • Removedvideo_workflow_validate
    • Removedvideo_write_metadata
  2. 203 tool updatesv1.16.4
    • Changedaudio_compose1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedaudio_effects1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedaudio_preset1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedaudio_sequence1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedaudio_synthesize1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedeffect_chromatic_aberration1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedeffect_glow1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedeffect_noise1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedeffect_scanlines1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedeffect_vignette1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_cmyk_split1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_datamoshing1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_depth_splatting1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_digital_feedback1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_macroblocking1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_point_cloud1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_rgb_shift1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_scanline_jitter1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_screen_tearing1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_slit_scan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_turbulent_displacement1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedglitch_vhs_tracking1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_add_block1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_benchmark1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_capture1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_catalog1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_compositions1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_doctor1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_info1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_init1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_inspect1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_preview1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_remove_background1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_snapshot1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_still1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_to_mcpvideo1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_transcribe1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_tts1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedhyperframes_validate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedimage_analyze_product1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedimage_edit1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedimage_extract_colors1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedimage_generate_palette1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedrevideo_install1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedrevideo_materialize1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedrevideo_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedrevideo_render_job1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsearch_tools1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedshorts_package1 field changed
      • addedInput schema / properties / overwrite / description
        Added value: +"Explicitly allow replacing existing media. Existing non-media files are protected."
    • Changedshorts_plan_show1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedshorts_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedshorts_review1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedshot_prompt_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsound_capabilities1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsound_master_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsound_mix_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsound_plan_validate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsound_qa_asr1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsound_qa_loudness1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedsound_voice_batch1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedstill_gate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedstill_grade1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedstill_match1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedstill_package1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedstoryboard_read1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedstyle_pack_read1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedtransition_glitch1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedtransition_morph1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedtransition_pixelate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_acceptance_eval1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_add_audio1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_add_generated_audio1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_add_text1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_add_texts1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_ai_color_grade1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_ai_remove_silence1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_ai_scene_detect1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_ai_stem_separation1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_ai_transcribe1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_ai_upscale1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_analyze1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_apply_mask1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_audio_bed1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_audio_spatial1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_audio_waveform1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_audiogram_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_auto_chapters1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_batch1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_benchmark_run1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_body_swap1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_brand_kit1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_capabilities1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_chroma_key1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_cleanup1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_compare_quality1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_composite_layers1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_composition_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_convert1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_cost_ledger1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_create_from_images9 fields changed
      • addedInput schema / properties / fps / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / fps / type
        Removed value: -"number"
      • addedInput schema / properties / images / anyOf
        Added value: +[
        +  {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / images / default
        Added value: +null
      • removedInput schema / properties / images / items
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / images / type
        Removed value: -"array"
      • addedInput schema / properties / list_file
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "List File"
        +}
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "images"
        -]
    • Changedvideo_creative_autopilot_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_crop1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_cutfile_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_cutfile_validate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_design_quality_check1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_detect_scenes1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_dub_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_duck_audio1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_edit1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_edit_session1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_estimate_operation1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_export1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_export_frames1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_extract_audio1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_extract_frame1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_fade1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_filter1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_find_moments1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_fix_design_issues1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_generate_subtitles1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_generative_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_hls_segment1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_hook_candidates1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_info1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_info_detailed1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_ingest1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_init_project1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_inspect_temporal1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_intent1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_language_coverage1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_layout_grid1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_layout_pip1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_learning_report1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_luma_key1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_merge1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_metric_qc1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_mix_audio1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_mograph_count1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_mograph_progress1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_normalize_audio1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_otio_export1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_otio_import1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_overlay1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_preflight1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_preview1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_project_create1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_project_recipe_export1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_project_recipe_replay1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_propose_broll1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_propose_mutations1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_publish_gate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_publish_validate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_punch_zoom_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_qc_narrative1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_qc_vision1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_quality_check1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_read_metadata1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_recipe_capture1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_record_motion_acceptance1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_release_checkpoint1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_remote_egress_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_repurpose1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_repurpose_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_rescue_inspect1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_rescue_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_rescue_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_resize1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_restoration_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_reverse1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_review_decide1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_review_decision1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_review_package1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_review_run1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_review_ui1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_rotate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_salvage1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_seek_frame1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_semantic_query1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_semantic_timeline1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_shape_mask1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_speed1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_split_screen1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_stabilize1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_storyboard1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_subtitles1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_subtitles_styled1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_template_preview1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_text_animated1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_thumbnail1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_timeline_edit_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_timeline_ir_validate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_translate_captions1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_trim1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_validate_text_layout1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_verdict1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_visual_transform_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_watermark1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_workflow_inspect1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_workflow_plan1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_workflow_render1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_workflow_validate1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
    • Changedvideo_write_metadata1 field changed
      • addedInput schema / properties / overwrite
        Added value: +{
        +  "default": false,
        +  "description": "Explicitly allow replacing existing media. Existing non-media files are protected.",
        +  "title": "Overwrite",
        +  "type": "boolean"
        +}
  3. 203 tool updatesv1.16.0
    • Changedaudio_compose1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedaudio_effects1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedaudio_preset1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedaudio_sequence1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedaudio_synthesize1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedeffect_chromatic_aberration1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedeffect_glow1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedeffect_noise1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedeffect_scanlines1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedeffect_vignette1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_cmyk_split1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_datamoshing1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_depth_splatting1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_digital_feedback1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_macroblocking1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_point_cloud1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_rgb_shift1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_scanline_jitter1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_screen_tearing1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_slit_scan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_turbulent_displacement1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedglitch_vhs_tracking1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_add_block1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_benchmark1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_capture1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_catalog1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_compositions1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_doctor1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_info1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_init1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_inspect1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_preview1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_remove_background9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / equipment_overlay
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Equipment Overlay"
        +}
      • addedInput schema / properties / fail_if_equipment_on_subject
        Added value: +{
        +  "default": false,
        +  "title": "Fail If Equipment On Subject",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / input_path / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / input_path / default
        Added value: +null
      • removedInput schema / properties / input_path / type
        Removed value: -"string"
      • addedInput schema / properties / mask_interval
        Added value: +{
        +  "default": 1,
        +  "title": "Mask Interval",
        +  "type": "integer"
        +}
      • addedInput schema / properties / model
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Model"
        +}
      • removedInput schema / required
        Removed value: -[
        -  "input_path"
        -]
    • Changedhyperframes_render1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_snapshot1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_still1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_to_mcpvideo1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_transcribe1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_tts1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedhyperframes_validate1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedimage_analyze_product1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedimage_edit
    • Changedimage_extract_colors1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedimage_generate_palette1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedrevideo_install
    • Addedrevideo_materialize
    • Addedrevideo_render
    • Addedrevideo_render_job
    • Changedsearch_tools1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedshorts_package
    • Addedshorts_plan_show
    • Addedshorts_render
    • Addedshorts_review
    • Changedshot_prompt_render1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedsound_capabilities
    • Addedsound_master_render
    • Addedsound_mix_render
    • Addedsound_plan_validate
    • Addedsound_qa_asr
    • Addedsound_qa_loudness
    • Addedsound_voice_batch
    • Addedstill_gate
    • Addedstill_grade
    • Addedstill_match
    • Addedstill_package
    • Changedstoryboard_read1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedstyle_pack_read1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedtransition_glitch1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedtransition_morph1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedtransition_pixelate1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_acceptance_eval
    • Changedvideo_add_audio2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / duration_policy
        Added value: +{
        +  "default": "keep_video",
        +  "description": "How to reconcile audio and video length: keep_video (default, preserves the full video/outro), pad_audio, loop_audio, trim_audio, or shortest (may trim the outro).",
        +  "title": "Duration Policy",
        +  "type": "string"
        +}
    • Changedvideo_add_generated_audio1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_add_text1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_add_texts1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_ai_color_grade1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_ai_remove_silence1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_ai_scene_detect1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_ai_stem_separation1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_ai_transcribe1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_ai_upscale1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_analyze1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_apply_mask1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_audio_bed
    • Changedvideo_audio_spatial1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_audio_waveform1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_audiogram_plan
    • Changedvideo_auto_chapters1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_batch1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_benchmark_run
    • Addedvideo_body_swap
    • Addedvideo_brand_kit
    • Addedvideo_capabilities
    • Changedvideo_chroma_key1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_cleanup1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_compare_quality1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_composite_layers1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_composition_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_convert3 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / target_bitrate
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Target Bitrate"
        +}
      • addedInput schema / properties / two_pass
        Added value: +{
        +  "default": false,
        +  "title": "Two Pass",
        +  "type": "boolean"
        +}
    • Addedvideo_cost_ledger
    • Changedvideo_create_from_images1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_creative_autopilot_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_crop1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_cutfile_render
    • Addedvideo_cutfile_validate
    • Changedvideo_design_quality_check1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_detect_scenes1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_dub_plan
    • Changedvideo_duck_audio1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_edit1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_edit_session
    • Addedvideo_estimate_operation
    • Changedvideo_export2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / c2pa_manifest_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional C2PA manifest definition JSON to sign the final mp4 export.",
        +  "title": "C2Pa Manifest Path"
        +}
    • Changedvideo_export_frames1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_extract_audio1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_extract_frame4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / timestamp / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / timestamp / default
        Previous value: -0New value: +null
      • removedInput schema / properties / timestamp / type
        Removed value: -"number"
    • Changedvideo_fade1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_filter1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_find_moments
    • Changedvideo_fix_design_issues1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_generate_subtitles1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_generative_plan
    • Changedvideo_hls_segment1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_hook_candidates
    • Changedvideo_info1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_info_detailed1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_ingest
    • Addedvideo_init_project
    • Addedvideo_inspect_temporal
    • Addedvideo_intent
    • Addedvideo_language_coverage
    • Changedvideo_layout_grid1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_layout_pip1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_learning_report
    • Changedvideo_luma_key1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_merge1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_metric_qc
    • Addedvideo_mix_audio
    • Changedvideo_mograph_count1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_mograph_progress1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_normalize_audio4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / fade_seconds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Fade Seconds"
        +}
      • addedInput schema / properties / lra
        Added value: +{
        +  "default": 11,
        +  "title": "Lra",
        +  "type": "number"
        +}
      • addedInput schema / properties / true_peak_dbtp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "True Peak Dbtp"
        +}
    • Addedvideo_otio_export
    • Addedvideo_otio_import
    • Changedvideo_overlay1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_preflight
    • Changedvideo_preview1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_project_create1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_project_recipe_export
    • Addedvideo_project_recipe_replay
    • Addedvideo_propose_broll
    • Addedvideo_propose_mutations
    • Addedvideo_publish_gate
    • Addedvideo_publish_validate
    • Addedvideo_punch_zoom_plan
    • Addedvideo_qc_narrative
    • Addedvideo_qc_vision
    • Changedvideo_quality_check1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_read_metadata1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_recipe_capture
    • Addedvideo_record_motion_acceptance
    • Changedvideo_release_checkpoint2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / require_audio
        Added value: +{
        +  "default": true,
        +  "title": "Require Audio",
        +  "type": "boolean"
        +}
    • Changedvideo_remote_egress_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_repurpose4 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / min_score / default
        Previous value: -0New value: +80
      • addedInput schema / properties / moment_selection_record_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Moment Selection Record Id"
        +}
      • addedInput schema / properties / start_job
        Added value: +{
        +  "default": true,
        +  "title": "Start Job",
        +  "type": "boolean"
        +}
    • Changedvideo_repurpose_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_rescue_inspect1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_rescue_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_rescue_render1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_resize1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_restoration_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_reverse1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_review_decide
    • Addedvideo_review_decision
    • Addedvideo_review_package
    • Addedvideo_review_run
    • Addedvideo_review_ui
    • Changedvideo_rotate1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_salvage
    • Addedvideo_seek_frame
    • Changedvideo_semantic_query1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_semantic_timeline1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_shape_mask1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_speed1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_split_screen1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_stabilize1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_storyboard1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_subtitles2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / style
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Style"
        +}
    • Changedvideo_subtitles_styled1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_template_preview1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_text_animated1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_thumbnail1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_timeline_edit_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_timeline_ir_validate
    • Addedvideo_translate_captions
    • Changedvideo_trim5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / duration / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / end / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / start / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "number"
        +  }
        +]
      • removedInput schema / properties / start / type
        Removed value: -"string"
    • Changedvideo_validate_text_layout1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedvideo_verdict
    • Changedvideo_visual_transform_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_watermark1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_workflow_inspect2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • addedInput schema / properties / compare_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Compare Path"
        +}
    • Changedvideo_workflow_plan1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_workflow_render1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_workflow_validate1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedvideo_write_metadata1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
  4. 20 tool updatesv1.6.0
    • Changedvideo_ai_color_grade1 field changed
      • addedInput schema / properties / lut_path
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Lut Path"
        +}
    • Addedvideo_composite_layers
    • Addedvideo_composition_plan
    • Changedvideo_convert1 field changed
      • changedInput schema / properties / format / description
        Previous value: -"Target output format. Supported values are mp4, webm, gif, and mov."New value: +"Target output format: mp4, webm, gif, mov, hevc, av1, or prores."
    • Addedvideo_creative_autopilot_plan
    • Addedvideo_duck_audio
    • Removedvideo_generate_music
    • Addedvideo_remote_egress_plan
    • Addedvideo_rescue_inspect
    • Addedvideo_rescue_plan
    • Addedvideo_rescue_render
    • Addedvideo_restoration_plan
    • Addedvideo_semantic_query
    • Addedvideo_semantic_timeline
    • Addedvideo_timeline_edit_plan
    • Addedvideo_visual_transform_plan
    • Addedvideo_workflow_inspect
    • Addedvideo_workflow_plan
    • Addedvideo_workflow_render
    • Addedvideo_workflow_validate
  5. 113 tool updatesv1.5.1
    • Addedaudio_compose
    • Addedaudio_effects
    • Addedaudio_preset
    • Addedaudio_sequence
    • Addedaudio_synthesize
    • Addedeffect_chromatic_aberration
    • Addedeffect_glow
    • Addedeffect_noise
    • Addedeffect_scanlines
    • Addedeffect_vignette
    • Addedglitch_cmyk_split
    • Addedglitch_datamoshing
    • Addedglitch_depth_splatting
    • Addedglitch_digital_feedback
    • Addedglitch_macroblocking
    • Addedglitch_point_cloud
    • Addedglitch_rgb_shift
    • Addedglitch_scanline_jitter
    • Addedglitch_screen_tearing
    • Addedglitch_slit_scan
    • Addedglitch_turbulent_displacement
    • Addedglitch_vhs_tracking
    • Addedhyperframes_add_block
    • Addedhyperframes_benchmark
    • Addedhyperframes_capture
    • Addedhyperframes_catalog
    • Addedhyperframes_compositions
    • Addedhyperframes_doctor
    • Addedhyperframes_info
    • Addedhyperframes_init
    • Addedhyperframes_inspect
    • Addedhyperframes_preview
    • Addedhyperframes_remove_background
    • Addedhyperframes_render
    • Addedhyperframes_snapshot
    • Addedhyperframes_still
    • Addedhyperframes_to_mcpvideo
    • Addedhyperframes_transcribe
    • Addedhyperframes_tts
    • Addedhyperframes_validate
    • Addedimage_analyze_product
    • Addedimage_extract_colors
    • Addedimage_generate_palette
    • Addedsearch_tools
    • Addedshot_prompt_render
    • Addedstoryboard_read
    • Addedstyle_pack_read
    • Addedtransition_glitch
    • Addedtransition_morph
    • Addedtransition_pixelate
    • Changedvideo_add_audio8 fields changed
      • addedInput schema / properties / audio_path / description
        Added value: +"Absolute path to an existing local audio file such as MP3, WAV, M4A, or AAC."
      • addedInput schema / properties / fade_in / description
        Added value: +"Non-negative fade-in duration in seconds applied to the inserted audio."
      • addedInput schema / properties / fade_out / description
        Added value: +"Non-negative fade-out duration in seconds applied near the inserted audio end."
      • addedInput schema / properties / mix / description
        Added value: +"True mixes the new audio with existing video audio; false replaces the original audio track."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
      • addedInput schema / properties / start_time / description
        Added value: +"Optional start offset in seconds where the inserted audio begins."
      • addedInput schema / properties / video_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / volume / description
        Added value: +"Audio gain from 0.0 to 2.0, where 1.0 preserves original loudness."
    • Addedvideo_add_generated_audio
    • Changedvideo_add_text4 fields changed
      • addedInput schema / properties / crf
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Crf"
        +}
      • addedInput schema / properties / position / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • removedInput schema / properties / position / type
        Removed value: -"string"
      • addedInput schema / properties / preset
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Preset"
        +}
    • Addedvideo_add_texts
    • Addedvideo_ai_color_grade
    • Addedvideo_ai_remove_silence
    • Addedvideo_ai_scene_detect
    • Addedvideo_ai_stem_separation
    • Addedvideo_ai_transcribe
    • Addedvideo_ai_upscale
    • Addedvideo_analyze
    • Addedvideo_apply_mask
    • Addedvideo_audio_spatial
    • Addedvideo_audio_waveform
    • Addedvideo_auto_chapters
    • Addedvideo_batch
    • Addedvideo_chroma_key
    • Addedvideo_cleanup
    • Addedvideo_compare_quality
    • Changedvideo_convert4 fields changed
      • addedInput schema / properties / format / description
        Added value: +"Target output format. Supported values are mp4, webm, gif, and mov."
      • addedInput schema / properties / input_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
      • addedInput schema / properties / quality / description
        Added value: +"Encoding quality preset: low, medium, high, or ultra."
    • Addedvideo_create_from_images
    • Changedvideo_crop14 fields changed
      • addedInput schema / properties / crop_percent
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Centered crop percentage of original dimensions, such as 50 for the center 50%.",
        +  "title": "Crop Percent"
        +}
      • addedInput schema / properties / height / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / height / default
        Added value: +null
      • addedInput schema / properties / height / description
        Added value: +"Crop region height in pixels. Pair with width unless using crop_percent."
      • removedInput schema / properties / height / type
        Removed value: -"integer"
      • addedInput schema / properties / input_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
      • addedInput schema / properties / width / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / width / default
        Added value: +null
      • addedInput schema / properties / width / description
        Added value: +"Crop region width in pixels. Pair with height unless using crop_percent."
      • removedInput schema / properties / width / type
        Removed value: -"integer"
      • addedInput schema / properties / x / description
        Added value: +"Optional X offset in pixels. Defaults to a centered crop when omitted."
      • addedInput schema / properties / y / description
        Added value: +"Optional Y offset in pixels. Defaults to a centered crop when omitted."
      • changedInput schema / required
        Previous value: -[
        -  "input_path",
        -  "width",
        -  "height"
        -]New value: +[
        +  "input_path"
        +]
    • Addedvideo_design_quality_check
    • Addedvideo_detect_scenes
    • Changedvideo_edit3 fields changed
      • removedInput schema / properties / timeline / additionalProperties
        Removed value: -true
      • addedInput schema / properties / timeline / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "string"
        +  }
        +]
      • removedInput schema / properties / timeline / type
        Removed value: -"object"
    • Changedvideo_export4 fields changed
      • addedInput schema / properties / format / description
        Added value: +"Output format for delivery. Supported values are mp4, webm, gif, and mov."
      • addedInput schema / properties / input_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
      • addedInput schema / properties / quality / description
        Added value: +"Delivery quality preset: low, medium, high, or ultra."
    • Addedvideo_export_frames
    • Addedvideo_extract_frame
    • Changedvideo_fade6 fields changed
      • addedInput schema / properties / crf
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional FFmpeg CRF override from 0 to 51, where lower means higher quality.",
        +  "title": "Crf"
        +}
      • addedInput schema / properties / fade_in / description
        Added value: +"Non-negative fade-in duration in seconds from black at the start."
      • addedInput schema / properties / fade_out / description
        Added value: +"Non-negative fade-out duration in seconds to black at the end."
      • addedInput schema / properties / input_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
      • addedInput schema / properties / preset
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional FFmpeg encoding preset: ultrafast, fast, medium, slow, or veryslow.",
        +  "title": "Preset"
        +}
    • Addedvideo_filter
    • Addedvideo_fix_design_issues
    • Addedvideo_generate_music
    • Addedvideo_generate_subtitles
    • Addedvideo_hls_segment
    • Addedvideo_info_detailed
    • Addedvideo_layout_grid
    • Addedvideo_layout_pip
    • Addedvideo_luma_key
    • Changedvideo_merge5 fields changed
      • addedInput schema / properties / clips / description
        Added value: +"Ordered absolute paths to existing video clips. Provide at least two clips; inputs are validated and never modified."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
      • addedInput schema / properties / transition / description
        Added value: +"Optional xfade transition applied to every clip boundary, such as fade, dissolve, wipeleft, wiperight, slideleft, or slideright."
      • addedInput schema / properties / transition_duration / description
        Added value: +"Duration in seconds for each transition; must fit inside neighboring clips."
      • addedInput schema / properties / transitions / description
        Added value: +"Optional per-boundary xfade transitions. Overrides transition when provided."
    • Addedvideo_mograph_count
    • Addedvideo_mograph_progress
    • Addedvideo_normalize_audio
    • Addedvideo_overlay
    • Addedvideo_project_create
    • Addedvideo_quality_check
    • Addedvideo_read_metadata
    • Addedvideo_release_checkpoint
    • Addedvideo_repurpose
    • Addedvideo_repurpose_plan
    • Addedvideo_reverse
    • Changedvideo_rotate5 fields changed
      • addedInput schema / properties / angle / description
        Added value: +"Clockwise rotation angle in degrees. Supported values are 0, 90, 180, and 270."
      • addedInput schema / properties / flip_horizontal / description
        Added value: +"Mirror the video horizontally after rotation when true."
      • addedInput schema / properties / flip_vertical / description
        Added value: +"Mirror the video vertically after rotation when true."
      • addedInput schema / properties / input_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
    • Addedvideo_shape_mask
    • Changedvideo_speed3 fields changed
      • addedInput schema / properties / factor / description
        Added value: +"Playback speed multiplier. 2.0 is double speed, 0.5 is half speed, and 1.0 is unchanged."
      • addedInput schema / properties / input_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
    • Addedvideo_split_screen
    • Addedvideo_stabilize
    • Addedvideo_subtitles_styled
    • Addedvideo_template_preview
    • Addedvideo_text_animated
    • Changedvideo_thumbnail1 field changed
      • changedInput schema / properties / timestamp / anyOf
        Previous value: -[
        -  {
        -    "type": "number"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedvideo_trim1 field changed
      • addedInput schema / properties / accurate
        Added value: +{
        +  "default": false,
        +  "title": "Accurate",
        +  "type": "boolean"
        +}
    • Addedvideo_validate_text_layout
    • Changedvideo_watermark10 fields changed
      • addedInput schema / properties / crf
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional FFmpeg CRF override from 0 to 51, where lower means higher quality.",
        +  "title": "Crf"
        +}
      • addedInput schema / properties / image_path / description
        Added value: +"Absolute path to an existing local image file used as an overlay or watermark."
      • addedInput schema / properties / input_path / description
        Added value: +"Absolute path to an existing local video file. The input file is read only."
      • addedInput schema / properties / margin / description
        Added value: +"Non-negative edge margin in pixels for named positions."
      • addedInput schema / properties / opacity / description
        Added value: +"Watermark opacity from 0.0 fully transparent to 1.0 fully opaque."
      • addedInput schema / properties / output_path / description
        Added value: +"Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten."
      • addedInput schema / properties / position / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  }
        +]
      • addedInput schema / properties / position / description
        Added value: +"Watermark position: named position such as bottom-right, pixel dict {\"x\": 100, \"y\": 50}, or percentage dict {\"x_pct\": 0.5, \"y_pct\": 0.5}."
      • removedInput schema / properties / position / type
        Removed value: -"string"
      • addedInput schema / properties / preset
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional FFmpeg encoding preset: ultrafast, fast, medium, slow, or veryslow.",
        +  "title": "Preset"
        +}
    • Addedvideo_write_metadata
  6. 19 tool updatesv0.2.0
    • First observedvideo_add_audio
    • First observedvideo_add_text
    • First observedvideo_convert
    • First observedvideo_crop
    • First observedvideo_edit
    • First observedvideo_export
    • First observedvideo_extract_audio
    • First observedvideo_fade
    • First observedvideo_info
    • First observedvideo_merge
    • First observedvideo_preview
    • First observedvideo_resize
    • First observedvideo_rotate
    • First observedvideo_speed
    • First observedvideo_storyboard
    • First observedvideo_subtitles
    • First observedvideo_thumbnail
    • First observedvideo_trim
    • First observedvideo_watermark

TDQS

B3.2/5.0

Scored across 20 tools

Disambiguation3/5

Core editing operations (trim, merge, resize, convert, speed, add_audio) are cleanly separated, but the diagnostics/inspection cluster is muddled: hyperframes_doctor vs video_doctor, and video_workflow_inspect vs video_rescue_inspect vs video_review_package all read as 'inspect a receipt/artifact' with only subtle distinctions. video_add_text vs video_add_texts and video_quality_check vs video_validate_text_layout are defensible but add selection pressure. An agent can usually pick correctly, but only by reading careful prose rather than from names alone.

Naming Consistency4/5

The dominant pattern is video_<verb>_<noun> (video_trim, video_resize, video_extract_frame, video_add_text), applied consistently across most of the set. Deviations are minor but visible: hyperframes_doctor escapes the video_ namespace entirely, and search_tools is an unscoped meta-tool. Readable and predictable overall.

Tool Count3/5

Twenty tools sits at the heavy end for what is essentially a video post-production helper; the core edit surface could be ~12. The extra weight comes from a layer of diagnostics, receipt inspection, and review-gating tools (hyperframes_doctor, video_doctor, video_workflow_inspect, video_rescue_inspect, video_review_package) that push scope well beyond editing. Each is individually justifiable but collectively they crowd the set.

Completeness4/5

The lifecycle is broadly covered: probe, trim, merge, resize, convert, speed, audio mux, text overlay, frame extraction, layout validation, quality check, and project scaffolding. There are gaps and one notable dangling reference: video_convert points users to 'video_export for delivery presets', but no video_export tool exists, and there is no crop/blur or cleanup/delete operation despite receipts tracking cleanup state.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers