Skip to main content
Glama

Edit asset

edit_asset
Destructive

Run pipeline nodes over ONE video, image, or audio file the account already has and get the edited file back: captions, an upscale, background removal, lipsync, a crop, an overlay, a cutaway, a thumbnail, a trim, or any other transform in list_node_types. To put music under a video, use assemble_video with musicPrompt instead. Operations run in order, each fed the output of the one before, so "caption it and upscale it" is one call with two operations; a Transcribe stage is added wherever an operation needs a transcript. Check a node's config and ports with get_node_type first. A setting the node does not define, or a value outside what it offers, is refused with the valid ones listed. The source, and any url given as an input, must come from list_assets or a run's outputs in get_run. Renders in the background and spends credits: poll get_run with the returned pipelineId and runId. The same edit asked for again within a few minutes returns the render already started (repeat: true) rather than charging for another; to render it a second time on purpose, pass a new requestId. Needs the pipelines:run and pipelines:write scopes.

Input Schema

NameRequiredDescriptionDefault
nameNoWhat to call the render, e.g. "Captioned short".
requestIdNoAny id you choose for this one request. A call with an id that already started a render returns that render; a new id renders again even when everything else is identical.
sourceUrlYesThe asset to edit, from list_assets or a run output.
operationsYesThe nodes to run over the asset, in order.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / requestId
      Added value: +{
      +  "description": "Any id you choose for this one request. A call with an id that already started a render returns that render; a new id renders again even when everything else is identical.",
      +  "maxLength": 128,
      +  "minLength": 1,
      +  "type": "string"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare a destructive, non-read-only, open-world write, and the description richly extends this: background rendering plus credit spend, polling get_run with the returned pipelineId/runId, the repeat: true dedupe window, and required pipelines:run / pipelines:write scopes. It also discloses validation behavior (undefined settings or out-of-range values are refused with valid options listed).

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

Conciseness4/5

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

Purpose and the assemble_video alternative are front-loaded, and the dense semicolon-heavy prose is justified by the tool's complexity (ordered ops, credits, dedupe, scopes). It is somewhat long, but nearly every clause carries operational information rather than filler.

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

Completeness5/5

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

For a mutation tool with no output schema, it covers result retrieval (poll get_run with pipelineId/runId), cost implications, permission scopes, idempotency/dedupe behavior, input provenance, and validation failure modes. Nothing an agent needs to invoke it correctly appears to be missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds real semantics: operations run in order with each fed the previous output (multi-op single call), a Transcribe stage is auto-inserted when needed, and sourceUrl/url inputs must come from list_assets or get_run outputs. This meaningfully extends beyond the schema text.

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

Purpose5/5

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

States a specific verb and resource ('run pipeline nodes over ONE video, image, or audio file the account already has and get the edited file back') and enumerates concrete transforms like captions, upscale, lipsync, crop, and trim. It explicitly distinguishes itself from the sibling assemble_video for the music case, so an agent can route without opening another schema.

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

Usage Guidelines5/5

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

Gives explicit routing ('To put music under a video, use assemble_video with musicPrompt instead'), a prerequisite step ('Check a node's config and ports with get_node_type first'), and a sourcing constraint ('must come from list_assets or a run's outputs in get_run'). It also explains when to pass a new requestId versus accepting the deduped render.

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.