framesail
Server Details
Create long-form YouTube videos end to end: script, storyboard, voiceover, final MP4.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 68 of 68 tools scored. Lowest: 3.1/5.
Every tool has a clearly defined purpose with detailed descriptions that distinguish it from others, even among related operations (e.g., scan_script vs rescan_voice_blocks, get_workflow_status vs get_pipeline_progress). The risk of an agent selecting the wrong tool is minimal.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_project, delete_style, generate_voiceover). The only slight deviation is 'whoami', but it is a common convention. No mixing of camelCase or inconsistent verb styles.
With 68 tools, the count is well above the typical 3–15 range and exceeds the 25+ threshold for a heavy toolset. While each tool may be justified for a complex video creation pipeline, the sheer number makes the server cumbersome and potentially overwhelming for an agent to navigate.
The tool surface covers the full lifecycle of video creation from channel/project creation, style setup, script generation, asset extraction, storyboarding, voiceover, scene editing, to final export. Every major operation has a dedicated tool, and there are no obvious gaps that would cause an agent to fail.
Available Tools
68 toolsactivate_script_versionActivate script versionAIdempotentInspect
Switch the project's active script to another saved version (ids come from get_script's version list — every save_script creates one). Re-run scan_script / rescan_voice_blocks afterwards if the text differs, since downstream artifacts follow the active version.
| Name | Required | Description | Default |
|---|---|---|---|
| script_id | Yes | ID of the script version to activate, from get_script's version list |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond annotations: warns about downstream artifacts depending on active version, and recommends re-running scans. Annotations already indicate idempotentHint=true and destructiveHint=false, and the description adds procedural context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words: first states the purpose, second provides follow-up instructions. Front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, no output schema, and annotations providing safety hints, the description fully covers what the tool does, where inputs come from, and what to do afterward. No information gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear 'description' field for the only parameter (script_id). The tool description restates the same information but adds no new semantic meaning beyond the schema, thus baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'Switch the project's active script to another saved version'. It clearly identifies the source of version IDs ('from get_script's version list — every save_script creates one') and distinguishes itself from sibling tools like save_script and revise_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit post-activation guidance: 'Re-run scan_script / rescan_voice_blocks afterwards if the text differs'. However, it does not explicitly mention when not to use this tool or list alternatives for editing scripts, though the sibling list implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_music_trackAdd music trackAInspect
Add background music to the project from the audio library (find track ids with browse_audio_library, category="music"). Defaults loop the track under the whole video at bed level (volume 0.12 ≈ -18.4 dB under narration — don't raise it without being asked); re-run export_video to hear it.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | True loops the track under the whole video; false plays it once | |
| name | No | Display name for the track on the project's timeline | Music |
| volume | No | Playback volume 0-1; the 0.12 default sits at bed level under narration — don't raise it unless asked | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| start_frame | No | Timeline frame at which the track starts (0 = start of the video) | |
| library_track_id | Yes | Audio library track ID, from browse_audio_library(category="music") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, etc.), the description adds key behaviors: default loop and volume with dB equivalent, bed level under narration, and the need to re-run export_video to hear. It includes a warning not to raise volume without being asked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the action and prerequisite, then explain defaults and side effects. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and no output schema, the description covers the essential usage: what it does, defaults, and the need to export to hear. It lacks details on error conditions or adding multiple tracks, but overall provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning: explains the default volume as bed level with dB conversion, clarifies the loop behavior, and ties library_track_id to browse_audio_library. This enriches the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Add' and the resource 'background music to the project', with a direct link to browse_audio_library for finding track IDs. It distinguishes itself from sibling tools like remove_music_track and update_music_track by its action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a prerequisite (find track IDs with browse_audio_library) and practical tips (default loop and volume, re-run export_video to hear). However, it does not explicitly contrast with alternatives like update_music_track or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_segment_sfxAdd segment sound effectAInspect
Attach a sound effect from the audio library to a segment (find track ids via browse_audio_library with category="sfx"). Re-run build_scenes to get it onto the timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| segment_number | Yes | 1-based segment number, as reported by get_segments | |
| library_track_id | Yes | Audio library track ID, from browse_audio_library(category="sfx") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (destructiveHint=false), so the description adds value by noting the prerequisite (track ID from browse_audio_library) and the post-requisite (build_scenes). It does not disclose whether attaching sound effects is additive or replaces existing ones, but the transparency is reasonable for a non-destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no redundant information. It is front-loaded with the core action and immediately provides essential supplementary instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description covers the effect (attach to segment) and a critical follow-up step. It omits details like whether multiple SFXs can be added per segment or error handling, but for a focused tool this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all parameters have descriptions. The tool description adds extra context for library_track_id by specifying how to obtain it (via browse_audio_library with category='sfx'). This provides meaningful guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (attach) and resource (segment, sound effect from audio library). It distinguishes from siblings like remove_segment_sfx and add_music_track by specifying the type of audio item (sfx) and providing a hint to use browse_audio_library.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (after obtaining a library_track_id via browse_audio_library) and indicates a necessary follow-up (re-run build_scenes). However, it does not explicitly state when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_styleRe-analyze styleADestructiveInspect
Re-run style analysis (after changing a style's inputs). Async — await_jobs(style_id=...) until the style_analysis job completes.
| Name | Required | Description | Default |
|---|---|---|---|
| style_id | Yes | ID of the style to re-analyze, from create_style or list_styles |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, and description adds async behavior and job type detail. No contradiction. Adds value beyond annotations by explaining awaiting pattern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no redundancy. All information is front-loaded and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter async analysis tool, description provides enough context. Could mention output implications, but no output schema exists. Adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (style_id) described. Description does not add extra parameter meaning beyond schema, but mentions it indirectly. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool re-runs style analysis after changing inputs, distinguishing it from related tools like 'create_style' or 'get_style'. The verb 're-run' and resource 'style analysis' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (after changing style inputs) and how to handle the async job (await_jobs). Lacks explicit 'when not to use', but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
await_jobsWait for jobsARead-onlyIdempotentInspect
Block (server-side) until the scope has no pending/running jobs, or the timeout passes — use this instead of polling get_workflow_status yourself. Returns {done, jobs}. If done=false the work is still running: just call await_jobs again (a 3-5 minute storyboard takes a few consecutive calls). Keep timeout_seconds <= 50 so the client doesn't time out the tool call.
| Name | Required | Description | Default |
|---|---|---|---|
| style_id | No | Style ID whose analysis/template jobs to wait for; pass exactly one of project_id or style_id | |
| project_id | No | Project ID whose jobs to wait for; pass exactly one of project_id or style_id | |
| timeout_seconds | No | Max seconds to block server-side before returning done=false; keep <= 50 so the client doesn't time out the tool call |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent. The description adds critical behavioral context: server-side blocking, repeated calls needed, and return structure {done, jobs}. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: three sentences, each with a clear purpose. Front-loaded with the main blocking behavior, then usage notes. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description mentions the return shape {done, jobs}. Given the tool's simplicity and ample annotations, this is fully complete for agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description reinforces key parameter constraints: mutual exclusivity of style_id and project_id, and timeout_seconds <=50. Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool blocks until no pending/running jobs or a timeout occurs. It distinguishes itself from polling get_workflow_status, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (instead of polling), when to call again (if done=false), and provides a timeout constraint (<=50s) to avoid client timeout, giving clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_audio_libraryBrowse audio libraryARead-onlyIdempotentInspect
Browse the audio library for background music and sound effects. category: "music" | "sfx". Returns track ids for add_music_track / add_segment_sfx.
| Name | Required | Description | Default |
|---|---|---|---|
| mood | No | Filter by the track's mood tag; empty for no filter | |
| genre | No | Filter by the track's genre tag; empty for no filter | |
| search | No | Free-text search over track names/descriptions; empty for no filter | |
| category | No | Track kind: "music" (background tracks) or "sfx" (sound effects); empty returns both |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds that it returns track IDs for specific tools, which is useful beyond annotations. No contradictions; adequate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, both substantive. No unnecessary words; front-loaded with purpose and functional detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple browse tool with no output schema, the description covers the return value and key parameter. It does not mention pagination or sorting, but given its simplicity, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so baseline is 3. The description adds clarity that the category parameter accepts 'music' or 'sfx' and that output is track IDs, but does not elaborate on mood, genre, or search beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses an audio library for music and SFX, mentions the category parameter, and explicitly indicates the output is track IDs for use with add_music_track and add_segment_sfx. It distinguishes itself from these sibling tools by being the browsing step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not specify when to use this tool over alternatives like list_music_tracks. It implies usage for finding tracks before adding them, but no explicit guidance on context or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_scenesBuild scenesADestructiveInspect
Compile segments + assets + voiceover into the editor/render timeline (scenes). Run after segment assets are complete, before export.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds that it compiles assets into scenes but does not elaborate on whether it replaces existing scenes or other side effects. Acceptable given annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. Key action and workflow position are front-loaded. Every sentence adds unique value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers purpose and workflow placement. Could mention if it overwrites previous scenes (implied by destructiveHint), but adequate overall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (project_id) fully described in the schema. The tool description adds no further parameter-specific meaning. Baseline 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compiles segments, assets, and voiceover into the render timeline (scenes), with a specific workflow position (after segment assets, before export). This distinguishes it from sibling tools like combine_segments or generate_segments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit timing ('Run after segment assets are complete, before export'), indicating when to use. Does not explicitly list when not to use or alternatives, but the workflow context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
change_segment_typeChange segment typeADestructiveInspect
Change a segment's visual type: "image" | "video" | "overlay_scene". carry_frame=true reuses the already-rendered image as the video start frame (or vice versa) instead of recreating it.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| carry_frame | No | True reuses the already-rendered frame as the new type's starting visual instead of recreating it from scratch | |
| segment_type | Yes | New visual type: "image", "video", or "overlay_scene" | |
| segment_number | Yes | 1-based segment number, as reported by get_segments |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and the description confirms it's a mutation ('Change'). It adds detail about carry_frame's effect, but does not disclose reversibility or side effects beyond that. While not contradicting annotations, more context on consequences would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the core purpose and providing necessary detail on carry_frame without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and full parameter documentation in schema, the description covers the essential behavior. However, it could hint at whether existing segment content is preserved or regenerated, which would increase completeness for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions, but the description adds nuance to carry_frame (reusing rendered image/video start frame) beyond the schema. For segment_type, it lists the allowed values explicitly, which is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Change a segment's visual type') and lists the allowed types ('image', 'video', 'overlay_scene'), distinguishing it from sibling tools like update_segment_content or combine_segments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool (to change a segment's type) and explains the optional carry_frame parameter, but does not explicitly mention when not to use it or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
combine_segmentsCombine segmentsADestructiveInspect
Merge a segment with an adjacent one (segment numbers must be neighbors). keep: "this" | "other" — whose creative data survives. Later segments renumber — re-check get_segments before further edits.
| Name | Required | Description | Default |
|---|---|---|---|
| keep | No | Whose creative data survives the merge: "this" (segment_number) or "other" (with_segment_number) | this |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| segment_number | Yes | 1-based segment number, as reported by get_segments | |
| with_segment_number | Yes | 1-based number of the adjacent segment to merge with (must neighbor segment_number) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds valuable context: segments renumber after merge, and the keep parameter determines which creative data survives. There is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and key constraints. Every word earns its place; no extraneous details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential side effect (renumbering) and preconditions (neighbors). It does not describe the return value, but for a mutation tool with no output schema, this is acceptable. The description is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all parameters. The description restates the keep parameter semantics but adds no new information beyond what the schema already provides. Baseline score 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ("Merge") and identifies the resource ("segment") with the condition that numbers must be neighbors. It also distinguishes itself from the sibling tool split_segment by describing the opposite operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states segment numbers must be neighbors, implying when NOT to use (non-adjacent). It also warns that later segments renumber and advises re-checking get_segments before further edits, providing practical guidance for subsequent actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assetCreate assetAInspect
Manually add a character/environment/object the scan missed. asset_type: "character" | "environment" | "object". The description is the generation-facing spec of its look — be specific.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Asset name as the script refers to it (e.g. the character's name) | |
| asset_type | Yes | Kind of asset: "character", "environment", or "object" | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| description | No | Generation-facing spec of the asset's look; every shot renders from it, so be specific |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, and the description adds that it creates an asset manually. It does not contradict annotations. However, it omits details like idempotency or what happens on duplicate names. With annotations handling basic traits, the description adds minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that efficiently convey purpose and key parameter guidance. No extraneous text, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not hint at what the tool returns (e.g., asset ID). It also omits prerequisites like project existence. For a creation tool with 4 parameters, this leaves the agent without critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description adds actionable phrasing for asset_type and description but does not extend beyond schema definitions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Manually add a character/environment/object the scan missed.' It specifies the verb (add), resource (asset), and context (scan missed), distinguishing it from siblings like update_asset or generate_asset_reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a scan misses assets but lacks explicit when-to-use or when-not-to-use guidance. No alternatives or prerequisites are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_channelCreate channelAInspect
Create a new channel — the container for projects and their reusable styles. Use when the user wants a fresh creative identity rather than adding to an existing channel.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the new channel | |
| description | No | Optional free-text description of the channel's content focus |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate write operation (readOnlyHint=false) and no destructiveness (destructiveHint=false). The description adds useful context about channel being a container, but lacks details on side effects, permissions, or return value, which is a gap given no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and usage guidance. No extraneous information; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description explains the channel concept and usage, it omits critical information for a creation tool: what the response contains (e.g., channel ID or object), any constraints (e.g., name uniqueness), and does not compensate for the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters (name and description). The description does not add extra meaning beyond the schema's titles and descriptions, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a new channel' as the verb-resource combination, defines channel as 'container for projects and their reusable styles', and distinguishes from sibling tools by saying 'rather than adding to an existing channel'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use the tool ('when the user wants a fresh creative identity') and what not to do ('rather than adding to an existing channel'), providing clear context against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectCreate projectAInspect
Create a project. The description (the video concept/topic) seeds script generation, so write a meaningful one. The response's web_url is the project's page in the web app — share it so the user can follow along.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Project title shown in the app | |
| channel_id | Yes | ID of the channel to create the project in, from list_channels or create_channel | |
| description | No | The video concept/topic; seeds script generation, so make it specific and meaningful |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (non-readOnly, non-destructive). The description adds that description seeds script generation and that the response contains a web_url. However, it doesn't disclose other behaviors like idempotency or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no excess. The first sentence is the core purpose, and the second adds important context about the description parameter and response URL. Well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description mentions only the web_url in the response, leaving other potential return fields unspecified. It doesn't clarify if creation is reversible or has other side effects. Adequate for basic understanding but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description reinforces the importance of the description parameter for script generation. The baseline is 3, and the description adds marginal extra value by emphasizing 'meaningful' input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a project.' and specifies that the description parameter seeds script generation, distinguishing it from update_project or list_projects. The verb and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like update_project. Usage is implied for creating new projects, but no when-not or sibling differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_styleCreate styleAInspect
Create a style. Two mutually exclusive paths:
References (best): inputs=[{"input_type": "youtube" | "text", "value":
"<url or description>"}] — YouTube videos are watched and text directions
read; async analysis writes the style's art/narrative/director fields:
await_jobs(style_id=...) before using the style. (Image/video FILE
references require the multipart REST endpoint POST /styles.)
Presets (instant, no analysis): presets={"art_style": id,
"narrative_style": id, "director_style": id} — all three axes, ids from
list_style_presets.| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the style | |
| inputs | No | Reference material to analyze, [{"input_type": "youtube" | "text", "value": "<url or description>"}]; triggers an async analysis job. Mutually exclusive with presets | |
| presets | No | Preset IDs per axis, {"art_style": id, "narrative_style": id, "director_style": id}, from list_style_presets; instant, no analysis. Mutually exclusive with inputs | |
| channel_id | Yes | ID of the channel to create the style in, from list_channels |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, etc. The description adds behavioral traits: references trigger async analysis (requires await_jobs), presets are instant. It also notes that file references require a different endpoint (multipart REST). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, using clear bullet-like formatting for the two paths. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the two modes and their implications (analysis vs instant). It lacks explanation of return values (no output schema), but for a creation tool the outcome is implied. Moderate complexity is adequately addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning by detailing the structure of 'inputs' and 'presets', including the required format and mutual exclusivity. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a style' and explains the two mutually exclusive paths (references with async analysis, presets instant). It distinguishes the tool from siblings like 'analyze_style', 'update_style_fields', and 'list_styles' by specifying the creation behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly details when to use references (with await_jobs) versus presets (instant, from list_style_presets). It mentions mutual exclusivity but does not explicitly state when not to use the tool or compare with other creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_assetDelete assetADestructiveInspect
Delete a project asset (e.g. one the scan over-extracted).
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | ID of the asset to delete, from list_assets |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true; description adds example of typical deletion scenario. Consistent with annotations, no contradiction, but does not elaborate on side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler. Every word is necessary for the description of a one-parameter destructive tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter, destructive hint, and no output schema, the description is sufficient. Example and schema provide complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already fully describes the single parameter (asset_id) with origin hint ('from list_assets'). Description adds no additional parameter meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Delete a project asset'. Includes example usage ('one the scan over-extracted') which distinguishes from sibling tools like create_asset and list_assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a specific use case (over-extracted assets) but lacks explicit when-not or alternative suggestions. The example gives context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_projectDelete projectADestructiveInspect
Permanently delete a project and everything in it (script versions, assets, voiceover, segments, renders). Irreversible — confirm with your user first.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ID of the project to permanently delete, from list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint: true. The description adds specific details on what gets deleted (script versions, assets, etc.) and the irreversible nature, providing context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core action and immediately follow with key context. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one param and no output schema, the description fully covers what the tool does, its effects, and usage warning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description adds value by noting the project_id comes from list_projects, aiding in parameter selection beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (permanently delete) and the resource (project) with a specific list of contents affected. It distinguishes from siblings like create_project and update_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly warns about irreversibility and advises confirming with the user, which guides appropriate usage. However, it does not explicitly mention when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_styleDelete styleADestructiveInspect
Delete a style (e.g. a failed analysis experiment). Don't delete a style that projects still use as their default — rebind them first with set_project_style.
| Name | Required | Description | Default |
|---|---|---|---|
| style_id | Yes | ID of the style to delete, from list_styles |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. The description adds context: warns about deleting styles used as defaults and suggests rebinding. This goes beyond the annotation flag, though it doesn't detail reversibility or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The main purpose is front-loaded, and the caution is concise. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with one required parameter and clear annotations, the description covers purpose, usage, and a crucial pitfall (default styles). It is complete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter style_id has full description in the schema ('ID of the style to delete, from list_styles'). The tool description does not add additional semantics beyond what the schema provides. Baseline score 3 as schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a style' with an example use case (failed analysis experiment). It distinguishes from sibling tools like set_project_style, create_style, and update_style_fields by explicitly mentioning when not to use it and what to do instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (delete a style, e.g. failed experiment) and when not to (if projects still use it as default), providing an alternative: rebind with set_project_style.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
director_noteDirector note (one scene)AInspect
Edit ONE scene with a natural-language note (the same director chat the editor UI uses): move/restyle/add/remove layers and overlays, retime, etc. Synchronous — returns the applied mutations + updated scene. Use list_scenes to find scene ids; for notes spanning the whole video use project_director_note instead.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Natural-language edit note for this scene, e.g. "move the caption to the top" or "remove the overlay" | |
| scene_id | Yes | ID of the scene to edit, from list_scenes | |
| conversation_history | No | Prior chat turns as [{"role": ..., "content": ...}] to continue an editing conversation on this scene; omit to start fresh |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (modification) and destructiveHint=false. Description adds that it is synchronous and returns applied mutations+updated scene, but does not elaborate on versioning or undo capabilities.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states core purpose and capabilities, second adds return info, sync behavior, and usage guidance. No fluff, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description mentions return shape but vaguely. Auth or error conditions not mentioned. With moderate complexity and good schema, it's adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have schema descriptions (100% coverage). Description adds helpful examples for message and context for scene_id (link to list_scenes), slightly enhancing bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool edits ONE scene using natural-language notes, listing specific operations like move/restyle/add/remove layers and retime, and distinguishes from sibling project_director_note by scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use list_scenes to find scene IDs and advises using project_director_note for whole-video notes, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_videoExport videoAInspect
Render the final MP4 (Remotion). Fetches the current timeline and queues the render. Async — poll get_workflow_status for the video_export job, then call get_video_url.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (not read-only) and destructiveHint=false. The description adds that the tool is async ('Async — poll...') and queues a render job, providing behavioral context beyond annotations. It does not detail side effects or failure scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences immediately conveying the core action and async workflow. Every sentence adds value with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and no output schema, the description adequately covers the tool's role and the async flow. It could mention the need for a complete timeline, but overall it is sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description for project_id is clear: 'Project ID, as returned by create_project or list_projects.' The tool description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Render the final MP4 (Remotion)' and explains the process: 'Fetches the current timeline and queues the render.' It distinguishes from siblings like get_video_url and get_workflow_status by describing the async workflow and next steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit post-call steps: 'poll get_workflow_status for the video_export job, then call get_video_url.' This guides the agent on usage. However, it does not specify when not to use this tool or prerequisites like a valid timeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_asset_referenceGenerate asset reference imageAInspect
Render an asset's reference image in the channel's art style — the visual anchor that keeps a character/environment looking identical across every shot. EVERY character, environment, and object asset needs one before generate_voiceover (the server enforces this; fire the jobs for all assets, then one await_jobs). Async — the job writes the image onto the asset row: await_jobs(project_id), then list_assets and view_image the file_path to check likeness.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Image model ID; empty uses the server default for reference images | |
| asset_id | Yes | ID of the asset to render a reference image for, from list_assets | |
| settings | No | Model-specific settings (e.g. image quality/orientation); valid keys come from the model's settings_schema in list_models | |
| editable_sections | No | Per-call prompt section overrides, keyed by section name; see get_section_template for the reference-image job |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=false and destructiveHint=false. Description adds that the tool is async and writes the image onto the asset row, disclosing side effects clearly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. The second sentence is a bit long but packs necessary guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the full lifecycle: async job, how to check completion (await_jobs), and how to view the resulting image (list_assets, view_image). Complete for a job-triggering tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds workflow context but no additional parameter-level details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renders an asset's reference image in the channel's art style, serving as a visual anchor. It distinguishes itself from generate_voiceover by noting the dependency order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says every asset needs this before generate_voiceover, and provides a clear workflow: fire jobs for all assets, then await_jobs, then list_assets and view_image to check result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_scriptGenerate scriptAInspect
Generate the project's script from its description/concept and the channel's narrative style. Async — returns {job_id}; poll get_workflow_status.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID to generate with; empty uses the default (see list_models("script")) | |
| settings | No | Model-specific settings; valid keys come from the model's settings_schema in list_models("script") | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| editable_sections | No | Per-call prompt section overrides, keyed by section name; see get_section_template("script") for the sections this job exposes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses async behavior and the need to poll 'get_workflow_status', adding behavioral context beyond the all-false annotations. It does not cover potential side effects, but the 'generate' verb implies non-destructive creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise and front-loaded sentences: the first states the purpose, the second describes the async pattern. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core behavior and async workflow. It could mention prerequisites like existing project and channel narrative style, but the schema references provide sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is well-described in the schema. The description adds no additional parameter meaning, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates a script from the project's description/concept and the channel's narrative style, distinguishing it from related siblings like 'revise_script' or 'scan_script'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for initial script generation but does not explicitly provide when to use this tool versus alternatives such as 'revise_script' for modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_segmentsRender segment assetsAIdempotentInspect
Render every actionable segment asset (images, video clips, overlays) across the project, in dependency order. THE most expensive call in the pipeline: ALWAYS dry_run=true first, show your user the estimate next to get_credit_balance, and wait for a fresh yes before the real run — prior blanket permission ("do the whole thing") does not cover this spend. Pass segment_numbers to render only a subset — e.g. segments 1-18 for the opening minute before committing to the full video. Safe to re-run: completed and currently-generating assets are skipped, so a second call only picks up new/failed work. Async — one job per asset; await_jobs until all complete.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | True returns the credit-cost estimate without rendering anything; ALWAYS run true first and get user approval before the real run | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| segment_numbers | No | 1-based segment numbers (from get_segments) to render only a subset; omit to render every actionable asset in the project |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key traits beyond annotations: 'most expensive call', async behavior ('one job per asset; await_jobs'), skip of completed/ongoing work, and the need for explicit user approval. No contradiction with annotations (idempotentHint=true, destructiveHint=false align).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences well-organized: purpose, warning, usage, subset guidance, re-run safety, async note. Slightly verbose but front-loaded and efficient. Minor redundancy in 'one job per asset' vs 'await_jobs'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no output schema, and async behavior, the description covers critical usage flow (dry_run, approval, subset, re-run safety, job awaits). Lacks explicit return format but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds context: dry_run purpose and approval flow, project_id source, segment_numbers as 1-based and from get_segments, and subset intent. Adds meaning beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('Render') and resource ('every actionable segment asset'), and clearly distinguishes from sibling tools that render other assets (e.g., generate_voiceover) by focusing on segment images, video clips, and overlays across the project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to always dry_run=true first, show estimate near get_credit_balance, and get fresh approval. Also explains subset via segment_numbers. Lacks explicit 'do not use when' or alternative tool names, but provides strong usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_storyboardGenerate storyboardADestructiveInspect
Plan the full visual storyboard: segments, shot pacing, image/video prompts, overlays, continuation chains — driven by the channel's director and art styles. Requires voiceover to exist (timing comes from it). BEFORE calling: confirm the project's asset_mix with your user (image vs video vs generated_graphic percentages, update_project) — the storyboard plans against it and video-heavy mixes multiply the later render cost. Async — returns {job_id}; this is the longest LLM step.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID to plan with; empty uses the default (see list_models("storyboard")) | |
| settings | No | Model-specific settings; valid keys come from the model's settings_schema in list_models("storyboard") | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| editable_sections | No | Per-call prompt section overrides, keyed by section name; see get_section_template("storyboard") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. Description adds valuable context: async nature, prerequisite (voiceover), and it being the longest step. No contradiction. Could further detail what gets destroyed (e.g., previous storyboard?) but is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, each serving a distinct purpose: purpose, prerequisites/guidance, async behavior and cost note. No repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Good coverage of prerequisites, async nature, and return type. Minor gap: doesn't mention how to monitor progress or retrieve results (e.g., await_jobs or get_workflow_status), but sibling tools imply that workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3. Description does not add parameter-level detail beyond what's in the schema. It mentions channel director/art styles, which is contextual but not parameter-specific.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific verb 'Plan the full visual storyboard' and lists concrete deliverables (segments, shot pacing, prompts, overlays, continuation chains). Clearly distinguishes from siblings like generate_script, build_scenes, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite: voiceover must exist. Provides actionable pre-call instruction: confirm asset_mix with user and warns about cost implications of video-heavy mixes. Also sets async expectation and notes this is the longest LLM step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_style_templateGenerate style templateAInspect
Render one of a style's two template images — a REAL step of style setup, not an optional extra: a style isn't finished until both its character and environment templates are rendered (the app shows them on the style card). Asset reference images render against them (characters → character template; environments and objects → environment template), and segment renders fall back on them when a shot has no asset reference — so finish BOTH before generate_asset_reference. Run once per template_type ("character" | "environment") for every new style; skip only types the style already has (get_style shows them). Async — await_jobs(style_id=...), then get_style.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Image model ID; empty uses the template job's default (see list_models) | |
| style_id | Yes | Style ID, as returned by create_style or list_styles | |
| template_type | Yes | Which of the style's two template images to render: "character" or "environment" — run once for each | |
| editable_sections | No | Per-call prompt section overrides, keyed by section name; see get_section_template for the template job |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that this is a required step (not optional), explains asset reference and fallback behavior, and notes the app displays templates on style card. Annotations are all false and consistent with description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single paragraph of about 100 words, front-loaded with key action, uses clear imperative language, no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers workflow steps, dependencies, and post-invocation actions (await_jobs, get_style). Lacks explicit description of return value (likely a job ID), but given the async nature, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already describes all parameters thoroughly (100% coverage). The description adds minimal extra info beyond repeating template_type values and mentioning editable_sections, so value added is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it renders one of a style's two template images (character or environment), distinguishing it from generate_asset_reference and other style operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-to-use (every new style, both template types), when-not-to-use (skip if style already has type), and order (finish both before generate_asset_reference). Also mentions async handling with await_jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_voiceoverGenerate voiceoverAInspect
Generate TTS audio for the project's voice blocks. Without voice_block_ids it fills gaps: only blocks with no audio yet run, so re-calling it is always safe (already-generated and currently-generating blocks are skipped, never re-billed). Pass voice_block_ids to explicitly REgenerate those blocks (e.g. after changing a block's voice). Speakers must have voices bound first — set_narrator_voice / set_character_voice. Optional editable_sections/settings apply to every selected block (see get_section_template("voice_block") and list_models("voice_block")). Async — returns one job per block.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | TTS model ID; empty uses the default (see list_models("voice_block")) | |
| settings | No | Model-specific TTS settings applied to every selected block; valid keys come from the model's settings_schema in list_models("voice_block") | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| voice_block_ids | No | Block IDs (from list_voice_blocks) to explicitly REgenerate; omit to fill gaps — only blocks with no audio yet run | |
| editable_sections | No | Per-call prompt section overrides applied to every selected block; see get_section_template("voice_block") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide null hints, but the description compensates richly: declares idempotency in gap-filling mode, async behavior returning one job per block, and safety around re-invocation. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise (a few sentences) and front-loaded with the core action. Each sentence adds unique value. Minor improvement could be structuring with bullet points, but still clearly organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple modes, async, dependencies on other tools), the description covers all necessary aspects: prerequisites, behavior, parameter explanations, and result type. It references sibling tools (set_narrator_voice, list_models, etc.) for complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds significant context beyond the schema, such as explaining the dual behavior of voice_block_ids, the default model handling, and cross-references to list_models and get_section_template for valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generating TTS audio for voice blocks. It distinguishes two modes (gap-filling vs explicit regeneration) and differentiates from siblings such as update_voice_block or generate_script, making it easy for an AI agent to select correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use each mode: omit voice_block_ids to fill gaps (skips already-audio blocks) and pass IDs to regenerate. It also provides safety assurance (re-calling safe, never re-billed) and prerequisite steps (set_narrator_voice/set_character_voice).
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 balanceARead-onlyIdempotentInspect
Current credit balance + plan info. Check before expensive steps (a full segment render can cost hundreds of credits — generate_segments dry_run gives the estimate). Jobs covered by a BYOK provider key bill 0.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the description does not contradict them. It adds useful context about what data is returned (balance and plan info) and billing behavior, which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences; first states purpose, second gives usage guidance. No wasted words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description fully covers what it does and when to use it. The billing nuance adds completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% schema description coverage. Baseline is 4. The description does not need to add parameter info, and it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides 'current credit balance + plan info', which is a specific verb+resource combination. No sibling tool overlaps with this purpose, so it is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to check before expensive steps, provides a concrete example (full segment render costing hundreds of credits), and mentions alternative (generate_segments dry_run for estimate). Also clarifies that BYOK jobs bill 0. This is excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pipeline_progressGet pipeline progressARead-onlyIdempotentInspect
THE resume/orientation tool: one call returns every pipeline step's state (script -> scan -> reference_images -> voices -> voiceover -> style_templates -> storyboard -> segment_assets -> scenes -> export), any running jobs, and a next_action telling you exactly what to do next. Call this when picking up an existing project, after any await_jobs, or whenever you're unsure where a video stands — never guess pipeline position.
Every step carries a web_url — the page in the Framesail web app where your
user can see that step's output. Share it whenever you present a step's
results ("review the storyboard here: ...") so they can inspect and edit in
the browser; the app and this API act on the same live state.| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds context that it provides comprehensive state, web URLs for step outputs, and next_action guidance, which is behaviorally rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient paragraphs, front-loaded with purpose and usage. The second paragraph adds important web_url guidance, though it slightly extends beyond core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Completes the picture for a complex pipeline tool without output schema: explains return structure, step list, next_action role, and web URL usage. No gaps for agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (project_id) that has a clear description. The description adds minor clarification about project_id source but does not significantly extend beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns every pipeline step's state, running jobs, and next_action, using specific step names. It distinguishes itself as a resume/orientation tool from sibling tools that perform individual pipeline actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to call: when picking up an existing project, after await_jobs, or when unsure of video status. Includes directive 'never guess pipeline position'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_projectGet projectARead-onlyIdempotentInspect
Fetch a project row — settings, voice config, default style, export URL.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, indicating a safe read operation. The description adds value by detailing the response content (settings, voice config, etc.), which goes beyond the annotations and informs the agent of what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential information without any fluff. Every word is meaningful, and the structure is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is complete. It explains what data is returned, compensating for the lack of an output schema. The context signals and sibling tools further clarify its role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter project_id, with a clear description in the schema. The tool description does not add additional semantics beyond what is already in the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a project row' and lists specific fields returned (settings, voice config, default style, export URL), making the purpose explicit and distinct from sibling tools like create_project, update_project, and list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving a single project by ID, which is clear. However, it does not explicitly state when not to use it (e.g., use list_projects for browsing or update_project for modifications), so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scriptGet scriptARead-onlyIdempotentInspect
Read the active script's full text + the version list. Use this to show the script to your user for review/feedback before scan_script — the review-edit-resave loop (get_script -> discuss -> save_script) is the expected workflow when the user wants input.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying the exact return content (full text + version list), which goes beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main purpose. No extraneous words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single required parameter, no output schema, and comprehensive annotations, the description provides sufficient context about the tool's role in the workflow and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the single parameter (project_id) adequately. The description does not add new parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the active script's full text and version list. The verb 'Read' and resource 'script' are explicit, and it distinguishes itself from sibling tools like scan_script or save_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use this tool before scan_script and within a review-edit-resave workflow. It provides clear guidance on when and how to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_section_templateGet section templateARead-onlyIdempotentInspect
Inspect the prompt sections a generation job exposes for per-call override via editable_sections (jobs: script, script_scan, storyboard, segment_image, segment_video, voice_block, ...). Sections marked locked cannot be overridden.
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes | Generation job name, e.g. "script", "script_scan", "storyboard", "segment_image", "segment_video", "voice_block" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds key behavioral detail: 'Sections marked locked cannot be overridden', which is beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Purpose stated upfront, followed by essential behavioral constraint. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter; description sufficiently explains input and expected output (list of sections with locked flag). No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter 'job' with 100% description coverage (lists examples). Description reiterates examples and adds context linking to editable_sections, but adds little new meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Inspect the prompt sections a generation job exposes for per-call override via editable_sections', clearly defining verb, resource, and purpose. Includes example job names, distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly clear when to use: to inspect editable sections before overriding. No explicit exclusions or alternatives, but context and sibling list make purpose distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_segment_assetsGet segment assetsARead-onlyIdempotentInspect
List one segment's assets (images/video/overlays) including their status, config (prompts, model), and public URLs of rendered files — pass an image's public_url to view_image to actually look at it.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| segment_number | Yes | 1-based segment number, as reported by get_segments |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds return details (status, config, public URLs) which is useful but not extensive. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action, no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description adequately explains return content (status, config, public URLs) and hints at next step (view_image). Complete for a listing tool with two required params and good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with clear descriptions for both parameters. Description does not add additional parameter-level information, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies verb 'list', resource 'one segment's assets', and includes details on what is returned (status, config, public URLs). It also distinguishes from sibling 'view_image' by noting that to view an image, use view_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the tool lists assets for a segment and provides guidance to use view_image for actually viewing images. Lacks explicit when-not-to-use but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_segmentsList segmentsARead-onlyIdempotentInspect
List the storyboard's segments (narration span, type, duration, creative direction). The 1-based segment_number is the handle every segment tool takes (update/split/combine/continuation/regenerate) — you never need a UUID.
Each segment also reports `continues_from_segment`. When set, this shot is a
CONTINUATION of that earlier segment: its rendered frame carries over (same
composition, characters, and setting) and only the delta changes — an added
overlay, a shifted expression, a closer angle, a slow reframe. Null means a
fresh, independent shot. The storyboard plans these chains automatically;
adjust them with set_segment_continuation.| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint; description adds context about the continues_from_segment field and the handle convention, which is useful but doesn't 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise (few sentences) and front-loaded with purpose, then elaborates on key fields without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the key return fields and their significance, though it could mention the list format explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is well-documented in the schema; description adds no additional parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists segments with specific fields (narration span, type, duration, creative direction) and explicitly distinguishes the role of segment_number as the handle used by sibling tools, avoiding UUIDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (list to get handles for other tools) but no explicit guidance on when to use vs alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_styleGet styleARead-onlyIdempotentInspect
Fetch one style row — its inputs (reference material) and analyzed fields (art_style, narrative_style, director_style, script_prompt, ...). Show fields to the user for review; fine-tune with update_style_fields.
| Name | Required | Description | Default |
|---|---|---|---|
| style_id | Yes | Style ID, as returned by create_style or list_styles |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate safe read (readOnlyHint=true, destructiveHint=false). The description adds value by specifying that it returns inputs and analyzed fields, and by suggesting a follow-up action (update_style_fields). No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence plus a brief usage note. It is front-loaded with the verb and resource, and every part adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single param, read-only, no output schema), the description fully covers what the tool does, what it returns, and how to use the result. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage for the single parameter (style_id) with a clear description. The description does not add new parameter semantics beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Fetch') and resource ('one style row'), and lists specific analyzed fields (art_style, narrative_style, etc.), distinguishing it from sibling tools like list_styles (multiple rows) and update_style_fields (modification).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: 'Show fields to the user for review; fine-tune with update_style_fields.' This tells the agent when to use this tool (to retrieve data for review) and suggests an alternative for modification. No explicit exclusions, but the guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_video_urlGet video download URLARead-onlyIdempotentInspect
Download URL for the most recent completed export.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read. The description adds contextual details: it returns a download URL for the 'most recent completed export,' which is helpful beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It is front-loaded and directly tells the agent what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and clear annotations, the description is mostly complete. It could mention that the export must have been completed, but this is implied. No output schema needed for this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter (project_id) described as 'Project ID, as returned by create_project or list_projects.' The description does not add any additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Get video download URL' and description 'Download URL for the most recent completed export' clearly state the verb (get/download) and resource (video URL). It distinguishes from siblings like export_video which creates exports, and other get_ tools which retrieve different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after an export is completed but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites (e.g., an export must exist). No guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_statusGet workflow statusARead-onlyIdempotentInspect
Poll this between steps: returns active + recently-finished AI jobs
(scope by project_id, or style_id for style analysis), plus per-segment-
asset render statuses for projects. A step is done when its jobs reach
status=complete (or error, with a user-readable message). NOTE: finished
jobs drop out of jobs after ~30s — a short list does NOT mean work was
lost; judge render batches by segment_assets statuses (or
get_pipeline_progress), never by counting jobs. Prefer await_jobs over
polling this in a tight loop.
| Name | Required | Description | Default |
|---|---|---|---|
| style_id | No | Style ID to scope jobs to (style analysis); pass exactly one of project_id or style_id | |
| project_id | No | Project ID to scope jobs to; pass exactly one of project_id or style_id |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint. The description adds crucial behavioral context: finished jobs drop out after ~30s, a short list does not mean work lost, and how to correctly assess render batches. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, well-structured, with clear language and a notable warning in bold. No wasted words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (transient jobs, multiple scope options), the description covers usage, interpretation of results, and links to sibling tools. No output schema exists, but the description hints at return structure (jobs, segment_assets, error messages) adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds minimal extra value (e.g., 'for style analysis' for style_id) but largely repeats what the schema already states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns active and recently-finished AI jobs, scoped by project_id or style_id, plus per-segment-asset render statuses. It distinguishes itself from siblings like await_jobs and get_pipeline_progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises polling between steps, recommends preferring await_jobs over tight polling, and warns against counting jobs to judge render batches. Provides clear when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsList assetsARead-onlyIdempotentInspect
List the project's assets extracted by scan_script — characters, environments, objects. Each has a description (the spec every shot uses to render it — surfaced top-level here; the raw row nests it at ai_output.description), an optional reference image (file_path is a public URL — view_image it), and for characters a voice_id. Review these after scan_script: fix descriptions, then generate_asset_reference for each one (all of them need a reference image before voiceover). asset_type filter: "character" | "environment" | "object".
| Name | Required | Description | Default |
|---|---|---|---|
| asset_type | No | Optional filter: "character", "environment", or "object"; empty lists all asset types | |
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds useful behavioral context: the output structure (description surfaced top-level, file_path as public URL, voice_id for characters) and the asset_type filter behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus a clause. It front-loads the purpose, then provides workflow context, then filter details. Every sentence is necessary and informative, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (2 params, no output schema) and rich annotations, the description fully covers what the tool does, what the output contains, and its place in the workflow. It explains the asset types, their attributes, and recommended next steps, making it self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions for both parameters. The description adds value by explaining the asset_type filter values explicitly ('character', 'environment', 'object') and indicating that empty lists all types. It also clarifies the project_id context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'assets', and the scope 'project's assets extracted by scan_script'. It distinguishes from sibling tools like create_asset, delete_asset, update_asset by specifying the source and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Review these after scan_script'. It also gives next steps: 'fix descriptions, then generate_asset_reference for each one'. It doesn't explicitly state when not to use or list alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_channelsList channelsARead-onlyIdempotentInspect
List your channels. Every project lives in a channel, which owns the reusable styles (art/narrative/director) that drive generation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only operation. The description adds value by explaining that channels own reusable styles, which is behavioral context beyond the annotations. No contradictions or missing disclosures for this simple list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the action, and every sentence provides essential information. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no parameters and comprehensive annotations, the description sufficiently covers what the tool does and the context of channels. No output schema exists, but the description doesn't need to detail returns for such a standard operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is trivially 100%. The description does not need to add parameter details, and the baseline for zero parameters is 4. No additional parameter information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'your channels', which is specific and distinct from sibling list tools like list_projects or list_assets. The additional sentence explains the role of channels, reinforcing the tool's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_projects or list_styles. It simply states what it does without context for selection or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsList modelsARead-onlyIdempotentInspect
List the models allowed for a generation job, with display names, credit
estimates, and each model's settings_schema — the valid keys for that
tool's settings param (e.g. image quality/orientation, video duration).
The first entry is the default every tool uses when model is omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes | Generation job whose allowed models to list, e.g. "script", "storyboard", "segment_image", "segment_video", "voice_block" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by explaining the return format (display names, credit estimates, settings_schema) and noting that the first entry is the default. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the core purpose. Every sentence adds value: the first states what the tool does and its output, the second clarifies a key behavioral detail about defaults.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, good annotations, and no output schema, the description provides sufficient completeness by explaining what will be returned (model display names, credit estimates, settings_schema) and the significance of the first entry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and describes the job parameter. The description adds meaning by explaining the purpose of the parameter ('Generation job whose allowed models to list') and providing concrete examples ('script', 'storyboard', etc.), which is more helpful than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('list') and clearly identifies the resource ('models allowed for a generation job'). It distinguishes itself from siblings by focusing on model listing for generation jobs, which is unique among the sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool ('for a generation job') and provides examples of valid job values. It does not explicitly mention when not to use or name alternatives, but the context and sibling names make it clear this is the only tool for listing models.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_music_tracksList music tracksARead-onlyIdempotentInspect
List the project's background music tracks (volume, loop, timing).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds useful context about the returned properties (volume, loop, timing), going beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool with one param and rich annotations, description explains what is returned (volume, loop, timing). However, could be more explicit about listing all tracks and output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, with a good description in the schema. The tool description does not add any additional param information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'list' and resource 'background music tracks' with properties (volume, loop, timing). Clearly distinguishes from sibling tools like add_music_track and remove_music_track.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives provided. The purpose is implied from sibling tool names, but lacks guidance on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsBRead-onlyIdempotentInspect
List projects in a channel.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel whose projects to list, from list_channels or create_channel |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description does not add any behavioral context (e.g., pagination, error handling, rate limits, or what happens if the channel is not found). It adds no value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, achieving maximum conciseness. It is well-front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the simple structure (1 required param, no output schema), the description fails to explain what is returned (e.g., list of project IDs or full objects). Without output schema, description should specify return format. Also lacks details like ordering, filtering, or limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (channel_id has a description). The tool description does not mention parameters, so it adds no additional meaning beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List projects in a channel' clearly specifies the verb (list), resource (projects), and scope (in a channel), effectively distinguishing it from sibling tools like get_project (single project) or create_project (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_project or list_assets. It does not mention prerequisites, ordering, filtering, or pagination. The schema parameter description hints at obtaining the channel_id from other tools, but the description itself offers no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_provider_keysList provider keysARead-onlyIdempotentInspect
List registered BYOK providers (masked — only the last 4 characters).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by revealing that the returned keys are masked (only last 4 characters shown). Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description complements these by specifying output masking, which is crucial for the agent to understand the data it receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single sentence that conveys all necessary information. It front-loads the action and adds the masking detail parenthetically. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, and annotations already cover safety, the description is complete. It tells what the tool does and the key detail (masking). The context signals confirm no missing information that would hinder the agent's ability to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to explain any. The schema coverage is 100% essentially. A baseline of 4 is appropriate as the description is not burdened with parameter documentation and does not miss anything.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists registered BYOK providers and specifies that keys are masked (only last 4 characters). The verb 'list' combined with the resource 'provider keys' makes the purpose unambiguous, and the masking detail adds precision. There are no sibling tools with similar listing behavior for BYOK providers, so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. While the sibling 'set_provider_key' exists, the description does not explicitly contrast them. The agent must infer that 'list' is for reading and 'set' is for writing. A clear guideline would improve selection accuracy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenesList scenesARead-onlyIdempotentInspect
List the project's scenes (composition layers, durations, layout).
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive nature. The description adds that the tool returns composition layers, durations, and layout, which provides useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no extraneous text. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter, good annotations, and no output schema, the description is adequate but could benefit from indicating that the response is an array of scene objects, even if schema is not provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear documentation for project_id. The tool description does not add additional parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'List the project's scenes' with a clear verb and resource. The parenthetical '(composition layers, durations, layout)' adds some specificity but remains somewhat vague about the exact structure returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get_segments or other list tools. The context of listing scenes is implied but not differentiated from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_style_presetsList style presetsARead-onlyIdempotentInspect
The curated preset catalog for the no-AI style creation path, grouped by axis (art_style / narrative_style / director_style). Show the user the labels + descriptions and let THEM pick one per axis — don't choose silently. Art presets include preview image URLs (view_image works on them). Create with create_style(presets={axis: id, ...}) — instant, no analysis job. Full field text lands on the style row (get_style shows it after creation).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by revealing that art presets include preview image URLs viewable with view_image, and that creation via create_style is instant with no analysis job. This adds significant 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded, but slightly verbose with some redundant phrases. Still, every sentence adds value and the structure aids quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of output schema, the description fully compensates by explaining the output format, usage flow, and relationship to other tools. No gaps remain for an agent to understand the tool's role.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, but the description enriches understanding by detailing what the output contains (labels, descriptions, preview URLs) and how to use them, which is the essence of parameter semantics for this tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists curated presets for a no-AI style creation path, grouped by axis (art_style, narrative_style, director_style). It distinguishes this from other style tools like list_styles and the analysis path, providing a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidelines are given: show the user labels + descriptions, let them pick per axis, do not choose silently. It also directs the agent to create_style for instant creation, effectively guiding tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stylesList stylesARead-onlyIdempotentInspect
List the channel's style rows (variable groups). Styles hold the art_style / narrative_style / director_style / script_prompt fields that drive every generation step, plus any custom @variables.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | ID of the channel that owns the styles, from list_channels |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds context about what the styles contain, but does not mention pagination, ordering, or return format. Extra detail would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, front-loaded with the action. Every word adds value. Excellent conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description covers purpose and what the items represent. A minor gap is the lack of explicit mention that the output is a list of style objects, but it is implied by 'List the channel's style rows.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (channel_id) is fully described in the input schema with a clear description. With 100% schema coverage, the description adds no additional parameter semantics beyond the schema, hitting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists 'style rows (variable groups)' and mentions specific fields (art_style, narrative_style, etc.), making the purpose specific. However, it does not explicitly differentiate from sibling tools like get_style or create_style, which would push it to a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that styles 'drive every generation step,' implying when to use this tool (to see styles affecting generation), but it gives no guidance on when not to use it or how it compares to alternatives like get_style or analyze_style.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_voice_blocksList voice blocksARead-onlyIdempotentInspect
List the project's voice blocks (per-speaker narration chunks) with their audio status and assigned voices.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive nature. The description adds context about the content of the output (audio status, assigned voices) but does not detail pagination or limits. The bar is lowered by annotations, and the description provides useful additional information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that efficiently conveys the tool's purpose and output. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no output schema, the description gives a helpful hint about return values (audio status and assigned voices). This is largely sufficient given the low complexity and existing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, project_id, is already described in the schema with adequate detail. The tool description does not add further semantic meaning beyond what the schema provides. Since schema coverage is 100%, baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists voice blocks for a project, specifying they are 'per-speaker narration chunks' and includes what information is returned (audio status, assigned voices). This differentiates it from siblings like rescan_voice_blocks (which scans) and update_voice_block (which updates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is self-evident: use to view voice blocks. However, it does not explicitly mention when not to use it, such as for scanning or updating, which could be inferred from siblings but is not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_voicesList voicesARead-onlyIdempotentInspect
List available TTS voices (id, label, preview audio URL) for a provider: "minimax" (default engine) or "elevenlabs". Match the project's voice_tts_provider (see get_project) so picked ids work with its engine.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | TTS engine to list voices for: "minimax" (default engine) or "elevenlabs"; match the project's voice_tts_provider | minimax |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds what fields are returned (id, label, preview audio URL), which provides useful extra behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. It front-loads the core action and return fields, then adds the critical usage note about matching provider.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one parameter, the description covers the main aspects: what is listed, for which providers, and a usage hint. It could mention ordering or completeness, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and its description already explains the parameter's purpose and values. The tool description reiterates the matching advice but does not add novel semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists TTS voices with specific fields (id, label, preview audio URL) for a provider, and explicitly distinguishes its role from siblings like generate_voiceover or set_character_voice by focusing on listing available options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises matching the project's voice_tts_provider, which is a clear usage context. It does not explicitly state when not to use it or name alternatives, but the context is sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_director_noteDirector note (whole project)AInspect
Apply a project-WIDE director note ("make the intro punchier", "all captions bigger", "tighten pacing in the back half"). A routing pass picks only the scenes the note applies to and edits each one. Synchronous — a few seconds per affected scene. Returns the per-scene results; re-run export_video afterwards to see changes in the final render.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Project-wide director note in natural language, e.g. "make the intro punchier" or "all captions bigger" | |
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosure goes well beyond annotations: synchronous, per-scene processing, returns per-scene results, and necessity to re-run export_video. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes behavior, post-conditions, and return value despite no output schema. With full schema coverage, handles completeness well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%, description adds natural language examples to 'message' but no new meaning beyond schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with 'Apply a project-WIDE director note' with concrete examples, clearly distinguishing from sibling director_note (likely per-scene). Specific verb+resource+scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes when to use (project-wide note) and post-condition (re-run export_video). Lacks explicit exclusions or alternative tools, but context with sibling provides implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
regenerate_segment_assetRegenerate segment assetAInspect
Regenerate a segment's primary image or video with optional overrides — the API equivalent of the editor's expert drawer. asset_type: "image" | "video" (for a video segment, "image" targets its start frame). Use a different model, override prompt sections (see get_section_template("segment_image")), or tweak settings (e.g. image quality), then re-run just this asset. Async — returns {job_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID to render with; empty uses the job's default (see list_models("segment_image") / list_models("segment_video")) | |
| settings | No | Model-specific settings (e.g. image quality, video duration); valid keys come from the model's settings_schema in list_models | |
| asset_type | Yes | "image" or "video"; for a video segment, "image" targets its start frame | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| segment_number | Yes | 1-based segment number, as reported by get_segments | |
| editable_sections | No | Per-call prompt section overrides, keyed by section name; see get_section_template("segment_image") or ("segment_video") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are non-committal (no readOnly/hints), but the description adds key behavioral details: async execution, returns {job_id}, and that it is the API equivalent of the editor's expert drawer. This goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) with no wasted words. It front-loads the main purpose, then clarifies key parameters and async behavior, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return value ({job_id}). It also references related tools for parameter details, making it self-contained for an agent. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions, but the description adds context beyond the schema, such as clarifying that asset_type 'image' for a video segment targets the start frame, and listing the purpose of editable_sections and settings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool regenerates a segment's primary image or video with optional overrides, explicitly mentioning asset_type and async behavior. It distinguishes itself from siblings by focusing on regenerating individual assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (re-run just this asset with different model, overrides, settings) and references related tools like get_section_template and list_models. However, it does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_music_trackRemove music trackADestructiveInspect
Remove a music track from the project.
| Name | Required | Description | Default |
|---|---|---|---|
| track_id | Yes | ID of the music track to remove, from list_music_tracks |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true, so description confirms removal but adds no new behavioral details (e.g., irreversibility, permissions). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, directly conveys the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple removal tool with one parameter, the description is sufficient. No output schema needed. Could mention if operation is reversible, but still complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with description for track_id including source hint 'from list_music_tracks'. Description adds context beyond schema, improving parameter clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses clear verb 'remove' and resource 'music track' with scope 'project'. Distinguishes well from siblings like 'add_music_track' and 'update_music_track'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives (e.g., when to remove vs update). It mainly states the action without context on prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_segment_sfxRemove segment sound effectADestructiveInspect
Remove a sound effect from a segment. With one SFX attached, no name needed; with several, pass sfx_name (the asset name shown by get_segment_assets).
| Name | Required | Description | Default |
|---|---|---|---|
| sfx_name | No | Name of the SFX asset to remove, as shown by get_segment_assets; needed only when the segment has several SFX attached | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| segment_number | Yes | 1-based segment number, as reported by get_segments |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the destructiveHint annotation (removal) and adds important behavioral detail: the conditional requirement for sfx_name based on the number of attached SFX. It does not contradict annotations. The description goes beyond what annotations provide by specifying the source of the asset name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning their place. The first sentence states the core action. The second provides critical usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple deletion tool with 3 well-documented parameters and no output schema, the description provides sufficient context without needing to explain return values. It could mention failure handling, but it's not essential for a basic removal operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying the conditional nature of sfx_name in a more natural language, reducing ambiguity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Remove a sound effect from a segment', specifying the verb (remove), resource (sound effect), and scope (segment). It distinguishes itself from siblings like 'add_segment_sfx' and 'remove_music_track'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to include the sfx_name parameter: 'With one SFX attached, no name needed; with several, pass sfx_name.' It also references 'get_segment_assets' for retrieving the correct name, helping the agent determine the right usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rescan_voice_blocksRescan voice blocksADestructiveInspect
Re-extract voice blocks from the active script WITHOUT touching assets or their reference images — the non-destructive alternative to scan_script after a script edit. Existing audio is superseded by the new block split, so re-run generate_voiceover afterwards. Async — returns {job_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID for the re-extraction; empty uses the default (see list_models("voice_block_scan")) | |
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive nature, but description adds that assets and reference images are untouched, and that the operation is async returning a job_id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose, uniqueness, consequence, and async behavior without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key behavioral aspects and post-requisite generate_voiceover; lacks output schema but async result format is stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameters fully with descriptions; the tool description does not add extra parameter details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it re-extracts voice blocks from the active script without touching assets, and distinguishes itself as a non-destructive alternative to scan_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use after a script edit as an alternative to scan_script, and advises to re-run generate_voiceover afterwards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revise_scriptRevise scriptAInspect
AI-rewrite a passage of the active script in the project's narrative voice (the same in-editor revise the UI offers). selected_text must appear verbatim in the script; omit it to revise the whole script. Synchronous — returns {revised_text}, which is NOT saved: splice it over selected_text (or replace the full script) and call save_script to keep it.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| instruction | Yes | Natural-language edit instruction, e.g. "make the intro punchier" | |
| selected_text | No | Exact passage to rewrite; must appear verbatim in the active script. Omit to revise the whole script |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond the annotations: synchronous execution, return of {revised_text} without saving, and the need to manually splice and call save_script. It also explains the AI-driven narrative voice rewriting, which is not covered by the boolean annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three sentences that front-load the purpose, then provide usage constraints and behavioral notes. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema) and minimal annotations, the description covers the main workflow: what it does, how to use parameters, the return value, and post-invoke steps. It lacks information on error conditions (e.g., missing selected_text) but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions already provide detailed guidance for all three parameters (100% coverage). The overall description adds context about the AI rewriting process but does not significantly enhance parameter-level understanding beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'AI-rewrite a passage of the active script in the project's narrative voice,' which is a specific verb+resource combination. It also distinguishes itself by referencing the in-editor UI and noting it returns revised text that is not saved, differentiating it from save_script and generate_script.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: selected_text must match verbatim, omit for whole script, and prompts the agent to call save_script to persist. However, it does not explicitly exclude use cases where other tools like generate_script would be more appropriate or warn against misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_scriptSave scriptAInspect
Save script text (your own draft, or an edited version of the generated one — saving creates a new version, old versions are kept). Run scan_script afterwards so assets and voice blocks reflect the new text.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Full script text to save as a new version; plain prose narration, optionally with scene headings | |
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that saving creates a new version and keeps old ones, and that scanning is needed to update assets and voice blocks. This adds valuable behavioral context beyond the annotations, which only indicate it's not read-only or destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, then a crucial next-step instruction. Every word contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters, no output schema, and moderate complexity, the description fully covers the workflow: what the tool does, versioning behavior, and the required follow-up action. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, baseline is 3. The description adds context that content can be a draft or edited version of a generated script, which helps the agent understand what to provide for the 'content' parameter beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'save' and resource 'script text', and distinguishes itself by noting versioning behavior. It specifies that saving creates a new version while old versions are kept, which differentiates it from sibling tools like 'activate_script_version'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to run 'scan_script' afterwards, providing clear context for proper usage. However, it does not mention when to use this tool versus alternatives like 'revise_script', nor does it list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_scriptScan scriptADestructiveInspect
Analyze the active script: extracts character/environment/object assets and splits narration into voice blocks. DESTRUCTIVE on re-run (assets are recreated, not merged — curated descriptions, reference images, and voices are lost; prefer rescan_voice_blocks after script edits). Async — returns {job_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model ID to scan with; empty uses the default (see list_models("script_scan")) | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| editable_sections | No | Per-call prompt section overrides, keyed by section name; see get_section_template("script_scan") |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds specific destructive details (assets recreated, curated descriptions/images/voices lost) beyond the destructiveHint annotation. Also discloses async behavior not captured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose, second covers destructive behavior and async. Front-loaded, no redundancy, each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, annotations, and no output schema, description covers essential context: purpose, destructiveness, async, alternative tool. Could mention effects on existing assets more thoroughly, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add extra meaning to parameters beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the tool analyzes the active script to extract character/environment/object assets and split narration into voice blocks. This clearly distinguishes it from siblings like rescan_voice_blocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly warns that re-running is destructive and recommends preferring rescan_voice_blocks after script edits. Also indicates async nature with job_id return.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_character_voiceSet character voiceAIdempotentInspect
Bind a TTS voice to a character asset — required before generate_voiceover for every character with dialogue (the narrator's voice is separate: set_narrator_voice). Browse ids with list_voices.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | Character asset ID, from list_assets | |
| voice_id | Yes | TTS voice ID, from list_voices (use the provider matching the project's voice_tts_provider) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true and destructiveHint=false, which the description doesn't contradict. Description adds context that it's a prerequisite binding, but lacks details on whether binding overwrites existing voices or affects other tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly concise: two sentences that immediately state purpose and prerequisites with no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple binding tool with no output schema, the description covers the essential purpose, prerequisites, and parameter sourcing. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description doesn't add new semantics beyond what's in the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Bind a TTS voice to a character asset'), the resource ('character asset'), and distinguishes from sibling tools like set_narrator_voice by noting the narrator's voice is separate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('required before generate_voiceover for every character with dialogue') and when not to (narrator handled by set_narrator_voice). Also provides guidance on browsing IDs with list_voices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_narrator_voiceSet narrator voiceAIdempotentInspect
Set the project's narrator TTS voice — required before generate_voiceover whenever the script has narration. Browse ids with list_voices. (Character dialogue voices are separate: set_character_voice.)
| Name | Required | Description | Default |
|---|---|---|---|
| voice_id | Yes | TTS voice ID for the narrator, from list_voices (use the provider matching the project's voice_tts_provider) | |
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the tool's role in the workflow and its prerequisite relationship with generate_voiceover. Annotations already provide idempotentHint and destructiveHint, so the description adds context about ordering and separation from character voices, which is sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three succinct sentences with no fluff. The description is front-loaded with the core action, followed by usage guidance and distinction from sibling tool. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with complete schema annotations and sibling context, the description covers purpose, usage timing, alternative tool, and source of allowed values. No output schema is needed; the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add new parameter information beyond what the schema already provides (e.g., 'voice_id' description in schema already mentions list_voices and provider matching). Baseline 3 is appropriate as the description does not enhance parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set the project's narrator TTS voice'. It distinguishes from the sibling tool set_character_voice by noting that character dialogue voices are separate. The verb-resource pairing is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool: 'required before generate_voiceover whenever the script has narration.' It also directs users to browse voice IDs with list_voices and clearly separates narrator voices from character voices, providing a when-not-to-use scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_project_styleSet project styleAIdempotentInspect
Set the project's default style — the style whose art/narrative/director fields drive its generations. Use after create_style to put a new visual identity into effect, or to switch a project between channel styles.
| Name | Required | Description | Default |
|---|---|---|---|
| style_id | Yes | ID of the style to make the project's default, from create_style or list_styles | |
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains that the set style's fields drive generations, adding behavioral context beyond annotations. Annotations already indicate non-destructiveness and idempotency; the description adds that this affects generation output. A higher score would require explicitly mentioning idempotency or side effects like permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, efficient and direct with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema and good annotations, the description is complete: it explains purpose, usage timing, and effect on generations. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The tool description adds no extra parameter meaning; it repeats that style comes from create_style/list_styles and project from create_project/list_projects, already in schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a project's default style, specifying that this style's art/narrative/director fields drive generations. This distinguishes it from siblings like create_style (creates a style) and update_style_fields (updates style properties).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance: 'Use after create_style to put a new visual identity into effect, or to switch a project between channel styles.' This tells when and why to use it, and implicitly contrasts with alternatives like create_style.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_provider_keySet provider keyAIdempotentInspect
Register a BYOK provider API key (encrypted at rest, BYOK plan only). Jobs whose model belongs to this provider then run on YOUR key and charge 0 credits. Providers: openai, gemini, anthropic, fal, elevenlabs, minimax.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The provider API key to register; stored encrypted at rest | |
| provider | Yes | Provider the key belongs to: "openai", "gemini", "anthropic", "fal", "elevenlabs", or "minimax" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive; the description adds that the key is encrypted at rest, providing additional context beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with purpose front-loaded. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with full schema coverage and annotations, the description covers usage context (BYOK plan, zero credits) adequately. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description reiterates the provider list and encryption but adds minimal new meaning; schema already covers param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Register') and resource ('BYOK provider API key'), and distinguishes from sibling tools like 'list_provider_keys' by specifying the operation type and constraints (encrypted at rest, BYOK plan only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes the requirement for a BYOK plan and explains the consequence (jobs charge 0 credits). It lists valid providers. While it doesn't mention alternatives, the context is sufficient for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_segment_continuationSet segment continuationAIdempotentInspect
Make a segment's image render as a continuation of an EARLIER segment's frame (same composition evolving — the storyboard's continues_from_segment, settable after the fact). continues_from is that earlier segment's number; pass 0 to clear the link. Regenerate the segment's image afterwards — the reference is applied at generation time.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| continues_from | No | 1-based number of the EARLIER segment whose frame this one continues; pass 0 to clear the link | |
| segment_number | Yes | 1-based number of the segment whose image should continue an earlier frame, as reported by get_segments |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: the reference is applied at generation time, and image must be regenerated. Annotations indicate idempotentHint=true (safe to retry) and destructiveHint=false, which aligns with the description. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a focused paragraph with all essential information, no filler. It could be slightly more structured (e.g., bullet points), but it is easily readable and front-loads the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and annotations provide idempotentHint, the description covers the core behavior, parameter intent, and post-requisites (regenerate image). It is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining 'continues_from' in practical terms: '1-based number of the EARLIER segment' and 'pass 0 to clear the link'. For 'segment_number', it reiterates the 1-based nature and references 'get_segments'. This clarifies ambiguous numeric values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: making a segment's image render as a continuation of an earlier segment's frame. It mentions key concepts like 'continues_from_segment' and 'settable after the fact', with concrete examples. This distinguishes it from sibling tools like 'split_segment' or 'combine_segments'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: what 'continues_from' represents, how to clear the link with 0, and the need to regenerate the image afterwards. However, it does not explicitly state when not to use the tool or mention alternative tools, though the context makes its niche clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split_segmentSplit segmentADestructiveInspect
Split a segment at the given time offsets (ms, 1-3 cuts → 2-4 parts). inherit_index picks which resulting part keeps the original creative data. Later segments renumber — re-check get_segments before further edits.
| Name | Required | Description | Default |
|---|---|---|---|
| offsets_ms | Yes | Cut points as millisecond offsets from the segment start, ascending; 1-3 cuts producing 2-4 parts | |
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| inherit_index | No | 0-based index of the resulting part that keeps the original creative data (default: the first part) | |
| segment_number | Yes | 1-based number of the segment to split, as reported by get_segments |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the destructive side effect of segment renumbering beyond the destructiveHint annotation. No contradiction, and it adds specific 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load key information: what the tool does, parameter detail, and side-effect warning. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, no output schema), the description fully explains input requirements, behavior, and post-edit actions needed. Sufficient for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying offsets must be ascending, limiting cut count, and specifying default for inherit_index.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Split a segment' with specific constraints on time offsets (ms, 1-3 cuts producing 2-4 parts). It distinguishes from sibling tools like combine_segments by focusing on splitting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use (to split a segment), parameter usage (inherit_index), and a crucial warning to re-check get_segments after editing due to renumbering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assetUpdate assetAInspect
Rename an asset and/or rewrite its description. If the look changed, regenerate its reference image afterwards so renders match.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New asset name; empty leaves the name unchanged | |
| asset_id | Yes | Asset ID, as returned by list_assets or create_asset | |
| description | No | New generation-facing look description; empty leaves it unchanged |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only mutation. The description adds behavioral context by noting the need to regenerate the reference image if the look changes, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the main purpose and include necessary guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool, the description covers the essential action and side effect. It does not explain return values, but the schema covers parameters adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The tool description does not add significant new meaning beyond summarizing the parameters, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool renames an asset and/or rewrites its description, using specific verbs and resources. This distinguishes it from siblings like create_asset or delete_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: after updating the look, regenerate the reference image. It does not explicitly state when not to use or list alternatives, but the guidance is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_caption_configUpdate caption configAIdempotentInspect
Merge a patch into the project's burned-in caption config (keys like enabled, plus styling). Read the current value from get_project (caption_config). Applies at the next export — no rebuild needed.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| caption_config | Yes | Partial caption config to merge (keys like enabled, plus styling); read the current value from get_project's caption_config |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and not destructive. The description adds that it merges a patch (partial update) and applies at next export, which provides behavioral context beyond annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, no wasted words. Essential information is presented efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description provides necessary context: how to use (read first), what it does (merge patch), and when it takes effect (next export). Missing error handling or return info, but adequate for a 2-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description mentions keys like 'enabled' and 'styling' as examples but does not fully specify all possible keys in caption_config. It adds some value over schema by stating 'partial caption config to merge', but not enough to raise above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool merges a patch into the project's burned-in caption config, specifying the resource (project's caption config) and action (merge patch), and distinguishes it from other update tools by referencing get_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises reading the current value from get_project before updating and clarifies that changes apply at next export with no rebuild needed, providing clear usage context. However, it does not explicitly state when not to use this tool or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_music_trackUpdate music trackCInspect
Tweak a music track. fields keys: name, volume (0-1), loop, start_frame, duration_frames, position, trim_start_frame, trim_end_frame.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Partial dict of track fields to patch; allowed keys: name, volume (0-1), loop, start_frame, duration_frames, position, trim_start_frame, trim_end_frame | |
| track_id | Yes | Music track ID, from list_music_tracks or add_music_track |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) but no destructive hint. The description adds no behavioral context beyond the schema, such as error behavior, idempotency, or side effects. It does not contradict annotations but fails to expand on them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: the action and the field keys. It is front-loaded but lacks structure like separate sections. It earns its place without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits return values, validation rules, and what constitutes a successful update. Given the nested object parameter and no output schema, the agent lacks critical context for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description is not required to add parameter details. It does repeat the allowed field keys, which are already in the schema, adding minimal value. A baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Tweak a music track') and lists the updatable fields, making the purpose explicit. However, it does not differentiate from sibling tools like update_asset or update_project, though within its domain (music tracks) it is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as add_music_track or remove_music_track. It does not mention prerequisites (e.g., needing a track_id from list_music_tracks) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_projectUpdate projectAInspect
Patch project fields. Updatable: title, description, asset_mix, sfx_level, video_concept, voice_mix, voice_tts_provider, script_target_minutes, narrator_speed. (The narrator's TTS voice is NOT here — use set_narrator_voice.)
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Partial dict of fields to patch; allowed keys: title, description, asset_mix, sfx_level, video_concept, voice_mix, voice_tts_provider, script_target_minutes, narrator_speed | |
| project_id | Yes | Project ID, as returned by create_project or list_projects |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only, non-idempotent, non-destructive. Description uses 'patch' implying partial update. Adds behavioral context by listing updatable fields and noting an exclusion. No contradictions. Could mention side effects or validation, but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states purpose and lists fields, second clarifies exclusion. No fluff, front-loaded, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description doesn't mention return value. However, for a simple patch operation with 2 parameters, the missing return info is a minor gap. Overall, provides sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes parameters thoroughly. Description repeats the list of allowed keys for `fields` but adds minimal value beyond the schema. The exclusion note is helpful but does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title and description clearly state 'update project' with a verb and resource. Lists specific updatable fields and explicitly mentions what is not included (narrator voice), distinguishing it from sibling tool `set_narrator_voice`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use when patching top-level project fields and explicitly excludes narrator voice, directing to `set_narrator_voice`. However, does not explicitly state when to use vs other update tools like `update_segment_content` or `update_style_fields`, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_segment_contentRewrite segment contentADestructiveInspect
Rewrite one segment's creative direction from feedback ("make this shot a close-up", "show the machine from above") — an LLM rewrites the shot's prompts; continuation links, SFX, and overlays are preserved. The visual assets reset to not_started: re-render them afterwards (generate_segments or regenerate_segment_asset). For a precise prompt tweak with no rewrite, use regenerate_segment_asset with editable_sections instead.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID, as returned by create_project or list_projects | |
| user_input | Yes | Natural-language feedback describing the change to this shot, e.g. "make this a close-up" or "show the machine from above" | |
| segment_number | Yes | 1-based segment number, as reported by get_segments |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that visual assets reset to not_started and require re-rendering, which goes beyond the destructiveHint annotation. Also states what is preserved (continuation links, SFX, overlays). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a clear purpose: main action, side effects/follow-up, and sibling differentiation. No fluff, information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers inputs, side effects, and next steps well. Lacks information about return value, but no output schema exists. Still sufficiently complete for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The description adds value by explaining user_input as natural-language feedback with examples and clarifying segment_number is 1-based. Slightly above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool rewrites segment content based on natural-language feedback, preserving certain elements. It distinguishes itself from the sibling tool regenerate_segment_asset by specifying when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (feedback rewrite) and when not to use (precise tweaks should use regenerate_segment_asset). Also provides follow-up actions (re-render via generate_segments).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_style_fieldsUpdate style fieldsADestructiveInspect
Hand-edit a style's analyzed fields after reviewing them — e.g. tighten
the art_style wording or adjust the director_style pacing rules. fields
is the FULL flat dict to write: {key: {"value": str, "applies_to": [...]}}
(fetch with get_style, modify, send back). Editing fields does NOT trigger
re-analysis, so your edits stick.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | FULL flat dict of analyzed fields to write, shaped {key: {"value": str, "applies_to": [...]}} — fetch with get_style, modify, send the whole dict back | |
| style_id | Yes | Style ID, as returned by create_style or list_styles |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds key behavioral detail: editing fields does not trigger re-analysis, ensuring edits persist. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and examples, no fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given two simple parameters and no output schema, the description fully covers the tool's behavior, including the important note about re-analysis not being triggered. It provides a complete mental model for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters have schema descriptions (100% coverage). The description adds extra meaning for 'fields' by explaining its full dict format and the fetch-modify-send workflow, and for 'style_id' by noting how to obtain it. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: hand-editing analyzed style fields. It gives specific examples (tighten art_style wording, adjust director_style pacing rules) and distinguishes this from fetching (get_style) or analyzing (analyze_style) tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this tool after reviewing fields, and fetch the current state first via get_style. It doesn't explicitly state when not to use it or mention alternatives, but the context is sufficient for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_voice_blockUpdate voice blockAInspect
Override one voice block's voice or playback volume (block ids from list_voice_blocks). Re-run generate_voiceover for the block afterwards if you changed its voice — existing audio is not regenerated automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| volume | No | Playback volume for this block, 0-1; omit to leave unchanged | |
| voice_id | No | New TTS voice ID for this block, from list_voices; empty leaves the voice unchanged | |
| voice_block_id | Yes | Voice block ID, from list_voice_blocks |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes that existing audio is not regenerated automatically, a behavioral trait beyond the annotations. Annotations indicate non-readOnly, non-destructive, non-idempotent, which aligns with the description. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the action and follow-up. Every sentence adds value with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, required follow-up, and parameter sources. Given no output schema, it could mention return value, but the mutation's effect is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. The description adds minimal additional semantics (e.g., source of block IDs). Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool overrides a voice block's voice or playback volume, using block IDs from list_voice_blocks. It distinguishes itself from siblings like list_voice_blocks (for IDs) and generate_voiceover (for regeneration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises re-running generate_voiceover after changing voice, providing a clear follow-up action. It does not explicitly state when not to use or list alternatives, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
view_imageView imageARead-onlyIdempotentInspect
Fetch a rendered Framesail image so you (and your user) can SEE it — pass a URL from get_segment_assets, get_style, or asset endpoints. Returns the image inline. Only Framesail media URLs are allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public Framesail media URL to fetch — a public_url from get_segment_assets, a file_path from list_assets, or a template/preset image URL from get_style / list_style_presets; other hosts are rejected |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already define the tool as read-only and idempotent. The description adds that the image is returned inline and only Framesail URLs are allowed, which is useful but not providing significant behavioral insight beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences that pack essential information: purpose, input source, output format, and restriction. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description fully covers what the tool does, what input it accepts, and what to expect as output. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already has 100% coverage for the single parameter with a detailed description. The description repeats this information without adding new meaning, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a rendered Framesail image for visual inspection, distinguishing it from sibling tools that generate URLs (e.g., get_segment_assets) by specifying it accepts those URLs and returns the image inline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool (after obtaining a URL from specific endpoints) and restricts usage to Framesail media URLs, providing clear context. It does not explicitly state when not to use, but the restriction implicitly excludes other URL types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiWho am IARead-onlyIdempotentInspect
Verify the connection: the account email and plan behind the current credential. Call once after connecting — before creating anything — to confirm you're on the right account; costs nothing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses it is a read-only, idempotent, non-destructive operation (supported by annotations) and returns email/plan. Lacks details on exact response shape but sufficient for a simple verification tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the key verb 'Verify', and no extraneous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and annotations covering behavioral traits, the description fully equips the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline score of 4 is appropriate. No additional semantic description needed beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool verifies the connection and returns account email and plan. Distinguishes from siblings as no other sibling tool serves an identity/check purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises calling once after connecting and before creating anything, confirming the right account and noting it costs nothing. Provides clear when-to-use and implies not to call repeatedly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
Hey there! I'm the co-founder of framesail. I made this MCP for content creators who want to run their video creation pipeline through an agent. I've been using it the last few weeks and it's been saving me a ton of time. Let me know if you have any suggestions, you can reach us on discord or shoot us an email! Jordan