MCP Tools Reference

August 19, 2026 · View on GitHub

kino exposes 196 registered MCP tools across video editing, governed AI-video review and salvage, project-backed deterministic inspection, dedicated rescue, post-rescue planning, the agent workflow engine, PUSHING CREATION-style planning, Hyperframes video authoring, repurposing packages, audio, effects, analysis, and image workflows. In 1.14.0, 360 dual-cam assembly reuses video_intent + video_review_decide — it is not a 197th tool. All return structured JSON with success and operation metadata. On failure, they return {"success": false, "error": {...}} with auto-fix suggestions. High-risk video/audio operations also run preflight guardrails that warn or fail early before FFmpeg can silently produce unusable output.


Project-backed Inspection (3 tools)

These operations share one adapter with the Python client and CLI. Only ingest accepts a host source path. Later operations resolve the active stored record by asset_id; they do not accept a caller-supplied record or an arbitrary media path.

ToolDescription
video_ingestCopy source bytes into a content-addressed private project and return the authoritative asset record
video_preflightPersist one technical, loudness, color, and full-decode report for a stored asset
video_inspect_temporalPersist sampled frames, a motion strip, frame differences, deterministic findings, explicit optional-provider availability, and the complete inspection manifest

video_preflight and video_inspect_temporal require an existing project. Optional visual providers are not contacted or downloaded implicitly; the default result explicitly marks both visual capabilities unavailable.

Durable Intent and Recipe Tools (3 tools)

These tools operate on an existing project, edit project, and immutable revision. Semantic search stays local and revision-bound. Recipe export verifies that caller-supplied operation descriptors compile to the selected revision, then emits a canonical artifact containing digest placeholders and typed parameters—not host paths. Replay requires explicit source digest bindings and appends a new revision; it never overwrites the source or publishes.

ToolDescription
video_find_momentsPersist or query a bounded, revision-owned semantic index in projectstore CAS
video_project_recipe_exportExport a verified revision path as a path-free, policy-carrying portable recipe
video_project_recipe_replayBind recipe source slots to explicit CAS digests and replay into a durable revision

The guarded recipe flow is: review the source revision and policies, export, distribute the JSON artifact, bind every cas_digest slot in the destination project, then replay. A recipe is not release authority: review gates remain metadata that the receiving workflow must satisfy, and no tag, package upload, directory submission, or publish action occurs.

Governed AI-video Review and Salvage (4 tools)

These operations share one validated boundary with the Python client and CLI. Protection has no force or bypass parameter; authorization accepts only stored human decision ids. The end-to-end sequence and stop conditions are in AI_VIDEO_REVIEW_AND_SALVAGE.md.

ToolDescription
video_verdictPersist exact-asset analysis; approved dispositions require an active exact human decision and requirement-level evidence
video_acceptance_evalResolve active stored spec/verdict ids and derive acceptance without creating an approval
video_body_swapRequire a project and two active stored inputs, then replace video while preserving approved audio
video_salvageCreate one content-addressed, lineage-bound salvage derivative with a fresh non-approved review slot

Meta / Discovery (1 tool)

ToolDescription
search_toolsSearch all registered MCP tools by keyword. Returns matching tool names, descriptions, and required parameters. Use this when you need to find the right tool without loading the full registry into context.

Python Client:

from kinocut import Client
editor = Client()
results = editor.search_tools("subtitle")
# Returns: {"success": True, "count": 3, "tools": [...]}

Cinematic Creation (4 tools)

Plan video generation like a director of photography before rendering. These tools implement a PUSHING CREATION-compatible pre-production workflow: project scaffold, STYLE_/NEG_ blocks, storyboard tables, and prompt expansion.

ToolDescription
video_project_createScaffold projects/<slug>/style.md, storyboard.md, and refs/ using cinematic starter templates
style_pack_readParse STYLE_ and NEG_ blocks from style.md or a project directory
storyboard_readParse storyboard rows from storyboard.md or a project directory
shot_prompt_renderExpand one storyboard shot into prompt and negative_prompt strings for a generation provider

Agent Workflow Engine (4 tools)

Plan, validate, render, recover, and prove a multi-step local video job from one JSON job-spec over a small allowlisted op set (probe | trim | resize | convert | merge | add_text). Every op maps 1:1 to a vetted engine function; params are introspected from the engine signature; media references are symbolic and workspace-confined. Full schema, @ref grammar, variants, resume, and cleanup are in WORKFLOWS.md; receipt shapes are in VIDEO_RECEIPT.md.

