Skip to main content
Glama

Server Details

Build, run, schedule, and publish AI video pipelines to YouTube and TikTok from any MCP client.

Ownership verified
Status
Healthy
Uptime
56.1% over 54 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
treza-labs/treza-plugin
GitHub Stars
0
Server Listing
Treza MCP

TDQS

A4.1/5.0

Scored across 27 tools

Disambiguation3/5

Most tools target distinct resources, but several boundaries require careful reading: make_video vs assemble_video vs edit_asset vs run_pipeline, publish_asset vs confirm_publish vs publish_pipeline, and list_assets vs open_library. The descriptions do a good job clarifying these, but the set still has enough surface overlap that an agent could misselect without close attention.

Naming Consistency5/5

Tool names consistently use snake_case verb_noun patterns such as list_assets, get_run, create_pipeline, update_pipeline, publish_pipeline, and cancel_run. Minor cases like confirm_publish and open_library still fit the same readable convention.

Tool Count3/5

With 27 tools, the server is at the heavy end for an agent-facing surface, though the domain is genuinely broad: assets, pipelines, runs, publishing, channels, credits, schedules, and node schemas. Some tools are panel-only or niche, but the count is borderline rather than clearly wrong.

Completeness4/5

The surface covers most core workflows: media import/list, pipeline create/read/update/publish/run, run polling/cancel, cost estimation, credits, channels, and publishing preparation. Gaps exist around deletion/archival of pipelines and assets, channel disconnection, and standalone asset inspection, but these are mostly workable through the web app or alternative flows.

Available Tools

27 tools
assemble_videoAssemble videoA
Destructive
Inspect

Join clips the account already has into ONE finished video, in the order given, optionally over a voiceover (narrationUrl) and a music bed, which become separate tracks with the clips ducked under the voice, and with burned-in captions. The bed is a track from the library (musicUrl) or one composed for this cut from a description (musicPrompt), never both. One clip plus a track is how to put music or narration under a single video: "add music to my video" is clipUrls [that video] with a musicPrompt, and no pipeline to build. Every url must come from list_assets or a run's outputs in get_run. A slideshow of photos or images, with a push-in, a pan or Ken Burns, is ONE call with the image urls, stillMotion and stillSeconds, never an image-to-video clip per photo. Stills hold 3 seconds each (or stillSeconds), or stretch so a longer voiceover plays in full. With no stills, the clips have to run as long as the voice (list_assets gives each durationSec): the last frame holds up to 3 seconds so the voice can finish, and a voice longer than that past the clips is refused with nothing charged. lengthSec in the result is how long the cut will run, and any warning in it should be passed on. Renders in the background: poll get_run with the returned pipelineId and runId. Free once the account has bought credits (the result carries charged: false), so never ask a paying account to top up before assembling; charged on a trial. The same request made again within a few minutes returns the render already started (repeat: true) rather than starting another; to render the same cut a second time on purpose, pass a new requestId. Needs the pipelines:run and pipelines:write scopes.

NameRequiredDescriptionDefault
nameNoWhat to call the render, e.g. "Beach trip cut".
captionsNoTranscribe the finished edit and burn captions in. Only worth it when the clips or narration contain speech.
clipUrlsYesVideo or image urls in play order: two or more, or exactly one when narrationUrl, musicUrl or musicPrompt is set.
musicUrlNoMusic bed under the whole edit, beneath the clips' own sound and any narration: an audio url from list_assets. Leave it out when passing musicPrompt.
fadeInSecNoFade the opening up from black over this many seconds: the first shot's picture and the music bed together.
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.
fadeOutSecNoFade the whole ending to black and silence over this many seconds: the last shot's picture eases down and the music bed fades with it. This is "fade out at the end"; 1.5 to 3 reads as a deliberate ending. The transition argument is the cut between shots and does not touch the ending.
transitionNoHow each shot hands off to the next: the join between two shots, applied at every cut. Defaults to a hard cut. "fadeblack" dips to black between shots; it is not a fade-out at the end, which is fadeOutSec.
musicPromptNoCompose the music bed for this cut instead of taking one from the library: genre, mood, tempo and instruments, e.g. "calm cinematic ambient, soft piano, gentle pads, no vocals". It sits and ducks exactly like a musicUrl bed and takes the same fades. Written by the Audio Generation node's default model (get_node_type music-gen), or its full-song model when the cut runs past 30 seconds; the result names the model as composedMusic. Leave it out when passing musicUrl.
orientationNo"vertical" is 1080x1920 for Shorts, Reels and TikTok, "horizontal" is 1920x1080, "match_first" (the default) keeps the first clip's shape. Shots that do not fill the frame are letterboxed, never cropped.
stillMotionNoA slow camera move over every still image: push_in, pull_out, a drift across the photo (pan_left, pan_right, pan_up, pan_down), or ken_burns (a different move on each photo in turn). Video clips play as shot. Defaults to none.
narrationUrlNoVoiceover laid over the whole edit. Everything else ducks under it.
stillSecondsNoHow long each still image holds, in seconds. Defaults to 3; 3 to 5 reads well for a slideshow. A narrationUrl longer than the stills still plays in full: they stretch to cover it. Leave it out when the voice should set the pace of a cut that is all stills.
audioFadeInSecNoFade the music bed (or the only track) up over this many seconds at the start. Applies to a composed bed too.
audioFadeOutSecNoFade the music bed (or the only track) down over this many seconds at the end, with the picture left as it is; 2 to 4 reads as a deliberate ending. Narration is never faded when there is a bed. For the whole ending to fade, use fadeOutSec.

TDQS

A4.8/5.0
Behavior5/5

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

The description adds substantial behavior beyond annotations: background rendering, polling via get_run, credit charging rules, repeat-request deduplication, required scopes, and refusal behavior when narration outruns the clips. These are material operational details for a destructive, non-idempotent render tool.

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?

The description is front-loaded with the primary action and then layers in edge cases, which is appropriate for a 15-parameter render tool. It is dense and occasionally long-sentenced, but most sentences carry operational value rather than restating the schema.

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?

Given the tool's complexity, lack of an output schema, and mutation/destructive profile, the description is complete: it explains async polling, result fields like lengthSec and repeat, charging behavior, scopes, and length-conflict handling. An agent has enough context to invoke and follow up correctly.

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 coverage is 100%, so the baseline is 3, but the description adds important cross-parameter semantics: clipUrls can be a single item only when paired with narration/music, musicUrl and musicPrompt are mutually exclusive, and stills stretch to cover narration. It does not need to repeat every schema field, but it meaningfully clarifies the relationships between parameters.

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?

The description states a specific verb and resource: joining clips into one finished video, with optional voiceover, music bed, and captions. It also scopes the tool by distinguishing it from pipeline-building and from per-image video generation, so an agent can identify the operation 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.

Usage Guidelines5/5

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

It gives explicit when-to-use guidance for several scenarios: single clip with a track, slideshow from stills, and voiceover-driven length. It also states when-not conditions, including never passing both musicUrl and musicPrompt and never creating one image-to-video clip per photo.

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

cancel_runCancel runA
DestructiveIdempotent
Inspect

Stop a run that is still going: one run_pipeline, assemble_video or edit_asset started. Use it when the person asks to cancel, stop or kill a render, including "stop, that's wrong" about one they can see running. A render that is rendering stops once its current step finishes (status "cancelling", then "cancelled" in get_run); one still waiting to start is closed at once and costs nothing. Steps that already finished keep their output and are not refunded. Leave out runId to cancel the pipeline's newest running run. Needs the pipelines:run scope.

NameRequiredDescriptionDefault
runIdNoThe run to stop. Omit for the newest run still going.
pipelineIdYesThe pipelineId the run was started under (for assemble_video and edit_asset, the one they returned).

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the annotations (destructive/idempotent/not-readonly) by disclosing the exact cancellation semantics: a rendering run stops after its current step with status 'cancelling' then 'cancelled', a queued run closes immediately at no cost, and already-finished steps are kept but not refunded. This is precisely the behavioral detail an agent needs before firing a destructive call.

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?

