Screen Studio MCP
Records and edits videos of macOS app windows, displays, or areas with native clicks, typing, scrolling, drags, taps, and holds, using macOS accessibility and screen recording permissions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Screen Studio MCPRecord a 30-second demo of my app's onboarding and edit it."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Screen Studio MCP
Screen Studio MCP lets Claude Code or Codex make a real video in Screen Studio. It uses your app with real clicks and taps, records it, reads the footage, cuts it with editing rules about pacing, adds voice, captions and music, and exports every size you need. Every edit happens live in the Screen Studio editor, on your screen, with the app's own undo.
Unofficial. Not affiliated with Screen Studio.
Start Here
Run one command:
npx screenstudio-mcpIt installs the MCP server and three skills (record, edit, deliver) into Claude Code and Codex, then checks your Mac. Restart your agent and ask:
Record a 30-second demo of my app's onboarding and edit it in Screen Studio.In Claude Code you can also install it as a plugin:
/plugin marketplace add tolimarchuk/screenstudio-mcp
/plugin install screenstudio@screenstudio-mcpRelated MCP server: Agent Demo Studio
See It Work
How It Thinks
Hands -> Eyes -> Taste -> LiveHands. The agent uses your app the way a person would: the pointer glides and settles before it clicks, text types at a readable rhythm, and a beat records as one take with markers. It can tap in bursts and press and hold, so games and press-and-hold UI work too.
Eyes. After the take, it reads the recording as data: every click, keystroke, screen change, pause and spoken word. Ninety seconds of footage becomes a list of moments, each one scored.
Taste. Good editing is mostly rules about time. Hold every result long enough to read it. Cut the dead air. Never zoom faster than the eye can settle. A tutorial cuts about every ten seconds; a launch trailer cuts on every beat. The planner explains each cut, speed-up and zoom in plain words, and a pacing check catches anything too fast before you export.
Live. The edit plays out in the real Screen Studio editor: the playhead jumps, clips get chopped, zooms drop in, panels open as settings change. Cmd+Z works.
Voiceover lines are pinned to moments in the recording, not the video, so a line still lands on its moment after you re-cut ten times.
Recipes
One word sets the whole direction. None is a default.
Recipe | For |
| A 9:16 clip for a vertical feed, under 30 seconds, captions and a big cursor. |
| A 20-second teaser: only the best beats, the payoff saved for last. |
| A product moment for a big screen or a launch page: unhurried and premium. |
| One shipped feature in under 45 seconds, quiet, one or two zooms on what changed. |
| Step by step: calm holds, shortcuts on screen, a chapter per marker. |
| You on camera, cut out beside the screen, pauses and fillers trimmed. |
| A silent clip for documentation, slow enough to follow along. |
Save your own colors, cursor and voice as a brand kit and it goes on top of any recipe.
What It Can Do
Record any window, display or area, with system audio, microphone and camera.
Drive apps with native clicks, typing, scrolling, drags, taps and holds.
Analyze footage: clicks, typing, scene changes, idle time, transcripts and fillers.
Plan and edit cuts, speed-ups, zooms, the glass loupe, camera layouts, masks, crop, backdrop, cursor and every other Screen Studio setting.
Voice narration with a neural voice, add captions, and lay library music ducked under speech.
Deliver variants for X, Shorts, LinkedIn, landing pages and docs, seamless loops, contact sheets, chapters and captions files.
Protect you: find keys, emails and other private text on screen and blur them before you publish.
46 tools in all. Each guide the skills use is also served as a screenstudio:// resource.
Requirements
macOS with Screen Studio 4 (tested on 4.0.1-4897). Turn off Screen Studio's auto-update once it works. Reading footage works on any 4.x build. To record and edit on an untested build, set
SCREENSTUDIO_ALLOW_UNTESTED=1.Node 22 or newer.
ffmpegandffprobe:brew install ffmpeg.For narration,
edge-tts:pipx install edge-tts.Accessibility and Screen Recording permission for the app you run your agent in (Terminal, Claude, Codex).
npx screenstudio-mcp doctorasks macOS for both and checks everything else.
Safety
Your mouse wins. Input stops the moment you move the mouse or click another window, and the helper lets go of any held key or button.
Off limits by default. Terminals, password managers and System Settings can't be clicked, typed into or screenshotted. Name an app in
SCREENSTUDIO_ALLOW_APPSto record it anyway. System shortcuts like Spotlight, the app switcher and quit are never sent.Local only. The server talks to Screen Studio over a debugging connection bound to 127.0.0.1, and only to Screen Studio's own pages. While Screen Studio runs with it open, other programs on your Mac could connect too, so quit Screen Studio (or call
screenstudio_quit) when you're done.Nothing is lost. Every edit batch saves a checkpoint you can restore, and the app's undo works. Exports never overwrite a file. The app is never killed or restarted.
What leaves your Mac. Narration sends each line's text to Microsoft's online speech service (edge-tts). Nothing else does.
Commands
npx screenstudio-mcp # install into Claude Code and Codex, then check this Mac
npx screenstudio-mcp doctor # check Screen Studio, ffmpeg, permissions
npx screenstudio-mcp@latest update # move to the newest version
npx screenstudio-mcp uninstall # remove the server and skillsClaude Code:
claude mcp add -s user screenstudio -- npx -y screenstudio-mcp serveCodex, in ~/.codex/config.toml:
[mcp_servers.screenstudio]
command = "npx"
args = ["-y", "screenstudio-mcp", "serve"]
tool_timeout_sec = 1800Variable | What it does |
| Where Screen Studio is, if not in Applications. |
| A fixed automation port instead of a free one. |
| Where checkpoints, caches and brand kits live (default |
|
|
| Bundle ids the agent may drive even though they are off limits, comma separated. |
| Paths to those tools. |
For This Repo
The package ships the native input helper prebuilt for Apple Silicon and Intel, built from native/Desktop.swift on GitHub Actions and published with npm provenance. See CONTRIBUTING.md to build from source, docs/architecture.md for how it fits together and docs/compatibility.md for what a new Screen Studio version needs. Release history is in the changelog.
Builds on screenstudio-cli by Shawn Pana and screenstudio-agent by Sam Wong.
Star History
License
MIT
Available Tools
46 toolsscreenstudio_analyzeARead-only
Read what happens in the raw recording, in source ms: clicks and drags (0-1 frame coordinates), typing bursts, shortcuts, cursor travel, screen changes (page = whole view replaced), idle stretches, recording markers (one per beat when recorded with markers, mapped to source ms; a marker dropped while paused lands where recording resumed) and, with a microphone, the audio valley between each pair of sentences (where the plan may cut when the transcript shows no pause). Typed text is omitted unless includeText is true.
| Name | Required | Description | Default |
|---|---|---|---|
| includeText | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, non-destructive, closed-world operation. Beyond that, the description adds meaningful behavioral context: events are reported in source ms, typed text is omitted unless includeText is true, marker timing has specific pause/resume semantics, and audio valleys are derived only with a microphone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then enumerates event types in a single dense sentence. It is long and somewhat run-on, but nearly every clause contributes specific semantic information needed to understand the output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex event categories, lack of output schema, and poor schema descriptions, the description does substantial work by listing returned event types and timing semantics. It still omits projectPath meaning and exact output structure details, so it is strong but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully explains includeText by stating that typed text is omitted unless it is true, but it leaves projectPath unexplained beyond the schema's type and minimum length requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: reading what happens in the raw recording, with a detailed enumeration of event types it extracts. It is much clearer than the bare tool name screenstudio_analyze, but it does not explicitly distinguish itself from sibling tools such as screenstudio_transcript_read or screenstudio_plan_edit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns but says nothing about when to use it versus alternatives. It does not name sibling tools, prerequisites, or when-not-to-use conditions, leaving routing guidance to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_brandADestructive
Save a client's brand once and apply it to any project as one live, undoable config op. A brand holds colours (primary, optional secondary and text), a backdrop (gradient from primary to secondary, flat colour, or the backdrop of a starting look), caption colours and font, cursor set and size, click sound, corner radius, shadow, padding, and the narration voice and music. Applying checks caption contrast (WCAG 4.5:1) and picks a readable caption box when the brand's is not, and checks the cursor set against the app. Actions: save (brand; replaces a saved brand of the same name and says so), list (unreadable brands are listed with their error), show (name), delete (name; removes it for good, even when it no longer reads), apply (name, projectPath; shows each setting changing in the open editor unless show is false), toPreset (name, projectPath; asks the app to save the project's settings with the brand laid over them as a Screen Studio preset, and says so when this build cannot). Image backdrops are not supported yet. Returns the settings it changed and why.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| save | No | ||
| show | No | ||
| brand | No | ||
| action | Yes | ||
| stepMs | No | ||
| projectPath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply destructiveHint=true and readOnlyHint=false, but the description adds substantial context beyond them: it explains that apply is live and undoable, that save silently replaces existing brands, that delete is permanent even when a brand no longer reads, that caption contrast is validated against WCAG 4.5:1 with an automatic readable fallback box, that the cursor set is checked against the app, and that toPreset reports when the build cannot save presets. It also states what is mutated (settings in the open editor) and that it returns settings and reasons.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence and the action list is set off cleanly. It is dense and long, but for a six-action tool with a large nested brand object, most sentences earn their place; the enumeration of brand fields is long but load-bearing since the schema lacks descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, a nested brand object, no output schema, and annotations that only flag the safety profile, the description is largely complete — it covers each action's behavior, validation checks, limitations, and even return semantics ('returns the settings it changed and why'). The unexplained stepMs parameter and the action/parameter 'save' collision are the remaining gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema description coverage is 0%, so the description carries the burden and does so well: it explains name, projectPath (which project apply/toPreset act on), show (suppress live preview unless false), and the entire nested brand object (colours, backdrop modes, captions, cursor, sound, radius, shadow, padding, voice, music). Two gaps remain — the stepMs parameter is never mentioned, and the boolean 'save' parameter is ambiguous against the action of the same name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb+resource and scope: 'Save a client's brand once and apply it to any project as one live, undoable config op.' It further distinguishes this tool from siblings like screenstudio_presets and screenstudio_editor_apply by enumerating its six actions (save/list/show/delete/apply/toPreset). An agent can identify what this tool owns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Each action is described with its own trigger and behavior — save replaces a same-named brand, delete is permanent even for unreadable brands, toPreset asks the app to persist a Screen Studio preset. It notes the current limitation ('Image backdrops are not supported yet'). It does not explicitly name alternate sibling tools for overlapping work, so there is no hard when-not/alternative routing, but action-level guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_catalogARead-only
Everything Screen Studio ships that settings can point to: wallpapers (styles.background.systemName), cursor sets (cursor.set.id), device frames (device.frameKey), music tracks, narration voices, camera layout types, mask types, looks and output aspects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered. The description adds the meaningful scope detail that the result is a static, closed set of shipped assets, but says nothing about return shape or size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence opens with the scope ("Everything Screen Studio ships") and then enumerates contents compactly. Every clause earns its place; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only reference tool with no output schema, the description adequately conveys what the catalog contains. It could have gone slightly further on how results are keyed or grouped, but nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the baseline of 4 applies. The description's embedded config paths (e.g. cursor.set.id) explain what the enumerated items correspond to, adding useful context even though there is no input to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (a catalog of settings-addressable assets) and enumerates its contents with concrete config paths like styles.background.systemName and device.frameKey. It distinguishes itself from generic list tools, though it lacks an explicit verb and overlaps somewhat with siblings like screenstudio_music and screenstudio_voice_lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Everything settings can point to" implies this is the lookup table for valid IDs before configuring settings, but no explicit when-to-use or when-not-to-use guidance is given, and it does not route the agent away from the music/voice siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_check_pacingBRead-only
Judge a timeline the way a viewer feels it, in playback time: short or back-to-back zooms, zoom rate, choppy cuts, speed ramps, sped-up clicks, snappy springs, abrupt endings, camera layouts changing too often or mid-sentence, plus taste checks on the look (frame cropping, cursor flicker, loupe depth and overuse, loud click sounds, heavy blur). With recipe (plus the recipeOverrides and brand you planned with), also flags settings that work against it (off-recipe). Uses the open editor's live state when available.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | ||
| style | No | Default balanced, or the recipe's. | |
| recipe | No | ||
| sceneId | No | ||
| projectPath | Yes | ||
| recipeOverrides | No | Change parts of the recipe: style, look, aspect, loupes, plan {...}, rules {...}, config {dotted keys}, music, voice, export. Fields merge into the recipe's. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, destructiveHint=false) already establish this is a safe, non-destructive read, so the description only needs to add behavioral context. It contributes that the tool reads the open editor's live state and conditionally applies recipe/off-recipe rules, but says nothing about the response shape or the impact of the mode switch beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, which is good, but the first sentence is a single mega-clause stuffed with a long parenthetical checklist. Most items earn their place as scannable criteria, yet the structure is dense and could be broken up for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with nested objects, no output schema, and only 33% schema coverage, the description covers the function and the recipe interaction reasonably but never describes what a 'judgment' returns or how issues are surfaced. Annotations cover safety, but the output/result gap keeps this at minimum-viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), so the description must carry more weight. It clarifies the relationship among recipe, recipeOverrides, and brand (overrides 'merge into the recipe's'; brand is 'you planned with'), which is genuinely additive, but projectPath, sceneId, and style's behavior beyond the enum remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb ('judge/check') and resource ('a timeline') are stated, and the description concretizes the scope with a specific list of pacing/look concerns (zooms, rates, choppy cuts, speed ramps, cropping, flicker). It reads as a distinct pacing-review tool, but it never names or contrasts with siblings like screenstudio_analyze, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'With recipe (plus the recipeOverrides and brand you planned with)' hints at a precondition, and 'Uses the open editor's live state when available' gives context. There is no explicit when-to-use versus when-not, and no named alternative, so guidance is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_contact_sheetARead-only
Review a whole edit in one image: a labelled grid of the open editor's preview at the moments that matter (opening, each cut and the frame before it, each zoom's midpoint, layouts, masks, pacing issues, the ending), or at playbackMs you choose (up to 24). Each tile reads 'n · m:ss.s what'. With jobIds instead, one row per finished export at its opening, midpoint and ending. Use it before editor_frame, which is for a close look at one moment. The editor window must be on screen.
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | balanced | |
| width | No | ||
| jobIds | No | ||
| columns | No | ||
| playbackMs | No | ||
| projectPath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: the precondition that the editor window must be on screen, the 24-tile cap, and the tile label format. It stops short of describing the returned artifact itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and packed with useful specifics, with no filler sentences. It is dense and long-ish, but each clause (moments captured, tile format, jobIds mode, sibling routing, precondition) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter, zero-required, no-output-schema capture tool, the description covers the two modes and the precondition an agent must satisfy. The gap is the display/appearance parameters (style, width, columns) and projectPath, which an agent would have to guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden, and it only partly does: playbackMs (with its 24-item cap) and jobIds (expanding to one row per export at opening/midpoint/ending) are explained. style, width, columns and projectPath get no mention at all, leaving half the surface undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — reviewing a whole edit as a labelled grid of the open editor's preview — and enumerates exactly which moments get captured. An agent can distinguish it from editor_frame without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the alternative explicitly ('Use it before editor_frame, which is for a close look at one moment') and gives the selection condition (broad review vs. single-moment close look). It also covers both operating modes: editor capture vs. the jobIds path for finished exports.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_desktop_actionADestructive
One visible native step on an observed window: focus, move, click, doubleClick, drag, taps (a burst of count taps every intervalMs at one point, for mash buttons), hold (press for ms, then release), type, key (with modifiers, e.g. {key:'k',modifiers:['command']}; keys follow the person's keyboard layout) or scroll (optional x/y to scroll there; otherwise the pointer stays if it is over the window or moves to its middle). Coordinates are window-local points including the title bar. Pointer glides at a human pace and settles before clicking. Input stops if the window loses focus, another window covers the point, or the person moves the mouse. Terminals, password managers and System Settings are off limits unless SCREENSTUDIO_ALLOW_APPS names them; system shortcuts (command+space, command+tab, command+q) are never sent.
| Name | Required | Description | Default |
|---|---|---|---|
| pace | No | ||
| action | Yes | ||
| observationToken | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and the description adds substantial context beyond them: the human-pace pointer glide, the stop conditions (focus loss, occlusion, user mouse movement), the app allow-list restriction, and the hard exclusion of system shortcuts like command+space/tab/q. This is unusually rich behavioral disclosure for a mutating UI tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first clause, and each sentence carries real information, but the whole definition is delivered as one very long run-on paragraph mixing action semantics, safety limits, and pointer physics, which makes it hard to scan. Structuring the action list, the pointer behavior, and the restrictions into distinct sentences or bullets would preserve the content while improving retrieval.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world UI automation tool with no output schema, the description covers safety, side effects, restrictions, and per-action semantics well. It stops short of saying how observationToken is obtained (presumably from screenstudio_desktop_inspect/screenshot) or what the call returns on success or on being interrupted, which would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description has to carry the parameters, and it largely does: taps is explained as 'a burst of count taps every intervalMs at one point, for mash buttons,' hold as 'press for ms, then release,' key as taking modifiers with a layout caveat, and scroll as taking optional x/y with a described pointer fallback. The top-level pace and observationToken parameters are never explained, which is the only real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope — 'One visible native step on an observed window' — and enumerates the exact step types (focus, move, click, doubleClick, drag, taps, hold, type, key, scroll), so an agent knows precisely what single unit of work this performs. It does not, however, distinguish itself from the sibling screenstudio_desktop_perform, which sounds like an overlapping performer, nor from desktop_inspect/screenshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through runtime conditions rather than tool selection: it explains that input stops if focus is lost, a point is covered, or the person moves the mouse, and that terminals/password managers/System Settings are off limits unless SCREENSTUDIO_ALLOW_APPS names them. There is no statement of when to prefer this over desktop_perform or when to observe first with desktop_inspect/screenshot.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_desktop_inspectBRead-only
Inspect an exact native window and get a 60-second, single-use observation token.
| Name | Required | Description | Default |
|---|---|---|---|
| windowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior — the token expires in 60 seconds and can only be used once — but says nothing about what the inspection actually yields or what happens with a stale/invalid windowId, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the token constraint is stated in the same breath as the action rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 0% parameter coverage, and a return value that is an implicit handoff token, the description should explain what consumes the token and how the 60-second window constrains the next call. That linkage is absent, leaving the agent unable to sequence this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required windowId, so the description must carry the meaning. 'Exact native window' hints that windowId must reference a live native window handle, but it gives no source for that id, no format beyond integer, and no failure behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Inspect an exact native window') plus the distinctive artifact it produces (a 60-second, single-use observation token), which separates it from desktop_screenshot/desktop_action/desktop_perform in the sibling list. It does not explicitly name those siblings, so differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisite for obtaining a windowId, and no statement of how this differs from or precedes desktop_action/desktop_perform. The only usage hint is the single-use token lifetime, which an agent must reverse-engineer into a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_desktop_performADestructive
Perform a whole beat in one take while recording: up to 12 steps, each followed by a hold so its result is visible (defaults: click 1.2s, type 0.9s, key 1s, scroll 1.2s). One continuous take gives natural pacing; pace 1.3 is calmer. markers:true adds a recording marker before the first step, so screenstudio_analyze and screenstudio_narrate (pinToMarkers) know where the beat starts. minDurationMs stretches the last hold so the beat lasts at least that long (a narration line's durationMs from screenstudio_voice_lines plus about 400ms).
| Name | Required | Description | Default |
|---|---|---|---|
| pace | No | ||
| steps | Yes | ||
| markers | No | ||
| minDurationMs | No | ||
| observationToken | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true and destructiveHint=true, so the safety profile is covered; the description adds context they cannot, namely per-action hold defaults (click 1.2s, type 0.9s, key 1s, scroll 1.2s), that the whole run is one continuous take, how markers alter the recording, and how minDurationMs stretches the final hold. It does not warn that this drives the real cursor/desktop or mention auth/failure behavior, so not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then layered with detail; there is little filler since nearly every clause carries a default, a threshold or an integration rule. It is somewhat dense and parenthetical-heavy, which slightly hurts scannability, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, 0%-coverage, no-output-schema tool whose annotations already cover safety, this is adequate but not complete: the required observationToken's origin and lifetime are unexplained, most step action types and their parameters get no treatment, and nothing is said about what the call returns or how failures mid-take behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does: pace, markers and minDurationMs all get concrete semantics and defaults beyond the raw schema, and steps gets a behavioral contract (max 12, hold after each). Gaps remain — observationToken (a required parameter) is never explained, and holdMs plus several action types (drag, taps, hold, focus, doubleClick, move) are undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Perform a whole beat in one take while recording' — with concrete scope (up to 12 steps, each followed by a visible hold). An agent can tell this is the multi-step, recorded desktop-automation sibling, though it never explicitly names screenstudio_desktop_action as the single-step alternative, so the differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real usage context: one continuous take yields natural pacing, pace 1.3 is calmer, markers:true is what pairs the beat with screenstudio_analyze and screenstudio_narrate (pinToMarkers), and minDurationMs is meant to be set from a narration line's durationMs plus ~400ms. There is no explicit 'do not use this when…' or a named alternative for single actions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_desktop_screenshotBRead-only
Screenshot the target native window before deciding where to act. Scaled to width points wide (default 1280) so large windows stay readable and small.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| windowId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful context about scaling behavior, but does not disclose return format (image bytes vs URL), latency, or failure modes for an invalid windowId, leaving behavioral gaps beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, which is good. However, the second sentence is garbled/truncated ('so large windows stay readable and small.'), costing clarity for the space it consumes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter capture tool with annotations covering safety and no output schema, the essential action and the width behavior are conveyed. But windowId sourcing, return type, and relationship to desktop_inspect/action siblings are unaddressed, leaving it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It partially compensates by explaining the width parameter (points-wide scaling, default 1280), but the required windowId is undocumented — an agent is not told how to obtain a valid window id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Screenshot the target native window.' It is clear what the tool does, but it does not explicitly differentiate itself from desktop siblings like screenstudio_desktop_inspect or desktop_action, which may also return visual/window state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'before deciding where to act' implies a position in a capture-then-act workflow, giving implied usage context. However, it names no alternatives (e.g., inspect vs screenshot vs action) and states no explicit when-not condition, so selection guidance is only suggestive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_applyA
Edit the open project live in the editor window. Ops run in order, all times in source ms: setSlices (full ordered list of kept ranges with speed, optional per-clip volume, hideCursor, disableSmoothMouseMovement), addZoom (follow:true pans to clicks, otherwise target x/y 0-1; presentation 'loupe' for the glass loupe with optional loupe radius/bevel/chromaticAberration/glassOptics), updateZoom, removeZoom, clearZooms, addLayout (camera layout for a stretch: camera-overlay, cutout-camera, split-screen, fullscreen-camera, screen-only, with options), addMask (sensitive-data blur or highlight, rects 0-1), updateItem/removeItem/clearTrack (layouts, masks, zooms; updateItem on a mask takes fields.rects 0-1 like addMask, or fields.bounds in capture points as editor_state shows them), config (any dotted setting from editor_state includeConfig, e.g. crop.rect01, captions.position01, defaultLayout.type, camera.background.edgeFalloff01, styles.background.systemName, device.frameKey). Timeline ops also include splitAt, cutRange (split both ends and delete the middle), removeSlice, mergeSlices, updateSlice (speed, volume up to 1, system/device audio, hideCursor, disableSmoothMouseMovement), resetCuts, restoreAutoZooms (Screen Studio's own click zooms), duplicateItem, setTrackDisabled, and clearTrack/removeItem for voiceOvers. With show (default) every step plays out in the editor window wherever it is, without taking focus: the playhead jumps to each edit, the timeline is split and pieces deleted one by one, new zooms, layouts and masks drop in selected, and each setting changes with its sidebar panel open (stepMs per step, 350 by default; show:false applies instantly). Returns a checkpoint, the new timeline and a pacing and taste check. Cmd+Z in the app also works. Saves after each apply unless save:false. If an op fails, the result has partial:true, failedAt and error; the ops before it stay applied, nothing is saved, and screenstudio_editor_restore with the checkpointId undoes the batch.
| Name | Required | Description | Default |
|---|---|---|---|
| ops | Yes | ||
| save | No | ||
| show | No | ||
| brand | No | ||
| style | No | Default balanced, or the recipe's. | |
| recipe | No | The recipe the plan followed, so the pacing check judges by its rules and look. | |
| stepMs | No | ||
| sceneId | No | ||
| projectPath | Yes | ||
| recipeOverrides | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and openWorldHint=false, so the description carries the real burden and does so well: it covers ordered execution, animated vs instant application (show default), save-after-each-apply, checkpoint id, and the failure model (partial:true, failedAt, error, prior ops remain, no save, use restore with checkpointId). It does not contradict the annotations. What remains thin is the pacing/taste check return value and whether screenstudio_editor_view is needed to see the editor window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single wall of prose with one long sentence enumerating ops, another merging behavior and defaults, and a third covering checkpoint/failure semantics. It is front-loaded only in the first sentence; the middle is hard to parse as a list of supported operations, and the op vocabulary is buried inline. It crams schema-level detail (radius, bevel, chromaticAberration, edgeFalloff01) into the description where it duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (op union with 19 members, 10 top-level params, no output schema), the description covers the essential call contract: ordered ops, animated vs instant, save behavior, checkpoint/undo path, and the units convention. Missing are the shape of the return checkpoint value, what the pacing and taste check contains, and any mention of editor window state (screenstudio_editor_view) — the last is inferable but not stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description should compensate, and it partially does: it names the ops, gives examples for config dotted paths, and clarifies unit conventions ('all times in source ms', 'target x/y 0-1', 'rects 0-1'). But with 10 parameters and many nested op schemas, top-level params like brand, style, sceneId, recipeOverrides, stepMs, save and show get almost no explanatory text beyond the schema defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Edit) and resource (the open project in the editor window), and the description is dense with the exact op vocabulary an agent needs to apply an edit batch. It is clearly distinguishable from siblings like screenstudio_editor_restore (undo) and screenstudio_editor_state (read).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is clear: 'Edit the open project live in the editor window' and the closing note about screenstudio_editor_restore with the checkpointId explicitly names the undo alternative. It does not, however, state when to use this tool versus screenstudio_editor_save, screenstudio_plan_edit, or screenstudio_check_pacing, which is a gap for a tool this heavy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_frameARead-only
Capture the editor's rendered preview at playback times (up to 6) to check framing, zoom targets and legibility without exporting. The editor window must be on screen.
| Name | Required | Description | Default |
|---|---|---|---|
| playbackMs | Yes | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and closed-world scope, so the safety profile is covered. The description adds non-annotation context that matters: the 6-frame cap, the requirement that the editor window is on screen, and the fact that no export/file is produced. It does not say how frames are returned, but with no output schema that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the action and purpose front-loaded and the precondition as a short trailing constraint. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only preview-capture tool with no output schema and two params, the description covers intent, limits, and the key environmental precondition. The remaining gap is the return shape (images inline vs paths), which the description leaves unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It explains playbackMs indirectly ('playback times (up to 6)') but gives no format or unit detail (the schema's ms unit is only inferable from the param name), and projectPath is not addressed at all. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Capture the editor's rendered preview at playback times') and adds the intent behind it (check framing, zoom targets, legibility). The phrase 'without exporting' distinguishes it from the sibling export_frame tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when to use it ('to check framing, zoom targets and legibility') and a hard prerequisite ('The editor window must be on screen'). It implies a route away from export_frame via 'without exporting', but never names the alternative tool explicitly, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_historyC
Step the editor's own undo/redo history, like pressing Cmd+Z.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | ||
| action | Yes | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that this manipulates the editor's own history (as opposed to project files), which is useful context, but says nothing about reversibility of redo, or how the 'steps' batching behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the core action is front-loaded. It is arguably too terse given the undocumented parameters, but it wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with 0% schema coverage and no output schema, the description should at least clarify projectPath and step semantics. As written it covers only the high-level action, leaving key invocation details to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions no parameters at all. The 'action' enum (undo/redo) is self-explanatory in the schema, but 'projectPath' and 'steps' (with its default of 1 and max of 200) are left entirely undocumented, so the description does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Step') and resource ('the editor's own undo/redo history'), reinforced by a concrete analogy ('like pressing Cmd+Z'). It's clear what the tool does, though it doesn't name the potentially confusable sibling screenstudio_editor_restore to differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Cmd+Z analogy implies the general usage context, but there is no explicit when-to-use, when-not, or comparison against alternatives like screenstudio_editor_restore or screenstudio_editor_apply. An agent must infer when this is preferred over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_listBRead-only
List projects open in Screen Studio editor windows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds no further behavioral context — no ordering, scoping, or return shape — leaving it essentially a restatement of the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. It is efficiently sized, though its brevity overlaps with under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description is adequate to identify the tool but does not indicate what a returned entry looks like (project name, id, window). An agent can call it correctly, but the result shape must be discovered at runtime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to clarify. It correctly avoids inventing parameter semantics that do not exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (projects open in Screen Studio editor windows), which is clearly distinguishable from write-oriented siblings like screenstudio_editor_open, screenstudio_editor_apply, and screenstudio_editor_save. It does not explicitly name a sibling to differentiate against, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as screenstudio_editor_state or screenstudio_editor_open. Usage is only weakly implied by the word 'list', so this is below the minimum-viable bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_openB
Open a project in a Screen Studio editor window (or find it if already open) and return its timeline. The person can watch every edit happen there.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description usefully adds that an already-open project is reused rather than re-opened and that the call returns a timeline; it says nothing about failure behavior for bad paths or focus-stealing side effects of opening a window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with no filler; the core action and its reuse behavior come first. The closing sentence about the person watching edits is marginally decorative but conveys a real property of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and annotations covering the mutation profile, this is roughly adequate. It still omits the shape of the returned timeline, path format expectations, and error behavior, which an agent would need for robust invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions projectPath at all, so it does not compensate for the missing schema documentation. It doesn't state whether the path must be absolute, a project file, or relative to some root.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Open a project in a Screen Studio editor window,' which is distinct from siblings like editor_list, editor_state, and editor_apply. It doesn't explicitly name a sibling to contrast with, but the action itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(or find it if already open)' implies idempotent reuse, which quietly tells the agent it needn't check open state first. However there is no explicit when-to-use vs alternatives guidance, e.g., relative to editor_list or editor_state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_playC
Play a range in the editor window so the person can watch it.
| Name | Required | Description | Default |
|---|---|---|---|
| toMs | No | ||
| fromMs | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false and openWorldHint=false, covering the safety profile, so the bar is lower. The description adds that this drives real-time human viewing, but omits whether playback blocks until completion, whether it requires an open editor, and how range bounds behave beyond defaults. readOnlyHint=false is consistent with playback altering editor state, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb leading and no wasted words. It is appropriately sized, though the brevity comes at the cost of the missing detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a playback action with no output schema and 0% parameter documentation, the description is too thin. It does not explain blocking behavior, whether an editor must be open, or the range semantics an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for all three parameters, so the description must carry the burden. It only implies a range exists (mapping loosely to fromMs/toMs) and says nothing about units, format, defaults, or what projectPath identifies, leaving the parameters materially under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Play a range in the editor window'), and clarifies intent with 'so the person can watch it'. It does not explicitly distinguish itself from related siblings like screenstudio_editor_seek or screenstudio_editor_view, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives such as screenstudio_editor_seek, editor_view, or editor_frame. The phrase 'so the person can watch it' implies real-time playback but gives no conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_restoreB
Put the editor back to the timeline and settings saved in an apply checkpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| checkpointId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, and the description is consistent, adding that current editor state is replaced by the saved checkpoint (an overwrite). It does not disclose permissions needed, whether the restore is reversible, or how the timeline differs from settings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though slightly terse for a state-mutating operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with annotations covering the safety profile and no output schema, the description is adequate but omits where checkpointId comes from and what a restore affects. Enough to attempt a call, not enough to call confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning. It weakly signals that checkpointId refers to a checkpoint created by editor_apply, but never states the parameter name, its UUID format, or how to source a valid value; the schema supplies format/pattern but not provenance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (put back/restore) and resource (editor timeline and settings) and ties the operation to 'an apply checkpoint', which links it to the sibling editor_apply. It distinguishes itself from generic editor siblings, though it does not explicitly contrast with editor_history or editor_open.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to restore versus using editor_apply, editor_history, or editor_open, nor any instruction on how to obtain a checkpointId. Usage is only implied by the phrase 'apply checkpoint'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_saveB
Save the open project exactly like Cmd+S in the editor.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, closed-world mutation, so the safety profile is covered. The Cmd+S analogy adds useful context that the operation persists in place, but nothing is said about what gets written, overwrite/versioning behavior, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste; the analogy is dense and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity (one param, no output schema) and annotations carry the safety profile, but the description leaves the central projectPath requirement and save semantics (in-place vs new file) unaddressed, so it is only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description never mentions the required projectPath parameter. Worse, "the open project" implies the target is implicit, which sits awkwardly against a mandated projectPath argument the description leaves unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("save") and resource ("the open project"), reinforced by the concrete Cmd+S analogy that tells an agent this persists editor state. It is clear against a sibling like editor_apply, though it never names that distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the close sibling editor_apply (which likely applies edits rather than persisting them). The agent must infer the save-vs-apply boundary entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_seekC
Move the editor playhead to a playback or source time.
| Name | Required | Description | Default |
|---|---|---|---|
| sourceMs | No | ||
| playbackMs | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, with no open world, so the safety profile is partly covered. But the description doesn't explain the effect of seeking (does it pause playback? require an open project?) or the interaction between the two optional time parameters. Little context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded and compact, but so terse that it omits important qualifiers. It is minimally acceptable in size but not richly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an editor mutation with no output schema and zero parameter documentation, the description is too thin. It omits prerequisites (open project), precedence of sourceMs vs playbackMs, and any effect on recording state, leaving gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters, so the description must compensate. It only vaguely mentions 'playback or source time' and does not clarify units (schema hints ms), precedence when both are supplied, or that projectPath is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('move') and resource ('editor playhead') with the target ('playback or source time'). It clearly describes the action, though it doesn't distinguish itself from siblings like editor_frame or editor_play beyond the time axis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as screenstudio_editor_frame or screenstudio_editor_play. An agent is left to infer that seek sets the playhead without playing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_stateARead-only
The open editor's live timeline (slices, zooms, camera layouts, masks in source and playback ms), playhead, undo state, a style summary and, with includeConfig, every project setting (crop, cursor, captions, audio, camera, animations, zooms, defaultLayout, styles, device, output). Any setting shown can be changed with a config op.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | ||
| includeConfig | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. The description usefully conveys that this is *live* state and that includeConfig widens the payload, but it omits what happens when no editor is open and the trailing note about config ops is a routing hint rather than behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is front-loaded in the first clause, and the includeConfig condition is stated before the exhaustive settings list. The parenthetical enumeration is dense but each item earns its place; only the trailing 'config op' sentence reads as slightly extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating the returned data (timeline elements, playhead, undo state, style summary, settings). Safe-read annotations cover the mutation risk, so the main residual gap is the undocumented projectPath and the unstated editor-must-be-open precondition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the burden. includeConfig is well explained (it unlocks every project setting), but projectPath is never described at all, leaving roughly half of the two parameters undocumented. The long parenthetical enumerates returned fields rather than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the open editor's live timeline) and enumerates its concrete contents: slices, zooms, camera layouts, masks, playhead, undo state, and style summary. It is clearly a read-state tool, but it never explicitly distinguishes itself from nearby siblings like screenstudio_editor_view or screenstudio_editor_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'with includeConfig, every project setting' tells the agent when to enable that parameter, which is genuine conditional guidance. However, there is no explicit statement of when to call this tool versus editor_view/editor_list, nor any prerequisite that an editor must already be open; usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_editor_viewB
Drive the editor interface: open a sidebar panel (background, cursor, captions, transcript, shortcuts, audio, animation), select a timeline item (zooms, masks, layouts, slices by id), set the visible timeline span in ms, show or hide the sidebar and timeline, or switch to preview-only. Changes nothing in the project.
| Name | Required | Description | Default |
|---|---|---|---|
| close | No | Close the selected item's sidebar panel. | |
| panel | No | ||
| select | No | ||
| sidebar | No | ||
| timeline | No | ||
| timelineMs | No | ||
| previewOnly | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark readOnlyHint=false and destructiveHint=false, and the description adds the key nuance that although it drives the interface state, it 'Changes nothing in the project'. That scoping detail meaningfully complements the annotations rather than repeating them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the core purpose and enumerates the operations, followed by a short scope clause. It is information-rich and mostly waste-free, though the enumeration makes it long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with 13% schema coverage and no output schema, the description covers the main capabilities but leaves gaps: how projectPath works, whether operations combine (e.g., select plus panel), and what 'close' does. Adequate but incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13%, so the description must carry the load. It maps panel options, timeline select categories and id-based selection, timelineMs units, sidebar/timeline toggles, and preview-only, which compensates reasonably. However it never mentions the 'close' parameter and does not clarify interactions between select, close, and panel.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Drive') and resource ('the editor interface') and enumerates the concrete operations: opening panels, selecting timeline items, setting the timeline span, toggling sidebar/timeline, and preview-only. The sibling set is not named explicitly, but 'Changes nothing in the project' implicitly separates it from mutating siblings like editor_apply.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists what the tool can do but gives no guidance on when to prefer it over siblings such as editor_state, editor_open, editor_list, or editor_apply. No prerequisites or when-not-to-use conditions are stated, so an agent must infer the selection rationale.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_export_cancelB
Cancel a known export job without deleting the source project.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the mutation-but-safe profile is partly covered. The description usefully adds that the source project is preserved, which clarifies the scope of the side effect. It does not say what happens to partial output files or whether cancellation is reversible, so it adds context but not full behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the action and its key non-effect with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation, the description plus annotations cover the essentials (what it does, that it is non-destructive). However, it omits what happens to the job/output after cancellation and any prerequisite state, leaving some gaps for a state-changing operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single jobId parameter, so the description carries the burden; it implies a job identifier is required but adds no format, sourcing, or lookup detail beyond the schema's uuid type and pattern. Baseline 3 for a single-param tool where the schema already constrains the type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Cancel) and resource (export job), clearly distinguishing it from the sibling export_start/export_status/export_frame/export_variants tools. The qualifier 'known' hints that the job must already exist, but the description stops short of naming siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no statement of prerequisites (e.g. the job must be running), and no comparison to alternatives such as letting an export finish or re-running export_start. Usage is only loosely implied by 'known export job'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_export_frameCRead-only
A frame of the completed render at playback milliseconds.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ||
| timeMs | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered without description help. The description adds one piece of behavioral context — the frame comes from a *completed* render — but says nothing about output format (image bytes, file path, or URL), whether the frame is persisted, or any failure mode when the export is not finished.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but this is under-specification rather than conciseness: a single sentence fragment with no verb and no front-loaded statement of action. Nothing is padded, yet the brevity costs more than it saves for a tool whose behavior is not self-evident.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only place an agent could learn what a 'frame' return looks like, and it omits that entirely. For a read tool that presumably returns image data, the missing return-format information and the ambiguous meaning of jobId leave the definition inadequate despite the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load. 'playback milliseconds' usefully supplies the unit for timeMs, which the schema only types as a plain number with minimum 0, but jobId's meaning (export job vs project id) is left entirely to the parameter name and uuid pattern. Partial compensation for a two-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'A frame of the completed render at playback milliseconds' identifies the resource (a frame) and its scope (the completed render, not the editor preview), which implicitly separates it from siblings like screenstudio_editor_frame and screenstudio_source_frames. However, it is a verbless noun phrase that never says what the tool does (extract/return/fetch) or what it produces, leaving the purpose only inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites stated as instructions, and no mention of the obvious alternatives (screenstudio_editor_frame for editor previews, screenstudio_source_frames, screenstudio_contact_sheet). The only faint hint is 'completed render,' which implies a finished export job is required, but this is never stated as a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_export_startA
Render what the editor shows (including unsaved edits) to a local MP4 or GIF without a save dialog. height is the frame's short side, like every target and recipe: 1080 renders 1920x1080 at 16:9, 1080x1920 at 9:16 and 1080x1350 at 4:5 (a portrait frame asks Screen Studio for its full height). Returns a job; poll status. Results say whether the render came from the live editor or the saved project (source live/disk). Existing files are never overwritten: a taken or unwritable output ends with status delivery_failed and the renderedPath. keepRender keeps the app's temporary QA copy.
| Name | Required | Description | Default |
|---|---|---|---|
| fps | No | ||
| format | No | mp4 | |
| height | No | The frame's short side: 1080 is 1920x1080 at 16:9 and 1080x1920 at 9:16. | |
| quality | No | studio | |
| keepRender | No | ||
| outputPath | Yes | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (not read-only, not destructive, closed world). The description adds genuinely non-derivable behavior: async job semantics ('Returns a job; poll status'), the source live/disk field in results, the no-overwrite guarantee with the delivery_failed + renderedPath failure shape, and the meaning of keepRender. These are substantive operational details beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then the critical no-overwrite and polling facts. The height/aspect-ratio examples are somewhat verbose and partly restate the schema description, but every sentence carries usable information and nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so well (job handle, poll status, source live/disk, delivery_failed + renderedPath). Missing pieces are minor: no mention of how long renders take or where output paths may be written.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% across 7 parameters, so the description must compensate. It explains format (mp4/gif), height semantics (duplicating the schema's own height description), keepRender, and outputPath's no-overwrite consequence, but says nothing about fps or quality. Partial compensation for a sparse schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: render the editor's current view (including unsaved edits) to a local MP4 or GIF. The 'live editor vs saved project' framing distinguishes it from a plain project export, though no sibling (e.g. export_frame, export_variants) is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage ('including unsaved edits', 'without a save dialog') and says to poll status after starting a job, but never states when to prefer this over export_variants or export_frame, nor any exclusion conditions. Usage is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_export_statusB
Inspect an export job; when complete, returns the delivered file with encoded media properties.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is non-destructive and not open-world, but readOnlyHint=false is the only notable flag and the description adds useful return behavior: it yields the delivered file with encoded media properties once complete. It still omits what is returned while the job is pending, error/failure states, and whether polling is safe or rate-limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and resource lead, and the return behavior follows as a subordinate clause. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a polling tool with no output schema, the description should carry the return-value burden, and it only partially does (mentions the file and encoded properties). Pending, failed, and expired job outcomes, plus the relationship to export_start, are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions jobId. The schema does constrain it to a UUID format/pattern, so an agent can infer the type, but the description adds no semantics about where the jobId comes from or how it is obtained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Inspect) and resource (an export job), which cleanly separates it from export_start, export_cancel, export_frame, and export_variants. It does not explicitly name or contrast with any sibling, so it falls short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus the other export tools, nor any note that it is meant to be polled after screenstudio_export_start. Usage is only implied by the word 'job'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_export_variantsA
Render one edit for every place it goes, in one call: x (16:9 1080p60), landing (16:9 1080p60), linkedin (1:1 1080p30), shorts (9:16 1080p60), portrait (4:5 1080p30), docs (16:9 1080p30), gif (16:9 480p24 GIF). Each target renders its own copy of the live project (aspect, padding, caption size and position, camera cutout size; vertical targets get fixed zooms on the main actions so they stay readable, and portrait targets keep the screen zoomed between zooms, about 1.8x in 9:16, so it fills the frame's width instead of a thin band), one after another, named -. in outputDir, never overwriting. The editor is not changed. A copy whose frame would crop every wide shot has avoid-empty-zoom-area turned off, and says so. Narration captioned for burn-in is burned into a --captioned.mp4 beside each video. The kit (default on) adds a poster PNG per aspect at the payoff moment, .srt and .vtt captions when there is a transcript or narration, a chapters list (yours are put in order, the first at 0:00, at least 10s apart), a manifest with each file's duration, size and limit checks, and a contact sheet of every variant. With recipe, targets default to the recipe's and its export settings apply (frame rate on every video, resolution on its own aspect). Returns files, warnings and notes explaining each choice. Takes minutes; renders run in Screen Studio one at a time, with a progress notification per target, and a render past renderTimeoutMs (default 20 minutes) is cancelled before the next starts. A second call for the same project and outputDir is refused while one runs.
| Name | Required | Description | Default |
|---|---|---|---|
| kit | No | ||
| style | No | Default balanced, or the recipe's. | |
| recipe | No | ||
| targets | No | Required unless recipe names them. | |
| baseName | No | ||
| chapters | No | ||
| outputDir | Yes | ||
| projectPath | Yes | ||
| recipeOverrides | No | ||
| renderTimeoutMs | No | Per target; default 20 minutes. A render past it is cancelled. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses a rich set of behaviors: rendering is serialized in Screen Studio, a progress notification fires per target, renders past renderTimeoutMs are cancelled, a second call for the same project/outputDir is refused while one runs, files never overwrite, and the editor state is left unchanged. It also details the mapping of aspect, padding, caption and zoom behavior per target.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded well, but the body is one very long paragraph dense with nested parentheticals, which makes it hard to scan for a single parameter or behavior. Much of the content earns its place, but the structure fights comprehension rather than aiding it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with nested objects, no output schema, and 30% schema coverage, the description is thorough: it covers inputs, per-target behavior, side effects, naming/outputs, timeout/concurrency limits, and even summarizes the return (files, warnings, notes). An agent has what it needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 30% schema coverage across 10 params, the description compensates well: it expands each target with its aspect/resolution/fps, explains baseName's naming pattern ('<baseName>-<target>.<ext>'), what kit adds by default (poster PNG, .srt/.vtt, chapters, manifest, contact sheet), the chapter ordering rules (first at 0:00, ≥10s apart), and how recipe overrides frame rate and resolution. Only recipeOverrides is left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Render one edit for every place it goes, in one call,' and enumerates the exact seven targets with their resolutions and frame rates. An agent can tell this is the batch multi-variant exporter (versus the single-target screenstudio_export_start) without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'one call' for 'every place it goes,' and it explains that recipe-supplied targets become the default. However, it never states when NOT to use it or names the alternative (e.g. export_start for a single target), and there is no explicit guidance on choosing between style/recipe combinations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_find_sensitiveA
Find private text in the footage before publishing and propose blur masks for it. Reads frames (every everyMs plus just before and after each screen change) with macOS text recognition and looks for emails, phone numbers (including +E.164 and labelled digits), API keys and tokens (sk-, ghp_, xox, AKIA, AWS secret keys, Stripe, Google, private key headers), JSON web tokens, hex keys and hashes (32+ hex digits with letters; digit-only IDs such as post IDs in links, and IDs run into hex at either end, are not flagged), long random strings, card numbers (Luhn checked), IP addresses, links carrying tokens (with or without https://), passwords and secrets in settings, .env lines and connection strings, and any extraTerms (plain words, or /regex/flags; a term inside a longer secret widens the blur to the whole secret). Long recordings are read end to end: the frame grid widens to fit maxFrames. Each finding is followed across frames into one span with a padded box (0-1 of the capture). Returns detections with a masked preview (never the full value), a preview sheet of up to six frames that show the findings (each at least 960px wide, every blur filled red, existing blur masks included, every finding seen there ringed in yellow and numbered, with its kind and masked value listed under the frame), notes explaining the choices, and addMask sensitive-data ops for screenstudio_editor_apply. With apply: true the masks are added live in the open editor (undoable, then saved). An existing blur mask grows to cover new findings; a highlight or disabled mask blocks a blur, and the notes say where. ignore drops kinds that are expected on screen (custom, api-key, jwt, url-token, credential, email, card, phone, ipv4, hex-secret, base64-secret).
| Name | Required | Description | Default |
|---|---|---|---|
| apply | No | ||
| ignore | No | ||
| everyMs | No | ||
| maxFrames | No | ||
| extraTerms | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false/destructive=false; the description goes far beyond by disclosing that apply:true mutates live and is undoable-then-saved, that an existing blur mask grows to cover new findings, and that a highlight or disabled mask blocks a blur. It also details the return payload and the detection pipeline, none of which structured fields provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and almost every clause is functional, but the single dense paragraph and the rendering minutiae of the preview sheet (960px, red fills, yellow rings) push past what an agent needs to invoke the tool. Efficient overall, mildly bloated in places.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the full burden and does: it enumerates the returned detections, masked preview, preview sheet, notes, and addMask ops, plus mutation side effects. Nothing needed to call or interpret the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage the description must carry the params, and it does: apply (live vs preview), ignore (drops expected kinds, enum explained semantically), everyMs/maxFrames (frame-grid behavior), extraTerms (plain words or /regex/flags, and that a term inside a longer secret widens the blur), and projectPath implicitly. It adds real meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Find private text in the footage... propose blur masks') and the scope is unmistakable. No sibling tool does sensitive-data detection, so the agent can route to it on name/description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Frames the use case ('before publishing') and distinguishes the preview mode from 'apply: true' (masks added live in the open editor), and names screenstudio_editor_apply as the consumer of its ops. It stops short of explicit when-not-to-use guidance, but the default-off vs apply-on split is a clear contextual cue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_launchA
Launch Screen Studio with a local automation connection (bound to 127.0.0.1). A running app is never killed or restarted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false), and the description adds two genuinely useful traits on top: the connection is bound to 127.0.0.1 (no remote exposure) and a running app is never killed or restarted (idempotent, non-disruptive to existing sessions). It stops short of saying whether the call blocks until the app is ready or how it behaves if the app is not installed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, both earning their place: the first states what the tool does and its connection scope, the second states the non-destructive guarantee. Nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description only needs to convey what happens when it is called, which it largely does (launches app, local automation binding, leaves running instances alone). Minor gaps remain around synchronous vs. async behavior and failure cases, but nothing an agent needs to avoid a wrong call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter meaning for the description to supply; the empty schema is self-explanatory. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (launch) and resource (Screen Studio) plus the operating mode (local automation connection bound to 127.0.0.1). That distinguishes it immediately from siblings like screenstudio_quit, screenstudio_status, and screenstudio_record_start without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the presence of a launch tool next to status/quit/record tools makes the 'start the app first' context inferable, and the note that a running app is never restarted hints at idempotent use. But there is no explicit statement of when to call this rather than attaching to an already-running instance, nor of prerequisites or ordering relative to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_loopA
Make a seamless loop for a landing page hero or a README: finds a stretch of the recording (targetMs, 4-15s) whose last frame matches its first (beat edge to beat edge, or a window inside one long beat cut at sentence breaks and still screens), applies it to a copy of the project ( Loop.screenstudio, opened in the editor) so the main edit stays intact, mutes sound, brings the cursor back to its start and ends zooms before the restart, then renders MP4 (1080p60), a silent WebM and a GIF under maxGifBytes, plus a poster. Returns the files, the source range, the similarity score (SSIM), an embed snippet, notes, and the first and last frames side by side to judge the join. apply:false only plans and shows the join from the raw recording.
| Name | Required | Description | Default |
|---|---|---|---|
| show | No | ||
| apply | No | ||
| formats | No | ||
| baseName | No | ||
| targetMs | No | ||
| outputDir | Yes | ||
| maxGifBytes | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond annotations: work happens on a COPY so the main edit stays intact (consistent with destructiveHint=false), sound is muted, the cursor returns to start and zooms end before the restart, and output is 1080p60 MP4 + silent WebM + GIF under maxGifBytes + poster. It also enumerates exactly what is returned, including the SSIM join-quality score and side-by-side end frames.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and almost every clause conveys necessary behavior, so little is wasted. However, the body is a dense comma-chained mega-sentence that is harder to parse than it needs to be, costing readability for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, 8-parameter tool with no output schema, the description covers the workflow, the destructive/non-destructive model, the plan vs apply modes, and the full return payload, so an agent can call it correctly. Residual gaps are the unexplained 'show' toggle and the path parameters' expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage the description must carry the load, and it does for most params: targetMs (4-15s), apply (plan vs apply), maxGifBytes (GIF size cap), baseName ('<name> Loop.screenstudio'), and formats (which files render). It leaves 'show', projectPath, and outputDir unexplained, which is a real but minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and deliverable ('Make a seamless loop for a landing page hero or a README') and details exactly what it produces (MP4/WebM/GIF/poster plus a looped copy of the project). It is clearly separable from siblings like screenstudio_export_variants, which export rather than synthesize a seamless loop from a copy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear use context (landing page hero or README) and distinguishes the planning mode via 'apply:false only plans and shows the join from the raw recording.' It does not name an alternative tool or an explicit when-not-to-use, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_musicA
Lay a track from Screen Studio's music library under the edited video, faded in and out. duckUnderSpeech dips it smoothly while anyone speaks (from the transcript). Uses the project's background audio track, shared with narration (narration has its own music option). If the track holds narration, the music is mixed under it instead of replacing it.
| Name | Required | Description | Default |
|---|---|---|---|
| track | Yes | ||
| duckTo | No | ||
| volume | No | ||
| projectPath | Yes | ||
| duckUnderSpeech | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare write/mutating (readOnlyHint=false) with destructiveHint=false, so the description is not the sole carrier of safety info. It adds genuine behavioral context: fade-in/out is applied, ducking is transcript-driven, and if narration exists the music is mixed under rather than replacing it. It stops short of stating whether an existing background track is overwritten or permissions needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action. The narration parenthetical is slightly redundant but adds the mechanism insight needed to avoid misreading dedup behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Mutation tool with no output schema and full annotation coverage; the description supplies the behavioral mechanics (fading, transcript-driven ducking, mix-vs-replace). The main gap is absence of detail on the track identifier format and volume/duckTo semantics, which are the only parameters with defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for 5 parameters, so the description must compensate. It explains duckUnderSpeech (dips while anyone speaks, sourced from the transcript) but leaves track, duckTo, volume, and projectPath entirely unexplained beyond their names and JSON type/defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lay a track under the edited video) and resource (Screen Studio's music library), plus fade behavior. No sibling tool in the list does music-bedding, and the description names the related narration music option to distinguish the mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the use case (backing music under an edited video) and notes the narration relationship, but gives no explicit when-to-use versus screenstudio_narrate's music option, no prerequisites, and no statement of when this tool is the wrong choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_narrateA
Voice over the video. Each line is spoken by a neural voice (edge-tts, an online Microsoft voice service, so the line text leaves this Mac) and pinned to a moment: sourceMs (stays on its moment through later edits) or playbackMs. pinToMarkers puts each line without a time 300ms after its recording marker (line i on marker i). Lines are mixed, optionally over Screen Studio library music ducked under speech (e.g. 'commercial/Product Uplift'), and attached as the project's audio track through the app. captions:true captions the voice: as Screen Studio's own captions when the recording has no microphone, otherwise as .srt and styled .ass files next to the project for burn-in. Returns each line's playback start/end, notes on what it chose and warnings when a line runs into the next or past the end. Call again without lines after changing the cut to re-sync. Screen Studio's own AI and recorded voiceover tracks are disabled in this app build. Re-sync keeps the last voice, rate, music, volumes and captions unless you pass new ones; music laid by screenstudio_music stays under the voice unless music is null.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | No | Percent. Default 0; a re-sync keeps the last. | |
| lines | No | ||
| music | No | Library track such as 'commercial/Product Uplift'; null removes music. A re-sync keeps the last. | |
| voice | No | Default en-US-AndrewMultilingualNeural; a re-sync keeps the last voice. | |
| captions | No | Caption the narration. Without a microphone recording the words become Screen Studio's own captions; otherwise an .srt and a styled .ass are written next to the project for burn-in. Default false; a re-sync keeps the last. | |
| musicVolume | No | Default 0.14; a re-sync keeps the last. | |
| projectPath | Yes | ||
| skipMarkers | No | With pinToMarkers: marker ids to leave out, such as the first take of a beat you redid. screenstudio_analyze lists the markers. | |
| voiceVolume | No | Default 1; a re-sync keeps the last. | |
| pinToMarkers | No | Line i without sourceMs or playbackMs starts 300ms after recording marker i (from screenstudio_desktop_perform markers:true or screenstudio_record_control addMarker). A marker with no input before the next one (a beat that failed before its first step) is skipped. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that line text leaves the Mac via an online Microsoft voice service (matching openWorldHint), that the app's own AI/recorded voiceover tracks are disabled, how mixing/music ducking and caption file outputs work, and what the return value reports (start/end, choices, warnings). It also defines the re-sync state-retention rules.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and organized into behavior, pinning, captions, return value, and re-sync. It is dense and long, with several multi-clause sentences, but virtually every clause carries decision-relevant information rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation that performs network speech synthesis and retimes audio, the description covers side effects, privacy, dependencies on marker-producing tools, caption output modes, return contents, and re-sync semantics. With no output schema, it still explains what comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (80%), so baseline is 3, but the description adds semantics the schema omits — notably the sourceMs vs playbackMs distinction ('stays on its moment through later edits') and the pinToMarkers 300ms/marker-i rule including the skipped-marker edge case. It does not explain line limits or the nested text constraints, so not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Voice over the video') and then distinguishes itself from siblings by noting Screen Studio's own AI and recorded voiceover tracks are disabled and that music laid by screenstudio_music stays under the voice. An agent can tell this apart from screenstudio_music and the voice/caption siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: call again without lines after changing the cut to re-sync, re-sync keeps last voice/rate/music/volumes/captions unless overridden, and markers come from screenstudio_desktop_perform markers:true or screenstudio_record_control addMarker. It does not explicitly state when to prefer this over related narration siblings, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_plan_editARead-only
Propose an edit from the footage (read the craft resource for taste): keep each beat with lead-in and a readable hold, cut dead air, speed up only typing and waiting, and add few long zooms grouped like Screen Studio's auto-zoom (clicks under 5.3s apart share one zoom that pans). Returns ops ready for screenstudio_editor_apply, its pacing check, scored beats and director's notes (each decision at its playback time with the rule behind it). Styles: balanced (default, product demos), calm (docs and tutorials), snappy (short social clips). keep/drop take source-ms spans to override (keep also protects narrated stretches). Speech from the transcript is never cut or sped up; tightenPausesMs (250-400 for talking videos) trims silences between phrases, removeFillers drops um/uh. speedUps:false for narrated videos. look applies a starting frame (wallpaper, gradient, dark, light, minimal, social; none is a default, choose for the content; keep leaves the project's own frame, even under a recipe); aspect sets the output frame. targetMs fits the edit to a length by dropping the lowest-value beats (never the payoff), listed in droppedBeats; structure hook-demo-payoff also suggests a coldOpen. markers (keep by default when the recording has markers): keep starts a beat at each marker and protects it, retake drops the take before a repeated line, chapters numbers the beats. markerBeatsMs (one length per marker, a narration line's beatMs) keeps [marker, marker + ms] so a hold stretched for a voiced line survives. talkingHead plans camera layouts too (skipped when the recording has no camera). recipe (keynote, social-vertical, changelog, founder-talking-head, tutorial, launch-teaser, docs-walkthrough; see screenstudio_recipes) sets style, look, aspect, plan options, captions, cursor and click sound in one word, and returns its music, voice and export settings; explicit arguments win over the recipe, and the notes say what replaced what. No recipe is applied unless named. brand (a kit saved with screenstudio_brand, or the recipe's brand) lays its own colours, captions, cursor and sound over the plan's config (under a recipe or look, its starting look is left out), and its voice and music replace the recipe's where the recipe has them.
| Name | Required | Description | Default |
|---|---|---|---|
| drop | No | ||
| keep | No | ||
| look | No | Default keep. | |
| zoom | No | Default auto. | |
| brand | No | ||
| style | No | ||
| aspect | No | ||
| recipe | No | ||
| markers | No | ||
| maxZooms | No | ||
| speedUps | No | Default true. | |
| targetMs | No | ||
| structure | No | ||
| projectPath | Yes | ||
| talkingHead | No | ||
| markerBeatsMs | No | Voiced beats: one length per marker, in marker order. | |
| removeFillers | No | Default false. | |
| recipeOverrides | No | Change parts of the recipe: style, look, aspect, loupes, plan {...}, rules {...}, config {dotted keys}, music, voice, export. Fields merge into the recipe's. | |
| tightenPausesMs | No | ||
| applyStyleConfig | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover safety (readOnlyHint=true), and the description adds substantial behavior beyond that: precedence rules ('explicit arguments win over the recipe, and the notes say what replaced what'), protection guarantees ('Speech from the transcript is never cut or sped up'), recipe/brand layering rules, and a concrete statement of what is returned (ops, pacing check, scored beats, director's notes). Nothing here conflicts with readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Almost every clause maps to a parameter, so the length is largely earned, but it is delivered as one unbroken run-on paragraph with no bullets or grouping, making it hard to scan for a 20-parameter tool. Shorter lists of defaults and precedence rules would materially improve usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, low-schema-coverage tool with no output schema, the description covers the planning workflow, defaults, precedence between recipe/args/brand, and the return shape. A few parameters (maxZooms, applyStyleConfig) and the interaction between zoom='auto' and maxZooms remain uncovered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 20 parameters at only 30% schema description coverage, the description carries the burden and mostly succeeds: it defines look, style, recipe, markers, markerBeatsMs, targetMs, structure, keep/drop, speedUps, tightenPausesMs, removeFillers, brand and aspect with semantics and defaults. It leaves maxZooms, applyStyleConfig, projectPath and recipeOverrides (only schema-documented) unaddressed, so the coverage is strong but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Propose an edit from the footage') and immediately distinguishes itself from the write path by noting it returns ops for screenstudio_editor_apply. The sibling it feeds is named, so an agent knows this is the non-mutating planning step, not the apply step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real usage context: 'talkingHead ... skipped when the recording has no camera', 'speedUps:false for narrated videos', 'tightenPausesMs (250-400 for talking videos)', and 'No recipe is applied unless named'. It references screenstudio_recipes and screenstudio_brand for follow-up, though it never states an explicit when-not or names a competing planning tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_plan_layoutsARead-only
Camera director for talking-head recordings: plans camera layouts from the speech, clicks and zooms. The cutout camera is the default layout, on the side away from the clicks; you full screen for the opening line and the sign-off; screen only while a zoom asks the viewer to read; split screen under long talk with nothing clicked. Every change lands in a pause between sentences, at least 5s apart (minStretchMs when longer). from timeline (default) plans over the open editor's current cut; from plan plans over a fresh screenstudio_plan_edit plan, so pass the same recipe and plan options you applied it with. Returns ops for screenstudio_editor_apply (clears the layouts track first), the stretches, a layout check and notes saying why. A recording with no camera gets no layouts.
| Name | Required | Description | Default |
|---|---|---|---|
| drop | No | ||
| from | No | timeline | |
| keep | No | ||
| side | No | Cutout camera side: 0 left, 1 right, auto away from the clicks. | auto |
| zoom | No | Default auto, or the recipe's. | |
| style | No | Default balanced, or the recipe's. | |
| recipe | No | ||
| markers | No | ||
| bookends | No | ||
| maxZooms | No | ||
| speedUps | No | ||
| targetMs | No | ||
| structure | No | ||
| projectPath | Yes | ||
| splitScreen | No | ||
| minStretchMs | No | ||
| markerBeatsMs | No | ||
| removeFillers | No | ||
| recipeOverrides | No | Change parts of the recipe: style, look, aspect, loupes, plan {...}, rules {...}, config {dotted keys}, music, voice, export. Fields merge into the recipe's. | |
| tightenPausesMs | No | ||
| loupesScreenOnly | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent with that (the tool returns ops rather than mutating). It adds substantial context beyond the annotations: edit points always land in a pause, are at least 5s apart, and the returned ops 'clear the layouts track first' in screenstudio_editor_apply — a downstream destructive effect worth knowing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause and every sentence carries information — no filler. The middle section is a dense, jargon-heavy run-on ('the cutout camera is the default layout, on the side away from the clicks...') that takes effort to parse, which keeps it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 21 parameters, no output schema and no parameter descriptions in most of the schema, the description covers the essentials an agent needs: what it returns ('ops for screenstudio_editor_apply, the stretches, a layout check and notes saying why') and how the two `from` modes differ. It leaves the behavioral effect of many tuning parameters unexplained, so it is not fully complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 19% across 21 parameters, so the description must compensate, and it does for the policy-critical ones: `side` ('away from the clicks'), `bookends` (full screen for opening line and sign-off), `splitScreen` (under long talk with nothing clicked), `zoom` (screen only while a zoom asks the viewer to read) and `minStretchMs` wiring. However, roughly half the parameters (markers, markerBeatsMs, maxZooms, targetMs, structure, removeFillers, tightenPausesMs, keep/drop) get no explanation at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'plans camera layouts from the speech, clicks and zooms' — and frames the tool as a 'camera director for talking-head recordings'. It is clearly distinguishable from siblings like screenstudio_plan_edit (which plans edits) and screenstudio_editor_apply (which consumes the returned ops).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit routing advice for the `from` parameter: 'from timeline (default) plans over the open editor's current cut; from plan plans over a fresh screenstudio_plan_edit plan, so pass the same recipe and plan options you applied it with'. It also names the downstream consumer (screenstudio_editor_apply) and a no-op case ('A recording with no camera gets no layouts'), but never states a when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_presetsADestructive
List the person's saved Screen Studio presets, or apply one to a project file (the app's own preset apply). Apply to a project that is not open in the editor: an open editor keeps its old settings and its next save writes them back over the preset.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| presetPath | No | ||
| projectPath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, so the safety baseline is covered. The description adds genuinely new behavioral context the annotations cannot: the interaction where an open editor retains stale settings and its next save writes them back over the preset, which warns against a specific destructive sequence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the two modes, then a compact caution sentence. Dense but every clause earns its place; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a dual-mode tool with no output schema, the description covers both actions and the destructive apply workflow adequately. It could say more about what 'list' returns, but the safety-relevant behavior is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for three parameters, so the description must carry the burden. It conveys the mapping implicitly (apply a preset to a project file => presetPath + projectPath, list needs none), but never explains the parameters by name, their formats, or which apply to which action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States two specific verbs (list/apply) against a specific resource (the person's saved Screen Studio presets), and clarifies that apply uses 'the app's own preset apply' rather than the editor's settings path. Clear without opening the schema, though it does not name the nearby sibling screenstudio_editor_apply explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete when-to-use constraint: apply to a project that is NOT open in the editor, because an open editor will overwrite the preset on its next save. Strong contextual guidance, though no alternative tool is named for the editor-open case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_project_duplicateA
Copy a project bundle to a fresh destination, to keep the original untouched.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | ||
| destinationPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds real context beyond that by framing the operation as a copy that preserves the original. It still omits important behavior: what happens if destinationPath already exists, whether it overwrites or fails, and whether the whole bundle (media included) is copied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the action and its purpose front-loaded and zero filler. Nothing needs to be trimmed and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two required params, no output schema, and a low-complexity operation, the description covers the core intent but is silent on collision behavior, return value (e.g. resulting project path), and whether the copy is deep or shallow. Adequate as a minimum viable definition, not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, so the description must carry the load; it partially does. 'Project bundle to a fresh destination' implies projectPath is the source bundle and that destinationPath should be a new/non-existing location, which is added meaning beyond the bare minLength:1 schema. It does not clarify path formats, relative vs absolute, or copy semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Copy') and resource ('project bundle') plus the destination concept, so the operation is immediately identifiable. It does not name or contrast with any sibling such as screenstudio_editor_save or screenstudio_editor_restore, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause 'to keep the original untouched' implies the intended scenario — duplicating before making changes — which is genuine implied usage guidance. However, there is no explicit when-to-use/when-not-to-use statement and no named alternative (e.g. editor_save vs duplicate) for an agent to route between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_quitADestructive
Quit Screen Studio like Cmd+Q when the work is done, which also closes the local automation connection. The app asks about unsaved changes itself; refuses while recording.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the side effect of closing the local automation connection, explains that the app handles the unsaved-changes prompt itself, and flags the recording guard condition. This is exactly the behavioral context an agent needs for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with the operation front-loaded and no filler. Every clause (analogy, connection closure, unsaved changes, recording refusal) carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param, no-output-schema tool, the description covers the operation, side effects, and refusal condition completely. Nothing an agent needs in order to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so the schema baseline of 4 applies. There is nothing to document and the description appropriately spends no words on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Quit) and resource (Screen Studio), and the Cmd+Q analogy makes the operation unambiguous. It is clearly distinguishable from siblings like screenstudio_launch or screenstudio_status without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear usage condition ("when the work is done") and states a precondition (refuses while recording). It does not name alternatives, but there is no obvious sibling that arbitrates the quit decision, so context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_recipesARead-only
Named recipes: one word for a whole direction (pacing style, frame, aspect, plan options, captions, cursor, click sound, music, voice, export). Without a name, lists each with when to use it; with a name, returns the full recipe with any overrides merged and what it sets in plain words; with brand (or overrides.brand), the saved kit's own settings, voice and music laid over it. None is a default: pick the one that fits the content and where it will be watched, then pass it as recipe to screenstudio_plan_edit.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| brand | No | ||
| overrides | No | Change parts of the recipe: style, look, aspect, loupes, plan {...}, rules {...}, config {dotted keys}, music, voice, export. Fields merge into the recipe's. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/destructive=false/closed-world, so the safety profile is covered. The description adds real behavioral value beyond that: what each call mode returns (list with when-to-use notes, full recipe with overrides merged and explained in plain words, brand kit overlaid) — useful since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the resource, but the single dense paragraph packs three call modes plus a long parenthetical list into semicolon-joined clauses, making it harder to parse than necessary. Information-dense with little waste, yet structure could be cleaner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does describe all three modes' outputs. It omits edge cases such as invalid names or whether recipes are user-modifiable, but is otherwise sufficient for a read-only catalog tool with a nested overrides object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description must compensate, and it does: it explains that omitting 'name' lists all recipes, that 'name' returns the merged full recipe, and that 'brand' (or overrides.brand) overlays a saved kit. This maps each parameter to distinct behavior beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource (named recipes) and explains it acts as a lookup of pre-built directions that feed into screenstudio_plan_edit. An agent can tell it apart from most siblings, though it never distinguishes itself from the very similar screenstudio_presets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the selection rule plainly: 'None is a default: pick the one that fits the content and where it will be watched, then pass it as recipe to screenstudio_plan_edit.' That is clear when-to-use context and names the downstream consumer, but gives no explicit when-not or alternative-tool comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_record_controlADestructive
Pause, resume, add a marker, restart (discard and record again), cancel (discard), or finish and return the saved project. Idle time between beats is cut later by the edit plan, so pausing for short thinking is unnecessary.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations flag destructiveHint=true, and the description usefully disambiguates which actions are destructive: restart and cancel 'discard', while finish 'returns the saved project'. That is genuine added context beyond the annotation, though it omits what happens to a recording if you pause and never resume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The action enumeration is front-loaded and the trailing tip is a single clause that earns its place by preventing unnecessary pauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one param and no output schema, the description covers what an agent needs, including that finish yields the saved project. It could be slightly more complete about the prerequisite that an active recording must exist before any control action is valid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single enum parameter carries no inline descriptions, so the description must compensate. It effectively does: every enum value is named and the ambiguous ones are clarified (restart = discard and record again, cancel = discard, finish = return the saved project).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the active recording) and enumerates every action it accepts (pause, resume, addMarker, restart, cancel, finish), each with a parenthetical gloss. An agent can immediately distinguish it from siblings like record_start (begin) and record_state (query) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-not-to guidance: pausing for short thinking is unnecessary because idle time is trimmed later. It stops short of routing the agent to siblings (e.g., record_start to begin, record_state to poll), so the alternative-selection story is implicit rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_record_startA
Start recording one exact window, a display, or an area of a display (displayId plus area in display points). Audio and camera default off. Rehearse first; record each beat with screenstudio_desktop_perform.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | ||
| name | Yes | ||
| windowId | No | ||
| displayId | No | ||
| systemAudio | No | ||
| cameraDeviceId | No | ||
| microphoneDeviceId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-open-world write, so the safety profile is covered. The description usefully adds that audio and camera default off and that area is measured in display points, but says nothing about what artifact is produced, where it is stored, or how the recording is stopped (record_control).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the primary action front-loaded and no filler. The mode/scope detail leads, followed by defaults and workflow, which is a sensible ordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters at 0% schema coverage and no output schema, the description covers the recording modes and defaults but omits how a session is stopped, where output lands, and the meaning of several parameters. Adequate but with visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 7 parameters, so the description must compensate. It partially does by clarifying area semantics ('area in display points') and the three recording targets, but name, systemAudio, and the device IDs (cameraDeviceId, microphoneDeviceId) are left undocumented beyond the audio/camera-off default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Start recording') and enumerates the exact target resources (one exact window, a display, or an area of a display), which lets an agent map it to windowId/displayId/area without opening the schema. It reads distinctly from sibling recording tools like screenstudio_record_control and screenstudio_record_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers workflow guidance ('Rehearse first; record each beat with screenstudio_desktop_perform') and routes the agent to a specific sibling, but never states when to use this versus record_control or record_state, nor any preconditions like app/editor state. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_record_stateBRead-only
Inspect the current recording session. Null means idle.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds one genuinely useful behavioral detail ('Null means idle') about the return state, but says nothing about what a non-null session object contains or whether it reflects a live vs. completed recording.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two terse, front-loaded sentences with no filler; the core action comes first and the return-value caveat follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries full responsibility for explaining the return value, and 'Null means idle' only partially covers it - the shape and fields of a non-null session are unstated. For a simple zero-param read-only tool this is acceptable but leaves a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; per the rubric, 0 params sets the baseline at 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Inspect) and resource (current recording session), which distinguishes it from siblings like screenstudio_record_start and screenstudio_record_control. It does not, however, differentiate itself from the similarly-named screenstudio_status or screenstudio_editor_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus siblings such as screenstudio_status or screenstudio_record_start. Usage is only implied by the tool name; no prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_source_framesARead-only
See raw recording moments (source ms) before deciding what to keep or where to zoom. Up to 8 frames; clicks within 400ms are marked with a red box.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | ||
| sourceMs | Yes | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the description adds value by disclosing output characteristics instead: a hard cap of 8 frames and the fact that clicks within 400ms are annotated with a red box. It stops short of describing error behavior for out-of-range source timestamps, which keeps it from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no waste; the purpose is front-loaded and the operational details (frame cap, click marking) follow in order of importance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns; it hints at visual output via the red-box annotation but never says what is actually returned (image data vs. paths) or the return shape. Combined with undocumented parameters, the definition is workable but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters. The description partially compensates by implying the meaning of sourceMs ('source ms', 'up to 8 frames' matching maxItems=8), but projectPath and width are entirely unexplained in both schema and description, leaving the agent guessing at what width controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('See raw recording moments (source ms)') and clarifies the scope is raw source material rather than edited output. It does not distinguish itself from sibling frame-producing tools such as screenstudio_editor_frame or screenstudio_export_frame, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before deciding what to keep or where to zoom' implies a pre-edit review workflow, which is genuine usage context. However, no alternative tool is named and there is no explicit when-not-to-use guidance, so the agent must infer when this beats the other frame-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_sourcesARead-only
List capturable windows, display IDs, microphones and cameras.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful content detail (what categories of sources are listed) but says nothing about freshness, scoping or how identifiers should be consumed downstream.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the verb and immediately enumerates the return categories. There is no padding or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument discovery tool whose annotations already cover safety, the description is close to sufficient, and its enumeration partially compensates for the missing output schema. It could be strengthened by naming how the returned IDs feed sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline of 4 applies. The schema is an empty object and there is nothing further for the description to disambiguate on the input side.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and enumerates the exact resource types returned (capturable windows, display IDs, microphones, cameras), so an agent knows precisely what comes back. It does not, however, distinguish itself from related siblings like screenstudio_source_frames or screenstudio_desktop_inspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no reference to alternatives such as screenstudio_source_frames, which also deals with sources. The agent must infer that this is a prerequisite enumeration step for discovery, but nothing in the text confirms that.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_statusARead-only
Start here. Connection, app version (and whether it is the tested build), open editor windows, recording state, ffmpeg / edge-tts / input helper and the Accessibility and Screen Recording permissions, supported features, the named recipes and the saved brand kits. Works when the app is closed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely useful context beyond that: the tool works even when the app is closed, and it surfaces permissions/dependency diagnostics an agent would otherwise have to probe for. It does not, however, describe response format or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
'Start here' is front-loaded and the enumeration that follows is dense but each item earns its place by telling the agent what state is available. The long comma-separated list is slightly run-on but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the burden of describing what is returned, and it does so comprehensively across connection, version, editor state, recording state, dependencies, permissions, features, recipes, and brand kits. Annotations cover safety, so nothing material is missing for a status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify on the input side. No parameter-related guidance is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear entry-point purpose ('Start here') and enumerates the concrete state it reports: connection, app version/tested-build status, open editor windows, recording state, dependency helpers, permissions, supported features, recipes, and brand kits. An agent can distinguish it from siblings like screenstudio_recipes or screenstudio_brand because this is the aggregate diagnostic surface rather than a management tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Start here' explicitly tells the agent to call this first, and 'Works when the app is closed' gives a concrete condition under which it is the right tool. It stops short of naming explicit alternatives or exclusions, so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_transcript_editA
Fix the transcript the captions show: correct a misheard word or name (keep the word's leading space), or remove words from the captions. Indexes come from screenstudio_transcript_read. Updates the open editor live; editor is 'updated' when it now shows the change, or 'not-open'.
| Name | Required | Description | Default |
|---|---|---|---|
| edits | Yes | ||
| session | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply readOnlyHint/destructiveHint/openWorldHint; the description goes further by disclosing that the edit applies live to the open editor and returns 'updated' or 'not-open', which tells the agent what success and failure look like. The leading-space caveat for corrected text is a real behavioral gotcha not derivable from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the action and the operation types, then the index source, then the live-update outcome. The trailing clause about 'updated'/'not-open' is slightly awkward but carries information, so nothing is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only hint-level annotations, the description does supply the return statuses and the live-editor behavior, which is the critical missing piece. However it leaves the session parameter unexplained and doesn't clarify edit-array constraints (500-item cap, index bounds), so it is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 3 parameters, so the description must carry the load. It does explain index provenance, the text leading-space rule, and the meaning of removal, but says nothing about the 'session' parameter (which session it targets, why default 0) or projectPath, leaving real ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fix the transcript the captions show'), enumerates the two supported operations (correct a word/name, remove words), and names the sibling that supplies the indexes (screenstudio_transcript_read). An agent can distinguish it from screenstudio_transcript_read and screenstudio_transcript_generate without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives the prerequisite for the index parameter ('Indexes come from screenstudio_transcript_read') and the two supported use cases, which is clear routing context. It stops short of stating when not to use it (e.g. regenerating the whole transcript vs. patching individual words), so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_transcript_generateADestructive
Transcribe the microphone with Screen Studio's own recognizer. Default is the on-device system recognizer (no upload); pass a generator like {type:'whisper', model} only when the person wants it (it can download a model). Captions come from this transcript. Replaces the current transcript, including caption fixes made with screenstudio_transcript_edit. editor is 'updated' when the open editor now shows it, or 'not-open'.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | ||
| generator | No | ||
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by spelling out exactly what is destroyed (the current transcript, including caption fixes made elsewhere), what the generator can trigger (a model download, consistent with openWorldHint), and what the caller gets back (editor is 'updated' or 'not-open'), which substitutes for the missing output schema. This is unusually rich for a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and default, then the override condition, then the destructive consequence, then the return value. Dense and mostly waste-free, though the return-value sentence about 'editor' reads as a trailing detail that could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world tool with no output schema, it covers the destructive scope, the network side effect, the fallback/override behavior, and the return value. Remaining gaps are minor: locale semantics and any precondition that a recording/audio source exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden; it does well for generator, giving the shape {type:'whisper', model} and the model-download implication, but says nothing about locale or what projectPath must point to. Partial compensation for a 3-parameter, nested-object schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: transcribe the microphone using Screen Studio's own recognizer, and names the source of captions. It is clearly distinguishable from siblings screenstudio_transcript_read (reads) and screenstudio_transcript_edit (edits), and it explicitly situates itself in that family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear default ('on-device system recognizer, no upload') and the condition for overriding it ('pass a generator ... only when the person wants it'). It also flags the sibling interaction by warning that it replaces caption fixes made with screenstudio_transcript_edit, though it does not state prerequisites (e.g. an existing recording) or when not to run it at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_transcript_readARead-only
Read the transcript: every word with its index and source ms, phrases (speech separated by pauses), filler words. Does not generate or upload anything.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real value beyond that by describing the return contents (word indices, source ms, phrase segmentation by pauses, filler words), which is what an agent needs to know before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the verb and the payoff (the transcript contents), then the negative scoping clause. Minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly spends its words describing what is returned. Combined with annotations covering the safety profile, this is nearly complete — the only gap being the unexplained projectPath parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter (projectPath) with 0% schema description coverage, and the description says nothing about it — no format, no hint about which project. With coverage below 50%, the description was expected to compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Read the transcript') and details the returned content: word index, source ms, phrases, filler words. The closing 'Does not generate or upload anything' implicitly distinguishes it from transcript_generate/transcript_edit, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via the negation 'does not generate or upload anything', which hints this is the read-only path versus the generate/edit siblings. There is no explicit 'use this when you need X, otherwise use Y' routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenstudio_voice_linesA
Voice a script before recording, without a project: returns each line's spoken durationMs and beatMs (line plus 400ms) so every beat can be recorded to last as long as its line (screenstudio_desktop_perform minDurationMs, with markers:true). Uses edge-tts (online; the text leaves this Mac). The clips are cached, so screenstudio_narrate with the same text, voice and rate reuses them.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | No | Percent. Default 0; a re-sync keeps the last. | |
| lines | Yes | ||
| voice | No | Default en-US-AndrewMultilingualNeural; a re-sync keeps the last voice. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (readOnlyHint false, openWorldHint true, destructiveHint false); the description adds material context beyond them — the edge-tts online dependency with the privacy note that 'the text leaves this Mac', the caching of clips, and reuse by screenstudio_narrate keyed on text/voice/rate. It also documents the return values, which no output schema supplies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and stays to one dense sentence with parentheticals. Efficient, though the parenthetical stack makes it slightly heavy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly supplies the return shape (durationMs, beatMs) plus the network/privacy and caching behavior, which is what an agent needs. Minor gaps remain on failure modes (e.g., what happens if edge-tts is unreachable), but the core is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: rate and voice already carry descriptions with defaults and re-sync behavior. The description only adds that the cache key is (text, voice, rate), which is useful but marginal, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Voice a script before recording, without a project') and names the return payload (durationMs, beatMs). It explicitly distinguishes itself from siblings screenstudio_desktop_perform and screenstudio_narrate, so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: voice a script BEFORE recording and without a project, so each beat can be recorded to match its line length. It names screenstudio_narrate as the tool that reuses the cached clips, implying the when-to-use split, but stops short of an explicit when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
46 tool updates
v0.5.0- First observed
screenstudio_analyze - First observed
screenstudio_brand - First observed
screenstudio_catalog - First observed
screenstudio_check_pacing - First observed
screenstudio_contact_sheet - First observed
screenstudio_desktop_action - First observed
screenstudio_desktop_inspect - First observed
screenstudio_desktop_perform - First observed
screenstudio_desktop_screenshot - First observed
screenstudio_editor_apply - First observed
screenstudio_editor_frame - First observed
screenstudio_editor_history - First observed
screenstudio_editor_list - First observed
screenstudio_editor_open - First observed
screenstudio_editor_play - First observed
screenstudio_editor_restore - First observed
screenstudio_editor_save - First observed
screenstudio_editor_seek - First observed
screenstudio_editor_state - First observed
screenstudio_editor_view - First observed
screenstudio_export_cancel - First observed
screenstudio_export_frame - First observed
screenstudio_export_start - First observed
screenstudio_export_status - First observed
screenstudio_export_variants - First observed
screenstudio_find_sensitive - First observed
screenstudio_launch - First observed
screenstudio_loop - First observed
screenstudio_music - First observed
screenstudio_narrate - First observed
screenstudio_plan_edit - First observed
screenstudio_plan_layouts - First observed
screenstudio_presets - First observed
screenstudio_project_duplicate - First observed
screenstudio_quit - First observed
screenstudio_recipes - First observed
screenstudio_record_control - First observed
screenstudio_record_start - First observed
screenstudio_record_state - First observed
screenstudio_source_frames - First observed
screenstudio_sources - First observed
screenstudio_status - First observed
screenstudio_transcript_edit - First observed
screenstudio_transcript_generate - First observed
screenstudio_transcript_read - First observed
screenstudio_voice_lines
TDQS
Scored across 46 tools
Most tools target clearly distinct pipeline stages (recording, analysis, editing, export, automation). A few groups overlap in purpose—editor_frame, contact_sheet, export_frame, and source_frames all capture visual frames, while desktop_action and desktop_perform both act on native windows—but detailed descriptions help distinguish them.
All tool names use the same screenstudio_ prefix and snake_case, and domain suffixes group related operations predictably. The pattern is not strictly verb_noun throughout—some tools are noun-only (recipes, presets, catalog, sources, brand) and some are verb-only (analyze, narrate, loop)—but the style is consistent and readable.
With 46 tools, the set is very large for an MCP server and will consume significant context. While each tool appears to earn its place in a complex screen-recording automation workflow, the count is well above the typical 3-15 range and risks overwhelming agents.
The surface covers the domain comprehensively: recording, desktop automation, analysis, planning, editing, narration, transcript handling, branding, export, and review. Minor gaps exist—such as no explicit project creation or deletion tool—but core lifecycle operations are well represented.
Maintenance
Related MCP Connectors
Make how-to videos, social clips and help articles from Claude or ChatGPT, and run your help center.
Narrated demo and tutorial videos of your web app, from a guide or your coding agent.
Loom for agents: AI agents record narrated product demos, plus transcripts, summaries, and search.
Demo-video assistant: records your web app click by click and returns an MP4 with zooms, captions.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI coding agents to capture screen and voice recordings, extract timestamped frames, and receive structured Markdown reports with context for bug fixing and UI feedback.17 npm18MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to create polished product demo videos by controlling a real Chromium browser, recording actions, and rendering 1080p MP4s with narration, captions, and styled overlays.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables an AI agent to operate Windows applications through vision-driven UI Automation and record polished demo videos with pre-click camera zoom, narration, and cinematic effects.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to record narrated, zoom-animated product demo videos of websites entirely on-device, including outlining pages, scripting tours, recording MP4s, reviewing frames, and extracting embedded recipes to fork or rerender demos.5 npm4MIT