ToolDescription
video_workflow_validateFail-closed structural gate for a job-spec (op allowlist, @ref resolution, backward-reference-only ordering, per-op param introspection, workspace-confined path safety); renders nothing
video_workflow_planDry-run plan artifact (receipt_kind: workflow_plan): ordered op graph, per-source ffprobe + sha256 hashes where the file exists, output intents, variant summary; renders zero media (save_plan, variant)
video_workflow_renderExecute allowlisted ops sequentially and emit a workflow provenance receipt (per-step input/output hashes, cleanup manifest, determinism caveat); supports resume_receipt, save_receipt, keep_intermediates, variant, all_variants, save_receipt_dir
video_workflow_inspectSummarize any receipt this project emits — workflow, workflow_plan, or layer_plan (v2 or legacy v1 without receipt_kind) — with a read-only integrity re-check, human-review pointers, and known limitations

Dedicated Video Rescue (3 tools)

The rescue tools form one review-first local pipeline. Plan and inspect before render; pass only IDs from the plan's safe_repairs; inspect the final receipt before trusting the package. Full contracts and examples are in RESCUE.md.

ToolDescription
video_rescue_planAnalyze one local video without rendering; return evidence, previews, policy-classified safe/recommended/unavailable/blocked work, package intents, and an estimate
video_rescue_renderApply approved safe repair IDs from an immutable reviewed plan; fail closed on staleness, dependency drift, cancellation, or verification failure
video_rescue_inspectInspect a plan or receipt and re-check promoted artifact hashes, verification, privacy, resume, and cleanup state without modifying media

Post-Rescue Planning (8 tools)

These JSON-compatible tools are side-effect-free planners and verifiers. They do not render, download models, contact providers, or submit jobs. See POST_RESCUE_FEATURES.md for operations and guardrails.

ToolDescription
video_semantic_timelineBuild a source-time semantic timeline from supplied analyzer evidence
video_semantic_queryQuery local source-backed spans without invented descriptions
video_timeline_edit_planBuild an EDL, approval binding, visible diff, and verification
video_visual_transform_planPlan analysis, subject-aware reframing, or stabilization
video_restoration_planPlan or evaluate evidence-gated restorative work
video_composition_planBuild manifests, selections, compositions, previews, compiled plans, and checks
video_creative_autopilot_planCoordinate declared proven local planners or abstain
video_remote_egress_planPlan explicit remote egress and fake-adapter receipts without network I/O

Core Editing (35 tools)

ToolDescription
video_infoGet metadata: duration, resolution, codec, fps, file size
video_info_detailedExtended metadata with scene detection and dominant colors
video_trimTrim by start time + duration or end time
video_mergeConcatenate clips with optional per-pair transitions; warns on resolution/FPS/audio mismatches and rejects transitions longer than the shortest clip
video_add_textOverlay text with positioning, font, color, shadow
video_add_textsOverlay multiple text elements in a single FFmpeg pass; auto-detects overlaps and distributes stacked texts at the same named position
video_add_audioAdd, replace, or mix audio tracks with fade effects; validates volume and warns on timing/sample-rate risks
video_resizeChange resolution or apply preset aspect ratios (16:9, 9:16, 1:1, etc.)
video_convertConvert between mp4, webm, gif, mov, hevc, av1, prores (two-pass encoding)
video_speedSpeed up or slow down (0.5x = slow-mo, 2x = time-lapse)
video_reverseReverse video and audio playback
video_fadeFade in/out effects
video_cropCrop to rectangular region with offset
video_rotateRotate 90/180/270 and flip horizontal/vertical
video_filterApply filters: blur, sharpen, grayscale, sepia, invert, brightness, contrast, saturation, denoise, deinterlace, ken_burns; numeric parameters are bounded/clamped before FFmpeg execution
video_chroma_keyRemove solid color background (green screen) with bounded similarity/blend parameters
video_stabilizeStabilize shaky footage (requires FFmpeg with vidstab)
video_subtitlesBurn .srt/.vtt/authored .ass subtitles into video; optional style force_style override (omit to preserve authored ASS PlayRes/styles/positions). SRT/VTT are rendered dimension-aware via a synthesized ASS whose PlayResX/Y match the probed display size
video_subtitles_styledBurn subtitles with custom styling (font, size, color, outline)
video_generate_subtitlesCreate SRT from text entries, optionally burn in
video_watermarkAdd image watermark with validated opacity and positioning
video_overlayPicture-in-picture overlay with opacity and timing guardrails
video_composite_layersSpec-driven ordered image/video layer compositing with explicit straight/premultiplied input alpha, transforms, timing windows, masks/mattes, full-canvas and allowlisted positioned blend modes, rotation/pivot, named layer/mask/mask-edge effect-noise routes, dry-run plans, and deterministic layer_plan v2 receipts (video-only output)
video_split_screenSide-by-side or top/bottom layout with duration/FPS/audio mismatch warnings
video_editFull timeline-based edit from JSON DSL, or sequence shortcut (clips + optional transitions / transition_duration)
video_create_from_imagesCreate video from image sequence
video_export_framesExport video as individual image frames
video_extract_frameExtract a single frame at a given timestamp for visual verification
video_extract_audioExtract audio as mp3, wav, aac, ogg, or flac
video_exportRender with quality and format settings; optional C2PA signing for final MP4 exports via c2pa_manifest_path
video_normalize_audioNormalize audio loudness to a target LUFS level
video_batchApply the same operation to multiple video files
video_cleanupRemove Kinocut-managed intermediate files
video_hls_segmentSegment video into HLS format with multi-quality variants
video_template_previewPreview social/video template operations before rendering
video_validate_text_layoutValidate text overlays for overlap, low contrast, unsafe positioning, and missing shadows before rendering