Front-loaded with the core action and scope, then layered with outcomes and the scope requirement. Everything earns its place, though the density of clauses makes it slightly heavier than a tight two-sentence definition.

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 destructive tool with no output schema, the description covers the trigger, the effect on both running and queued runs, cost/refund behavior, status observability via get_run, the runId default, and the required pipelines:run scope. Nothing material is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both runId (omit for newest running run) and pipelineId. The description echoes the omit-runId default and the pipelineId origin, adding little beyond the structured fields, so the baseline 3 applies.

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 (cancel/stop) and resource (run), and explicitly scopes it to runs started by run_pipeline, assemble_video, or edit_asset. An agent can distinguish this from get_run or any of the creation 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.

Usage Guidelines5/5

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

Explicitly states when to use it ('when the person asks to cancel, stop or kill a render'), including an edge trigger ('stop, that's wrong'). It also points to get_run for observing the resulting status, giving both the trigger condition and the follow-up tool.

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

confirm_publishConfirm publishAInspect

Posts a video prepared by publish_asset, with the settings the person chose in the publish panel. Called by the panel when they press Post, never by the model.

NameRequiredDescriptionDefault
tagsNo
titleYes
tokenYes
discloseNo
allowDuetNo
syntheticNo
visibilityNo
allowStitchNo
descriptionNo
allowCommentNo
brandOrganicNo
privacyLevelNo
brandedContentNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already establish that this is not read-only and is not idempotent. The description adds useful context by indicating it publishes a previously prepared video and is panel-initiated. However, it does not disclose consequences such as irreversibility, side effects, or required authentication/authorization beyond the token parameter.

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?

The description is two sentences with no filler. The main action is stated first, and the critical 'never by the model' constraint is front-loaded in the second sentence.

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 tool the model is explicitly told never to call, the description provides enough context to prevent misuse and to explain when the panel would invoke it. Missing details like prerequisites and return behavior are less critical because the model is barred from direct invocation.

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 description coverage is 0%, and the description gives no parameter-level guidance. It only refers generically to 'settings the person chose in the publish panel,' which does not help an agent understand the token, visibility, tags, or boolean fields. For 13 parameters, this is a significant gap.

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?

The description states a specific verb and resource: it 'Posts a video prepared by publish_asset' using settings from the publish panel. It clearly differentiates this tool from its sibling publish_asset by framing it as the final confirmation step rather than the preparation step.

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?

Explicitly states when it is used: 'Called by the panel when they press Post.' It also gives a strong exclusion: 'never by the model.' This leaves no ambiguity about when the agent should invoke it versus avoid it.

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

connect_channelConnect channelA
Read-onlyIdempotent
Inspect

A link the person opens to connect a YouTube channel or a TikTok account to their Treza account, so a pipeline can post there. Returns what is already connected on that platform and connectUrl. Only the person can finish it, in their own browser: give them the link, tell them the platform will ask their permission to post and that the page says when it is connected, and after they say so check list_connected_channels. The link asks them to sign in to Treza first with the Google account this connection uses, and it does not expire. When something is already connected, the link adds another, so only offer it when that is what they want.

NameRequiredDescriptionDefault
platformYesWhich account to connect.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint) already establish safety. The description adds essential behavioral context: the link requires user action in their own browser, it does not expire, it returns existing connections and connectUrl, and it adds another connection if one exists. This goes beyond the structured fields and is highly useful.

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?

The description is concise yet complete, covering purpose, usage steps, caveats, and follow-up in a well-structured paragraph. Every sentence adds value; no fluff. Front-loads the core function.

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 tool with no output schema, the description covers the return values (existing connections and connectUrl), the user interaction flow, the non-expiring link, and the verification step. An agent has all necessary information to invoke and follow up correctly.

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?

The single parameter 'platform' is fully described in the schema with an enum (youtube/tiktok) and a clear description. The description adds no additional parameter detail, so baseline 3 is appropriate given 100% schema coverage.

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?

The description clearly states the tool's purpose: generates a link for a user to connect a YouTube or TikTok account to their Treza account, enabling pipeline posting. It distinguishes from siblings by focusing on the connection link, and later mentions list_connected_channels for verification.

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?

Provides explicit usage instructions: give the link to the person, tell them the platform will ask permission, check list_connected_channels after they confirm. Also states when not to use it (when something is already connected and adding another is not desired). This is exemplary guidance.

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

create_pipelineCreate pipelineAInspect

Create a new pipeline (as a draft) on your Treza account, from a template (templateId, see list_pipeline_templates) or with an initial node graph. Use list_node_types / get_node_type to learn the graph vocabulary: every edge names the two nodes it joins and a port on each, e.g. {"source":"music","sourceHandle":"audio","target":"sequence","targetHandle":"shots"}. A graph with error-level issues is refused with every issue listed, and nothing is saved. That includes a config key the node does not define, a value outside a field's options or range, and a model id, duration, aspect ratio or voice the chosen model does not offer: pick them from get_node_type. Drafts can be run with run_pipeline; publish_pipeline makes them invokable over the public API. To put music under a video the account already has, call assemble_video with musicPrompt instead of building a graph.

NameRequiredDescriptionDefault
nameYes
edgesNoWires between node ports, e.g. {"source":"music","sourceHandle":"audio","target":"sequence","targetHandle":"shots"}. Pass together with nodes; [] for none.
nodesNoThe graph's nodes. Pass together with edges.
templateIdNoCopy this template's graph (ids from list_pipeline_templates). Ignored when nodes/edges are supplied.
descriptionNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations are all false and offer no safety profile, so the description carries the full behavioral burden. It discloses that creation is a draft, that error-level issues cause refusal with every issue listed and 'nothing is saved,' and details the validation rules (config keys, value ranges, model-specific options). It also clarifies lifecycle: drafts can be run and published, which is beyond what annotations provide.

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?

The description is well-structured: main purpose first, then vocabulary, validation behavior, lifecycle, and alternative tool. Every sentence earns its place, and the embedded edge example is compact and illustrative. No redundancy or filler.

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 complex graph-creation tool with no output schema and no annotation support, the description covers creation modes, validation, and downstream steps thoroughly. The main gap is the lack of an explicit statement about the return value (e.g., the created pipeline object or id), which an agent would need to know to use the result effectively.

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 coverage is 60%, so the description must add meaning. It explains the templateId-versus-nodes/edges decision, gives an explicit edge example, and directs users to get_node_type for valid config values and port names. This goes beyond the schema's structural descriptions, though it does not fully document every parameter edge case.

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?

The description states a specific verb and resource ('Create a new pipeline (as a draft) on your Treza account') and distinguishes from siblings by naming run_pipeline, publish_pipeline, and assemble_video with clear contrast. It also references list_pipeline_templates and list_node_types, making the tool's role unambiguous.

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 when-to-use guidance: create from a template (templateId) or with a node graph, and points to list_node_types/get_node_type for vocabulary. It also states when not to use it ('To put music under a video the account already has, call assemble_video with musicPrompt instead of building a graph') and outlines follow-up steps (run_pipeline, publish_pipeline).

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

create_upload_urlCreate upload URLAInspect

A one-time link to upload a local file into the media library, for a client that can run a command (Claude Code, Codex, Cursor): PUT the file to uploadUrl with the returned Content-Type (the result includes the curl command), then call import_media with url set to the returned mediaUrl. The link expires in 15 minutes and signs one content type. If you cannot run a command, do not call this: ask the person to drop the file into their Treza library in the web app and find it with list_assets. Needs the pipelines:write scope. Spends no credits.

