Kinocut
PYPI · KINOCUT · SCANNED SEP 21
Guardrailed video editing for AI agents: FFmpeg, captions, effects, Hyperframes, and receipts.
Available components
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
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
claude mcp add kyanitelabs-kinocut -- uvx kinocut
{
"mcpServers": {
"kyanitelabs-kinocut": {
"command": "uvx",
"args": [
"kinocut"
]
}
}
} {
"servers": {
"kyanitelabs-kinocut": {
"command": "uvx",
"args": [
"kinocut"
]
}
}
} codex mcp add kyanitelabs-kinocut -- uvx kinocut
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"kyanitelabs-kinocut": {
"type": "local",
"command": [
"uvx",
"kinocut"
],
"enabled": true
}
}
} openclaw mcp add kyanitelabs-kinocut --command uvx --arg kinocut
mcp_servers:
kyanitelabs-kinocut:
command: "uvx"
args: ["kinocut"] {
"McpServers": {
"kyanitelabs-kinocut": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"kinocut"
]
}
}
} assistant mcp add kyanitelabs-kinocut -t stdio -c uvx -a kinocut
{
"mcpServers": {
"kyanitelabs-kinocut": {
"command": "uvx",
"args": [
"kinocut"
]
}
}
} 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.
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 →
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 →
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).
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| audio_duration_seconds | number | – | – |
| 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).
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | array | yes | – |
| output_dir | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| hero | – | – | – |
| inputs | array | yes | – |
| lut_path | – | – | – |
| output_dir | string | yes | – |
| signal_mode | boolean | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| hero | string | yes | – |
| inputs | array | yes | – |
| output_dir | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| apply_grade | boolean | – | – |
| beats | array | yes | – |
| dry_run | boolean | – | – |
| establish | string | yes | – |
| lut_path | – | – | – |
| output_dir | string | yes | – |
| signal_mode | boolean | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| path | string | yes | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| clip1_path | string | yes | – |
| clip2_path | string | yes | – |
| duration | number | – | – |
| intensity | number | – | – |
| output_path | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
transition_morph ~58
Apply morph transition between two video clips.
| Name | Type | Req | Description |
|---|---|---|---|
| clip1_path | string | yes | – |
| clip2_path | string | yes | – |
| duration | number | – | – |
| mesh_size | integer | – | – |
| output_path | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
transition_pixelate ~59
Apply pixelate transition between two video clips.
| Name | Type | Req | Description |
|---|---|---|---|
| clip1_path | string | yes | – |
| clip2_path | string | yes | – |
| duration | number | – | – |
| output_path | string | yes | – |
| pixel_size | integer | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| acceptance_spec_id | string | yes | – |
| project_dir | string | yes | – |
| verdict_ids | array | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_add_audio Add or mix video 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.
| Name | Type | Req | Description |
|---|---|---|---|
| audio_path | string | yes | Absolute path to an existing local audio file such as MP3, WAV, M4A, or AAC. |
| duration_policy | string | – | 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). |
| fade_in | number | – | Non-negative fade-in duration in seconds applied to the inserted audio. |
| fade_out | number | – | Non-negative fade-out duration in seconds applied near the inserted audio end. |
| mix | boolean | – | True mixes the new audio with existing video audio; false replaces the original audio track. |
| output_path | – | – | Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten. |
| start_time | – | – | Optional start offset in seconds where the inserted audio begins. |
| video_path | string | yes | Absolute path to an existing local video file. The input file is read only. |
| volume | number | – | Audio 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.
| Name | Type | Req | Description |
|---|---|---|---|
| audio_config | object | yes | – |
| input_path | string | yes | – |
| output_path | string | yes | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | – |
| crf | – | – | – |
| duration | – | – | – |
| font | – | – | – |
| input_path | string | yes | – |
| output_path | – | – | – |
| position | – | – | – |
| preset | – | – | – |
| shadow | boolean | – | – |
| size | integer | – | – |
| start_time | – | – | – |
| text | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_layout | boolean | – | – |
| crf | – | – | – |
| input_path | string | yes | – |
| output_path | – | – | – |
| preset | – | – | – |
| texts | array | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| lut_path | – | – | – |
| output_path | string | yes | – |
| reference_path | – | – | – |
| style | string | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_ai_remove_silence ~61
Remove silent sections from video.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| keep_margin | number | – | – |
| min_silence_duration | number | – | – |
| output_path | string | yes | – |
| silence_threshold | number | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_ai_scene_detect ~39
Detect scene changes in video.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| threshold | number | – | – |
| use_ai | boolean | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_ai_stem_separation ~48
Separate audio into stems using Demucs.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| model | string | – | – |
| output_dir | string | yes | – |
| stems | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_ai_transcribe ~45
Transcribe speech to text using Whisper.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| language | – | – | – |
| model | string | – | – |
| output_srt | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_ai_upscale ~48
Upscale video using AI super-resolution.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| model | string | – | – |
| output_path | string | yes | – |
| scale | integer | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_audio | boolean | – | – |
| include_chapters | boolean | – | – |
| include_colors | boolean | – | – |
| include_quality | boolean | – | – |
| include_scenes | boolean | – | – |
| include_transcript | boolean | – | – |
| input_path | string | yes | – |
| language | – | – | – |
| output_json | – | – | – |
| output_md | – | – | – |
| output_srt | – | – | – |
| output_txt | – | – | – |
| scene_threshold | number | – | – |
| whisper_model | string | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| feather | integer | – | – |
| input_path | string | yes | – |
| mask_path | string | yes | – |
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| duck_attack | number | – | – |
| duck_ratio | number | – | – |
| duck_release | number | – | – |
| duck_threshold | number | – | – |
| fade_in | number | – | – |
| fade_out | number | – | – |
| loop | boolean | – | – |
| loop_crossfade | number | – | – |
| music_path | string | yes | – |
| music_volume | number | – | – |
| output_path | string | yes | – |
| save_receipt | – | – | – |
| target_lufs | number | – | – |
| voice_source | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_audio_spatial ~48
Apply 3D spatial audio positioning.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| method | string | – | – |
| output_path | string | yes | – |
| positions | array | yes | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| bins | integer | – | – |
| input_path | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_audiogram_plan ~50
Audiogram + chapter mark plan (TE.4).
| Name | Type | Req | Description |
|---|---|---|---|
| audio_path | string | yes | – |
| chapter_marks | – | – | – |
| height | integer | – | – |
| width | integer | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| input_path | string | yes | – |
| threshold | number | – | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | array | yes | – |
| operation | string | yes | – |
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| audio_source | string | yes | – |
| authorization_decision_ids | – | – | – |
| duration_policy | – | – | – |
| output_path | string | yes | – |
| project_dir | string | yes | – |
| video_source | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_brand_kit ~40
Save or load a brand kit / style profile JSON.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| kit | – | – | – |
| path | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| blend | number | – | – |
| color | string | – | – |
| input_path | string | yes | – |
| output_path | – | – | – |
| similarity | number | – | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| files | array | yes | – |
| 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']).
| Name | Type | Req | Description |
|---|---|---|---|
| distorted_path | string | yes | – |
| metrics | – | – | – |
| original_path | string | yes | – |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | – |
| output_path | – | – | – |
| save_layer_plan | – | – | – |
| spec_path | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_composition_plan ~31
Build source-backed manifests, selections, compositions, previews, and checks.
| Name | Type | Req | Description |
|---|---|---|---|
| request | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_convert Convert video format ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Target output format: mp4, webm, gif, mov, hevc, av1, or prores. |
| input_path | string | yes | Absolute path to an existing local video file. The input file is read only. |
| output_path | – | – | Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten. |
| quality | string | – | Encoding 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.
| Name | Type | Req | Description |
|---|---|---|---|
| project_dir | string | yes | – |
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).
| Name | Type | Req | Description |
|---|---|---|---|
| fps | number | – | – |
| images | array | yes | – |
| 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.
| Name | Type | Req | Description |
|---|---|---|---|
| request | object | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
video_crop Crop video frame ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| crop_percent | – | – | Centered crop percentage of original dimensions, such as 50 for the center 50%. |
| height | – | – | Crop region height in pixels. Pair with width unless using crop_percent. |
| input_path | string | yes | Absolute path to an existing local video file. The input file is read only. |
| output_path | – | – | Destination video path. Auto-generated when omitted; an existing supplied path may be overwritten. |
| width | – | – | Crop region width in pixels. Pair with height unless using crop_percent. |
| x | – | – | Optional X offset in pixels. Defaults to a centered crop when omitted. |
| y | – | – | Optional 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).
| Name | Type | Req | Description |
|---|---|---|---|
| keep_intermediates | boolean | – | – |
| output_path | – | – | – |
| path | string | yes | – |
| 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).
| Name | Type | Req | Description |
|---|---|---|---|
| goal | – | – | – |
| path | – | – | – |
| platform | – | – | – |
| source | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
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.