Skip to main content
Glama

screen_record_start

Idempotent

Start recording the page or app you opened. Rehearse the flow first; from here every action is in the take. Between your calls the take holds still, so thinking time never shows. Set the cut's look here (style, aspect, cursor, highlight_color, auto_zoom, captions…): you are the editor, and the take is cut in this look the moment it stops. screen_record_stop can still change any of it.

response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.

Input Schema

NameRequiredDescriptionDefault
frameNo
styleNo
titleNo
aspectNo
cursorNo
fieldsNo
radiusNo
shadowNo
paddingNo
backdropNo
calloutsNo
captionsNo
auto_zoomNo
skip_idleNo
title_cardNo
click_soundNo
cursor_sizeNo
motion_blurNo
click_rippleNo
zoom_strengthNo
backdrop_colorNo
highlight_liftNo
highlight_zoomNo
highlight_colorNo
response_detailNo
hide_idle_pointerNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed22 schema fields changed
    • addedInput schema / properties / aspect
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Aspect"
      +}
    • addedInput schema / properties / auto_zoom
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Auto Zoom"
      +}
    • addedInput schema / properties / backdrop
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Backdrop"
      +}
    • addedInput schema / properties / backdrop_color
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Backdrop Color"
      +}
    • addedInput schema / properties / callouts
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Callouts"
      +}
    • addedInput schema / properties / captions
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Captions"
      +}
    • addedInput schema / properties / click_ripple
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Click Ripple"
      +}
    • addedInput schema / properties / click_sound
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Click Sound"
      +}
    • addedInput schema / properties / cursor_size
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Cursor Size"
      +}
    • addedInput schema / properties / frame
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Frame"
      +}
    • addedInput schema / properties / hide_idle_pointer
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Hide Idle Pointer"
      +}
    • addedInput schema / properties / highlight_color
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Highlight Color"
      +}
    • addedInput schema / properties / highlight_lift
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Highlight Lift"
      +}
    • addedInput schema / properties / highlight_zoom
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Highlight Zoom"
      +}
    • addedInput schema / properties / motion_blur
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Motion Blur"
      +}
    • addedInput schema / properties / padding
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Padding"
      +}
    • addedInput schema / properties / radius
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Radius"
      +}
    • addedInput schema / properties / shadow
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Shadow"
      +}
    • addedInput schema / properties / skip_idle
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Skip Idle"
      +}
    • addedInput schema / properties / style
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Style"
      +}
    • addedInput schema / properties / title_card
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Title Card"
      +}
    • addedInput schema / properties / zoom_strength
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Zoom Strength"
      +}
  2. Added

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior — actions between calls are not recorded ('thinking time never shows') and the look is applied at stop but remains editable via screen_record_stop. It does not resolve the tension between 'start' semantics and idempotentHint=true, nor mention auth or what happens on a second start call.

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

Conciseness2/5

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

Four sentences of heavily metaphorical prose precede a boilerplate footer. The operational content (start recording, settings applied at stop, editable later) is buried inside the metaphor rather than front-loaded, and the closing parameter hints are unrelated filler.

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

Completeness2/5

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

A 26-parameter tool with 0% schema description coverage, no output schema, and no annotation explanation of return values needs far more parameter documentation than one example list. An agent cannot know what most of the 26 flags do, what the call returns, or what state it must be in before calling.

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

Parameters2/5

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

Schema coverage is 0% across 26 parameters, so the description carries the full burden. It names only a handful of examples (style, aspect, cursor, highlight_color, auto_zoom, captions) and leaves the other twenty undocumented. The trailing 'response_detail... fields... cursor...' footer reads like generic boilerplate and actively confuses 'cursor' (a recording look parameter here) with pagination.

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

Purpose4/5

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

The opening sentence gives a specific verb and resource: 'Start recording the page or app you opened.' It also gestures at the sibling relationship ('screen_record_stop can still change any of it'). The remaining prose is metaphorical ('take', 'cut', 'editor') and obscures rather than sharpens the purpose, keeping it below a 5.

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

Usage Guidelines3/5

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

'Rehearse the flow first' implies a when-to-use condition, and the mention that screen_record_stop can adjust settings later gives a weak alternative path. There is no explicit statement of prerequisites (does a page need to be open? does screen_open come first?) nor when-not-to-use guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.