NameRequiredDescriptionDefault
contentTypeYesThe type of the file you will upload, e.g. "image/png" for a PNG logo. The PUT must send exactly this Content-Type.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavioral traits: the link is one-time, expires in 15 minutes, is signed for exactly one content type, requires the pipelines:write scope, and spends no credits. It also previews the returned fields (uploadUrl, mediaUrl, Content-Type, curl command), which is valuable because 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.

Conciseness5/5

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

The description is dense but efficient, with every sentence earning its place: purpose, command-runner prerequisite, upload workflow, fallback behavior, permission requirement, and credit cost. The most important usage constraint is front-loaded in the first sentence.

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 tool with one parameter, no output schema, and a multi-step workflow, the description is complete: it explains what the tool returns, how to use those returned values, what prerequisites are needed, what happens if the agent cannot run commands, and the security/cost implications. An agent can decide whether and how to call this tool without ambiguity.

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?

The schema already documents the contentType parameter thoroughly with an enum and a description stating the PUT must send exactly this Content-Type. The tool description adds useful behavioral context by explaining that the link is signed for one content type and expires in 15 minutes, which helps the agent understand why choosing the correct contentType matters.

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?

The description states a specific action and resource: creating a one-time upload link for putting a local file into the media library. It clearly distinguishes itself from import_media by describing create_upload_url as the prerequisite step that produces the mediaUrl to be used later.

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?

The description gives explicit when-to-use guidance: only for a client that can run a command like Claude Code, Codex, or Cursor. It also provides a concrete alternative path (ask the person to drop the file into the Treza library and find it with list_assets) when the agent cannot run commands, plus the required next step of calling import_media.

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

edit_assetEdit assetA
Destructive
Inspect

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.

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.

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.

estimate_run_costEstimate run costA
Read-onlyIdempotent
Inspect

Estimate what one run of a pipeline will charge the credit balance, which steps the money goes to (lines), and whether the current balance covers it. Estimates use the draft graph, the same one run_pipeline executes. When a video step would render the same clip for far less on Veo 3.1 Lite, cheaper names it with the run's price on it. When the balance covers neither, preview prices a first look it does cover: the first video step alone as a short Veo 3.1 Lite clip, which run_pipeline with preview: true renders. Call this before running a pipeline you built or changed in this conversation, tell the person the price (and the preview's, when there is one), and wait for their go-ahead before run_pipeline. Pass the returned quoteId to run_pipeline: it starts the run at this price once, and refuses if the pipeline changed since (estimate again then). Clients that show panels put the estimate in front of them with a Start render button, which sends that go-ahead as their message.

NameRequiredDescriptionDefault
pipelineIdYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds traits beyond that: the estimate is bound to the draft graph that run_pipeline executes, the quote is single-use and invalidated by pipeline edits, and a preview render path exists. These are real behavioral constraints (staleness, quote lifecycle) that annotations do not cover.

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?

The core purpose is front-loaded in the first sentence and the sentences are substantive. It is on the long side, with parenthetical asides about client panels and the Veo 3.1 Lite preview, but nearly all of it is actionable guidance 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?

There is no output schema, yet the description fully accounts for the return surface (`lines`, `cheaper`, `preview`, `quoteId`) and the workflow that consumes it. For a tool whose main risk is misusing the quote downstream, the definition is complete enough to call and sequence correctly.

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 coverage is 0% for the single pipelineId parameter, so the description must carry the load. It contextualizes the parameter by stating the estimate runs against the draft graph run_pipeline executes, which implies pipelineId references a pipeline, but it never explicitly defines the parameter, its format, or draft-vs-published resolution.

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: estimate the credit charge of one pipeline run, including the breakdown (`lines`) and balance coverage. It also enumerates the return facets (`cheaper`, `preview`, `quoteId`) and contrasts with the actual execution path (run_pipeline), so an agent can distinguish it from siblings like get_credit_balance and run_pipeline 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.

Usage Guidelines5/5

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

Gives explicit when-to-use ('call this before running a pipeline you built or changed in this conversation'), the required human-in-the-loop step (tell the person the price and wait for go-ahead), and the downstream contract (pass quoteId to run_pipeline). It even names the failure mode (run_pipeline refuses if the pipeline changed) and tells the agent to re-estimate.

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

get_credit_balanceGet credit balanceA
Read-onlyIdempotent
Inspect

Current prepaid credit balance, plan usage, and purchasable credit packs for this account. Use it to budget before starting runs. When the balance is low, hand the returned topUpUrl to a signed-in human; if the response carries an x402 block, a wallet-holding agent can pay that endpoint to top itself up with no human involved. That block also carries x402.video when this deployment sells single clips: one payment renders and returns one video without touching the balance, which is the cheaper path for a one-off.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive, and the description adds substantial behavioral context beyond that: the response can include a topUpUrl, an x402 block that may allow an agent to self-top-up, and an x402.video path for one-off purchases. This meaningfully explains how the tool's response is expected to be used.

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?

The description is front-loaded with the core purpose, then moves to actionable conditional guidance. Every sentence adds useful information about balance usage, top-up routing, and x402 behavior without redundant filler or repetition of structured fields.

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?

With no output schema, the description does a good job of explaining the returned concepts: balance, plan usage, purchasable packs, topUpUrl, and x402 details. It is slightly vague around what counts as 'low' balance and does not specify units or exact formats, but for a parameterless read-only tool the essential invocation and interpretation context is present.

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?

The input schema is empty and includes no parameters, so the baseline is 4. There are no parameter semantics to clarify, and the description does not need to compensate for any schema gaps.

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 description clearly identifies the resource: the account's prepaid credit balance, plan usage, and purchasable credit packs. It is not a tautology and conveys what information will be surfaced, though it lacks an explicit verb like 'returns' or 'lists' and does not directly contrast with sibling tools such as estimate_run_cost.

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?

The description gives an explicit use case: 'Use it to budget before starting runs.' It also provides conditional next steps for low balance and x402 payment handling. However, it does not name alternative tools or state when not to use it, so it stops short of full exclusionary guidance.

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

get_node_typeGet node typeA
Read-onlyIdempotent
Inspect

Full definition of one node type: input/output ports and the config field schema needed to author a node of this type. For a model-bearing node the live model catalog comes with it, and for video-gen each model carries what a second of video costs (usdPerSecond), so compare prices before choosing one.

NameRequiredDescriptionDefault
typeYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description is not burdened with safety traits. It adds concrete behavioral context beyond annotations: for model-bearing nodes, the live model catalog is included, and video-gen models include usdPerSecond pricing for cost comparison. This extra detail (dynamic model catalog, pricing) is not expressed in annotations and enriches the agent's understanding of the returned data.

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?

Two sentences with no filler. The first sentence gives the core definition (ports and config schema), and the second adds targeted conditional detail about model-bearing nodes and video-gen pricing. The most important context is front-loaded, and every word earns 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?

The description covers the main returned content: ports, config schema, and for video-gen, pricing. It does not mention error handling, pagination (unlikely for a single lookup), or return format specifics, but there is no output schema to rely on. For a read-only, idempotent lookup tool with one parameter, this is largely sufficient, though a touch more detail about the return object's structure could make it a 5.

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 0% for the single required parameter 'type'. The description does not explicitly state that the parameter is the node type to fetch; it only says 'one node type' in the first sentence, which implies the parameter. However, since the description does not explicitly map the parameter or give format hints, it only partially compensates for the schema gap. A 3 reflects that the meaning is inferable but not directly communicated.

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?

The description states a specific verb-resource: 'Full definition of one node type' including ports and config schema. It clearly distinguishes from list_node_types (which would enumerate types) by emphasizing 'one node type' and detailed schema content. No ambiguity about what the tool returns.

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?

The description implies usage for retrieving a single node type's detailed definition, but does not explicitly mention alternatives like list_node_types or when not to use it. The scope 'one node type' gives clear contextual guidance, yet lacks explicit exclusions or sibling references, so it earns a 4 rather than a 5.

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

