Skip to main content
Glama

Record a scrolling video of a website

render_video
Destructive

Record an MP4 or WebM video of a page, optionally scrolling through it, with the GPU for WebGL and 3D pages. Returns the video URL. Any other Urlbox option (proxies, cookies, headers, user agent and many more) goes in options: look it up with describe_options.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "intent": "<intent>"
    },
    "name": "render_video"
  }
}

Input Schema

NameRequiredDescriptionDefault
gpuNoEnable GPU acceleration to render 3D scenes and heavy WebGL content. This is a beta feature and requires pre-approval. Please contact support@urlbox.com to enable this feature on your account. Requires the ultra plan or above.
urlNoThe URL or domain of the website you want to screenshot. We will automatically prepend http:// if it is missing.
htmlNoHTML to render instead of a URL (HTML to PDF, HTML to image).
delayNoThe amount of time to wait before Urlbox captures a render in milliseconds.
widthNoThe viewport width of the browser, in pixels.
formatNoOutput format: mp4, webm. Defaults to mp4.
heightNoThe viewport height of the browser, in pixels.
intentYesRequired. In one or two sentences, what you are trying to achieve for the user with this call and why (for example: 'Screenshot the pricing page so the user can compare plans'). Recorded for analytics and audit; do not include secrets.
optionsNoAny other Urlbox render option by name, e.g. { "gpu": true }. For an option this tool doesn't list, look it up with describe_options first (it covers every option); don't search the web. Validated by the Urlbox API.
projectNoProject id (proj_…) or exact name to render with. Defaults to your default project.
block_adsNoBlocks requests from popular advertising networks from loading.
video_fpsNoFrames per second of the output video, from 1 to 60. Defaults to 30 on the latest engine and 60 on stable (see engine_version). Higher frame rates give smoother scrolling and bigger files.
click_acceptNoSimilar to the hide_cookie_banners option, but instead of hiding the banners, this option attempts to click on the 'Accept' button, in order to accept cookies.
video_scrollNoSmoothly scroll down the page while recording, section by section, then scroll back to the top. Scroll speed, easing, pauses and distance are controlled by the options below.
wait_secondsNoHow long to wait for the render before returning. 0 queues it and returns a render id at once. If the wait runs out the render keeps going; fetch it with get_render.
hide_selectorNoHide specific HTML elements on the page before rendering. This option accepts a comma-delimited string of CSS element selectors that will be hidden by setting their style to visibility: hidden !important; pointer-events: none !important;. This preserves the page layout while making elements invisible. This is particularly useful for: Hiding pop-ups, banners, or cookie notices; Removing advertisements or promotional overlays; Excluding navigation menus or sidebars; Hiding specific content sections; Selector types supported: Element selectors (e.g., h1, div, img) - Hide all elements of that type; Class selectors (e.g., .popup, .banner) - Hide elements with specific CSS classes; ID selectors (e.g., #header, #sidebar) - Hide elements with specific IDs; Complex selectors (e.g., .nav ul li, div.content > p) - Use any valid CSS selector; Multiple selectors - Combine multiple selectors with commas; Tip: To find the selector for any element, open your browser's DevTools, right-click the element in the Elements tab, and select "Copy > Copy selector".
engine_versionNoSets the version of the urlbox rendering engine to use when rendering the page. This can be useful for testing how a page will render in the latest version of our rendering engine. One of: stable, latest, experimental.
video_scroll_toNoScroll to and pause on specific page sections in turn while recording, instead of a constant scroll. Each stop is a CSS selector or a text=... locator, optionally followed by ;wait=... and ;duration=... (over a render link), or given as { selector | text, wait, duration, ease, offset } objects (in a JSON body). See the Recording videos guide.
video_scroll_backNoWhether to scroll back up to the top after reaching the bottom.
hide_cookie_bannersNoAutomatically hides cookie banners from most websites, by setting their style to display: none !important;

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4/5.0
Behavior3/5

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

Annotations already flag this as a non-read-only, non-idempotent, destructive, open-world call, and the description adds that the call returns a video URL. What it does not explain is the annotation-implied destructiveness (credit consumption / persisted renders) or the asynchronous path where the render is queued and later fetched with get_render. With annotations carrying the safety profile, a 3 is warranted, though the queue semantics deserve mention given the heavy operation.

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

Conciseness5/5

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

Three short sentences: capability first, return value second, option-routing last. No repetition of schema detail and nothing that fails to earn its place.

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

Completeness4/5

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

For a 20-parameter tool with no output schema, stating the return value (video URL) covers the main gap, and the rich schema fills in the rest. The one omission is the asynchronous behavior — wait_seconds=0 queues the render and requires get_render — which matters for a slow video job and is only discoverable in a single parameter's description.

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

Parameters3/5

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

Schema description coverage is 100%, including detailed prose on video_scroll, video_scroll_to, gpu, video_fps and wait_seconds, so the schema already does the heavy lifting. The description's only parameter-level contribution is the `options` escape hatch, which largely restates what the `options` schema field already says.

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

Purpose5/5

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

Names a specific verb and resource — recording an MP4/WebM video of a page — and adds the distinguishing capability (optional scroll-through, GPU for WebGL/3D). This clearly separates it from the numerous still-media siblings such as render_screenshot, render_pdf and render_markdown.

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

Usage Guidelines4/5

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

Gives a concrete routing rule for the long tail of parameters: put them in `options` and resolve names with describe_options rather than searching the web. It does not, however, say when a video is preferable to a screenshot or PDF sibling, leaving that inference to the agent.

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.