# Blazing Video (mcpb · blazing-video.mcpb)

Record your Mac screen, face and voice, edit the video by its transcript, and share a link.

- Trust score: 36/100 (low)
- Change this week: −2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- mcpb · `blazing-video.mcpb`: 36/100 (this document), [markdown](https://verifymcp.io/servers/com-blazingvideo-blazing-video/blazing-video.md), [page](https://verifymcp.io/servers/com-blazingvideo-blazing-video/blazing-video)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/acstener/takes-plugin/releases/download/v0.2.0/blazing-video.mcpb`
- Transport: `stdio`
- SHA-256: `c6c762093d315763f228683eca36e33d297324b5065ac4927adeb3352feb8813`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **Provenance & Transparency**: 19/100
  - Repository check failed: the declared repository URL redirects; it must resolve directly.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 7 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2138 tokens (~125/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 85/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 56% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Blazing Video MCP server?

Blazing Video ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, c6c762093d315763f228683eca36e33d297324b5065ac4927adeb3352feb8813; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/acstener/takes-plugin/releases/download/v0.2.0/blazing-video.mcpb`
- SHA-256: `c6c762093d315763f228683eca36e33d297324b5065ac4927adeb3352feb8813`

### Verify on macOS / Linux

```bash
echo "c6c762093d315763f228683eca36e33d297324b5065ac4927adeb3352feb8813  blazing-video.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\blazing-video.mcpb).Hash -eq "c6c762093d315763f228683eca36e33d297324b5065ac4927adeb3352feb8813"
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 36, +3)

- [functional improvement] Stability: unverified → 0.27

### 2026-11-01 (score 33, −5)

- [security regression] Source repository: pass → fail

### 2026-10-28 (score 38)

First indexed and scored.

## MCP tools (17)

### `start_recording` (~151 tokens)

Start recording

Start recording the user's screen, camera and microphone (a small island appears at the bottom of their screen). Returns once it is actually rolling — or, if the camera can't start, with a cameraWarning and NOT recording: tell the user why and call again (camera:false records without it). Tell the user to talk and to stop with ⌥⇧R or the island's Stop; then call wait_for_take so you get the take the moment it ends (or stop_recording if they ask you to stop it).

Input parameters:

- `camera` (boolean): Record the webcam (default: the user's last setting).
- `microphone` (boolean)
- `systemAudio` (boolean): Also record computer audio.

### `stop_recording` (~48 tokens)

Stop recording

Stop the recording. Returns the take and its transcript and opens it in the editor, ready for get_transcript / cut_ranges / cut_fillers / tighten_pauses / get_frame / export.

### `wait_for_take` (~140 tokens)

Wait until the take that's rolling stops — by ⌥⇧R, the island's Stop or stop_recording — and return it the way stop_recording does: opened in the editor, with its transcript and share link. Call it right after start_recording so you have the take the moment it ends. If it's still rolling at the timeout it says so; call it again. With nothing rolling it returns the last take.

Input parameters:

- `take` (string): A take's base name to wait for (default: the one rolling now).
- `timeoutSeconds` (number): How long to wait (default 900, max 3600).

### `recording_status` (~35 tokens)

Recording status

Whether the recorder is idle, starting, ready or recording, how long the current take has been rolling, and the last finished take.

### `get_transcript` (~50 tokens)

Read the transcript

The open take's words with index, text, source startMs/endMs and whether each is cut (trimmed words count as cut), plus the keep ranges, current cuts, the trim and durations.

### `cut_ranges` (~122 tokens)

Cut words or ranges

Cut source-clock time ranges (ms) from the edit — one undoable step in the app. Optionally cut whole words by index (uses the same word-boundary padding as deleting in the transcript). Set restore=true to un-cut the ranges instead.

Input parameters:

- `ranges` (array): Source-clock ranges in ms, as [{"startMs":1200,"endMs":1850}] or [[1200,1850]].
- `restore` (boolean): Un-cut instead of cut.
- `wordIndices` (array): Word indices from get_transcript to cut.

### `set_camera` (~323 tokens)

Place and style the webcam

Change how the webcam sits on the screen recording (the two are separate tracks, so this is non-destructive and applies to the preview, get_frame, export and share). Omit a field to keep it. position: a corner (top-left, top-right, bottom-left, bottom-right) or x/y (0–1, centre of the camera, top-left origin). size: fraction of the frame's shorter edge (0.12–0.6; default 0.26). shape: circle, rounded or square (a circle that isn't square is a pill). aspect: the box's width:height — 1:1, 4:3, 3:4 (portrait) or 16:9. zoom: crop into the camera, 1–3. panX/panY: which part of the camera shows when cropped, -1…1 (left…right, top…bottom; 0 = centred). visible:false hides the camera. removeBackground:true cuts the person out of their background (on-device). Returns the layout.

Input parameters:

- `aspect` (string)
- `panX` (number)
- `panY` (number)
- `position` (string)
- `removeBackground` (boolean)
- `reset` (boolean): Back to the default bubble (bottom-right circle).
- `shape` (string)
- `size` (number)
- `visible` (boolean)
- `x` (number)
- `y` (number)
- `zoom` (number)

### `set_background` (~189 tokens)

Put the video on a wallpaper

The studio look: the screen recording inset on a soft gradient wallpaper with rounded corners and a soft shadow; the webcam stays on top (its corners snap inside the screen). Non-destructive; applies to the preview, get_frame, export and share, and becomes the default look for new takes. Omit a field to keep it. enabled:false goes back to the plain full-frame recording. wallpaper: dusk, ocean, aurora, mint, peach, snow or graphite (picking one turns it on). padding: space around the screen as a fraction of the frame's shorter edge, 0–0.2 (default 0.07). roundness and shadow: 0–1. Returns the look.

Input parameters:

- `enabled` (boolean)
- `padding` (number)
- `roundness` (number)
- `shadow` (number)
- `wallpaper` (string)

### `trim` (~231 tokens)

Trim the start or end

Trim the head and/or tail of the take — where the edit starts and ends — as one undoable step (like dragging the timeline's end handles). Give startMs/endMs on the SOURCE clock (same as word startMs/endMs; they snap to the nearest word boundary with the usual cut padding unless exact:true), or startWord/endWord: the first/last word index to keep. Omit a side to leave it as it is; clear:true removes the trim. Cuts inside the trimmed parts are kept, so clearing brings back the take as it was edited.

Input parameters:

- `clear` (boolean): Remove the trim (applied before startMs/endMs/startWord/endWord).
- `endMs` (number): Source ms the edit ends at.
- `endWord` (integer): Last word index to keep (trims everything after it).
- `exact` (boolean): Use startMs/endMs as given, no snapping to word boundaries.
- `startMs` (number): Source ms the edit starts at.
- `startWord` (integer): First word index to keep (trims everything before it).

### `get_frame` (~52 tokens)

Look at a frame

PNG of the edited video at timeMs on the EDITED clock (after cuts), with the face circle composited.

Input parameters:

- `maxWidth` (number): Default 1280.
- `timeMs` (number, required)

### `export` (~125 tokens)

Export the video

Export the edit to an MP4 in ~/Movies (hardware encode). Returns the path and how long it took. Blocks until done.

Input parameters:

- `codec` (string): Default: the app's current choice (HEVC).
- `engine` (string): writer (default, fast HW pipeline) or session (AVAssetExportSession, for comparison).
- `fps` (integer): Frame-rate cap. Default: the app's setting (30).
- `height` (integer): Output height, e.g. 1080. 0 or omitted = the app's setting (native by default).

### `cut_fillers` (~22 tokens)

Cut filler words

Cut every um/uh-style filler word (one undo step).

### `tighten_pauses` (~33 tokens)

Tighten pauses

Trim every pause over 0.4 s between kept words down to 0.15 s (one undo step).

### `undo` (~12 tokens)

Undo the last edit

Undo the last edit.

### `share` (~83 tokens)

Share a link

Get a share link for the current edit (on the user's Cloudflare). The link is created and copied to the clipboard at once; the video exports and uploads behind it (the page shows progress, then plays). If the take was shared before, this updates the SAME link with the current edit. wait:true returns only once the link plays.

Input parameters:

- `wait` (boolean)

### `open_take` (~152 tokens)

Open a take

Open a take in the editor by path: a take's <base>.mov (or any sidecar), or ANY video file (.mp4/.mov/.m4v — a download, a screen recording from another app), which is imported as a take (an instant APFS clone in the Recordings folder, not a copy) and transcribed on device first (~3 s for 5 min), so get_transcript / cut_ranges / get_frame / export / share work on it. Fails if the path can't be opened. Without a path, opens the newest take. To read what a video says and shows, use understand_video instead.

Input parameters:

- `path` (string): Absolute path (~ is fine).

### `understand_video` (~311 tokens)

Watch a video

Read a whole video in one call: when the user hands you a video or audio file (a feedback walkthrough, a bug repro, a demo, a meeting) or asks what a take says or shows. Returns its duration, resolution, a timestamped transcript in sentence lines (on-device Parakeet, a 5 min video in a few seconds) and up to maxFrames key frames where the picture changes, as images marked into the transcript (▣n) so you can tie what was said to what was on screen. A video file that isn't a take is imported (instant clone, transcript cached for next time) and opened in the editor, so get_frame for a closer look at any moment, cut_ranges, export and share then work on it. Without a path, reads the take open in the editor (e.g. right after stop_recording). Audio files get the transcript only.

Input parameters:

- `frameWidth` (integer): Key frame width in px, 320–1568 (default 1024; raise it to read small on-screen text, or get_frame one moment).
- `maxFrames` (integer): Key frames to attach, 0–30 (default 12). 0 for the transcript only.
- `open` (boolean): Open it in the editor (default true).
- `path` (string): Absolute path to a .mp4/.mov/.m4v (or .m4a/.mp3/.wav…). Omit for the open take.

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/com-blazingvideo-blazing-video/blazing-video#diagnostics

## Score history

- 2026-11-05: 36
- 2026-11-04: 33
- 2026-11-03: 33
- 2026-11-02: 33
- 2026-11-01: 33
- 2026-10-31: 38
- 2026-10-30: 38
- 2026-10-29: 38
- 2026-10-28: 38

## Common questions

### What is the Blazing Video MCP server?

Blazing Video is an MCP server listed in the public MCP registry as com.blazingvideo/blazing-video. Record your Mac screen, face and voice, edit the video by its transcript, and share a link. This page covers its MCPB bundle (https://github.com/acstener/takes-plugin/releases/download/v0.2.0/blazing-video.mcpb).

### Is the Blazing Video MCP server safe to use?

Blazing Video scores 36 out of 100 on VerifyMCP. 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 Blazing Video MCP server expose?

Blazing Video exposes 17 tools: start_recording, stop_recording, wait_for_take, recording_status, get_transcript, and 12 more. Their descriptions and schemas cost roughly 2,079 tokens of context every time the server is loaded.

### What licence is the Blazing Video MCP server under?

Blazing Video declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Website: https://blazingvideo.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-blazingvideo-blazing-video/blazing-video.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-blazingvideo-blazing-video/blazing-video.json
- HTML version of this page: https://verifymcp.io/servers/com-blazingvideo-blazing-video/blazing-video