get_pipelineGet pipelineA
Read-onlyIdempotent
Inspect

Get one pipeline: metadata plus a summary of its node graph (node ids, types, labels). Pass includeGraph to get the complete graph — every node with position and config, and every edge — which is what update_pipeline needs as a starting point. Never write a graph reconstructed from the summary: it drops configs.

NameRequiredDescriptionDefault
pipelineIdYes
includeGraphNoReturn the full nodes/edges graph instead of the summary. Required reading before an update_pipeline.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds critical behavioral context beyond annotations: the summary graph drops configs, so reconstructing a write from it risks data loss. It also clarifies the output distinction between summary and complete graph, which is not captured by annotations or output schema (none exists).

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?

The description is three sentences, each earning its place: core behavior, optional-parameter semantics, and a safety warning. The most important information (what the tool returns) is front-loaded, and the warning is placed at the end where it reinforces the read-only nature. No fluff or redundancy.

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?

With no output schema, the description must convey what the tool returns, and it does: metadata plus a graph summary (node ids, types, labels) by default, or the complete graph (nodes with positions/configs and all edges) when includeGraph is set. It also gives the necessary warning about graph reconstruction. For a read-only retrieval tool with two parameters, the description is complete enough for an agent to call it correctly and safely.

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?

The schema describes includeGraph as 'Return the full nodes/edges graph instead of the summary. Required reading before an update_pipeline.' The tool description reinforces and expands this by explaining that the complete graph includes 'every node with position and config, and every edge' and that the summary includes only node ids, types, labels. It does not add meaning for pipelineId beyond the name and required status, but with schema coverage at 50% the description compensates well for the includeGraph parameter.

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?

The description opens with 'Get one pipeline: metadata plus a summary of its node graph (node ids, types, labels)', which states a specific verb, resource, and scope. It also distinguishes from list_pipelines (plural vs singular) and from update_pipeline (read vs write) by naming the complete-graph variant. This makes the tool's role unambiguous even before consulting the 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?

The description provides explicit guidance: 'Pass includeGraph to get the complete graph — every node with position and config, and every edge — which is what update_pipeline needs as a starting point.' It also warns against a common misuse: 'Never write a graph reconstructed from the summary: it drops configs.' This tells the agent exactly when to set includeGraph and what to avoid, going far beyond a generic 'use this when you need a pipeline'.

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

get_profileGet profileA
Read-onlyIdempotent
Inspect

Which Treza account this connection is signed in to: a stable account id, its email, and its name when it has one. Use it when the person asks which account is connected, or before acting when more than one may be.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds useful behavioral context beyond that: the id is 'stable' and the name is returned only 'when it has one,' disclosing that some fields may be absent.

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?

Two short sentences with zero waste: the first front-loads what is returned, the second front-loads when to call it. Every clause earns its place.

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?

With no output schema, the description carries the return-value burden itself and does so by enumerating id, email, and name. For a zero-parameter read tool with annotations covering safety, 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.

Parameters4/5

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

There are zero parameters, so the baseline is 4. The description correctly implies no input is required, framing this as an identity lookup driven purely by the connection context.

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?

The description states exactly what the tool returns — the signed-in Treza account's stable id, email, and name — which is a specific resource with a clear scope. It distinguishes itself from siblings like get_credit_balance or get_pipeline by tying the output to the connection's account identity.

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?

It gives two explicit triggering conditions: 'when the person asks which account is connected' and 'before acting when more than one may be.' This is clear when-to-use guidance. It stops short of naming or excluding any alternative sibling tool, so it is not a full 5.

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

get_runGet runA
Read-onlyIdempotent
Inspect

Get one run: overall status plus per-node results and output URLs. Poll this after run_pipeline, assemble_video or edit_asset until the status is no longer "running". A finished run carries outputs, what its Output nodes returned (for assemble_video and edit_asset, the finished file). While a run is still "running", nodes lists the steps that have completed so far (with their outputs) progress says how many of how many and what it is working on now, pollAfterSec is how long to wait before calling again, and finishedAt/durationMs are omitted. Clients that show panels follow the render in the panel, so there is no need to poll faster than pollAfterSec.

NameRequiredDescriptionDefault
runIdYes
pipelineIdYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial behavior beyond them: which fields appear only while running vs. only when finished, that finishedAt/durationMs are omitted mid-run, and how pollAfterSec should govern retry timing. This is exactly the kind of runtime behavior an agent needs and cannot get from annotations.

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?

Front-loaded with purpose, then usage, then return-shape detail, and every sentence carries information rather than restating the name. It is dense and backtick-heavy, but no sentence is redundant, so it earns its length for a polling tool with rich return semantics.

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?

There is no output schema, so the description must carry the return-value burden, and it does: it explains outputs, nodes, progress, pollAfterSec, and the omitted finishedAt/durationMs fields for both running and finished states. Nothing an agent needs to poll and interpret correctly is missing.

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 0% and the description adds no detail about runId or pipelineId (format, source, or pairing). It does implicitly establish that the call targets a single pipeline+run pair, and the parameters are self-evident ID strings, so it is not fatal, but 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.

Purpose5/5

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

The description opens with a specific verb+resource ('Get one run') and immediately scopes it: 'overall status plus per-node results and output URLs'. This clearly separates it from list_runs and from the run-triggering siblings (run_pipeline, assemble_video, edit_asset), so an agent can identify it 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.

Usage Guidelines5/5

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

It states exactly when to call it: 'Poll this after run_pipeline, assemble_video or edit_asset until the status is no longer "running"'. It also names the stop condition and the polling cadence constraint ('no need to poll faster than pollAfterSec'), giving both when-to-use and when-to-stop guidance.

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

import_mediaImport mediaAInspect

Add an image, video or audio file to the account's media library, so assemble_video and edit_asset can use it: a file the user attached in this conversation (file, where the client passes attachments), a public https link to the file itself (url), or a local file uploaded through create_upload_url (url set to its mediaUrl). Returns the library url. Putting an attached logo in the corner of a video or a picture is this, then edit_asset on the video or picture with an overlay operation whose inputs.image is the returned url and whose config.position names the corner (a picture comes back a PNG). Images up to 25 MB, audio 100 MB, video 200 MB; the type is read from the file, and anything else (SVG, PDF, a web page) is refused. When the user attached a file you cannot pass on (you see it but have no file or link to give), ask them to drop it into their Treza library at https://www.trezalabs.com/chat/assets and find it with list_assets. Needs the pipelines:write scope. Spends no credits.

NameRequiredDescriptionDefault
urlNoA public https link to an image, video or audio file, when there is no attachment. Pass file or url, not both.
fileNoA file the user attached in this conversation.
nameNoWhat to call it in the library, e.g. "Logo"; list_assets query matches it. Defaults to the file name.

TDQS

A4.8/5.0
Behavior5/5

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

The description adds behavioral details beyond annotations: size limits per media type, type detection and refusal of others, return of library URL, required pipelines:write scope, and zero credit cost. It also covers the edge case of an unpassable attachment. No contradiction with annotations.

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?

The description is dense but well-structured, front-loading the purpose and then systematically covering input modes, example, limits, fallback, scope, and credits. Each sentence contributes necessary information, though it is on the longer side.

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 tool with no output schema, it fully explains the return value, error conditions, and usage contexts. It covers all three input methods, size constraints, the scope requirement, and credit implications. Nothing an agent needs is 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 coverage is 100%, so baseline is 3. The description adds value by explaining the relationship between url and file (mutually exclusive), and that url can come from create_upload_url's mediaUrl. It also clarifies name default. This goes beyond the schema's individual field descriptions.

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?

