MCP tool reference
Generated from the same manifest the app serves to clients — 42 tools. See Editing with AI agents for how to connect.
App & recording
Section titled “App & recording”| Tool | What it does |
|---|---|
get_app_status | Where Kapture is right now: recording state, whether the editor is open, the active project, and permission status. Call this first when you are unsure what the app is doing. |
get_permissions | Status of every macOS permission Kapture uses (screen recording, camera, microphone, accessibility, input monitoring, speech recognition). |
request_permission | Asks for one permission. Screen Recording, Accessibility, and Input Monitoring can only be granted by the user in System Settings — pass openSystemSettings to take them there. |
activate_app | Brings Kapture to the front, optionally opening a specific window. Pass path, name, or id with window ‘editor’ to focus that open project. |
list_capture_sources | Displays, windows, cameras, and microphones available to record, plus the app’s current capture defaults. Use the ids from here with start_recording. |
start_recording | Starts a screen recording. Returns once capture is live (after the countdown). Stop it with control_recording, which creates a project and opens the editor. |
control_recording | Pause, resume, stop, discard, or restart the running recording, or stamp a marker/zoom mark into it. ‘stop’ finalises the take, creates a project, and opens the editor. |
get_recording_status | State, elapsed time, and countdown of the current recording. |
Projects & timelines
Section titled “Projects & timelines”| Tool | What it does |
|---|---|
list_projects | Recently opened projects plus every .kapture package in the app’s auto-save folder. |
open_project | Opens a project in its own editor window. Other open projects stay put — call open_project again to work in two at once, then copyClips / pasteClips to move clips between them. Identify it by path, by name (fuzzy, mos… |
open_video | Opens an mp4/mov (or similar) as a new Kapture project and shows the editor — the same as File → Open Video. Use this when the input is a long finished video rather than a .kapture recording. Then analyze_timeline and… |
get_project | The full editable state of an open project: canvas (including crop and output size), cursor, camera, audio, captions, timelines, counts, playhead, and source media. Defaults to the frontmost window; pass path, name, o… |
save_project | Writes the project to its .kapture package. Optionally renames it — which moves the file to match — or saves to a new path. |
manage_timelines | Timelines are alternative cuts of the same recording — separate trims, zooms, captions and masks over one set of source media. nest places another timeline as one block, insert copies its clips in, and extract moves clips into a new timeline. |
get_edit_state | The complete editable model of one timeline — every clip, keyframe pose, easing, caption style, audio clip and canvas setting — with stable ids, a revision, and the list of editor actions. Changes nothing. |
apply_edit_batch | Up to 500 clip, audio-clip and settings patches in one request, using the projectID and revision from get_edit_state. Objects merge, arrays replace, null removes a field. Everything is validated before anything commits; dryRun checks without applying. Never moves the playhead or the selection. |
manage_shortcuts | Lists every editor and recording shortcut, or sets or resets one. Conflicts swap exactly as they do in Settings. |
Playback & timeline edits
Section titled “Playback & timeline edits”| Tool | What it does |
|---|---|
control_playback | Starts or stops preview playback. Needs the editor window open. |
set_playhead | Moves the preview playhead. Give one of seconds, sourceSeconds, normalized, or marker. |
run_editor_action | Runs any keyboard-reachable editor verb by name — the escape hatch for anything the other tools do not cover. Needs the editor open. Names include playPause, splitAtPlayhead, rippleDeleteClip, deleteSelection, setTrim… |
trim_timeline | Sets the in and out points of the recording. Omitted edges keep their current value. |
split_at | Adds an edit point, cutting the clip in two without removing any media. Splits the arranged clip when the timeline has been rearranged. |
delete_range | Ripple-deletes a span on every lane: the screen, camera, sound and overlays that played during it are removed and everything after it closes up, shortening the output. |
set_speed | Applies a speed multiplier (0.25–8) to a range, or to the whole trimmed timeline when no range is given. 1× removes the ramp. |
reset_timeline_edits | Clears trim, cuts, splits, and speed ramps. Zooms, masks, and captions stay. |
Zooms, masks & markers
Section titled “Zooms, masks & markers”| Tool | What it does |
|---|---|
manage_zooms | Zoom keyframes push the camera into part of the frame for a span of time. ‘auto’ rebuilds the whole set from the recording’s cursor and keyboard activity. |
manage_masks | Masks blur or spotlight a rectangle of the frame — used to redact something on screen. Without a duration a mask runs to the end of the recording. |
manage_markers | Timeline markers (flags) bookmark moments. ⌥← / ⌥→ in the editor jump between them. |
Look & sound
Section titled “Look & sound”| Tool | What it does |
|---|---|
set_canvas | The frame the recording sits in: aspect ratio, output size, background, padding, corner radius, shadow, 3D tilt, and crop. Only the fields you pass change. tilt takes enabled, a direction from the nine grid positions (the side that leans away), an amount in degrees and a perspective from 0 to 1. |
set_cursor | How the recorded pointer is drawn: style, size, smoothing, idle hiding, motion blur, click ripple, and click sounds. |
set_camera | The webcam overlay: whether it shows, its shape, crop, size, position, mirroring, border, and how much it shrinks during a zoom. Only works when the recording has a webcam track. |
set_audio | Track levels and processing: microphone, system audio, and music volumes, loudness normalisation, noise reduction, ducking, and the music bed. |
manage_audio | Import a narration file onto the audio lane, list clips, or delete one. Live recording is in the editor; this imports an existing file at the playhead (or at ‘start’). |
manage_captions | On-device transcription and caption editing. ‘generate’ transcribes the recording’s audio and can take a while on a long take. ‘setStyle’ changes the whole track’s look; ‘update’ can restyle or retime one cue. |
set_shortcuts_overlay | The key-cap overlay built from keystrokes captured during recording: whether it shows, where, how big, and whether plain keys count or only chords. |
manage_presets | Saved looks — canvas, camera, cursor, zoom easing, audio processing, keystroke overlay and caption styling — reusable across projects. ‘update’ re-captures an existing preset from the project’s current look. ‘setDefau… |
Clips & analysis
Section titled “Clips & analysis”| Tool | What it does |
|---|---|
manage_clips | Pictures, movies, titles and shape annotations on the timeline. text and shape each add a clip when given no id and restyle one when given an id — a shape takes its kind (arrow, line, rectangle, ellipse), colour, thickness, fill, rotation, both endpoints and flip. Import a file, crop its source (not a scale), move/resize its layout on the canvas, lean it in 3D with tilt on the layout action (clearTilt lays it flat again, or hands a recorded segment back to the recording’s tilt), retime, hide, or delete. trackIndex picks a lane on create, on edit and via moveToTrack, and is refused — naming the clip in the way — rather than quietly placed somewhere else; compactTracks packs every overlay down onto the fewest lanes their timing allows. Recording crop still lives on set_canvas cropRect. |
analyze_timeline | Reads the open project’s transcript, markers, zooms, and click/key activity and returns suggested highlight ranges. Does not transcode. If there are no captions yet, call manage_captions action generate first — speech… |
create_reels | Cuts several standalone timelines from the open recording or imported video. Each reel is its own timeline (trim + clips) ready to edit and export — nothing is re-encoded. Pass reels: [{start, end, name}] in source se… |
Export
Section titled “Export”| Tool | What it does |
|---|---|
list_export_presets | Export presets and quality tiers, with an estimated file size for the open project. |
export_video | Starts an export and returns a job id immediately — rendering runs in the app. Poll get_export_status until the state is completed or failed. Takes a frameRate of auto, fps30 or fps60 alongside the preset and quality; fps30 finishes far quicker. Without a path it writes to ~/Movies/Kapture Exports. |
get_export_status | Progress of an export job — state, percentage, elapsed time, output path, and file size when it finishes. Omit jobID for the most recent one. |
cancel_export | Stops a running export and deletes the partial file. |
export_still_frame | Writes one composed frame as a PNG — the fastest way to see what an edit actually looks like. Defaults to the playhead. |
get_export_history | Everything exported from this project, plus this session’s export jobs. |