Mmcp.market

NIRA Video Production MCP server

by pachote·io.github.pachote/nira-video-mcp·v1.0.3

Video production MCP: 55 tools — edit, grade, TTS captions, beat-sync, master, AI generate.

D48/100grade D
What users say
No reviews yet
Be the first
Safety scan
D48/100

full report

Adoption
Not measured yet

Usage numbers are collected on the next scan

Reviews

Write one

Nobody has reviewed NIRA Video Production MCP yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

NIRA Video Production MCP tools (55, 5 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • ai_gen_cancelwrite action

    Cancel a running AI video generation job. Returns: {render_id, state}

  • ai_gen_fal

    Generate a video using a cloud AI model via fal.ai. model: kling-3.0 (best value), minimax-hailuo-2.3 (cheapest), luma-ray3 (best i2v), veo-3.1 (best quality), pika-2.2. image_path: optional reference image for image-to-video models. aspect_ratio: '16:9', '9:16', '1:1', '4:3'. Returns: {render_id, output_path, estimated_cost_usd} — background job.

  • ai_gen_list_models

    List all available AI video generation models with pricing and capabilities. Returns: {models: [...]}

  • ai_gen_status

    Check the status of an AI video generation job. Returns: {render_id, state, progress, output_path, error}

  • ai_gen_wan2gp

    Generate a video using local Wan2GP (FREE, runs on your 4090). prompt: describe the video you want to generate. duration_frames: number of frames (81=~3s, 121=~5s at 24fps). resolution: '832*480' (fast) or '1280*720' (HD) or '480*832' (vertical). steps: 8 = fast draft, 20 = quality. nsfw_mode: True = adds NSFW LoRA (wan_general_nsfw_v3 at 1.75). image_path: optional input image for image-to-video

  • aud_add_music

    Add background music to a video, mixing with existing audio. music_volume: 0.1=very quiet background, 0.25=subtle, 0.5=equal mix. duck_under_voice: reduce music when original audio is loud (sidechain ducking). fade_out_s: music fade-out duration at end. Returns: {output_path}

  • aud_detect_beats

    Detect BPM and beat timestamps for beat-synced video editing. Uses scipy STFT + autocorrelation (librosa-free, numpy 2.4 compatible). energy: 'low' (cut every 8 beats = slow/cinematic), 'medium' (every 4 beats = bar cuts), 'high' (every 2 beats = energetic). video_duration: if provided, filters cuts to within video length. Returns: {bpm, tempo_confidence, beat_times, cut_points, total_beats}

  • aud_duck_smart

    Smart sidechain audio ducking: music automatically ducks under voice/dialogue. video_path: video (or audio) containing the voice/narration track. music_path: background music file to duck. duck_db: how many dB to reduce music when voice is active. -12 = moderate, -20 = heavy. attack_ms/release_ms: how fast ducking engages and releases. Returns: {output_path, duck_db}

  • aud_extract

    Extract audio track from a video file. format: 'wav', 'mp3', 'aac', 'flac'. Returns: {output_path, duration_s}

  • aud_master

    Full professional mastering chain: EQ → compression → limiting → EBU R128 loudnorm. style: 'music' (-14 LUFS, presence boost, punchy comp), 'podcast' (-16 LUFS, speech-optimised), 'broadcast' (-23 LUFS, EBU R128 strict). target_lufs: override loudness target (ignored if style is 'broadcast'). Works on audio files and video files (passes video stream through unchanged). Returns: {output_path, style

  • aud_mix

    Mix multiple audio/video files' audio tracks together. input_paths: up to 8 files to mix. volumes: per-track volume multipliers (1.0 = unity). Defaults to equal mix. Returns: {output_path}

  • aud_normalize

    Normalize audio to a target loudness (EBU R128 two-pass). target_lufs: -16.0 = YouTube/streaming, -23.0 = broadcast/EBU R128, -14.0 = Spotify. Returns: {output_path, target_lufs}

  • aud_replace

    Replace the audio track of a video with a new audio file. mix_original: 0.0 = completely replace, 0.3 = 30% original + 70% new audio. Returns: {output_path}

  • aud_silencewrite action

    Remove audio from a video (mute / silent output). Returns: {output_path}

  • proj_createwrite action

    Create a named video project to track multiple clips and settings. name: project name (used as identifier). clips: optional list of initial clip paths to add. Returns: {project_id, name, clip_count}

  • proj_list

    List all projects, or get details for a specific project. project_id: if empty, lists all projects. If set, returns that project's clips. Returns: {projects: [...]} or {project: {..., clips: [...]}}

  • proj_render

    Render all clips in a project as a single final video. Clips are concatenated in order with optional transitions between them. transition: 'none', 'fade', 'dissolve', 'wipeleft', 'wiperight'. music_path: optional background music track to add. Returns: {render_id, output_path} — runs as background job.

  • render_cancelwrite action

    Cancel a running background render job. render_id: the render_id of the job to cancel. Returns: {render_id, state}

  • render_list

    List all render jobs (running, completed, failed). Returns: {jobs: [...], counts: {running, done, failed, cancelled}}

  • render_status

    Check the status of any background render job. render_id: the render_id returned when a background job was started. Returns: {render_id, state, progress, output_path, error, description} States: pending, running, done, failed, cancelled

  • vid_chapters

    Embed chapter markers into a video file. chapters: list of {title: str, start_s: float} dicts. Example: [{"title": "Intro", "start_s": 0}, {"title": "Demo", "start_s": 30}] Returns: {output_path, chapter_count}

  • vid_chromakeywrite action

    Remove green/blue screen and composite over a background. foreground_path: footage with green/blue screen. background_path: background video or image. key_color: 'green', 'blue', or hex like '0x3CB043'. similarity: 0.1 = tight key (needs clean lighting), 0.3 = loose key. blend: 0.0 = hard edge, 0.15 = soft anti-aliased edge. Returns: {output_path}

  • vid_concat

    Concatenate multiple video clips in order. input_paths: list of paths to concat (must all be same resolution/fps for stream-copy). re_encode: True = re-encode to ensure compatibility (recommended). Returns: {output_path, duration_s, clip_count}

  • vid_export

    Export video with platform-optimized encoding preset. platform: youtube_4k, youtube_1080, youtube_shorts, tiktok, instagram_reels, instagram_feed, twitter, facebook, linkedin, prores_4444, prores_422, h265_4k, av1_web, gif, web_mp4, nirasynth_xxx. Returns: {output_path, platform, size_mb}

  • vid_export_hls

    Export video as HLS adaptive bitrate ladder (for streaming). Creates 3 renditions: 1080p, 720p, 480p + master playlist. output_subdir: directory name inside OUTPUT_DIR for HLS files. Returns: {playlist_path, renditions}

  • vid_filter

    Apply a raw FFmpeg -vf filter string to a video. filter_string: any valid FFmpeg video filter chain, e.g. 'eq=brightness=0.1:saturation=1.5' or 'gblur=sigma=5,vignette'. Returns: {output_path}

  • vid_glitch

    Apply retro/glitch effects. style: 'vhs' = VHS tape look, 'rgb_split' = color channel separation, 'scanlines' = CRT scanline overlay, 'datamosh' = pixel smear effect. intensity: 1–15 (effect strength). Returns: {output_path}

  • vid_grade

    Apply a cinematic color grade preset. look: teal_orange, vintage_film, blockbuster, noir, warm_golden, cold_blue, lifted_blacks, flat. grain: 0=no grain, 5=subtle, 10=moderate, 18=heavy film grain. Returns: {output_path, look}

  • vid_grain

    Add cinematic film grain. Luma-only (more authentic). strength: 5=subtle, 10=moderate, 18=heavy analog film. Returns: {output_path}

  • vid_halation

    Add cinematic film halation — red/orange glow around bright highlights. strength: 0.2=subtle, 0.45=authentic film, 0.8=heavy. glow_radius: gaussian blur radius for glow spread (default 18). Returns: {output_path}

  • vid_inspect

    Inspect a video file — returns duration, fps, resolution, codecs, size. path: absolute path inside workspace/input/output dirs.

  • vid_list_workspace

    List video files available in the workspace/output directories. subdir: optional subdirectory name within OUTPUT_DIR to list. Returns dict with 'workspace', 'output', 'input' file lists.

  • vid_loop

    Loop a video clip N times or to fill a target duration. loop_count: number of times to repeat (-1 if using total_duration_s). total_duration_s: if > 0, loop until this duration is reached. Returns: {output_path, duration_s}

  • vid_lower_third

    Add a professional animated lower third (name + job title) to a video. Accent bar slides in from left, then name and title fade up. Returns: {output_path}

  • vid_lut

    Apply a .cube LUT file to a video. lut_path: path to .cube LUT file (must be in E:/NIRA_VIDEO_MCP/luts/ or workspace). intensity: 0.0–1.0 blend strength (1.0 = full LUT, 0.5 = 50% mix with original). chain_filters: optional additional -vf filters to append after LUT. Returns: {output_path}

  • vid_manim_render

    Render a Manim Community animation from Python scene code. scene_code: complete Python source defining a Scene subclass. scene_class: name of the Scene class to render. quality: 'l'=480p, 'm'=720p, 'h'=1080p, 'k'=4K. Returns: {output_path, render_id} Runs as background job — poll render_status for completion.

  • vid_metadata

    Read or write video file metadata (title, artist, year, comment, etc.). read_only: True = just return current metadata, no output file. metadata: dict of key/value pairs to embed (e.g. {"title": "My Video", "year": "2026"}). Returns: {output_path} when writing, or {metadata} when reading.

  • vid_motion_blur

    Add motion blur by blending adjacent frames (simulates 180° film shutter). frames: 2=subtle, 4=cinematic, 8=heavy blur (slow motion look). Returns: {output_path}

  • vid_overlay

    Composite one video over another (picture-in-picture / watermark). base_path: background video. overlay_path: video or image to composite on top. x, y: pixel offset for overlay (top-left corner). opacity: 0.0–1.0. start_s / end_s: time range when overlay is visible (-1 = full duration). Returns: {output_path}

  • vid_probe

    Full ffprobe JSON dump for a video — all streams, format metadata. Use vid_inspect for a quick summary.

  • vid_progress_bar

    Add an animated progress bar that fills across the video duration. position: 'top' or 'bottom'. color: hex color or named color. Returns: {output_path}

  • vid_resize

    Resize video to target dimensions. fit: 'contain' = letterbox/pillarbox (no crop), 'cover' = crop to fill, 'stretch' = distort to exact size. Returns: {output_path, width, height}

  • vid_reverse

    Reverse a video clip (plays backwards). Audio is also reversed. Returns: {output_path}

  • vid_speed

    Change video playback speed. speed: 0.25 = 4x slow motion, 0.5 = 2x slow, 1.0 = normal, 2.0 = 2x fast, 4.0 = 4x fast. Audio is pitch-shifted accordingly. Returns: {output_path, duration_s, speed}

  • vid_stabilize

    Stabilize shaky video footage (two-pass vidstab). smoothing: 10=moderate, 30=smooth, 100=locked-off tripod look. shakiness: 1–10, how shaky the source is. Returns: {output_path, render_id} — runs as background job (may take a while).

  • vid_subtitles

    Add subtitles to a video from an SRT file. burn_in: True = render text into frames (compatible everywhere). False = add as soft subtitle track (MKV/MP4 container only). Returns: {output_path}

  • vid_text_overlay

    Add animated text overlay to a video. position: 'center', 'top', 'bottom', 'top_left', 'top_right', 'bottom_left', 'bottom_right', or 'x=100:y=200'. animation: 'fade', 'slide_up', 'typewriter', 'none'. duration_s: -1 = entire video. Returns: {output_path}

  • vid_thumbnail

    Extract a single frame from a video as a JPEG image. timestamp_seconds: position in video to grab (default 1.0s). width: output thumbnail width in pixels (height auto-scaled).

  • vid_thumbnail_sprite

    Generate a thumbnail sprite sheet (contact sheet) for video scrubbing UIs. interval_s: how many seconds between each thumbnail. thumb_width: width of each thumbnail in pixels. Returns: {output_path, count, columns}

  • vid_title_card

    Generate a standalone animated title card video (no input needed). Title slides up and fades in, then fades out. Use vid_concat to prepend it to another clip. Returns: {output_path, duration_s}

  • vid_transition

    Concatenate two clips with an xfade transition between them. transition: fade, dissolve, wipeleft, wiperight, wipeup, wipedown, slideleft, slideright, slideup, slidedown, circlecrop, rectcrop, distance, radial, smoothleft, smoothright, smoothup, smoothdown, circleopen, circleclose, vertopen, vertclose, horzopen, horzclose, fadegrays, pixelize. duration_s: length of the crossfade (default 1.0s). Re

  • vid_trim

    Trim a video to a start/end time range. start_seconds: trim start (default 0). end_seconds: trim end (-1 = until end of file). re_encode: False = stream-copy (fast, may be slightly imprecise at cut points). True = re-encode (slow, frame-accurate). Returns: {output_path, duration_s}

  • vid_tts_caption

    Generate TTS voiceover from script using ElevenLabs, mix with video, and optionally produce SRT caption file with word-level timestamps. Requires ELEVENLABS_API_KEY environment variable. voice_id: ElevenLabs voice ID. Default = Rachel (calm narration). Other voices: AZnzlk1XvdvUeBnXmlld (Domi), TxGEqnHWrfWFTfGW9XjX (Josh/deep). mix_volume: volume of TTS voice in final mix (1.0 = full, 0.7 = slight

  • vid_vignette

    Add a cinematic vignette (dark edges) to a video. strength: 0.2=subtle, 0.5=moderate, 0.8=heavy. Returns: {output_path}

  • vid_waveform

    Generate an audio waveform image from a video file. Returns a PNG image showing the audio waveform.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

1 medium
  • Code scan17 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancerepository not readable: repo not found3/15
  • Maintainer identityno repository or website to verify2/10

Findings (1)

  • mediumsubprocess with shell=Trueexec.shell-true
    nira_video_mcp-1.0.3/tools/ffmpeg_utils.py: …FFmpeg subprocess utilities. Never uses shell=True. """ import asyncio import json import …
Overall 48/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install NIRA Video Production MCP in Claude Code, Cursor or VS Code

claude mcp add nira-video-mcp -- uvx nira-video-mcp
Add to Cursor

NIRA Video Production MCP: common questions

Is NIRA Video Production MCP server safe?
Not recommended: it is graded D (48/100). Read the NIRA Video Production MCP safety report
How do I install NIRA Video Production MCP?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does NIRA Video Production MCP need an API key?
Yes. The registry entry asks for FAL_KEY.
Is NIRA Video Production MCP maintained?
The latest release is v1.0.3.
What can I use instead of NIRA Video Production MCP?
Servers from other publishers that do the same job: Rendobar MCP server, StudioMeyer Video MCP server and Kinocut MCP server. Compare all NIRA Video Production MCP alternatives.

Alternatives to NIRA Video Production MCP

Same job from other publishers: the closest match first, then the best rated.

All NIRA Video Production MCP alternatives →
  • Rendobar
    Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.
    A
  • StudioMeyer Video
    Video production: recording, editing, effects, captions, TTS, screenshots. 8 tools.
    B
  • Kinocut
    Guardrailed video editing for AI agents: FFmpeg, captions, effects, Hyperframes, and receipts.
    B
  • KiCad MCP Pro
    Production-grade MCP server for KiCad EDA—PCB design, DRC, simulation, BOM, DFM, and manufacturing.
    A
  • Oh My Cassette
    Chat-driven AI video montage: beat-synced cuts, auto-matched music, subtitles, transitions.
    C

More from pachote →