The description states a specific verb and resource: 'Add an image, video or audio file to the account's media library.' It clearly differentiates from siblings by stating its purpose is for assemble_video and edit_asset to use, and it mentions it refuses non-media types, distinguishing from other import tools.

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?

It explicitly describes three input modes and when to use each: file for attached, url for public link, and url set to mediaUrl for local upload via create_upload_url. It also provides a fallback when the user attaches a file that can't be passed on, directing to Treza library and list_assets. It clearly says 'Pass file or url, not both.'

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

list_assetsList assetsA
Read-onlyIdempotent
Inspect

Browse the account's media library: every image, video, and audio file its pipeline runs and chat generations produced, newest first. The urls it returns are the ones assemble_video and edit_asset accept, so start here when asked to cut, caption, score, or otherwise finish media the account already has. A file the user attached in the conversation is not here until import_media adds it. Clients that show panels let the person pick files from this list: the picks reach you as context naming each file by its #position in the list with its exact url, and the person then says in the chat what to do with them. Apply that to exactly those files, and do not assume picks mean joining them.

NameRequiredDescriptionDefault
kindNoOnly return assets of this kind.
limitNoHow many to return, newest first. Default 12.
queryNoCase-insensitive text matched against each asset's generation prompt, e.g. "horse". Omit for the newest regardless of subject.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, and non-destructive hints, but the description adds valuable behavioral details beyond that: the ordering ('newest first'), the fact that returned URLs are directly accepted by assemble_video and edit_asset, the caveat about user-attached files not being present until import_media, and the mechanism of panel picks reaching the agent as context with position numbers and URLs. No contradiction with annotations; it enriches them.

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?

The description is longer than a minimal phrasing, but every sentence contributes unique value: purpose, ordering, URL compatibility, import caveat, panel pick behavior, and application instruction. It is front-loaded with the core purpose and maintains clear logical flow. A slight trim could make it tighter, but it does not waste words.

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 read-only listing tool with no output schema, the description covers all essential aspects: what is listed, ordering, how URLs are used by other tools, when assets appear, how panel picks are presented, and instructions to apply them precisely. The schema covers param constraints, and annotations cover safety. Nothing an agent needs to call this correctly is missing.

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?

The input schema provides 100% descriptive coverage for all three parameters (kind, limit, query) with clear enums and descriptions. The description does not add new semantics about the parameters themselves beyond reinforcing the 'newest first' ordering for limit. Baseline 3 is appropriate since the schema already does the heavy lifting.

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?

The description states a specific verb ('Browse') and a clear resource ('the account's media library') with explicit scope ('every image, video, and audio file'). It names the result ordering ('newest first') and directly ties the returned URLs to sibling tools ('the ones assemble_video and edit_asset accept'), which clearly distinguishes it from those siblings. This is a precise, actionable purpose.

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?

The description gives explicit when-to-use guidance: 'start here when asked to cut, caption, score, or otherwise finish media the account already has.' It also contrasts with import_media by noting that user-attached files are not listed until imported. It explains the panel-pick flow and instructs how to apply picks ('exactly those files, and do not assume picks mean joining them'). This fully informs an agent when to call this tool and when not to.

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

list_connected_channelsList connected channelsA
Read-onlyIdempotent
Inspect

The YouTube channels and TikTok accounts connected to this Treza account, with the ids a publishing node needs. A youtube-upload node needs a channelId and a tiktok-upload node needs an openId; both come from here. To connect one, call connect_channel and give the person its link.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile needs no restating. The description adds genuinely useful behavioral context by explaining what the returned ids are for and which id type each downstream node consumes, filling the gap left by the absent 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.

Conciseness5/5

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

Three tight sentences: what it lists, what the ids feed, and where to go to add one. Front-loaded with the resource and zero filler.

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?

With no output schema, the description carries the burden of explaining returns and does so for the key ids. It does not describe the shape of the list entries (names, platform fields, ordering), which would be the last piece an agent might want.

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?

The tool takes zero parameters, so the baseline is 4; there is nothing the description could add or omit. It correctly avoids inventing filter parameters.

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 the specific resource (YouTube channels and TikTok accounts connected to the Treza account) and states what the result is for (ids a publishing node needs). It is clearly distinguishable from connect_channel, its closest sibling, 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.

Usage Guidelines4/5

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

Gives concrete context for use (a youtube-upload node needs channelId, a tiktok-upload node needs openId) and routes the connect case to connect_channel. It stops short of stating exclusions or when the list would be empty, but the applicable scenario is unmistakable.

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

list_node_typesList node typesA
Read-onlyIdempotent
Inspect

List the node types available for building pipeline graphs, grouped by category. Use get_node_type for a full port/config schema before wiring a node.

NameRequiredDescriptionDefault
categoryNoFilter to one category id (e.g. "ai", "input", "output").

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so safety context is covered. The description adds that results are grouped by categoryjon and scoped to pipeline graph node types, but does not describe response format, ordering, or pagination.

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?

Two sentences deliver purpose, behavior, and a cross-reference with no filler. The primary action is front-loaded, and every clause contributes to correct tool usage.

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 read-only listing tool with one fully-documented optional parameter, the description is sufficient. The annotations cover side effects, the schema covers the parameter, and the description plus sibling reference cover selection guidance.

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 coverage is 100%, and the category parameter is already documented with examples in the schema. The description reinforces the category grouping but does not add meaningful new semantics beyond what the schema provides.

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?

The description clearly states a specific verb and resource: listing node types for building pipeline graphs, grouped by category. It also distinguishes itself from the sibling get_node_type by pointing out that this is the overview tool while get_node_type provides full port/config 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?

The description explicitly names the alternative tool (get_node_type) and gives a concrete condition for when to use it: before wiring a node, when a full port/config schema is needed. This makes the selection between siblings unambiguous.

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

list_pipelinesList pipelinesA
Read-onlyIdempotent
Inspect

List the video pipelines on your Treza account, with status and a summary of recent runs.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context by specifying that results include status and a summary of recent runs, which is valuable because no output schema exists. It could be more precise about what 'summary of recent runs' means, but it does not contradict annotations.

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?

A single, front-loaded sentence conveys the action, scope, and returned information without waste. Every phrase earns 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 zero-parameter list tool with rich annotations, the description covers the essential scope and return content. It lacks detail on pagination, ordering, or exact status vocabulary, but the low complexity and lack of parameters make this acceptable. It could also route to siblings, but that is more of a usage-guidelines gap.

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?

The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to clarify. Per the baseline for zero-parameter tools, a score of 4 is appropriate.

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?

The description states a specific verb ('List') and a clear resource ('video pipelines on your Treza account'), and it names what the result contains (status and a summary of recent runs). This distinguishes the tool from siblings like get_pipeline and list_runs by collection scope and resource type.

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?

The description implies use when an overview of pipelines is needed, but it gives no explicit guidance about alternatives or when not to use it. With siblings like get_pipeline and list_runs present, the description could have clarified that this is for the full collection view, not single-item details or run history.

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

list_pipeline_templatesList pipeline templatesA
Read-onlyIdempotent
Inspect

Ready-made pipelines that create_pipeline can copy with templateId, so you do not have to draw a graph node by node. Each entry lists its entry nodes, the ids to key run_pipeline inputs by, and estimatedChargeUsd, what one run charges the balance as the template stands, to compare against get_credit_balance before you pick one. Clipping a long recording, file, or direct video URL into a captioned vertical clip is "video-clip-factory" (entry node "source", a File node that takes a URL); "podcast-clip-factory" pulls the newest episode from a podcast RSS feed; "campaign-clip" is for Vyro / Whop clipping briefs.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, yet the description adds real behavioral context: what each entry returns (entry nodes, input-keying ids, estimatedChargeUsd meaning) and how the charge relates to the balance. It stops short of describing pagination or ordering behavior.

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?

Front-loaded with the core purpose, then return contents, then a template catalog for selection. Every sentence carries information, though the three named-template examples make it longer than strictly necessary and could be trimmed.

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 zero-parameter listing tool with no output schema, the description covers what the entries contain, how their fields are used downstream, and how to choose among templates. Nothing an agent needs to select or consume the result is 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?

The tool takes zero parameters, so per the rubric the baseline is 4. The description does explain how the templateId it exposes is consumed downstream, which is useful cross-tool semantics but not a parameter of this tool itself.

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 resource ('ready-made pipelines' / templates) and its role: consumable by create_pipeline via templateId. This distinguishes it cleanly from siblings list_pipelines (user-owned pipelines) and list_node_types, so an agent can pick it 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.

Usage Guidelines5/5

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

Explicitly routes the workflow: copy with create_pipeline templateId, key run_pipeline inputs by the listed ids, compare estimatedChargeUsd against get_credit_balance before selecting. Names concrete alternatives/next steps rather than leaving usage to inference.

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

list_runsList runsA
Read-onlyIdempotent
Inspect

List recent runs for a pipeline, newest first.

NameRequiredDescriptionDefault
limitNo
pipelineIdYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds useful behavior (recency, newest-first order), but no detail on limits, pagination, or what data each run includes.

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?

One compact sentence with no filler; the verb and core scope are front-loaded, and the ordering behavior is appended efficiently.

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 simple read-only list operation with rich annotations and a minimal two-parameter schema, the description covers action, resource, and ordering. It does not specify return shape or limit default, but these are not critical for correct invocation.

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 description coverage is 0%, so the description must compensate for both parameters. It implies pipelineId through 'for a pipeline' but never names it or the optional limit parameter, nor explains default or constraint semantics.

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?

The description uses a specific verb ('List') and resource ('recent runs for a pipeline') and adds the ordering behavior ('newest first'). This clearly distinguishes it from sibling tools like get_run (single run) and run_pipeline (create/execute).

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?

The phrase 'for a pipeline, newest first' gives a clear context for when to call the tool, but it does not explicitly name alternatives or exclusions such as using get_run for a single run. It stops short of the explicit routing seen in the highest tier.

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

make_videoMake videoAInspect

The quickest way to make a video from a description: no template, node types or graph to wire. Picks a video model that renders the shape and length asked for (Veo 3.1 Lite unless a model is named or it cannot), prepares the render, and answers like estimate_run_cost: the price, whether the balance covers it, and a quoteId. It does NOT start the render: tell the person what it makes and the price, and once they accept, call run_pipeline with the returned pipelineId and quoteId (no inputs; the prompt is saved). Clients that show panels put the price in front of them with a Start render button. Use 9:16 for Shorts, Reels and TikTok. With maxPriceUsd, a video over it is refused with its price rather than shortened. To extend or continue a video the account already has ("continue it", "make it longer", "the next scene", "what happens next"), pass its url as continueFromVideoUrl: the new clip opens on that video's exact last frame and keeps its shape, and prompt says only what happens next. Never answer one of those with a fresh clip from the prompt alone, which is a different shot that cannot be cut onto the end. For anything beyond one generated clip (clipping a long video, music, narration, editing a file) use a template, assemble_video or edit_asset instead. Needs the pipelines:write scope; the run needs pipelines:run.

NameRequiredDescriptionDefault
nameNoWhat to call the render.
modelNoA video model id from get_node_type video-gen, only when the person asked for a specific model.
promptYesWhat the video shows, in the person's words or a fuller description of them.
withAudioNoGenerate sound with the video where the model can. Defaults to true.
aspectRatioNo"9:16" vertical (Shorts, Reels, TikTok), "16:9" horizontal (the default), "1:1" square.
durationSecNoLength in seconds. A model that renders fixed takes uses the next one up (at most 2s longer), and says so. Defaults to 4.
maxPriceUsdNoThe most the person will pay for this render, if they said.
continueFromVideoUrlNoThe url of a video in the account's library (from list_assets or a run's outputs), copied exactly, to continue. Its last frame becomes this clip's first frame. Pass that video's aspectRatio too.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover the safety profile; the description adds the critical behavior that this tool does not start the render and returns price/balance/quoteId/pipelineId. It also discloses model selection fallback (Veo 3.1 Lite), the exact refusal behavior when maxPriceUsd is exceeded, duration rounding, and required scopes (pipelines:write, pipelines:run).

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?

