Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Kinocut

PYPI · KINOCUT · SCANNED SEP 21

Guardrailed video editing for AI agents: FFmpeg, captions, effects, Hyperframes, and receipts.

Available components

0 this week 78 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 33 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • License check failed: the license (Apache Software License) isn't a recognized OSI-approved license. See how to fix → Fail
  • Actively maintained (last published 21 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 21532 tokens (~109/item across 197 items; 196 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage73
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 7% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety78
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 1 of 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "video_acceptance_eval" implies "eval" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 198 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Kinocut MCP server?

Kinocut runs locally as a PyPI package, launched with uvx kinocut. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · kinocut

# add to Claude Code
claude mcp add kyanitelabs-kinocut -- uvx kinocut
// .cursor/mcp.json
{
  "mcpServers": {
    "kyanitelabs-kinocut": {
      "command": "uvx",
      "args": [
        "kinocut"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "kyanitelabs-kinocut": {
      "command": "uvx",
      "args": [
        "kinocut"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add kyanitelabs-kinocut -- uvx kinocut
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "kyanitelabs-kinocut": {
      "type": "local",
      "command": [
        "uvx",
        "kinocut"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add kyanitelabs-kinocut --command uvx --arg kinocut
# ~/.hermes/config.yaml
mcp_servers:
  kyanitelabs-kinocut:
    command: "uvx"
    args: ["kinocut"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "kyanitelabs-kinocut": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "kinocut"
      ]
    }
  }
}
# add to Vellum
assistant mcp add kyanitelabs-kinocut -t stdio -c uvx -a kinocut
// mcp.json
{
  "mcpServers": {
    "kyanitelabs-kinocut": {
      "command": "uvx",
      "args": [
        "kinocut"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 18 Sept 26 0
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 −2
    • Stability: pass → 0.83 functional
  • 11 Sept 26 0
    • Stability: 0.97 → pass security
  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed pypi/kinocut@1.15.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 33 packages
Packages resolved 33
Stale 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 196 exposed · ~21,443 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
sound_capabilities ~23

Discover the bounded public sound operation set (local-first, JSON-safe).

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

sound_mix_render ~25

Render a bounded local mix for a minimal timeline (duration/stem smoke path).

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

sound_plan_validate ~29

Validate a SoundPlan payload (or a built-in minimal plan when omitted).

NameTypeReqDescription
plan

Structured output declared, but exposes no named fields.

No examples provided.

sound_qa_asr ~39

Run the local fake ASR verification port against script hashes.

NameTypeReqDescription
audio_duration_secondsnumber
script_hashes

Structured output declared, but exposes no named fields.

No examples provided.

sound_qa_loudness ~24

Measure loudness against the default delivery policy on synthetic audio.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

sound_voice_batch ~30

Render a local deterministic voice batch from a SoundPlan (or a minimal plan).

NameTypeReqDescription
plan

Structured output declared, but exposes no named fields.

No examples provided.

still_gate ~85

Fail-closed cohesion gate for a still package + contact sheet. Checks luma spread and shadow green/cyan wash. Returns passed=false with named metric/frame failures when the package fails. Args: inputs: Absolute still paths in the package. output_dir: Absolute directory for receipt and contact sheet.

NameTypeReqDescription
inputsarrayyes
output_dirstringyes

Structured output declared, but exposes no named fields.

No examples provided.

still_grade ~139

Grade stills in order correct→match→look; optional 3D LUT applied last. Signal mode marks the LUT as signal-alignment (not film cosplay) and records near-black/near-white preservation deltas. Args: inputs: Absolute still paths. output_dir: Absolute output directory. hero: Optional hero still for match stage. lut_path: Optional absolute .cube/.3dl path applied last. signal_mode: Treat LUT as signal alignment.

NameTypeReqDescription
hero
inputsarrayyes
lut_path
output_dirstringyes
signal_modeboolean

Structured output declared, but exposes no named fields.

No examples provided.

still_match ~112

Match a package of stills to a hero plate with one shared WB/exposure gain. Does not overwrite sources. Writes matched stills + JSON receipt under output_dir. Per-frame auto-WB is disabled (shared gains only). Args: hero: Absolute path to the hero/establish still. inputs: Absolute paths to package stills. output_dir: Absolute directory for outputs and receipt.

NameTypeReqDescription
herostringyes
inputsarrayyes
output_dirstringyes

Structured output declared, but exposes no named fields.

No examples provided.

still_package ~151

Multi-still package workflow: edit beats → match → grade → cohesion gate. Args: establish: Absolute establish/hero still. beats: Absolute beat still paths. output_dir: Absolute package output directory. dry_run: When True, return planned graph only. apply_grade: Run ordered grade after match (default True). lut_path: Optional LUT path for grade look stage. signal_mode: Signal-alignment LUT mode.

NameTypeReqDescription
apply_gradeboolean
beatsarrayyes
dry_runboolean
establishstringyes
lut_path
output_dirstringyes
signal_modeboolean

Structured output declared, but exposes no named fields.

No examples provided.

storyboard_read ~50

Read a PUSHING CREATION storyboard table from storyboard.md or a project directory. Args: path: Absolute path to storyboard.md or to a project directory containing storyboard.md.

NameTypeReqDescription
pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

style_pack_read ~51

Read STYLE_ and NEG_ blocks from a style.md file or project directory. Args: path: Absolute path to style.md or to a project directory containing style.md.

NameTypeReqDescription
pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

transition_glitch ~122

Apply glitch transition between two video clips. Args: clip1_path: Absolute path to first video clip. clip2_path: Absolute path to second video clip. output_path: Absolute path for output video. duration: Transition duration in seconds (default 0.5). intensity: Glitch intensity 0-1 (default 0.3).

NameTypeReqDescription
clip1_pathstringyes
clip2_pathstringyes
durationnumber
intensitynumber
output_path

Structured output declared, but exposes no named fields.

No examples provided.

transition_morph ~58

Apply morph transition between two video clips.

NameTypeReqDescription
clip1_pathstringyes
clip2_pathstringyes
durationnumber
mesh_sizeinteger
output_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

transition_pixelate ~59

Apply pixelate transition between two video clips.

NameTypeReqDescription
clip1_pathstringyes
clip2_pathstringyes
durationnumber
output_pathstringyes
pixel_sizeinteger

Structured output declared, but exposes no named fields.

No examples provided.

video_acceptance_eval ~46

Evaluate exact-spec verdict and defect evidence without approving anything.

NameTypeReqDescription
acceptance_spec_idstringyes
project_dirstringyes
verdict_idsarrayyes

Structured output declared, but exposes no named fields.

No examples provided.

video_add_audio ~306

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.

NameTypeReqDescription
audio_pathstringyesAbsolute path to an existing local audio file such as MP3, WAV, M4A, or AAC.
duration_policystringHow 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).
fade_innumberNon-negative fade-in duration in seconds applied to the inserted audio.
fade_outnumberNon-negative fade-out duration in seconds applied near the inserted audio end.
mixbooleanTrue mixes the new audio with existing video audio; false replaces the original audio track.
output_pathDestination video path. Auto-generated when omitted; an existing supplied path may be overwritten.
start_timeOptional start offset in seconds where the inserted audio begins.
video_pathstringyesAbsolute path to an existing local video file. The input file is read only.
volumenumberAudio gain from 0.0 to 2.0, where 1.0 preserves original loudness.

Structured output declared, but exposes no named fields.

No examples provided.

video_add_generated_audio ~121

Add procedurally generated audio to a video. One-shot convenience function to generate and add audio to video. Args: input_path: Absolute path to input video. audio_config: Configuration dict with: - drone: {"frequency", "volume"} for background tone - events: List of timed sound events output_path: Absolute path for output video. Returns: Dict with success status and output_path.

NameTypeReqDescription
audio_configobjectyes
input_pathstringyes
output_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_add_text ~354

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).

NameTypeReqDescription
colorstring
crf
duration
font
input_pathstringyes
output_path
position
preset
shadowboolean
sizeinteger
start_time
textstringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_add_texts ~290

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.

NameTypeReqDescription
auto_layoutboolean
crf
input_pathstringyes
output_path
preset
textsarrayyes

Structured output declared, but exposes no named fields.

No examples provided.

video_ai_color_grade ~180

Apply a color grade to a video — by LUT file, style preset, or reference video. Args: input_path: Video file to grade. output_path: Where to write the graded video. reference_path: Optional reference video — when given, the video's color balance is adjusted to match the reference (overrides style). style: Style preset. One of: auto (gentle contrast lift), warm, cool, vintage, cinematic, dramatic, noir (high contrast, desaturated). lut_path: Optional .cube/.3dl LUT file applied with FFmpeg lut3d — overrides both reference and style for professional grading looks.

NameTypeReqDescription
input_pathstringyes
lut_path
output_pathstringyes
reference_path
stylestring

Structured output declared, but exposes no named fields.

No examples provided.

video_ai_remove_silence ~61

Remove silent sections from video.

NameTypeReqDescription
input_pathstringyes
keep_marginnumber
min_silence_durationnumber
output_pathstringyes
silence_thresholdnumber

Structured output declared, but exposes no named fields.

No examples provided.

video_ai_scene_detect ~39

Detect scene changes in video.

NameTypeReqDescription
input_pathstringyes
thresholdnumber
use_aiboolean

Structured output declared, but exposes no named fields.

No examples provided.

video_ai_stem_separation ~48

Separate audio into stems using Demucs.

NameTypeReqDescription
input_pathstringyes
modelstring
output_dirstringyes
stems

Structured output declared, but exposes no named fields.

No examples provided.

video_ai_transcribe ~45

Transcribe speech to text using Whisper.

NameTypeReqDescription
input_pathstringyes
language
modelstring
output_srt

Structured output declared, but exposes no named fields.

No examples provided.

video_ai_upscale ~48

Upscale video using AI super-resolution.

NameTypeReqDescription
input_pathstringyes
modelstring
output_pathstringyes
scaleinteger

Structured output declared, but exposes no named fields.

No examples provided.

video_analyze ~408

Comprehensive video analysis — transcript, metadata, scenes, audio, quality, chapters, colors. Accepts a local file path or an HTTP/HTTPS URL. Direct video URLs (e.g. https://example.com/clip.mp4) are downloaded automatically. Streaming-platform URLs (YouTube, Vimeo, TikTok, Twitter/X, Instagram, Twitch, …) require yt-dlp (pip install yt-dlp). Each sub-analysis is independent so one failure will not abort the others. Args: input_path: Local path or HTTP/HTTPS URL to the video. whisper_model: Whisper model size (tiny, base, small, medium, large, turbo). language: Language code for transcription (auto-detect if None). scene_threshold: Scene change sensitivity 0.0-1.0. include_transcript: Run speech-to-text via Whisper (requires openai-whisper). include_scenes: Detect scene changes and boundaries. include_audio: Analyse audio waveform, peaks, and silence regions. include_quality: Run visual quality check. include_chapters: Auto-generate chapter markers from scene changes. include_colors: Extract dominant colors and extended metadata. output_srt: Optional path to write SRT subtitle file. output_txt: Optional path to write plain-text transcript. output_md: Optional path to write Markdown transcript with timestamps. output_json: Optional path to write full JSON transcript data.

NameTypeReqDescription
include_audioboolean
include_chaptersboolean
include_colorsboolean
include_qualityboolean
include_scenesboolean
include_transcriptboolean
input_pathstringyes
language
output_json
output_md
output_srt
output_txt
scene_thresholdnumber
whisper_modelstring

Structured output declared, but exposes no named fields.

No examples provided.

video_apply_mask ~114

Apply an image mask to a video with edge feathering. Args: input_path: Absolute path to the input video. mask_path: Absolute path to the mask image (white = visible, black = transparent). feather: Feather/blur amount at mask edges in pixels (default 5). output_path: Where to save the output. Auto-generated if omitted.

NameTypeReqDescription
featherinteger
input_pathstringyes
mask_pathstringyes
output_path

Structured output declared, but exposes no named fields.

No examples provided.

video_audio_bed ~444

Mix a looped music bed under a voice source with ducking and loudness normalization. The voice drives sidechain ducking and loudness normalization. A deterministic AudioBedReceipt is returned, and output duration stays locked to the voice source. Args: voice_source: Video/audio whose existing audio (voice/dialog) drives ducking and sets output duration. music_path: Background music or ambience to mix underneath; looped when shorter than the voice. output_path: Absolute path for the rendered output file. loop: Loop the music bed when it is shorter than the voice. Default True. loop_crossfade: Crossfade seconds between loop iterations. Default 1.5. fade_in: Output fade-in seconds. Default 0.0. fade_out: Output fade-out seconds. Default 2.2. target_lufs: Loudness normalization target in LUFS. Default -16.0. duck_threshold: Sidechain level above which ducking engages. Default 0.02. duck_ratio: Compression ratio applied while voice plays. Default 5.0. duck_attack: Duck attack in milliseconds. Default 25.0. duck_release: Duck release in milliseconds. Default 450.0. music_volume: Base music level before ducking. Default 1.0. save_receipt: Optional absolute path to write the AudioBedReceipt JSON. Returns: Dict with success status, output_path, output_duration, ducking_engaged, warnings, elapsed_ms, and the structured receipt.

NameTypeReqDescription
duck_attacknumber
duck_rationumber
duck_releasenumber
duck_thresholdnumber
fade_innumber
fade_outnumber
loopboolean
loop_crossfadenumber
music_pathstringyes
music_volumenumber
output_pathstringyes
save_receipt
target_lufsnumber
voice_sourcestringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_audio_spatial ~48

Apply 3D spatial audio positioning.

NameTypeReqDescription
input_pathstringyes
methodstring
output_pathstringyes
positionsarrayyes

Structured output declared, but exposes no named fields.

No examples provided.

video_audio_waveform ~65

Extract audio waveform data (peaks and silence regions). Args: input_path: Absolute path to the input video/audio file. bins: Number of time segments to analyze (default 50).

NameTypeReqDescription
binsinteger
input_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_audiogram_plan ~50

Audiogram + chapter mark plan (TE.4).

NameTypeReqDescription
audio_pathstringyes
chapter_marks
heightinteger
widthinteger

Structured output declared, but exposes no named fields.

No examples provided.

video_auto_chapters ~87

Auto-detect scene changes and create chapters. Analyzes video for scene cuts and returns chapter timestamps. Args: input_path: Absolute path to input video. threshold: Scene detection threshold 0-1. Default 0.3. Returns: List of (timestamp, description) chapter tuples.

NameTypeReqDescription
input_pathstringyes
thresholdnumber

Structured output declared, but exposes no named fields.

No examples provided.

video_batch ~107

Apply the same operation to multiple video files. Args: inputs: List of absolute paths to input video files. operation: Operation (trim, resize, convert, filter, blur, color_grade," " watermark, speed, fade, normalize_audio). params: Parameters for the operation. output_dir: Directory for output files. Auto-generated if omitted.

NameTypeReqDescription
inputsarrayyes
operationstringyes
output_dir
params

Structured output declared, but exposes no named fields.

No examples provided.

video_benchmark_run ~20

Run the AI-video benchmark corpus against host capabilities.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

video_body_swap ~66

Replace video while preserving approved audio with explicit duration policy.

NameTypeReqDescription
audio_sourcestringyes
authorization_decision_ids
duration_policy
output_pathstringyes
project_dirstringyes
video_sourcestringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_brand_kit ~40

Save or load a brand kit / style profile JSON.

NameTypeReqDescription
actionstringyes
kit
pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_capabilities ~28

Probe host capabilities (ffmpeg, whisper, c2pa) and return a capability report.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

video_chroma_key ~152

Remove a solid color background (green screen / chroma key). Args: input_path: Absolute path to the input video. color: Color to make transparent in hex format (default green: 0x00FF00). similarity: How similar colors need to be to be keyed out (0.0-1.0, default 0.01). blend: How much to blend the keyed color (default 0.0). output_path: Where to save the output. Auto-generated if omitted.

NameTypeReqDescription
blendnumber
colorstring
input_pathstringyes
output_path
similaritynumber

Structured output declared, but exposes no named fields.

No examples provided.

video_cleanup ~76

Delete intermediate video files after a workflow. Useful for multi-step pipelines that leave temporary outputs. Files in ``keep`` are preserved even if listed in ``files``. Args: files: List of absolute paths to delete. keep: List of absolute paths to preserve (optional).

NameTypeReqDescription
filesarrayyes
keep

Structured output declared, but exposes no named fields.

No examples provided.

video_compare_quality ~84

Compare video quality between original and processed versions. Args: original_path: Absolute path to the original/reference video. distorted_path: Absolute path to the processed/distorted video. metrics: Metrics to compute (default: ['psnr', 'ssim']).

NameTypeReqDescription
distorted_pathstringyes
metrics
original_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_composite_layers ~164

Composite ordered image/video layers from a JSON spec. Supports explicit straight/premultiplied input alpha, opacity, positioning, transforms, timing windows, masks/mattes, allowlisted blend modes, rotation, and effect-noise routes to named layer/mask/mask-edge streams. Emits a deterministic layer-plan receipt; unsupported routes fail closed. Args: spec_path: Path to a composite-layers JSON spec. output_path: Optional destination media path. save_layer_plan: Optional JSON path for the resolved layer-plan receipt. dry_run: Validate and emit the layer plan without rendering media.

NameTypeReqDescription
dry_runboolean
output_path
save_layer_plan
spec_pathstringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_composition_plan ~31

Build source-backed manifests, selections, compositions, previews, and checks.

NameTypeReqDescription
requestobjectyes

Structured output declared, but exposes no named fields.

No examples provided.

video_convert ~165

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.

NameTypeReqDescription
formatstringTarget output format: mp4, webm, gif, mov, hevc, av1, or prores.
input_pathstringyesAbsolute path to an existing local video file. The input file is read only.
output_pathDestination video path. Auto-generated when omitted; an existing supplied path may be overwritten.
qualitystringEncoding quality preset: low, medium, high, or ultra.

Structured output declared, but exposes no named fields.

No examples provided.

video_cost_ledger ~29

Sum known USD cost events by category for the project.

NameTypeReqDescription
project_dirstringyes

Structured output declared, but exposes no named fields.

No examples provided.

video_create_from_images ~88

Create a video from a sequence of images. Args: images: List of absolute paths to image files (in order). output_path: Where to save the output video. Auto-generated if omitted. fps: Frames per second for the output video (default 30.0).

NameTypeReqDescription
fpsnumber
imagesarrayyes
output_path

Structured output declared, but exposes no named fields.

No examples provided.

video_creative_autopilot_plan ~31

Coordinate proven local planners or return a structured abstention.

NameTypeReqDescription
requestobjectyes

Structured output declared, but exposes no named fields.

No examples provided.

video_crop ~184

Crop an existing video to a rectangular region or centered percentage crop and render a new output file. The source video is read only; x/y default to a centered crop when omitted.

NameTypeReqDescription
crop_percentCentered crop percentage of original dimensions, such as 50 for the center 50%.
heightCrop region height in pixels. Pair with width unless using crop_percent.
input_pathstringyesAbsolute path to an existing local video file. The input file is read only.
output_pathDestination video path. Auto-generated when omitted; an existing supplied path may be overwritten.
widthCrop region width in pixels. Pair with height unless using crop_percent.
xOptional X offset in pixels. Defaults to a centered crop when omitted.
yOptional Y offset in pixels. Defaults to a centered crop when omitted.

Structured output declared, but exposes no named fields.

No examples provided.

video_cutfile_render ~54

Render a schema-valid Cutfile via the workflow engine (Track E).

NameTypeReqDescription
keep_intermediatesboolean
output_path
pathstringyes
save_receipt

Structured output declared, but exposes no named fields.

No examples provided.

video_cutfile_validate ~52

Validate a Cutfile, or compile one from ``goal`` / ``platform`` (N1/N5).

NameTypeReqDescription
goal
path
platform
source

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the Kinocut MCP server?

Kinocut is an MCP server listed in the public MCP registry as io.github.KyaniteLabs/kinocut. Guardrailed video editing for AI agents: FFmpeg, captions, effects, Hyperframes, and receipts. This page covers its PyPI package (kinocut).

Is the Kinocut MCP server safe to use?

Kinocut scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Kinocut MCP server expose?

Kinocut exposes 196 tools: video_info, video_trim, video_merge, video_add_text, video_add_texts, and 191 more. Their descriptions and schemas cost roughly 21,443 tokens of context every time the server is loaded.

Is the Kinocut MCP server still maintained?

Kinocut is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.