For video_composite_layers, positioned non-normal blend requires explicit width and height, an integral nonnegative in-canvas position, full opacity, and no scale, rotation/pivot, mask/matte, or timing window. The compositor crops the running base, blends the same-size layer, and overlays the result back. Full-canvas blend remains supported; other geometry fails closed with unsupported_blend_geometry. Layer alpha_mode is straight by default; premultiplied image/video inputs are explicitly unpremultiplied before transforms and compositing. Top-level passes route effect-noise through layer:<id>, layer:<id>.mask, or layer:<id>.mask.edge. Unknown targets, effects, route/argument fields, and mask routes without a mask fail closed with stable validation errors.


AI-Powered (11 tools)

ToolDescriptionDependencies
video_analyzeComprehensive video analysis: transcript, metadata, scenes, audio, quality, chapters, and colorsFFmpeg; optional Whisper/image extras
video_ai_remove_silenceAuto-remove silent sections with configurable thresholdFFmpeg
video_ai_transcribeSpeech-to-text with timestamp alignmentopenai-whisper
video_intentRoute ~10 semantic intent verbs to a plan (no silent media mutation). Optional goal= compiles a reviewable cutfile. A 360/desk/table/x4 goal plus source= also attaches a 360_assembly_plan (next_action: review_then_sphere_render). See 360_ASSEMBLY.md.
video_propose_brollTranscript-keyed b-roll proposals; human review required, never silent insert
video_translate_captionsTranslate SRT with honest coverage (EN→ES offline map first)
video_language_coverageHonest per-surface matrix for transcribe / translate / dub
video_review_runWatching guardrail: offline metric floor under a review policyFFmpeg
video_review_decideHuman accept/reject/revise on a review_run artifact. If review_run.artifact_kind is 360_assembly_plan, approve/accept/reject that plan and optionally render when output_path is set.
video_ai_scene_detectML-enhanced scene change detection (perceptual hashing)imagehash, Pillow
video_ai_stem_separationIsolate vocals, drums, bass, other instrumentsdemucs, Torch, TorchAudio, TorchCodec
video_ai_upscaleAI super-resolution upscaling (2x or 4x)opencv-contrib-python; Real-ESRGAN/BasicSR where supported
video_ai_color_gradeAuto color grading with style presets or reference matchingFFmpeg
video_quality_checkCheck brightness, contrast, saturation, audio levels, color balance
video_design_quality_checkFull design quality analysis: layout, typography, color, motion, composition
video_fix_design_issuesAuto-fix brightness, contrast, saturation, and audio level issues
video_release_checkpointHard quality gate plus thumbnail/storyboard artifacts before publishing

Install only the AI dependencies you need:

pip install "kinocut[transcribe]"  # Whisper transcription
pip install "kinocut[ai-scene]"    # perceptual scene hashing
pip install "kinocut[stems]"       # Demucs stem separation
pip install "kinocut[upscale]"     # OpenCV upscaling; Real-ESRGAN/BasicSR where supported
pip install "kinocut[ai]"          # all AI extras, kept for compatibility
pip install yt-dlp                   # only for downloading platform URLs (YouTube/Vimeo/...)

Hyperframes — HTML-Native Video (18 tools)

Create videos programmatically using Hyperframes — an HTML-native framework for video (Apache 2.0). Hyperframes owns HTML-video authoring, catalog blocks, website capture, local TTS, transcription import, background removal, layout inspection, diagnostics, benchmarking, and rendering; Kinocut wraps those operations for MCP-safe orchestration and FFmpeg post-processing.

