record
Capture and recordingFull
Record the screen or audio as the recorder does, its panel on screen. One recording runs at a time; state lists it (an agent's, or one the user started: pause, resume and stop act on theirs as the panel's buttons do). A recording lands in folder (a rel path, '' the save root), else where the user is looking when it starts. stop's result names the new item (id, path). With into, the take goes into the video open in the video editor instead, as a clip by the playhead (clip_id), not into the library.
Needs the Full level, which is the default for any client holding the bearer token.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
action | string one of "start", "pause", "resume", "stop", "cancel", "devices" | yes | What to do. start: Start recording, with the recording panel (timer, Pause, Stop) on screen so the user sees it and can stop it, after countdown seconds. source screen (a display), window, region (rect) or audio (no picture). A microphone or camera asks the user the first time; their answer is kept. into (a video's id, the one open in the video editor) records a clip into it, as the editor's Record a clip… does: stop inserts the take by the playhead and names the clip. (source, display, window_id, title, owner, rect, mic, mic_channel, mic_profile, denoise, camera, system_audio, countdown, quality, cursor, keystrokes, fps, folder, into) pause: Pause the recording (the one in progress, or recording_id): an agent's, or one the user started, as the panel's Pause does. (recording_id) resume: Resume a paused recording. (recording_id) stop: Stop the recording. An agent's is saved into the library and named (id, path); one the user started goes to their review, as the panel's Stop sends it, and they save or discard it. (recording_id) cancel: Stop a recording an agent started and throw it away. Not the user's own. (recording_id) devices: The microphones (id, name, channels) and cameras (id, name) start can name. |
source | string one of "screen", "window", "region", "audio" | no | start: what to record. |
display | integer | no | start, screen: a display's id from screen list (default the main display). |
window_id | integer | no | start, window: its id from screen list; the recording follows the window as it moves. |
title | string | no | start, window: or its title (an exact match wins over a substring). |
owner | string | no | start, window: the app that owns the titled window. |
rect | integer[] | no | start, region: [x, y, width, height] in global screen points. |
mic | string | no | start: a microphone's id or name from devices (default none). The user is asked the first time. |
mic_channel | string | no | start, mic: which input: a channel ('1') or a stereo pair ('1+2') (default the first, or the first pair). |
mic_profile | string one of "voice", "music", "custom" | no | start, mic: what the microphone records, as the recorder's "Optimize mic audio for" row: voice (denoise and levelling, default), music (neither) or custom (denoise as given, levelling as the user's Normalize setting). |
denoise | boolean | no | start, mic_profile custom: the denoiser (default true). |
camera | string | no | start, a screen: a camera's id or name from devices, recorded beside the screen (default none). The user is asked the first time. |
system_audio | boolean | no | start: the computer's own sound (default false). |
countdown | integer | no | start: seconds counted down on screen first: 0 (default), 3, 5 or 10. |
quality | string one of "low", "medium", "high", "max" | no | start, a screen: the recorder's quality (default high). |
cursor | boolean | no | start, a screen: record the pointer's track, for the editor's cursor effects (default true). |
keystrokes | boolean | no | start, a screen: record keystrokes for the keystroke overlay (default false; needs Input Monitoring). |
fps | integer | no | start, a screen: frames per second (default 30). |
folder | string | no | start: where it goes (default: the folder open in the gallery). |
into | string | no | start: a video's id (or path), the one open in the video editor: the take becomes a clip of it, inserted by the playhead, as Record a clip… does. A screen, window or region only. |
recording_id | string | no | pause / resume / stop / cancel: which recording (default the one in progress). |
Example
A JSON-RPC call to POST http://localhost:21516/mcp with the bearer token, filling in the required parameters:
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "record", "arguments": { "action": "start" } }}See the MCP server overview for how to connect a client and where the token lives.