Front-loaded with the core promise and the quote-not-render contract; nearly every sentence carries a routing rule or a behavioral fact. It is a single dense block of ~200 words, however, and the later continuation paragraphs are harder to scan than the opening.

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?

An 8-parameter, 1-required creation tool with no output schema: the description compensates by describing the return payload and the mandatory follow-up call. Scope requirements, default model, and cost ceiling behavior are all covered, so nothing needed 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.

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns more by giving continueFromVideoUrl the semantics the schema doesn't convey (new clip opens on the source's last frame, keeps its shape, prompt covers only what happens next). maxPriceUsd's refuse-rather-than-shorten behavior and the model default are also clarified. It stops short of adding anything for name or withAudio.

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+resource (make a video from a description) plus the defining differentiator: no template, node types or graph to wire. It names the sibling tools that cover everything else (assemble_video, edit_asset, templates), so an agent can pick between them 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.

Usage Guidelines5/5

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

Explicit when-to-use paths: 9:16 for Shorts/Reels/TikTok, continueFromVideoUrl for continuations, and when to fall back to templates/assemble_video/edit_asset. It also states the two-step flow (this tool quotes, run_pipeline starts) and the 'never answer a continuation with a fresh clip' exclusion, which is a real routing rule, not filler.

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

open_libraryTreza libraryA
Read-onlyIdempotent
Inspect

The account's media library on a page of its own, newest first, for the person to browse and pick files from. Opened from ChatGPT's sidebar or beside a conversation; only the library panel calls it.

NameRequiredDescriptionDefault
kindNoOnly files of this kind.
limitNoHow many to show, newest first. Default 30.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond that: this tool renders a UI panel rather than returning data, it orders results newest-first, and it is scoped to the library panel's call site.

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?