ToolDescription
hyperframes_initScaffold a new Hyperframes project (blank, warm-grain, swiss-grid templates; optional media bootstrap, Tailwind, and resolution preset flags)
hyperframes_renderRender a Hyperframes composition to video (MP4/WebM/MOV/PNG sequence; optional composition, resolution preset, and runtime variables / variables_file flags; arbitrary width/height pairs are rejected instead of silently ignored)
hyperframes_snapshotCapture actual PNG snapshot paths written by Hyperframes with optional runtime variables / variables_file data
hyperframes_stillBackward-compatible single-frame snapshot helper with optional runtime variables / variables_file data
hyperframes_inspectInspect rendered layout for overflow and visual issues
hyperframes_infoRead project metadata
hyperframes_catalogBrowse catalog blocks/components, including social overlays and caption styles
hyperframes_captureCapture a website as editable Hyperframes components
hyperframes_ttsGenerate speech audio with local Hyperframes TTS or list available voices
hyperframes_transcribeTranscribe media to word-level timestamps or import transcripts
hyperframes_remove_backgroundCut a person (default u2net_human_seg) or a product/object (model="birefnet-general", kinocut[object-matte]) out of a still or video. info=true lists models without downloading. No new tool name. Guide: PRODUCT_MATTE.md
hyperframes_doctorRun Hyperframes environment diagnostics
hyperframes_benchmarkCompare render speed and output size, with configurable run count
hyperframes_compositionsList all compositions in a project
hyperframes_previewLaunch Hyperframes preview studio
hyperframes_validateCheck project structure and run lint
hyperframes_add_blockInstall a block from the Hyperframes catalog, with optional clipboard suppression
hyperframes_to_mcpvideoPipeline: render with Hyperframes, then post-process with Kinocut

Repurposing (2 tools)

Create local YouTube/social media packages from one source video. Publishing and scheduling are intentionally out of scope for v1; the tools produce files, manifests, thumbnails, storyboards, and optional release-checkpoint artifacts for a human or downstream publisher to review.

ToolDescription
video_repurpose_planDry-run a platform manifest with vertical, horizontal, and square output variants
video_repurposeRender platform-ready assets plus thumbnails, storyboards, release-checkpoint artifacts, and repurpose_manifest.json

Stream shorts (saved-plan stages, 4 tools)

Local-only review → render → package over a persisted shorts plan. No posting. See STREAM_SHORTS.md.

ToolDescription
shorts_plan_showLoad a saved plan and return source-free proposals for review
shorts_reviewAppend one human decision (approve / reject / trim / title / sensitivity)
shorts_renderRender platform drafts for an approved candidate; cache unchanged digests
shorts_packageWrite portable packages (video, SRT, thumbnail, metadata, manifest)

Sound public join (thin S12, 6 tools)

Bounded local-first sound discovery and invoke via kinocut_sound.public. This is not full-episode sonic-world completion. Results are JSON-safe and fail closed on hostile/privacy boundaries.

ToolDescription
sound_capabilitiesDiscover the bounded public sound operation set (local-first, non-TTY JSON)
sound_plan_validateValidate a SoundPlan payload (or a built-in minimal plan when omitted)
sound_voice_batchRender a local deterministic voice batch from a SoundPlan (relative paths only)
sound_mix_renderRender a bounded local mix for a minimal timeline (duration/stem smoke path)
sound_qa_loudnessMeasure loudness against the default delivery policy on synthetic audio
sound_qa_asrRun the local fake ASR verification port against script hashes

Audio Synthesis (9 tools)

Generate audio from code — no external audio files needed. Pure NumPy, no extra dependencies.

ToolDescription
audio_synthesizeGenerate waveforms: sine, square, sawtooth, triangle, noise. With envelopes, reverb, filtering.
audio_preset15 pre-configured sounds: UI blips, ambient drones, notification chimes, data sounds
audio_sequenceCompose timed audio events into a layered track
audio_composeMix multiple WAV tracks with individual volume control
audio_effectsApply effects chain: lowpass, reverb, normalize, fade
video_add_generated_audioGenerate audio and add it to a video in one call
video_audio_spatial3D spatial audio positioning (azimuth + elevation)
video_duck_audioMix background music under a video's voice with automatic sidechain ducking; music dips while speech plays and recovers in pauses
video_audio_bedGoverned one-shot audio-bed: duck a music bed under a voice track, normalize to EBU R128 target_lufs, optionally loop with crossfade, and emit a deterministic edit-receipt (AudioBedReceipt, operation: "audio_bed", fixed keep_video duration policy). The receipt lands at top-level result["receipt"]; no authorization, duration-policy, or duration-tolerance parameter is exposed.

