Skip to content

redact_sensitive

The redact_sensitive tool redacts rectangular regions in videos using ffmpeg. It supports three operating modes and three visual effects, making it easy to hide sensitive content before sharing or analyzing screen recordings.

The simplest usage — just provide the video path and describe what to blur using the intent field:

"Redact the video at ./screen-recording.mp4 — blur the API keys shown in the terminal"

AI detection is enabled automatically when you use intent. No manual coordinates or explicit consent needed.

ParameterTypeRequiredDefaultDescription
videoPathstringPath to the video file (local path, file:// URI, or http(s):// URL)
intentstringNatural-language description of what to redact, e.g. "blur the API keys" or "hide all passwords"
effect"blur", "pixelate", "blackout""blur"Visual effect applied to redacted regions
previewOnlybooleanfalseIf true, returns preview frames with overlays instead of writing a redacted video
regionsArray<RedactionRegion>Array of rectangular regions to redact. Required when detectionMode is "manual"
detectionMode"manual", "ai", "hybrid""manual"How regions are determined. "manual" = user-supplied coordinates; "ai" = AI detection; "hybrid" = both
allowRemoteDetectionbooleanfalseMust be true for AI/hybrid modes (sampled frames are sent to the AI provider). Implicitly granted when using intent.
provider"gemini", "m3", "kimi", "qwen", "mimo", "glm"AI provider for detection. Falls back automatically if unavailable.
sampleIntervalSecondsnumber5Interval between sampled frames for AI detection
maxFramesnumber20Maximum number of frames to sample for AI detection
minConfidencenumber (0–1)0.5Minimum confidence threshold for AI detections. Detections below this are dropped.
paddingPixelsnumber (0–100)10Extra padding in pixels to expand each detected region
customInstructionsstringAdditional instructions for AI detection, e.g. "Focus on the terminal window in the top-right corner"
outputPathstringCustom output path for the redacted video. If omitted, a temp path is used.

Each region in the regions array has this shape:

FieldTypeRequiredDescription
xnumberLeft edge in pixels from the left of the frame
ynumberTop edge in pixels from the top of the frame
widthnumberWidth of the region in pixels
heightnumberHeight of the region in pixels
startTimenumberStart time in seconds (inclusive). Omit for full-video.
endTimenumberEnd time in seconds (inclusive). Omit for full-video.
labelstringOptional human-readable label for the region

Just describe what you want redacted in natural language. The tool auto-classifies the category, enables AI detection, and grants implicit consent.

intent: "blur the API keys shown in the terminal"
intent: "hide all passwords and credentials"
intent: "blackout the email addresses in the contact form"

No regions, detectionMode, or allowRemoteDetection needed.

Supply pixel coordinates directly. Never sends frames to an AI provider — fully local and privacy-safe.

{
"videoPath": "./recording.mp4",
"detectionMode": "manual",
"effect": "blur",
"regions": [
{
"x": 100,
"y": 200,
"width": 300,
"height": 50,
"startTime": 5,
"endTime": 15,
"label": "api_key"
}
]
}

Samples frames across the video, sends them to an AI provider to detect sensitive regions, then applies redaction locally via ffmpeg. Requires allowRemoteDetection: true.

{
"videoPath": "./recording.mp4",
"detectionMode": "ai",
"allowRemoteDetection": true,
"effect": "pixelate",
"provider": "gemini",
"minConfidence": 0.6
}

Combines manual regions with AI-detected regions. Set detectionMode: "hybrid" or use intent alongside explicit regions.

{
"videoPath": "./recording.mp4",
"intent": "blur the API keys",
"regions": [
{ "x": 500, "y": 600, "width": 200, "height": 30, "label": "known_secret" }
]
}

Set previewOnly: true to generate annotated frames with drawbox overlays so you can verify detected regions before committing to a full render.

{
"videoPath": "./recording.mp4",
"intent": "blur the API keys",
"previewOnly": true
}

The tool returns:

  • Human-readable summary — detection mode, effect, number of sampled frames, detections retained, regions applied
  • Structured JSON report — machine-readable block with inputVideo, outputVideo, effect, detectionMode, providerUsed, sampledFrames, rawDetections, regionsApplied, warnings
  • Preview frames (in preview mode) — images with redaction boxes overlaid
  • Pro licenseVIDEO_MCP_LICENSE_KEY required
  • ffmpeg — required for all redaction rendering; uses bundled @ffmpeg-installer/ffmpeg binaries
  • AI provider key — required for AI-assisted detection (any of the 6 video providers)
  • AI detection consentallowRemoteDetection: true required for detectionMode: "ai" or "hybrid" (automatically granted when using intent)

Intent-driven (simplest):

"Redact ./screen-recording.mp4 — blur the API keys shown in the terminal"

Manual mode with time-bounded regions:

{
"videoPath": "./meeting.mp4",
"detectionMode": "manual",
"effect": "blackout",
"regions": [
{
"x": 0,
"y": 0,
"width": 400,
"height": 60,
"startTime": 10,
"endTime": 45,
"label": "participant_email"
}
]
}

Preview before committing:

{
"videoPath": "./demo.mp4",
"intent": "hide all credentials",
"previewOnly": true,
"minConfidence": 0.7
}

Custom output path with pixelate effect:

{
"videoPath": "./recording.mp4",
"effect": "pixelate",
"regions": [{ "x": 100, "y": 200, "width": 300, "height": 50 }],
"outputPath": "./output/redacted.mp4"
}