Skip to main content
Glama

start_recording

Start capturing the full macOS desktop to an MP4 video file. Configure quality, frame rate, and audio, then get a session ID and output path to manage the recording.

Instructions

Start recording the full macOS desktop to a video file. Records all connected screens (by default the primary display) using FFmpeg avfoundation. Only one recording can be active at a time. Returns a session ID and output path. Requires Screen Recording permission granted to this terminal app in System Settings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fpsNoFrames per second. Range 1–60. Default: 30. Use 15 for smaller files, 60 for smooth demos.
presetNoFFmpeg encoding speed preset. Faster = lower CPU but larger file. Default: ultrafast (minimal system impact during recording).
qualityNoVideo quality. low=small file, medium=balanced (default), high=crisp. Maps to H.264 CRF 35/28/18.
audio_indexNoavfoundation audio device index. Use list_screen_devices to find audio device indices. Omit for no audio. Use -1 to explicitly disable audio.
output_pathNoOutput file path. Must end in .mp4. Relative paths resolve to ~/Movies/screen-recordings/. If omitted, auto-generates a timestamped filename.
screen_indexNoavfoundation screen device index. Use list_screen_devices to find available indices. Defaults to primary display (usually index 1).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and does well: it reveals side effects (captures desktop, produces a video file), scope of capture (all connected screens, primary by default), the single-active-session constraint, the return contract (session ID and output path), and the OS-level permission requirement. It does not cover failure modes (e.g., behavior when permission is missing or a recording is already active), which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences, each carrying distinct information: purpose, scope/mechanism, concurrency constraint, return values, and permission prerequisite. The purpose is front-loaded, and there is zero redundancy or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter tool with no output schema and no annotations, the description covers the essentials an agent needs: what the tool does, its system requirements, the active-session limit, and the meaningful return values (session ID and output path). Edge behavior (errors when permission is denied or a recording is already active, whether the call blocks) is undisclosed, which is a minor gap given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies even though the tool description itself adds no parameter-level information. The schema descriptions are notably rich (defaults, enum tradeoffs, CRF mapping, cross-references to list_screen_devices, path-resolution rules), but that is credit to the schema, not the description under evaluation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Start recording the full macOS desktop to a video file') and differentiates itself from its siblings: starting contrast with stop_recording, and the recording/device focus contrasts with get_recording_status, list_recordings, and list_screen_devices. The scope detail ('Records all connected screens (by default the primary display)') and mechanism (FFmpeg avfoundation) make the tool's identity unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear invocation context: a concurrency precondition ('Only one recording can be active at a time') and a hard prerequisite ('Requires Screen Recording permission granted to this terminal app'). It does not explicitly name alternatives or state when-not-to-use conditions, but the single-active-recording constraint effectively tells an agent to check get_recording_status first, and the schema cross-references list_screen_devices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.