Two sentences with the resource and browsing purpose front-loaded; the slightly awkward 'on a page of its own' phrasing costs a little but there is no padding.

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 no-output-schema, zero-required-param UI opener, the definition covers what the agent needs: what opens, the ordering, and the call context. Only the return behavior (that no data payload is produced) is left implicit.

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 coverage is 100%: the kind enum and the limit default/max are fully documented in the schema itself. The description only reinforces the already-stated 'newest first' ordering, adding little beyond the schema.

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 description names a specific resource (the account's media library) and states what happens (opens it as its own browsable page, newest first). It does not explicitly contrast with the sibling list_assets, so an agent must infer the difference, but the core verb+resource is clear.

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?

It gives invocation context ('Opened from ChatGPT's sidebar or beside a conversation; only the library panel calls it'), which implies when it is used, but it never states when NOT to use it versus list_assets or import_media. Usage is implied 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.

publish_assetPublish assetA
Read-onlyIdempotent
Inspect

Prepare a post of one finished video to a connected YouTube channel or TikTok account, for the person to review and confirm. It posts nothing itself: clients that show panels put the video, the account and the post's settings in front of the person, and it goes out only when they press Post there (TikTok requires them to choose who can view it and to confirm its disclosures themselves). Call it only when the person asked to publish. The video must come from list_assets or a finished run's outputs in get_run, copied exactly; write a real title (on TikTok it is the caption, hashtags allowed). channelId picks the channel or TikTok account from list_connected_channels when more than one is connected; with none connected, call connect_channel first. A client without panels cannot post from here: build a pipeline that ends in a youtube-upload or tiktok-upload node instead. Needs the pipelines:write scope.

NameRequiredDescriptionDefault
tagsNoYouTube tags. Ignored on TikTok.
titleYesThe title (YouTube, up to 100 characters) or the caption (TikTok).
platformYesWhere to post.
videoUrlYesThe video to post, from list_assets or a run output.
channelIdNoA YouTube channelId or TikTok openId from list_connected_channels. Omit when only one is connected.
visibilityNoYouTube visibility to suggest; the person can change it before posting. On TikTok the person chooses.
descriptionNoYouTube description. Ignored on TikTok.

TDQS

A4.8/5.0
Behavior5/5

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

Though annotations already declare readOnlyHint and idempotentHint, the description explains what that means in practice: no post is sent until a person presses Post, TikTok requires viewer choice and disclosure confirmation, and the pipelines:write scope is required. No contradiction with 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.

Conciseness4/5

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

The description is dense but not padded; the core behavior and the key exclusions come first. It is longer than average because it covers several edge cases, but each sentence contributes a distinct operational constraint.

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 7-parameter tool with no output schema, the description covers the full decision context: prerequisites, person-in-the-loop confirmation, alternative pipeline path, channel selection, and required scope. Nothing essential for correct use is 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 coverage is 100%, but the description adds operational semantics beyond the schema: the video must come verbatim from list_assets or a finished run, channelId is used only when more than one channel is connected, and TikTok treats title as a caption with hashtags. This meaningfully helps correct invocation.

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?

The description leads with a specific verb and resource: prepare a post of one finished video to a connected YouTube channel or TikTok account. It also states the distinguishing behavior, 'posts nothing itself', which separates it from confirm_publish and publish_pipeline.

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?

It states exactly when to call it ('only when the person asked to publish'), names the alternative for panel-less clients (pipeline ending in youtube-upload/tiktok-upload), and gives preconditions like calling connect_channel first when no channel is connected. This leaves no ambiguity about selection.

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

publish_pipelinePublish pipelineA
Idempotent
Inspect

Publish a pipeline's current draft graph as an immutable deployed version. Publishing requires a fully valid graph (no errors or warnings) and makes the pipeline invokable via the public /invoke and /chat/completions APIs.

NameRequiredDescriptionDefault
pipelineIdYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already convey readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds valuable context beyond these: the published version is immutable and the pipeline becomes invokable via /invoke and /chat/completions. This reveals the consequential effect of the action, though it does not mention permissions or return values.

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?

Two tightly worded sentences with no fluff. The core action and key constraints are front-loaded. Every clause adds value.

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

Completeness3/5

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

The description covers preconditions (valid graph) and effects (immutable, invokable), but lacks any mention of return values or error behavior. Since there is no output schema, the agent is left guessing what the call returns or how failures are surfaced, which is a notable gap for a mutation tool.

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?

With schema description coverage at 0%, the description bears responsibility for explaining pipelineId. However, the parameter name is self-explanatory and the description's mention of 'a pipeline' implicitly refers to it. It does not explicitly state its format or purpose, but for a single obvious parameter this is acceptable, hence a mid-range score.

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?

Description states a specific action ('Publish a pipeline's current draft graph') with a clear resource and outcome ('immutable deployed version'). It distinguishes itself from siblings like create_pipeline or update_pipeline by focusing on deployment and invokability via public APIs.

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

Usage Guidelines4/5

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

Provides clear context: publishing requires a fully valid graph and makes the pipeline invokable. This implies when to use it (when you want to deploy) but does not explicitly compare with alternatives or state when not to use it. No mention of run_pipeline or update_pipeline as alternatives, so it falls 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.

run_pipelineRun pipelineA
Destructive
Inspect

Start a pipeline run in the background and return its runId immediately. Video pipelines take minutes; poll get_run for progress. Runs consume account credits. inputs is keyed by entry node id (get_pipeline lists them as entryNodes): a Text Input node takes text, an HTTP Payload node takes a JSON value, and a File node takes a URL that overrides the file placed on the canvas, so a clipping pipeline can be pointed at a new source video per run without editing the graph. An entry node left out runs with the value saved on the canvas; one with nothing saved is refused, so pass it (or "" to leave it blank on purpose), and ask the user what it should say when the request does not tell you. A key that names no entry node is refused before anything runs or is charged. Before running a pipeline you built or changed in this conversation, call estimate_run_cost, wait for the person to accept the price, and pass its quoteId here: the run starts only if the pipeline is still the one quoted, and only once, so calling again with the same quoteId (a retry, a second "yes") returns the run already started instead of charging for another. Without a quote, pass a requestId of your own for the same protection on a retry. Every run renders every node again, so to add music, narration or captions to a video an earlier run made, pass its url from get_run outputs to assemble_video (musicPrompt composes a bed) or edit_asset rather than editing the pipeline and running it again.

NameRequiredDescriptionDefault
inputsNo
previewNoRender a cheap first look instead of the whole run: the first video step and the steps that feed it, as one Veo 3.1 Lite clip of up to 8 seconds at 720p. estimate_run_cost and a refused run quote it as `preview` when the balance does not cover the run. Only on the person's yes. Returns the pipelineId get_run needs, which is not this pipeline's.
quoteIdNoThe quoteId estimate_run_cost (or make_video) returned for this pipeline, once the person accepted that price.
requestIdNoAny id you choose for this one request, e.g. a fresh UUID. Repeat it only when retrying this same request: a call with an id that already started a run returns that run instead of starting another. Not needed with quoteId.
pipelineIdYes

TDQS

A4.9/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: runs consume credits, missing/empty/unmatched entry-node keys are refused before charge, retries via quoteId/requestId return the existing run instead of double-charging, and every run re-renders every node. The quoteId/requestId protection nuance does not contradict the idempotentHint=false default, since it only applies with an id.

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?

Front-loaded with the core async contract before the deeper quoting/inputs mechanics. Every sentence carries real information, though the dense multi-clause sentences strain readability at this length.

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 complex nested-input mutation with no output schema, the description covers return values (runId, preview's different pipelineId), cost semantics, refusal conditions, and idempotency. Nothing an agent needs 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.

Parameters5/5

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

Schema coverage is only 60%, and the description compensates heavily: it explains that `inputs` is keyed by entry node id, how Text/HTTP/File entry nodes are populated, the File-URL override behavior, and the missing-value refusal rule. Adds clear meaning beyond the loose `additionalProperties` schema.

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+resource with the async contract spelled out ('Start a pipeline run in the background and return its runId immediately'). Explicitly distinguishes itself from siblings by naming get_run for polling, estimate_run_cost for pricing, and assemble_video/edit_asset for post-processing.

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 rich when-to-use guidance: poll get_run while a video runs, call estimate_run_cost and get user acceptance before running a pipeline changed in-conversation, and prefer assemble_video/edit_asset over re-running for music/narration/captions. Also states the fallback of passing a requestId when no quote exists.

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

set_schedule_pausedPause or resume scheduleA
Idempotent
Inspect

Pause or resume a published pipeline's schedule. Pausing flips the flag the cron runner checks without touching the published graph, so the deployed snapshot stays an honest record of what was published. Resuming re-anchors the schedule to now, so it waits for the next real slot instead of replaying slots missed while paused. Requires the pipelines:write scope. Schedules themselves are authored as a schedule-trigger node (see get_node_type) and armed by publish_pipeline.

NameRequiredDescriptionDefault
pausedYestrue pauses the schedule; false resumes it.
pipelineIdYes

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already convey that the tool is mutating, idempotent, and non-destructive. The description goes further by disclosing the exact side effects: pausing flips the cron runner flag without altering the published graph, and resuming re-anchors to now rather than replaying missed slots. It also adds the authentication scope requirement, which is not present in annotations.

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?

The description is three sentences, front-loads the primary action, and every sentence earns its place: the first states the operation, the second explains behavioral nuance, and the third covers prerequisites and authoring context. There is no filler or redundant restating of the tool name.

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 simple two-parameter tool with no output schema, the description is complete. It explains both operational states, the effect on the deployed graph, the behavior on resume, the required scope, and how schedules are authored/armed. No critical information needed to call the tool correctly is 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?

The schema documents the `paused` parameter but not `pipelineId`. The description partially compensates by clarifying that pipelineId refers to a published pipeline's schedule, adding semantic context that the bare schema does not provide. Since coverage is exactly 50%, the description contributes useful meaning beyond the structured field definitions.

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?

The description states a specific verb ('pause or resume') and a well-defined resource ('a published pipeline's schedule'), which clearly differentiates it from siblings like run_pipeline or update_pipeline. It also explains how schedules are authored and armed, grounding the tool's role in the larger pipeline lifecycle.

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?

The description gives clear context on when to use the tool: it applies to published pipeline schedules and explicitly requires the pipelines:write scope. It does not name alternatives or explicitly say 'use this instead of X', but the singular focus on schedule pausing/resuming, plus references to get_node_type and publish_pipeline, gives an agent enough situational guidance.

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

update_pipelineUpdate pipelineA
DestructiveIdempotent
Inspect

Update a pipeline: rename it, change its description, or replace its node graph. For a graph change, read the current one with get_pipeline includeGraph and send the whole graph back, nodes and edges together, every edge naming the two nodes it joins and a port on each, e.g. {"source":"music","sourceHandle":"audio","target":"sequence","targetHandle":"shots"}. A graph with error-level issues is refused with every issue listed, and nothing is saved; settings you change are checked against get_node_type and the live model catalog the same way create_pipeline checks them. To add music, narration or captions to a video a run already made, pass its url from get_run outputs to assemble_video or edit_asset instead: a changed pipeline renders every node again when it runs, the video included, and charges for it.

NameRequiredDescriptionDefault
nameNo
edgesNoThe complete new wire list, e.g. {"source":"music","sourceHandle":"audio","target":"sequence","targetHandle":"shots"}. Pass together with nodes; [] for none.
nodesNoThe complete new node list. Pass together with edges; the graph is replaced whole.
pipelineIdYes
descriptionNo

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations (destructive, non-read-only, idempotent), the description discloses that a graph with error-level issues is refused with all issues listed and nothing is saved, that validations match create_pipeline's checks, and that a changed pipeline re-renders every node and charges for it. This is rich behavioral context.

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?

The description is a single dense paragraph but front-loads the core purpose, then walks through graph-change mechanics, error behavior, validation, and the sibling alternative. Every clause adds actionable information; nothing is wasted.

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?

Given the complexity of replacing a node graph and the presence of destructive/idempotent annotations, the description is complete: it explains the required workflow (read current graph, send whole graph), how edges are structured, what happens on errors, validation compatibility, and cost implications. No output schema is needed for this level of completeness.

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?

With schema description coverage at 40%, the description compensates by explaining the graph-replacement contract: nodes and edges passed together, every edge naming source/target and a port, with a concrete example. It does not elaborate on pipelineId, name, or description, but those are self-evident or covered by the schema.

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?

The description opens with a specific verb and resource — 'Update a pipeline: rename it, change its description, or replace its node graph' — and then details exactly what a graph replacement entails. It also distinguishes itself from siblings like get_pipeline, create_pipeline, assemble_video, and edit_asset by naming them explicitly.

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?

It states when to use this tool versus alternatives: 'For a graph change, read the current one with get_pipeline includeGraph and send the whole graph back' and 'To add music, narration or captions to a video a run already made, pass its url from get_run outputs to assemble_video or edit_asset instead.' This gives direct when/when-not guidance.

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.

  1. 1 tool update
    • Changedassemble_video2 fields changed
      • addedInput schema / properties / stillMotion
        Added value: +{
        +  "description": "A slow camera move over every still image: push_in, pull_out, a drift across the photo (pan_left, pan_right, pan_up, pan_down), or ken_burns (a different move on each photo in turn). Video clips play as shot. Defaults to none.",
        +  "enum": [
        +    "none",
        +    "push_in",
        +    "pull_out",
        +    "pan_left",
        +    "pan_right",
        +    "pan_up",
        +    "pan_down",
        +    "ken_burns"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / stillSeconds
        Added value: +{
        +  "description": "How long each still image holds, in seconds. Defaults to 3; 3 to 5 reads well for a slideshow. A narrationUrl longer than the stills still plays in full: they stretch to cover it. Leave it out when the voice should set the pace of a cut that is all stills.",
        +  "maximum": 30,
        +  "minimum": 0.5,
        +  "type": "number"
        +}
  2. 1 tool update
    • Changedmake_video1 field changed
      • addedInput schema / properties / continueFromVideoUrl
        Added value: +{
        +  "description": "The url of a video in the account's library (from list_assets or a run's outputs), copied exactly, to continue. Its last frame becomes this clip's first frame. Pass that video's aspectRatio too.",
        +  "minLength": 1,
        +  "type": "string"
        +}
  3. 6 tool updates
    • Changedassemble_video1 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"
        +}
    • Addedcancel_run
    • Changededit_asset1 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"
        +}
    • Addedget_profile
    • Addedmake_video
    • Changedrun_pipeline2 fields changed
      • addedInput schema / properties / quoteId
        Added value: +{
        +  "description": "The quoteId estimate_run_cost (or make_video) returned for this pipeline, once the person accepted that price.",
        +  "maxLength": 64,
        +  "type": "string"
        +}
      • addedInput schema / properties / requestId
        Added value: +{
        +  "description": "Any id you choose for this one request, e.g. a fresh UUID. Repeat it only when retrying this same request: a call with an id that already started a run returns that run instead of starting another. Not needed with quoteId.",
        +  "maxLength": 128,
        +  "minLength": 1,
        +  "type": "string"
        +}
  4. 1 tool update
    • Changedassemble_video4 fields changed
      • changedInput schema / properties / audioFadeOutSec / description
        Previous value: -"Fade the music bed (or the only track) down over this many seconds at the end; 2 to 4 reads as a deliberate ending. Narration is never faded when there is a bed."New value: +"Fade the music bed (or the only track) down over this many seconds at the end, with the picture left as it is; 2 to 4 reads as a deliberate ending. Narration is never faded when there is a bed. For the whole ending to fade, use fadeOutSec."
      • addedInput schema / properties / fadeInSec
        Added value: +{
        +  "description": "Fade the opening up from black over this many seconds: the first shot's picture and the music bed together.",
        +  "maximum": 30,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / fadeOutSec
        Added value: +{
        +  "description": "Fade the whole ending to black and silence over this many seconds: the last shot's picture eases down and the music bed fades with it. This is \"fade out at the end\"; 1.5 to 3 reads as a deliberate ending. The transition argument is the cut between shots and does not touch the ending.",
        +  "maximum": 30,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / transition / description
        Previous value: -"How each shot hands off to the next. Defaults to a hard cut."New value: +"How each shot hands off to the next: the join between two shots, applied at every cut. Defaults to a hard cut. \"fadeblack\" dips to black between shots; it is not a fade-out at the end, which is fadeOutSec."
  5. 1 tool update
    • Addedopen_library
  6. 1 tool update
    • Changedrun_pipeline1 field changed
      • addedInput schema / properties / preview
        Added value: +{
        +  "description": "Render a cheap first look instead of the whole run: the first video step and the steps that feed it, as one Veo 3.1 Lite clip of up to 8 seconds at 720p. estimate_run_cost and a refused run quote it as `preview` when the balance does not cover the run. Only on the person's yes. Returns the pipelineId get_run needs, which is not this pipeline's.",
        +  "type": "boolean"
        +}
  7. 3 tool updates
    • Addedconfirm_publish
    • Addedconnect_channel
    • Addedpublish_asset

Publisher details

Operator
Treza Labs · Publisher source
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a free Treza account (OAuth sign-in). Generation is paid with prepaid credits; packs start at $5.

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.