Visual Effects (8 tools)

ToolDescription
effect_vignetteDarken edges for cinematic focus
effect_chromatic_aberrationRGB color separation (glitch aesthetic)
effect_scanlinesRetro CRT scanline effect with flicker
effect_noiseFilm grain and digital noise
effect_glowBloom/glow for highlights
video_apply_maskApply image mask with edge feathering
video_luma_keyMask out dark regions based on luminance (brightness)
video_shape_maskApply geometric shape mask: circle, rounded_rect, oval

Transitions (3 tools)

ToolDescription
transition_glitchRGB shift + noise for digital distortion
transition_pixelateBlock dissolve with configurable pixel size
transition_morphMesh warp transition

Glitch Effects (12 tools)

CPU-based glitch effects run entirely through FFmpeg. GPU-accelerated effects (marked below) require Node.js, the MCP_VIDEO_CRUSH_PATH environment variable pointing to the CRUSH shader sources, and the canvas npm package — install it once with npm install inside kinocut/_crush_shader/. The tools report exactly which piece is missing.

ToolDescription
glitch_rgb_shiftShift red and blue channels in opposite directions for a chromatic split look; optional per-frame noise for jitter
glitch_scanline_jitterDisplace random horizontal rows of pixels for a CRT malfunction look
glitch_screen_tearingCreate horizontal tear bands at varying Y positions that shift left/right over time
glitch_vhs_trackingSimulate VHS tape tracking errors with color bleed, rolling bands, and analog noise
glitch_macroblockingSimulate codec artifacting with downscale/upscale pixelation and color posterization
glitch_datamoshingSimulate P-frame corruption where displacement drifts across frames then periodically resets
glitch_cmyk_splitShift RGB channels at 90-degree intervals to simulate four-plate offset print registration errors
glitch_turbulent_displacementLayered sin/cos noise approximating fractal Brownian motion for organic-looking displacement
glitch_digital_feedbackIterative frame feedback with scale/rotation transform, creating ghostly trails and recursive patterns (requires Node.js + GPU)
glitch_slit_scanSample each row/column from a different past frame for a time-smeared slit-scan effect (requires Node.js + GPU)
glitch_depth_splattingExtract pseudo-depth from luminance and render the image as scattered points in 3D (requires Node.js + GPU)
glitch_point_cloudSample the image as scattered points in a 3D-rotated grid with depth-based displacement (requires Node.js + GPU)

Layout & Motion Graphics (6 tools)

ToolDescription
video_layout_gridGrid layout for multiple videos (2x2, 3x1, etc.) with clip-count and duration mismatch warnings
video_layout_pipPicture-in-picture with border and positioning
video_text_animatedAnimated text overlays (fade, slide, typewriter) with color, timing, and overflow guardrails
video_mograph_countAnimated number counter video
video_mograph_progressProgress bar/circle/dots animation
video_auto_chaptersAuto-detect scenes and create chapter timestamps

Analysis (8 tools)

ToolDescription
video_detect_scenesAuto-detect scene changes with threshold control
video_thumbnailExtract a single frame (thumbnail / frame grab) at any timestamp
video_previewGenerate fast low-res preview
video_storyboardExtract key frames as a grid for review
video_compare_qualityCompare PSNR/SSIM quality metrics between videos
video_read_metadataRead video metadata tags
video_write_metadataWrite video metadata tags
video_audio_waveformExtract audio waveform peaks and silence regions

Image Analysis (3 tools)

ToolDescription
image_extract_colorsExtract dominant colors from an image or video frame via K-means clustering (1-20 colors)
image_generate_paletteGenerate color harmony palette from an image or video frame
image_analyze_productAnalyze a product image or video frame — extract colors + optional AI description (Claude Vision)

Still / plate editor (5 tools)

See STILL_PLATES.md for order-of-ops, signal LUTs, and cohesion gate policy.

ToolDescription
still_matchMatch a package of stills to a hero with one shared WB/exposure gain; receipt + no source overwrite
still_gradeOrdered grade correct→match→look; optional 3D LUT last; signal-mode near-extrema logging
still_gateFail-closed cohesion gate (luma spread, shadow green/cyan) + contact sheet
image_editFree establish-locked still edit with plan/receipt; paid gen off by default
still_packageFull package job: edit beats → match → grade → gate