arsaze-mcp
Server Details
AI video editor for agents and humans: timeline, captions, color, audio and generation as MCP tools.
- Status
- Healthy
- Uptime
- 88.4% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- AnrosPrac/arsaze-mcp
- GitHub Stars
- 0
TDQS
Scored across 25 tools
Tools are cleanly grouped by domain (arsaze_*, media_*, screen_*, ws_*) and the long descriptions clarify subtle boundaries like screen_look vs screen_result, screen_close vs screen_record_stop, and screen_hand_over vs screen_login, or media_look vs screen_look. A few pairs (screen_act vs run_timeline_batch, screen_open_app vs screen_list_apps) require close reading but the descriptions do resolve them.
Names follow a consistent snake_case, domain-prefix + verb pattern (screen_open, screen_record_start, ws_read, ws_grep, arsaze_show_credits). A couple of minor deviations like run_timeline_batch and media_look/ws_ls (verb-less) break the pattern slightly but overall it reads predictably.
25 tools is on the heavy side, but the server spans a genuinely large domain (generation, credits, screen recording, timeline editing, workspace) and the 12 screen_* tools each cover a distinct step in the record-to-edit workflow, so most earn their place. It would benefit from consolidation of some card/display tools.
Coverage is broad and lifecycle-complete: screen status/open/look/act/record/stop/close, workspace ls/read/grep/edit, plus credits, cost estimation and display cards, with arsaze_call dispatching to the rest of the catalogue. Minor gap: media_note is referenced by media_look but is not exposed as a native tool, and much of the real surface lives behind the arsaze_call dispatcher rather than being directly listed.
Available Tools
25 toolsarsaze_callADestructiveInspect
Run any Arsaze tool from the catalogue by name.
tool: exact name from arsaze_tools (e.g. "split_clip_at"). args: that tool's arguments as an object.
confirm: true only for a destructive/credit-spending tool the user explicitly asked for.
response_detail: "summary" (default — ids + what changed) | "compact" | "full". Over-budget results
come back as a workspace file path to ws_grep/ws_read instead of inline.
fields: dotted paths to return only those parts, e.g. ["clips[].id"]. cursor: next page of a long list.
A bad call returns the tool's exact signature — fix the args and call again.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| tool | Yes | ||
| cursor | No | ||
| fields | No | ||
| confirm | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses meaningful runtime behaviors: confirm should be true only for destructive/credit-spending tools explicitly requested by the user; over-budget results are materialized as workspace files; and a bad call returns the exact signature so the agent can fix args. This is rich behavioral detail that the annotations alone do not 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?
The description is tightly organized: one purpose sentence followed by a compact parameter-by-parameter breakdown. No sentence is redundant, and the failure-mode note at the end earns its place by preparing the agent for the expected recovery 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?
For a dynamic dispatcher with six parameters, no output schema, and a non-read-only, destructive-capable annotation, the description is unusually complete. It covers input semantics, output detail levels, oversized-result handling, pagination, field filtering, and the error contract, leaving little for the agent to guess.
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 0% and there are six parameters, so the description carries the full burden. It explains every parameter: tool names from arsaze_tools with an example, args as an object, confirm semantics, response_detail options and defaults, fields as dotted paths, and cursor as pagination. This fully compensates for the schema's lack of 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 opens with a specific verb and resource: 'Run any Arsaze tool from the catalogue by name.' It clearly identifies this as a generic dispatcher and distinguishes it from the specific Arsaze sibling tools by framing them as targets selected via the 'tool' parameter.
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 gives clear context for when to use the tool: whenever any catalogue tool needs to be invoked, with the tool name sourced from arsaze_tools. It also routes over-budget results to ws_grep/ws_read. However, it does not explicitly state when not to use this tool versus alternatives like run_timeline_batch or direct tool calls, so it stops short of a full when/when-not specification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsaze_estimate_generation_costARead-onlyInspect
Show the user exactly what a generation will cost in credits BEFORE running it, as an interactive card with a Generate button.
Call this FIRST, instead of asking "shall I generate? it will use some
credits" — you do not know the rate, it is set per plan and per model by
an admin and changes without any code change, so any number you state
from memory will eventually be wrong. This reads the user's real plan
and real balance and prices the run the same way the generation itself
will.
Nothing is charged and nothing is reserved by calling this. It is a
quote. Generation only starts if the user then asks for it.
kind: "video", "image" or "voice".
provider: the model id you intend to use — get real ones from
video_gen.list_providers / image_gen.list_providers, never from
memory. Omit to quote the plan's standard rate for that kind.
duration_seconds: the duration you intend to request. Only affects
duration-priced models; harmless to pass otherwise.
quantity: how many separate generations (e.g. number_of_images).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| provider | No | ||
| quantity | No | ||
| duration_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true and destructiveHint=false annotations, the description discloses that the call is a non-charging, non-reserving quote, that it reads the user's real plan and balance, and that it prices identically to the eventual generation. This is valuable behavioral context that annotations alone do not 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 front-loaded with the core action and result, followed by an explicit usage rule and a compact parameter legend. Every sentence carries necessary information, so the length is justified and nothing is wasted.
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's promise of an interactive card with a Generate button provides the needed output contract. The non-charge/reservation statement and complete parameter guidance give the agent everything required to invoke it correctly in 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?
With schema description coverage at 0%, the description fully compensates by explaining every parameter: allowed kind values, provider sourced from real list_providers calls, duration_seconds only affecting duration-priced models, and quantity as the count of separate generations. Each schema field gains operational meaning.
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 states a precise verb and resource: show the user, as an interactive quote card, exactly what a generation will cost in credits before running it. It clearly frames the tool as a quote and distinguishes it from generation tools and the credits-display sibling arsaze_show_credits.
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 says when to call: FIRST, before any generation, instead of asking a generic 'shall I generate?' or guessing rates. The rationale that rates are admin-set and change without code changes, plus the caveat that generation only starts if the user follows up, gives the agent a clear decision rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsaze_show_creditsARead-onlyInspect
Show the user's real credit balance, plan and usage limits as a card.
Use this when they ask what they have left, or when a generation was refused for insufficient credits. Rendering/export is a separate, hour-based limit (not credits) — shown alongside the AI credit balance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds useful behavioral context beyond annotations: it shows the 'real' credit balance, presents output 'as a card', and clarifies that rendering/export limits are displayed alongside but are not credit-based. This goes beyond simple annotation restatement.
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 compact and front-loaded: the core purpose appears in the first sentence, followed by explicit usage triggers and a clarifying exclusion. Every sentence contributes useful information with no padding.
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 zero-parameter, read-only information tool with no output schema, the description fully covers what the tool does, when to use it, and what it does not cover. An agent has enough context to invoke it correctly and set appropriate user expectations.
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 tool has zero parameters and 100% schema coverage, so there is nothing about parameters for the description to explain. The baseline of 4 applies because no parameter-semantic burden exists.
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 ('Show') and clearly identifies the resource: the user's real credit balance, plan, and usage limits, presented as a card. It also distinguishes the tool's scope from rendering/export limits, which are separate hour-based limits, making the purpose unmistakable even among many 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?
The description explicitly states when to use the tool: when the user asks what they have left, or when a generation was refused due to insufficient credits. It also provides a when-not case by clarifying that rendering/export is a separate hour-based limit, not credits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsaze_show_generated_assetARead-onlyInspect
Display ONE finished generation as a playable, downloadable card.
Use this instead of pasting a URL into the chat once a video_gen /
image_gen / voice job is done — the user gets an inline player and a
real Download button rather than a link they have to copy. Works for a
job that is still running too: it shows the live status instead of a
result.
For several results at once, use arsaze_show_generated_results.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
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 covered. The description adds user-facing behavior: inline player, real Download button, and live status for running jobs. It doesn't describe auth requirements or the returned object to the agent, but for a read-only display tool the added behavioral context is solid.
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 short paragraphs, each earning its place: purpose, main usage condition, and the sibling for the alternative case. Front-loaded with the core description; no filler.
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 one required parameter and no output schema, the description covers the key decisions: what it does, when to use it, and how it differs from the sibling. The only notable gap is the absence of details about the MCP response format, but given the tool's display purpose and read-only annotations, it is 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?
The schema has zero description coverage for job_id, so the description must compensate. It does by explaining that the job is a video_gen/image_gen/voice job and that it can be running or done, giving a clear semantic anchor. It doesn't specify the format of job_id or how to obtain it, leaving some ambiguity, but the contextual mention of job types is meaningful.
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?
States a specific action ('Display') and resource ('ONE finished generation') as a playable/downloadable card, and explicitly distinguishes from the sibling arsaze_show_generated_results. The description clarifies scope (one vs several) and even handles running jobs, so an agent can tell exactly what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit 'use this instead of pasting a URL' rule for completed video_gen/image_gen/voice jobs, and explicitly names the alternative arsaze_show_generated_results for multiple results. Also clarifies behavior for running jobs. This is direct when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsaze_show_generated_resultsARead-onlyInspect
Display SEVERAL finished generations together as one grid, each downloadable.
Use this whenever a single request produced more than one result — a batch image generation returns one job id per image, and showing them as separate cards floods the conversation. Pass every job id from the batch; ones still running show as pending rather than being dropped, so the user can see the whole set.
| Name | Required | Description | Default |
|---|---|---|---|
| job_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds value beyond annotations by disclosing that running jobs show as pending rather than being dropped, and that each result is downloadable. This gives behavioral context the annotations don't 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?
The description is two short paragraphs, front-loading the purpose and then adding usage context. The second paragraph is slightly verbose but each sentence earns its place by explaining when to use the tool and how it behaves with pending jobs. No irrelevant 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?
For a single-parameter read-only display tool with no output schema, the description covers the purpose, the when-to-use condition, and behavioral details about pending items. It gives an agent enough to decide when and how to invoke 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 description coverage is 0%, but the description fully compensates by explaining the 'job_ids' parameter: 'Pass every job id from the batch; ones still running show as pending.' This directly clarifies the parameter's meaning and behavior, which the bare schema does not.
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 and resource: 'Display SEVERAL finished generations together as one grid, each downloadable.' It clearly distinguishes this from the sibling arsaze_show_generated_asset by emphasizing multiple results in a grid, so an agent can tell them apart without opening schemas.
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 states when to use the tool: 'whenever a single request produced more than one result — a batch image generation returns one job id per image.' It explains why (separate cards flood the conversation) and gives context about passing all job ids. It doesn't name the alternative for single results, but the condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arsaze_show_review_linkARead-onlyInspect
Display an existing Remarker review link as a card with an "Open review page" button and a copyable password.
Use this right after remarker.create_share instead of typing the link
and password out as chat text. Pass that call's returned plaintext
password through as `password` — it is shown exactly once and only a
hash is stored, so if it is not passed here it cannot be recovered and
the card will show the link alone.
This only displays a share that already exists. It cannot create one,
and it cannot read back a password that was not handed to it.
| Name | Required | Description | Default |
|---|---|---|---|
| password | No | ||
| share_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral detail beyond the annotations (readOnlyHint, destructiveHint): the password is shown exactly once, only a hash is stored, and it cannot be recovered if not passed. These are critical operational constraints that the agent would not know from the schema or annotations alone.
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 three short paragraphs: purpose first, then usage guidance, then constraints. Each sentence adds necessary information with no redundancy or filler. The structure is front-loaded and easy to scan.
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 read-only display tool with no output schema, the description provides sufficient context for correct invocation: what it displays, when to use it, and the password caveat. It doesn't describe return values, but that is not essential for a tool whose visible effect is the card itself. The missing piece, explicitly describing `share_id` as the share identifier, is minor.
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 schema description coverage at 0%, the description must carry the explanatory burden. It thoroughly explains the `password` parameter (passed from create_share, shown once, non-recoverable) and implies `share_id` is the ID returned by create_share. It compensates well, though `share_id` is not explicitly named as the create_share result, leaving slight ambiguity.
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 states a specific verb ('Display'), a specific resource ('existing Remarker review link'), and the concrete output format (card with 'Open review page' button and copyable password). It explicitly differentiates from creation tools by noting it cannot create a share, making it easily distinguishable from siblings like remarker_create_share.
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 gives explicit when-to-use guidance: 'Use this right after remarker.create_share instead of typing the link and password out as chat text.' It also clarifies the boundary ('It cannot create one, and it cannot read back a password that was not handed to it'), telling the agent 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.
arsaze_toolsARead-onlyIdempotentInspect
Arsaze's tool catalogue — served on demand instead of loaded up front.
No arguments: every tool name, grouped by domain (a table of contents).
names=[...]: exact signatures + parameter docs for those tools — do this before the first arsaze_call to a tool.
query='split a clip': the best-matching tools — and workspace files, for reads — best first.
Signatures read `param?: type` for optional params. Reads are not tools — they're files (ws_ls).
| Name | Required | Description | Default |
|---|---|---|---|
| names | No | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds valuable behavioral context: on-demand serving, mode-dependent outputs, and the specific note that reads are not tools but files (ws_ls). This goes beyond annotation basics 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?
The description is compact and well-structured, with each mode on its own line and the key fact (on-demand catalogue) front-loaded. Every sentence adds necessary information with no 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?
Given the output schema exists, the description reasonably covers invocation modes and expected outcomes. The only notable gap is that it doesn't clarify whether names and query can be used together, which could confuse an agent. Overall it is nearly complete for a quick-reference 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 description coverage is 0%, so the description must fully compensate. It does: it explains the no-argument default, names mode returning signatures/param docs, query mode returning best-matching tools, and the `param?: type` optional-param notation. This is far beyond the 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 identifies this as an on-demand tool catalogue with three explicit modes: no arguments for a table of contents, names for signatures, and query for best-matching tools. It differentiates itself from operational siblings like arsaze_call and ws_ls by being a discovery/metadata tool, not an action tool.
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 gives explicit context: use names before the first arsaze_call, use query for matching, and it distinguishes reads as files handled by ws_ls. However, it doesn't explicitly state when not to use this tool versus other siblings beyond reads, and it leaves the relationship between names and query (mutually exclusive vs combinable) unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
media_lookARead-onlyInspect
SEE the footage: decoded frames come back as an image you can look at. Give asset_id to look at one clip's source (times in source seconds), or leave it out to look at the timeline (times in timeline seconds; each frame is the top visible clip under the playhead). Pass times=[...] for exact moments, or start_s/end_s/count to sample a range (max 12). Several frames come back as one numbered contact sheet. Use it to check who is on camera, framing, a bad frame, which angle is which. Check already_noted first: if another agent wrote down what's there, you may not need to look. After looking, save what you learned with media_note.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | ||
| end_s | No | ||
| sheet | No | ||
| times | No | ||
| cursor | No | ||
| fields | No | ||
| job_id | No | ||
| start_s | No | ||
| asset_id | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/destructiveHint, and the description adds substantial behavior beyond them: results arrive as actual images, multiple frames are merged into a numbered contact sheet, sampling is capped at 12 frames, source-mode times are in source seconds while timeline-mode times are in timeline seconds, and each timeline frame is the top visible clip under the playhead. The max-12 and playhead semantics are non-obvious and materially affect invocation.
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 core is front-loaded ('SEE the footage') and the mode/purpose/usage sentences each earn their place. The trailing boilerplate list 'response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions' reads as template residue that belongs in the parameter layer rather than the description.
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 10-parameter, no-output-schema tool the description appropriately explains the return shape (image frames / numbered contact sheet) and core timing semantics. It is weakened by leaving job_id undocumented, not clarifying the sheet flag, and deferring cursor pagination to server instructions, so an agent cannot fully resolve every parameter from the definition alone.
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 0% schema description coverage across 10 parameters, the description carries the burden and explains the important ones: asset_id selects source vs timeline mode, times gives exact moments, start_s/end_s/count sample a range with a max of 12, and it names response_detail (summary|compact|full), fields, and cursor. However job_id is never explained and sheet is only obliquely implied by 'contact sheet', leaving real gaps.
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?
Opens with a concrete verb+resource ('SEE the footage: decoded frames come back as an image') and immediately splits the tool into two distinct modes: asset_id for a single clip's source versus omitting it for the timeline. A reading agent can distinguish this from screen_look and the ws_*/arsaze_* siblings purely from the text.
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?
Gives explicit when-to-use cases ('check who is on camera, framing, a bad frame, which angle is which'), an explicit when-not ('Check already_noted first: if another agent wrote down what's there, you may not need to look'), and a follow-up action (save findings with media_note). Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_timeline_batchAIdempotentInspect
Run MULTIPLE timeline-tool calls in ONE request, where a LATER step can reference a value produced by an EARLIER step in the SAME batch — the fix for 'split this clip, then move just the second half': you don't know the new second-half clip's id until AFTER the split has actually run, so normally that needs two separate turns. In a batch, give the split step a step_id (e.g. "step1"), and reference its result in a later step's args as a string like "$step1.timeline.tracks.0.clips.-1.id" (dotted path into that step's own JSON result; a numeric segment like -1 indexes into a list, -1 = the last item — the newest clip on a track after a split/add is always last). tracks.N here is ordered by (video/overlay tracks first, then audio; ascending index within each) — NOT by when the track was created — so tracks.0 reliably means 'the lowest-index video track' even if an empty leftover track exists elsewhere. Still, prefer referencing a clip/track by its literal id once you have one (e.g. from an earlier step's own clip_ids or a job/<job_id>/timeline.txt call) over a tracks.N/clips.N positional path when you're not certain which position you mean — positional indexing is a convenience for the common 'the track/clip I just touched' case, not a stable general-purpose address. Every step's tool must be a real timeline tool name (job/<job_id>/timeline.txt first if you need to see a tool's exact result shape before referencing it). All-or-nothing: the first step that fails stops the whole batch immediately and later steps never run — check each entry in the response's step_results for where it stopped. Use this whenever a plan has TRUE ordering dependencies (step 2 needs data step 1 just created); for independent clips with no cross-references, add_clips_to_timeline is simpler.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | ||
| fields | No | ||
| job_id | Yes | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds significant behavioral context: all-or-nothing execution, the ability to reference earlier step results, track ordering semantics, and the caveat about positional indexing. This goes 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 long but densely informative. It front-loads the core purpose, then systematically explains referencing, ordering, failure behavior, and usage guidance. Every sentence adds value, though it could be slightly more concise without losing essential 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?
For a complex tool with dependencies and referencing, the description is remarkably complete. It covers the referencing syntax, track ordering, failure semantics, and how to inspect result shapes via timeline.txt. It also explains the all-or-nothing behavior and where to check step_results. Nothing critical is missing.
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 0%, so the description must compensate. It thoroughly explains the `steps` parameter: how to assign step_id, reference results with dotted paths, and the meaning of tracks.N ordering. It also implies usage of job_id through examples. It does not detail `fields` or `response_detail`, but those have defaults and are less critical.
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: running multiple timeline-tool calls in one request with cross-step dependencies. It names the specific resource (timeline tools) and the action (batch execution with referencing), and differentiates from the sibling add_clips_to_timeline by noting it's simpler for independent clips.
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: 'Use this whenever a plan has TRUE ordering dependencies' and when not to: 'for independent clips with no cross-references, add_clips_to_timeline is simpler.' Also provides guidance on referencing paths and the all-or-nothing failure behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_actAIdempotentInspect
Do one thing on the page or app, like a person would: the pointer travels to what it clicks, fields are clicked before typing, scrolling uses the wheel; then a fresh look (no screenshot unless asked). action: click | double_click | hover | type | press | scroll | navigate | back | wait | say | focus | unfocus | highlight | hide | unhide. Prefer ref from the latest look over x/y. You edit the take as you record it: the cut is finished the moment you stop, so decide everything here. While recording, use action 'say' with text before each step to narrate it (it becomes a caption and a timed line of the saved script, ready to be voiced). To show something off (a result, a chart, a setting), use action 'focus' with its ref, several refs framed together, or an exact area x, y, w, h (it fills the view); pad adds room, zoom 1.1-4 says how close outright, seconds how long: the take's camera zooms in and holds that long, or until the next focus or 'unfocus' (nothing on the page changes); without it the camera follows your clicks and typing. The result's shots gives each focus's zoom and view (the part of the page in frame, CSS pixels): check it and focus again if it is not what a viewer should see. Before recording, a focus only reports its shot: rehearse your framing. To point out or copy words, use action 'highlight' with the ref and the text in it, and color, seconds, lift, zoom_in if you like: the words are selected by a drag (press Control+C, Meta+C on a Mac, to copy) and the take marks them, lifted off the page (in an app the element is marked, nothing is selected). To keep something private (an e-mail, a key, a customer's name), use action 'hide' with its ref (and the text in it to hide only those words), or an area x, y, w, h: it is blurred in the take from then, following it as the page scrolls, until 'unhide' (with the ref, or none for everything); hidden before recording, it is hidden from the first frame. While recording every result says at: the take's clock in seconds. Pass steps (a list of these same objects, max 40) to run several in a row. In an app, if the user moves the mouse you are stopped: ask them, then pass resume=true.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| h | No | ||
| w | No | ||
| x | No | ||
| y | No | ||
| key | No | ||
| pad | No | ||
| ref | No | ||
| url | No | ||
| why | No | ||
| lift | No | ||
| refs | No | ||
| text | No | ||
| zoom | No | ||
| clear | No | ||
| color | No | ||
| steps | No | ||
| action | No | ||
| amount | No | ||
| cursor | No | ||
| fields | No | ||
| resume | No | ||
| submit | No | ||
| seconds | No | ||
| zoom_in | No | ||
| direction | No | ||
| screenshot | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Rich beyond annotations: discloses narration-as-caption behavior, camera zoom/hold semantics, rehearse mode (focus reports shot only before recording), hide-persists-until-unhide, app mode stopping on user mouse movement requiring resume=true. Annotations give safety/idempotency; description adds substantial runtime and editing semantics.
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?
Dense but front-loaded with purpose; the long middle is packed with useful detail but runs as a monograph rather than structured bullets, making it harder to scan for a given action. Size is justified by tool complexity but structure could be tighter.
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 27 params, no output schema, and 0% schema coverage, the description covers most critical behavior: result fields (`shots`, `view`, `at`), steps chaining, recording narrations, resume semantics. Missing: explicit coverage of several params and no output schema means return values beyond mentioned flags are not fully specified.
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 0%, so description must carry param burden and does much of it: explains action, ref vs refs, x/y/w/h for areas, pad, zoom 1.1-4, seconds, text, color, lift, zoom_in, steps (max 40), resume, screenshot behavior. Some params (why, submit, amount, clear, key, url, cursor, fields, response_detail, direction) are only partially or implicitly covered.
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?
States a specific verb and resource: performs an interaction action on the page/app with enumerated action set (click, type, scroll, focus, hide, etc.). It clearly distinguishes from screen_look (which is about observing) by the 'do one thing' framing, though it doesn't name siblings directly.
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 clear contextual guidance: use ref over x/y, use 'say' while recording before each step, use 'focus' to show something off, 'hide' for privacy, rehearse framing before recording. Strong conditional guidance, though not explicit when-not or named alternatives for observation-first behaviors (screen_look).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_closeBIdempotentInspect
Close the recorded browser and let go of any app (a take still recording is thrown away).
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| fields | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, idempotent=true, so the safety profile is largely covered. The description adds genuinely new behavioral context beyond the annotations: it releases held apps and warns that a still-recording take is thrown away, a data-loss consequence not expressed by destructiveHint=false.
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 with the core action front-loaded and no filler. The second sentence is terse to the point of being cryptic, but it is efficiently sized.
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 close/cleanup tool with no output schema, the essentials are present, but with 0% schema coverage the parameter documentation is thin and offloaded to "the server instructions," which the agent may not have in context. Adequate, not 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 description coverage is 0%, so the description carries the burden, and it does gloss all three parameters and even supplies the value set (summary|compact|full) for response_detail. However "fields (dotted paths)" and "cursor (next page)" are minimal, and it defers the rest to server instructions rather than explaining here.
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?
States a specific verb+resource ("Close the recorded browser") and adds scope ("let go of any app"), which separates it from open-oriented siblings like screen_open/screen_open_app. The parenthetical about discarding a recording further distinguishes it from screen_record_stop, though it never names that sibling explicitly, so it falls short of a clean 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?
There is no explicit when-to-use or when-not-to-use guidance. The parenthetical hints that an in-progress take is discarded, but the agent is not told to prefer screen_record_stop first or when this tool is the right choice versus simply ending a session, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_hand_overAIdempotentInspect
Hand the open page to the USER for something only they should do (sign in, enter a code, accept a prompt) and wait. They see the page large in the Arsaze window, type into it there and press Done. You never see what they typed: those fields read as secret in screen_look and show as dots in screenshots and takes. Nothing is recorded meanwhile. Returns done: true when they finished (then screen_look), or done: false (cancelled or timed out: ask them before trying again). Web pages on the desktop app only; in one of their own apps they simply type it themselves.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | ||
| cursor | No | ||
| fields | No | ||
| reason | Yes | ||
| seconds | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations, which only say readOnlyHint=false and idempotentHint=true. It discloses the privacy model (typed values are secret in screen_look and shown as dots), the side-effect scope ('nothing is recorded meanwhile'), the exact return contract (done:true/false) and the cancel/timeout semantics. This is rich behavioral context an agent could not get elsewhere.
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?
Front-loaded with the core action and only includes sentences that add behavior (security, return values, failure handling). The trailing parameter line is a slightly bolted-on appendix but is compact and useful.
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 correctly supplies the return contract and side-effect profile for a sensitive handover operation. The only real gap is the undocumented required 'reason' and the 'ref'/'seconds' parameters, which leaves the description not quite complete for a 6-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 description coverage is 0% across 6 parameters, so the description must carry the load. It explains only three (response_detail with its enum values, fields as dotted paths, cursor as next page) and leaves the required 'reason' plus 'ref' and 'seconds' entirely undocumented, so the agent cannot fully infer correct argument usage.
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?
States a specific verb (hand over) and resource (the open page) with concrete examples of the triggering situations (sign in, enter a code, accept a prompt). However, it does not differentiate itself from the very similar sibling 'screen_login', which an agent could easily confuse with this tool.
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?
Gives clear context ('something only they should do') and a negative case ('in one of their own apps they simply type it themselves'), plus failure-handling guidance ('ask them before trying again' on done:false). It stops short of naming alternative tools by name, so it falls slightly short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_list_appsARead-onlyInspect
Windows and macOS: the apps open on the user's computer (hwnd, title, app, whether in front), to pick one for screen_open_app. If the app you need isn't there, ask the user to open it. On a Mac, shortcuts use Meta (Command): Meta+C copies.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| fields | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description adds the returned fields and pagination via cursor, which is useful, but the Mac Meta/Command shortcut line describes keyboard behavior unrelated to listing apps and adds no transparency about this 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?
The first sentence conflates purpose, returned fields, use case, fallback, and platform behavior into one long clause, and the Mac Meta+C sentence does not earn its place for a listing tool. The parameter line is compact and front-loaded enough to be usable, but overall structure is loosely 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?
There is no output schema, so the description correctly enumerates return fields, and it covers purpose, consumer tool, fallback, and pagination. All three parameters are addressed, making it nearly complete for a simple read-only listing tool, with the only gap being detailed field-path availability.
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 0%, so the description must compensate, and it largely does: response_detail is given allowed values (summary|compact|full), fields is described as dotted paths, and cursor as next page. This meaningfully exceeds the bare schema, though it defers detail to 'server instructions' rather than fully documenting available field paths.
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 identifies the resource and scope precisely — the apps open on the user's computer — and enumerates the returned fields (hwnd, title, app, whether in front), which differentiates it from listing tools like ws_ls. It also names the consuming sibling screen_open_app, though the purpose is expressed as a fragment rather than a crisp verb+resource statement.
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 states the downstream use case ('to pick one for screen_open_app') and a clear fallback when no match exists ('ask the user to open it'), which is genuinely actionable guidance. It stops short of explicit when-not-to-use or naming alternatives to screen_open_app, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_loginAIdempotentInspect
Open a window on the user's screen, in the recorded browser's own profile, for the USER to sign in to a site. Tell the user to sign in and close it, then screen_open the page again: the browser stays signed in. You never see what they type.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| cursor | No | ||
| fields | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) with three non-obvious behavioral facts: it runs in the recorded browser's own profile, the browser stays signed in afterward, and the agent never sees the user's keystrokes. The privacy and persistence details are exactly what an agent needs before invoking an interactive login.
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?
Front-loads purpose, then the procedural steps and privacy note, then a terse parameter glossary. The second sentence is load-bearing despite being procedural. The trailing parameter fragment is appended rather than integrated, a minor structural blemish.
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 an interactive flow with no output schema and 4 undocumented params, the description covers the essential behavior: what the agent must tell the user, that credentials are never exposed, and that the session persists. What it returns and how the caller confirms completion are left implicit, but annotations cover the safety profile.
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 0%, so the description must carry the burden. It lists response_detail (summary|compact|full), fields (dotted paths), and cursor (next page), which does supply semantics the schema lacks and adds enum values the schema omits. However, it defers to 'the server instructions' and says nothing about the required url parameter.
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?
States a specific verb and resource ('Open a window on the user's screen... for the USER to sign in to a site') and names the sibling flow it hands off to (screen_open). An agent can distinguish it from screen_open without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit workflow: open the window, tell the user to sign in and close it, then screen_open the page again. This gives clear when-to-use routing to the sibling. It stops short of stating when-not-to-use or edge cases, but the sequencing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_lookARead-onlyInspect
See the page or app you opened: every element a person could act on (ref, role, name, box; a field's value, never a password), the headings, scroll, and a screenshot. Refs are valid until the next look.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| fields | No | ||
| screenshot | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, openWorld=false. The description adds real value beyond them: passwords are never returned, refs expire at the next look, screenshots are incurrable, and pagination is possible via cursor. This is meaningful behavioral disclosure despite annotations covering safety.
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?
Front-loaded with what the tool returns, then parameter notes. Efficient, though the parameter sentence has a slightly telegraphic style ('response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.') that pushes detail off-doc.
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, and 0% schema description coverage, so the description needs to do more. It covers return content, ref lifecycle, and three of four params, but omits the screenshot param's semantics, any pagination size/limit detail, and defers heavily to 'server instructions' the agent may not have.
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 0%, so the description carries the burden. It names three of four parameters with hints: response_detail (summary|compact|full), fields (dotted paths), cursor (next page). The screenshot parameter is never explained despite being listed in the element inventory. Partial compensation only.
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 first sentence states a concrete verb+resource: 'See the page or app you opened', followed by a precise inventory of what is returned (actionable elements with ref/role/name/box, headings, scroll, screenshot). This clearly distinguishes it from siblings like screen_act, screen_open, and media_look.
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?
Implied usage only: 'the page or app you opened' anchors it to prior screen_open/screen_open_app, and the ref-validity note implies re-look workflow. But it never explicitly contrasts with screen_act (see vs act) or screen_result, and does not give explicit 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.
screen_openAIdempotentInspect
Open a web page in the browser Arsaze records, on the user's computer (its own profile, not the user's sign-ins). Returns the page: elements to act on with refs, headings, scroll, and a screenshot. width x height is the page in CSS pixels; the video is that times scale (default 1280x720 at 1.5 = 1920x1080). Nothing is recorded until screen_record_start.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| scale | No | ||
| where | No | ||
| width | No | ||
| cursor | No | ||
| fields | No | ||
| height | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavior beyond annotations: the browser has an isolated profile, the call returns page elements/headings/scroll/screenshot, and recording does not begin until screen_record_start. Missing details on the relationship to screen_act and whether the browser session persists after the call.
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?
Front-loaded with what the tool does and its return shape, then param notes. The width/height/scale arithmetic example is a bit parenthetical but earns its place; 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?
No output schema, but the description compensates by summarizing the return payload (elements with refs, headings, scroll, screenshot). Adequate for an 8-param open tool, with the main gap being the undocumented 'where' parameter.
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 0% schema coverage across 8 params, the description carries the load well: it explains width/height as CSS pixels and the scale multiplier (1280x720 at 1.5 = 1920x1080), plus cursor (next page) and fields (dotted paths). It omits any meaning for 'where' and 'url', leaving two parameters unexplained.
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?
Specific verb+resource: opens a web page in a dedicated browser on the user's computer, and clarifies it uses its own profile rather than the user's sign-ins, which distinguishes it from screen_open_app and screen_login. Doesn't explicitly name the sibling it replaces, but the browser-vs-app boundary is inferable.
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 tells you this is the entry point for browsing ('Nothing is recorded until screen_record_start' signals the follow-up recording tool), but gives no explicit when-to-use guidance against screen_open_app or screen_login, nor prerequisites like whether login is needed first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_open_appAIdempotentInspect
Take one of the user's apps for a demo, with the REAL mouse and keyboard while the user watches: brings its window to the front (maximised unless maximize=false) and returns what can be acted on (refs, roles, names, boxes in pixels from the window's top-left) with a screenshot. From now on screen_look, screen_act and screen_record_* work on this app. If the user moves the mouse, you are stopped.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| hwnd | No | ||
| title | No | ||
| cursor | No | ||
| fields | No | ||
| maximize | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, idempotent=true, destructive=false), the description discloses rich behavioral context: real mouse/keyboard with the user watching, maximize-unless-disabled behavior, what is returned (refs, roles, names, pixel boxes, plus a screenshot), and the interrupt condition when the user takes the mouse. This is exactly the kind of context annotations cannot carry.
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 main paragraph is front-loaded with the action and its consequences, and every clause carries information. The trailing dash-note on response_detail/fields/cursor feels appended rather than integrated, slightly hurting flow.
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 6-param, no-annotation-supportive tool with no output schema, the description covers the workflow, constraint, and return contents well. The one substantive gap is how the caller selects the target app (hwnd/title), which the description leaves unaddressed.
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 0% schema coverage across 6 parameters, the description must compensate. It explains maximize ('maximised unless maximize=false') and briefly annotates response_detail, fields, and cursor, but says nothing about hwnd or title — the very parameters that identify which app to open. Partial coverage of the critical parameters keeps this at 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 states a specific verb and resource ('Take one of the user's apps for a demo... brings its window to the front'), plus the ongoing effect on sibling tools (screen_look, screen_act, screen_record_*). It fails to distinguish itself from the similarly named sibling screen_open, so it stops short of 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?
It provides clear workflow context — this is the entry point that makes screen_look/screen_act/screen_record_* operate on the chosen app — and states a hard constraint ('If the user moves the mouse, you are stopped'). However, it never explicitly says when to prefer this over an alternative such as screen_open.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_record_startCIdempotentInspect
Start recording the page or app you opened. Rehearse the flow first; from here every action is in the take. Between your calls the take holds still, so thinking time never shows. Set the cut's look here (style, aspect, cursor, highlight_color, auto_zoom, captions…): you are the editor, and the take is cut in this look the moment it stops. screen_record_stop can still change any of it.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | ||
| style | No | ||
| title | No | ||
| aspect | No | ||
| cursor | No | ||
| fields | No | ||
| radius | No | ||
| shadow | No | ||
| padding | No | ||
| backdrop | No | ||
| callouts | No | ||
| captions | No | ||
| auto_zoom | No | ||
| skip_idle | No | ||
| title_card | No | ||
| click_sound | No | ||
| cursor_size | No | ||
| motion_blur | No | ||
| click_ripple | No | ||
| zoom_strength | No | ||
| backdrop_color | No | ||
| highlight_lift | No | ||
| highlight_zoom | No | ||
| highlight_color | No | ||
| response_detail | No | ||
| hide_idle_pointer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior — actions between calls are not recorded ('thinking time never shows') and the look is applied at stop but remains editable via screen_record_stop. It does not resolve the tension between 'start' semantics and idempotentHint=true, nor mention auth or what happens on a second start call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences of heavily metaphorical prose precede a boilerplate footer. The operational content (start recording, settings applied at stop, editable later) is buried inside the metaphor rather than front-loaded, and the closing parameter hints are unrelated filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 26-parameter tool with 0% schema description coverage, no output schema, and no annotation explanation of return values needs far more parameter documentation than one example list. An agent cannot know what most of the 26 flags do, what the call returns, or what state it must be in before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across 26 parameters, so the description carries the full burden. It names only a handful of examples (style, aspect, cursor, highlight_color, auto_zoom, captions) and leaves the other twenty undocumented. The trailing 'response_detail... fields... cursor...' footer reads like generic boilerplate and actively confuses 'cursor' (a recording look parameter here) with pagination.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence gives a specific verb and resource: 'Start recording the page or app you opened.' It also gestures at the sibling relationship ('screen_record_stop can still change any of it'). The remaining prose is metaphorical ('take', 'cut', 'editor') and obscures rather than sharpens the purpose, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Rehearse the flow first' implies a when-to-use condition, and the mention that screen_record_stop can adjust settings later gives a weak alternative path. There is no explicit statement of prerequisites (does a page need to be open? does screen_open come first?) nor when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_record_stopAIdempotentInspect
Stop recording. Arsaze cuts the take like a person's (zooms on clicks and typing, captions from your narration, waiting cut out, private details blurred), renders it, and puts it on the timeline of a NEW project (on the user's computer, private) with video/audio analysis off. Returns project_id, job_id, asset_id, clip_id and the editor link, plus what the edit did. Continue editing that job with the usual timeline tools. Also returns steps: the take as numbered steps, ready to turn into written docs, and script: the narration and steps timed in the finished video's seconds (saved with the project, ready to be voiced line by line). The look is what you set at screen_record_start, with anything you set here over it: style (midnight | clean | bold | plain), aspect (16:9; 9:16 for Shorts, Reels and TikTok; 1:1; 4:3), callouts, title_card, cursor, highlight_color, auto_zoom, captions and the rest. The cut is final when this returns; the take also opens in Arsaze's Screen Studio for the user.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | ||
| style | No | ||
| aspect | No | ||
| cursor | No | ||
| fields | No | ||
| radius | No | ||
| shadow | No | ||
| padding | No | ||
| backdrop | No | ||
| callouts | No | ||
| captions | No | ||
| auto_zoom | No | ||
| skip_idle | No | ||
| title_card | No | ||
| click_sound | No | ||
| cursor_size | No | ||
| motion_blur | No | ||
| click_ripple | No | ||
| zoom_strength | No | ||
| backdrop_color | No | ||
| highlight_lift | No | ||
| highlight_zoom | No | ||
| highlight_color | No | ||
| response_detail | No | ||
| hide_idle_pointer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (mutating, non-destructive, idempotent), the description discloses that the edit is rendered and final on return, that output lands on a NEW project on the user's own computer, that video/audio analysis is off, and exactly which identifiers the call yields. That is materially more than readOnlyHint/destructiveHint already 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?
Front-loaded with the essential 'Stop recording', but the remainder is one sprawling run-on thick with parentheticals. Content like 'plus what the edit did' and the closing dangling 'response_detail ... see the server instructions' fragment add bulk without adding precision.
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 high-complexity mutation tool with no output schema, the description does cover the return payload (project_id, job_id, asset_id, clip_id, editor link, steps, script) and the side effects. Its one real gap is the undocumented majority of styling parameters, which is a notable omission for a 25-parameter 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 description coverage is 0% across 25 parameters, so the description must carry the load. It names and even enumerates a subset (style: midnight|clean|bold|plain; aspect: 16:9, 9:16, 1:1, 4:3; callouts, title_card, cursor, highlight_color, auto_zoom, captions, response_detail, fields) but leaves roughly two-thirds of the styling parameters (radius, shadow, padding, backdrop, skip_idle, click_sound, cursor_size, motion_blur, click_ripple, zoom_strength, highlight_lift/zoom, hide_idle_pointer, frame) undocumented in both places.
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?
States a specific verb and resource ('Stop recording') and immediately names the sibling it complements by describing the recording pipeline begun at screen_record_start. An agent can distinguish this from screen_record_start, screen_status and screen_result without opening any schema.
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?
Gives clear workflow context: it is the terminating call for a recording session and 'Continue editing that job with the usual timeline tools' routes the agent onward. It also states precedence ('The look is what you set at screen_record_start, with anything you set here over it'). No explicit when-not or named alternative is given, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_resultARead-onlyInspect
The result of a screen_* call that came back still running (waiting for the user to allow it, or screen_record_stop still cutting and rendering): pass its command_id. Returns what that call would have.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| fields | No | ||
| command_id | Yes | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=false. The description adds useful behavioral context: the result is only meaningful for still-running calls and it returns what the original call would have. It does not explain polling behavior or what happens if the command completes.
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?
Efficient: the operative use case (still-running call) is front-loaded, followed by the required param and a terse list of optional controls. The trailing 'see the server instructions' is a minor deferral but not bloated.
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 the core retrieval scenario but leaves gaps: no output schema, no pagination semantics for cursor, no guidance on whether to poll or wait, and it offloads parameter detail to unspecified server instructions. Adequate but visibly incomplete for a result-fetch 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 description coverage is 0%, so the description must carry parameter meaning. It explains command_id as the way to identify the pending call and briefly names response_detail, fields, and cursor, but gives no value semantics for response_detail or cursor semantics beyond a hint. Partial compensation only.
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?
States a specific role: it retrieves the result of a still-running screen_* call by command_id. Distinguishes it as the companion to the async screen_* family, though it doesn't name a specific sibling to reinforce boundaries.
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 clear context: use when a prior screen_* call came back still running (awaiting user approval, or screen_record_stop still rendering). This tells the agent when to reach for it, but offers no explicit 'when-not' or direct alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_statusARead-onlyInspect
Can you record a demo on the user's computer right now? Call first. Says whether the Arsaze desktop app is connected, its platform, and whether it can drive the user's own apps (Windows, macOS) or only web pages. How it works: screen_open a page (or screen_list_apps + screen_open_app), screen_look / screen_act to rehearse, screen_record_start, perform the flow narrating each step with action 'say', screen_record_stop: Arsaze cuts the take (zooms, captions, dead time removed) and puts it on a new project's timeline. The user approves in Arsaze before anything is opened.
response_detail (summary|compact|full), fields (dotted paths), cursor (next page) — see the server instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| fields | No | ||
| response_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description still adds useful context: what the status reports, the overall recording pipeline, and importantly that 'the user approves in Arsaze before anything is opened' — a meaningful gating detail not 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?
The paragraph is reasonably sized but poorly front-loaded: it opens with a rhetorical question rather than the tool's function, and it spends significant space narrating the entire recording workflow, which is arguably out of scope for a status-check 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 read-only status tool with no output schema and three optional pagination/format parameters, the description supplies return-value semantics, parameter meanings, and workflow position. Nothing essential is missing, though pagination limits are left to server instructions.
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 0%, so the description must carry the load, and it does: 'response_detail (summary|compact|full), fields (dotted paths), cursor (next page).' It documents all three optional parameters, though the enum values for response_detail are only implied and it defers the rest to server instructions.
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 states a specific function: reporting whether the Arsaze desktop app is connected, its platform, and whether it can drive native apps versus only web pages. It is distinguishable from siblings like screen_open or screen_look. However, the actual purpose is buried mid-sentence behind a rhetorical question, slightly weakening immediate clarity.
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 'Call first,' establishing this as the entry point before any screen action. It also routes among alternatives (screen_open vs. screen_list_apps + screen_open_app) within the described flow. No explicit when-not-to-use, but the ordering guidance is concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ws_editAInspect
Edit the project by editing its files — exact old→new replacement, like editing code. job/<job_id>/transcript.txt, transcript/<clip_id>.txt, words/<clip_id>.txt: delete words, phrase lines or pause lines to CUT them from the edit. job/<job_id>/timeline.txt: delete a clip line (remove clip), change its start (move), move the line under another track header (change track), change its src range (trim) or x. project/<project_id>/scenes/<scene_id>/document.html: any edit. Applied as ONE undoable, all-or-nothing batch. dry_run=true returns the operations without applying. old must be copied exactly from a fresh ws_read.
| Name | Required | Description | Default |
|---|---|---|---|
| new | Yes | ||
| old | Yes | ||
| path | Yes | ||
| confirm | No | ||
| dry_run | No | ||
| replace_all | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses atomicity ('Applied as ONE undoable, all-or-nothing batch') and dry_run behavior, which are not present in the annotations. It also emphasizes the exact-match requirement for `old`. These details add valuable behavioral context beyond the sparse 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 dense but purposeful: every sentence adds operational detail, organized by file type and then by global behavior. It front-loads the core purpose before diving into specifics, 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 scope for each supported file type, batch behavior, and a critical prerequisite (fresh ws_read). Given no output schema, it does not detail return values, but it addresses the main decisions an agent needs to invoke the tool correctly. Minor gaps remain around `confirm` and `replace_all`.
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 0% schema description coverage, the description must carry parameter meaning. It clarifies that `old`/`new` are exact replacement strings and that `dry_run=true` returns operations without applying. However, it does not explain `confirm` or `replace_all`, leaving those parameters ambiguous.
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 opens with 'Edit the project by editing its files — exact old→new replacement, like editing code,' clearly stating a specific verb and resource. It then enumerates file types and operations, which distinguishes it from read-only siblings like ws_read and ws_grep.
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 gives a clear prerequisite: 'old must be copied exactly from a fresh ws_read,' linking to the correct read tool. It also explains dry_run for previewing. However, it does not explicitly mention when to use alternatives like run_timeline_batch, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ws_grepARead-onlyIdempotentInspect
Search a workspace file (or a per-clip / per-link directory such as job/<job_id>/words) with a regex; returns path:line:text for each hit. context = lines shown around each hit (max 5).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| context | No | ||
| pattern | Yes | ||
| ignore_case | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the tool is read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral details beyond annotations: it returns path:line:text and explains that context controls the number of surrounding lines shown, capped at 5.
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 dense sentences deliver the core operation, target, output format, and context parameter semantics without wasted words. The essential 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?
With an output schema present and read-only/idempotent annotations, the description covers enough to invoke the tool correctly: required path and pattern, output format, and context semantics. The only meaningful gap is the undocumented ignore_case parameter, whose default is visible in the 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 description coverage is 0%, so the description carries the burden for parameter meaning. It explains path (file or directory), pattern (regex), and context (lines around each hit, max 5), but omits ignore_case behavior. This is strong compensation, though incomplete.
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 states a specific verb ('Search'), a clear resource ('a workspace file or ... directory'), and the output format ('path:line:text'). This clearly distinguishes ws_grep from sibling tools like ws_read and ws_ls, which read or list rather than search.
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 gives clear context for when to use the tool: searching files or directories such as job/<job_id>/words with a regex. It does not explicitly name alternatives or exclusion conditions, but the intended usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ws_lsARead-onlyIdempotentInspect
List workspace files. '' shows the whole layout; 'job/<job_id>' or 'project/<project_id>' lists that scope's files; 'job/<job_id>/transcript' (or words, review/shares) lists one file per clip/link.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds useful behavioral context beyond annotations by specifying how the path parameter changes the output granularity (whole layout vs. scope-specific files vs. one file per clip/link).
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 three sentences, front-loaded with the core action, and every sentence contributes concrete path-scoping information. The parenthetical shorthand is compact and effective, with no redundant or filler 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 read-only list tool with a single optional parameter and an output schema, the description is complete. It explains all documented path patterns and leaves return-value details to the output schema, so nothing essential for invoking the tool correctly is missing.
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 0%, so the description carries the full burden of explaining the 'path' parameter. It does so thoroughly with three illustrative patterns, including the default empty-string behavior, which makes the parameter semantics clear and actionable.
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 opens with 'List workspace files,' a specific verb and resource, and then details the exact path patterns that control the listing scope. This clearly distinguishes it from sibling tools like ws_read (reading content) and ws_grep (searching).
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 how to use the tool through concrete path examples ('' for whole layout, 'job/<job_id>', 'project/<project_id>', 'job/<job_id>/transcript'). It does not explicitly name alternatives or say when not to use this tool, but the operation is clear enough that the intended usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ws_readARead-onlyIdempotentInspect
Read a workspace file with line numbers — e.g. projects.txt, job/<job_id>/timeline.txt, job/<job_id>/review/brief.txt, project/<project_id>/assets.txt. At most ~250 lines per call; pass start_line/end_line (1-based, inclusive) for a range. Grep first on long files.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| end_line | No | ||
| start_line | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 valuable behavioral details beyond those: line-numbered output, a ~250-line limit per call, and 1-based inclusive start/end semantics. This is meaningful supplementary 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?
Two dense sentences convey action, output shape, range syntax, line limit, and an efficiency tip without filler. The structure is front-loaded and every phrase 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 low-complexity read tool with a rich output schema and safety annotations, the description covers the essential operational concerns: path examples, line cap, range semantics, and grep-first advice. A minor gap is not stating what happens if a range is omitted or if a file exceeds the line limit without a range.
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 0%, so the description carries the burden. It explicitly explains start_line/end_line as a 1-based inclusive range, but the path parameter is only illustrated with examples rather than formally specified. The default behavior when start_line/end_line are omitted is also left implicit.
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 opens with a specific verb-resource pair, 'Read a workspace file with line numbers,' and reinforces it with concrete path examples. This clearly differentiates ws_read from its write/sibling tools like ws_edit, ws_grep, and ws_ls.
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 gives practical context: use it for reading specific workspace files, and 'Grep first on long files' explicitly steers agents toward the grep alternative for lengthy content. It does not enumerate exclusions for all siblings, but the read-only intent and line-range usage are clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
screen_act8 fields changed- added
Input schema / properties / colorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Color" +} - added
Input schema / properties / hAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "H" +} - added
Input schema / properties / liftAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Lift" +} - added
Input schema / properties / padAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Pad" +} - added
Input schema / properties / refsAdded value: +{ + "anyOf": [ + { + "items": {}, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Refs" +} - added
Input schema / properties / wAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "W" +} - added
Input schema / properties / whyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Why" +} - added
Input schema / properties / zoom_inAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Zoom In" +}
- Added
screen_hand_over - Changed
screen_open1 field changed- added
Input schema / properties / whereAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Where" +}
- Changed
screen_record_start22 fields changed- added
Input schema / properties / aspectAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Aspect" +} - added
Input schema / properties / auto_zoomAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Auto Zoom" +} - added
Input schema / properties / backdropAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Backdrop" +} - added
Input schema / properties / backdrop_colorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Backdrop Color" +} - added
Input schema / properties / calloutsAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Callouts" +} - added
Input schema / properties / captionsAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Captions" +} - added
Input schema / properties / click_rippleAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Click Ripple" +} - added
Input schema / properties / click_soundAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Click Sound" +} - added
Input schema / properties / cursor_sizeAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Cursor Size" +} - added
Input schema / properties / frameAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Frame" +} - added
Input schema / properties / hide_idle_pointerAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Hide Idle Pointer" +} - added
Input schema / properties / highlight_colorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Highlight Color" +} - added
Input schema / properties / highlight_liftAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Highlight Lift" +} - added
Input schema / properties / highlight_zoomAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Highlight Zoom" +} - added
Input schema / properties / motion_blurAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Motion Blur" +} - added
Input schema / properties / paddingAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Padding" +} - added
Input schema / properties / radiusAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Radius" +} - added
Input schema / properties / shadowAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Shadow" +} - added
Input schema / properties / skip_idleAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Skip Idle" +} - added
Input schema / properties / styleAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Style" +} - added
Input schema / properties / title_cardAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Title Card" +} - added
Input schema / properties / zoom_strengthAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Zoom Strength" +}
- Changed
screen_record_stop18 fields changed- added
Input schema / properties / auto_zoomAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Auto Zoom" +} - added
Input schema / properties / backdropAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Backdrop" +} - added
Input schema / properties / backdrop_colorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Backdrop Color" +} - added
Input schema / properties / captionsAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Captions" +} - added
Input schema / properties / click_rippleAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Click Ripple" +} - added
Input schema / properties / click_soundAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Click Sound" +} - added
Input schema / properties / cursor_sizeAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Cursor Size" +} - added
Input schema / properties / frameAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Frame" +} - added
Input schema / properties / hide_idle_pointerAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Hide Idle Pointer" +} - added
Input schema / properties / highlight_colorAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Highlight Color" +} - added
Input schema / properties / highlight_liftAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Highlight Lift" +} - added
Input schema / properties / highlight_zoomAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Highlight Zoom" +} - added
Input schema / properties / motion_blurAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Motion Blur" +} - added
Input schema / properties / paddingAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Padding" +} - added
Input schema / properties / radiusAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Radius" +} - added
Input schema / properties / shadowAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Shadow" +} - added
Input schema / properties / skip_idleAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Skip Idle" +} - added
Input schema / properties / zoom_strengthAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Zoom Strength" +}
1 tool update
- Changed
screen_act1 field changed- added
Input schema / properties / zoomAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Zoom" +}
1 tool update
- Changed
screen_record_stop4 fields changed- added
Input schema / properties / aspectAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Aspect" +} - added
Input schema / properties / calloutsAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Callouts" +} - added
Input schema / properties / styleAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Style" +} - added
Input schema / properties / title_cardAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Title Card" +}
1 tool update
- Added
media_look
11 tool updates
- Added
screen_act - Added
screen_close - Added
screen_list_apps - Added
screen_login - Added
screen_look - Added
screen_open - Added
screen_open_app - Added
screen_record_start - Added
screen_record_stop - Added
screen_result - Added
screen_status
184 tool updates
- Removed
add_audio_transition - Removed
add_clip_to_timeline - Removed
add_clips_to_timeline - Removed
add_empty_track - Removed
add_transition_to_timeline - Removed
animate_create_scene - Removed
animate_get_layers - Removed
animate_get_scene - Removed
animate_list_scenes - Removed
animate_patch_document - Removed
animate_save_to_assets - Removed
animate_update_layers - Removed
animate_write_document - Removed
apply_auto_cut_silence - Removed
apply_isolated_voice_to_clip - Added
arsaze_call - Added
arsaze_tools - Removed
assets_add_to_library - Removed
assets_add_to_project - Removed
assets_analyze - Removed
assets_delete - Removed
assets_lookup - Removed
assets_move - Removed
assets_rename - Removed
assets_search - Removed
assets_set_note - Removed
broll_create - Removed
broll_delete - Removed
broll_generate - Removed
broll_get - Removed
broll_list - Removed
broll_update - Removed
close_all_timeline_gaps - Removed
close_track_gaps - Removed
color_auto_balance - Removed
color_copy_grade - Removed
color_list_luts - Removed
color_match_reference - Removed
color_reset_grade - Removed
color_set_basic - Removed
color_set_finish - Removed
color_set_layer_enabled - Removed
color_set_lut - Removed
color_set_match - Removed
content_strategy_approve_seo - Removed
content_strategy_draft_seo - Removed
create_caption_set - Removed
cutout_create - Removed
cutout_get_status - Removed
delete_caption_set - Removed
delete_timeline_text_range - Removed
detach_audio_from_clip - Removed
duck_track_to_speech - Removed
duplicate_clip - Removed
feedback_report - Removed
folders_create - Removed
folders_delete - Removed
folders_get_contents - Removed
folders_get_root_contents - Removed
folders_move - Removed
folders_rename - Removed
generate_auto_captions - Removed
get_asset_knowledge - Removed
get_caption_set - Removed
get_timeline_intelligence - Removed
image_gen_generate - Removed
image_gen_get_job - Removed
image_gen_list_history - Removed
image_gen_list_providers - Removed
insert_transition - Removed
jobs_create_empty - Removed
jobs_export - Removed
jobs_get - Removed
jobs_get_styles - Removed
jobs_list - Removed
list_caption_sets - Removed
list_sfx_library - Removed
luts_apply - Removed
luts_list - Removed
luts_upload - Removed
match_clip_color_to_reference - Removed
mcp_results_fetch - Removed
move_clip_in_timeline - Removed
planning_publish_plan - Removed
planning_todo_write - Removed
playground_create - Removed
playground_delete - Removed
playground_get - Removed
playground_list - Removed
playground_run - Removed
playground_update - Removed
projects_create - Removed
projects_delete - Removed
projects_get - Removed
projects_list - Removed
projects_rename - Removed
redo_timeline - Removed
remarker_add_comment - Removed
remarker_create_share - Removed
remarker_export_markers - Removed
remarker_get_director_brief - Removed
remarker_get_reaction_track - Removed
remarker_get_review_inbox - Removed
remarker_get_review_results - Removed
remarker_get_share_analytics - Removed
remarker_get_version_timeline - Removed
remarker_list_shares - Removed
remarker_revoke_share - Removed
remarker_set_comment_status - Removed
remarker_share_detail - Removed
remarker_update_share - Removed
remove_clip_from_timeline - Removed
remove_clips_bulk - Removed
render_timeline - Removed
reorder_timeline_text_range - Removed
ripple_delete_clip - Removed
ripple_delete_clips - Removed
ripple_trim_clip - Removed
roll_edit_clips - Removed
set_clip_chroma_key - Removed
set_clip_color_wheels - Removed
set_clip_fade - Removed
set_clip_generator - Removed
set_clip_hsl_secondary - Removed
set_clip_keyframe - Removed
set_clip_link_broken - Removed
set_clip_rgb_curves - Removed
set_clip_speed_in_timeline - Removed
set_clip_speed_ramp - Removed
set_track_compressor - Removed
set_track_eq_automation - Removed
set_track_hidden - Removed
set_track_locked - Removed
set_track_loudness - Removed
set_track_noise_reduction - Removed
set_track_reverb - Removed
shift_clip_to_adjacent_track - Removed
skillbank_get - Removed
skillbank_search - Removed
slide_clip - Removed
slip_clip - Removed
split_clip_at - Removed
timeline_delete_all_caption_clips - Removed
timeline_delete_clips_bulk - Removed
timeline_get_transcript - Removed
timeline_set_color_grade - Removed
timgit_branch_from_saved_version - Removed
timgit_checkout_version - Removed
timgit_create_branch - Removed
timgit_declare_saved_version - Removed
timgit_delete_saved_version - Removed
timgit_delete_saved_version_branch - Removed
timgit_diff_versions - Removed
timgit_get_graph - Removed
timgit_get_saved_version_graph - Removed
timgit_list_saved_versions - Removed
timgit_list_versions - Removed
timgit_merge_branches - Removed
timgit_promote_saved_version - Removed
timgit_rename_saved_version - Removed
timgit_restore_saved_version - Removed
transitions_list - Removed
trim_clip_in_timeline - Removed
undo_timeline - Removed
update_caption_set - Removed
video_gen_generate - Removed
video_gen_get_job - Removed
video_gen_list_history - Removed
video_gen_list_jobs - Removed
video_gen_list_providers - Removed
voice_generate_music - Removed
voice_generate_sound_effect - Removed
voice_get_generation_job - Removed
voice_isolate_voice - Removed
voice_list_history - Removed
voice_list_models - Removed
voice_list_voices - Removed
voice_preview_music_composition_plan - Removed
voice_stream_generation_job - Added
ws_edit - Added
ws_grep - Added
ws_ls - Added
ws_read - Removed
youtube_find_segments
10 tool updates
- Added
color_auto_balance - Added
color_copy_grade - Added
color_list_luts - Added
color_match_reference - Added
color_reset_grade - Added
color_set_basic - Added
color_set_finish - Added
color_set_layer_enabled - Added
color_set_lut - Added
color_set_match
4 tool updates
- Removed
add_animation_with_audio - Removed
animate_save_as_animation - Added
animate_save_to_assets - Changed
broll_generate1 field changed- added
Input schema / properties / asset_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Asset Id" +}
175 tool updates
- First observed
add_animation_with_audio - First observed
add_audio_transition - First observed
add_clip_to_timeline - First observed
add_clips_to_timeline - First observed
add_empty_track - First observed
add_transition_to_timeline - First observed
animate_create_scene - First observed
animate_get_layers - First observed
animate_get_scene - First observed
animate_list_scenes - First observed
animate_patch_document - First observed
animate_save_as_animation - First observed
animate_update_layers - First observed
animate_write_document - First observed
apply_auto_cut_silence - First observed
apply_isolated_voice_to_clip - First observed
arsaze_estimate_generation_cost - First observed
arsaze_show_credits - First observed
arsaze_show_generated_asset - First observed
arsaze_show_generated_results - First observed
arsaze_show_review_link - First observed
assets_add_to_library - First observed
assets_add_to_project - First observed
assets_analyze - First observed
assets_delete - First observed
assets_lookup - First observed
assets_move - First observed
assets_rename - First observed
assets_search - First observed
assets_set_note - First observed
broll_create - First observed
broll_delete - First observed
broll_generate - First observed
broll_get - First observed
broll_list - First observed
broll_update - First observed
close_all_timeline_gaps - First observed
close_track_gaps - First observed
content_strategy_approve_seo - First observed
content_strategy_draft_seo - First observed
create_caption_set - First observed
cutout_create - First observed
cutout_get_status - First observed
delete_caption_set - First observed
delete_timeline_text_range - First observed
detach_audio_from_clip - First observed
duck_track_to_speech - First observed
duplicate_clip - First observed
feedback_report - First observed
folders_create - First observed
folders_delete - First observed
folders_get_contents - First observed
folders_get_root_contents - First observed
folders_move - First observed
folders_rename - First observed
generate_auto_captions - First observed
get_asset_knowledge - First observed
get_caption_set - First observed
get_timeline_intelligence - First observed
image_gen_generate - First observed
image_gen_get_job - First observed
image_gen_list_history - First observed
image_gen_list_providers - First observed
insert_transition - First observed
jobs_create_empty - First observed
jobs_export - First observed
jobs_get - First observed
jobs_get_styles - First observed
jobs_list - First observed
list_caption_sets - First observed
list_sfx_library - First observed
luts_apply - First observed
luts_list - First observed
luts_upload - First observed
match_clip_color_to_reference - First observed
mcp_results_fetch - First observed
move_clip_in_timeline - First observed
planning_publish_plan - First observed
planning_todo_write - First observed
playground_create - First observed
playground_delete - First observed
playground_get - First observed
playground_list - First observed
playground_run - First observed
playground_update - First observed
projects_create - First observed
projects_delete - First observed
projects_get - First observed
projects_list - First observed
projects_rename - First observed
redo_timeline - First observed
remarker_add_comment - First observed
remarker_create_share - First observed
remarker_export_markers - First observed
remarker_get_director_brief - First observed
remarker_get_reaction_track - First observed
remarker_get_review_inbox - First observed
remarker_get_review_results - First observed
remarker_get_share_analytics - First observed
remarker_get_version_timeline - First observed
remarker_list_shares - First observed
remarker_revoke_share - First observed
remarker_set_comment_status - First observed
remarker_share_detail - First observed
remarker_update_share - First observed
remove_clip_from_timeline - First observed
remove_clips_bulk - First observed
render_timeline - First observed
reorder_timeline_text_range - First observed
ripple_delete_clip - First observed
ripple_delete_clips - First observed
ripple_trim_clip - First observed
roll_edit_clips - First observed
run_timeline_batch - First observed
set_clip_chroma_key - First observed
set_clip_color_wheels - First observed
set_clip_fade - First observed
set_clip_generator - First observed
set_clip_hsl_secondary - First observed
set_clip_keyframe - First observed
set_clip_link_broken - First observed
set_clip_rgb_curves - First observed
set_clip_speed_in_timeline - First observed
set_clip_speed_ramp - First observed
set_track_compressor - First observed
set_track_eq_automation - First observed
set_track_hidden - First observed
set_track_locked - First observed
set_track_loudness - First observed
set_track_noise_reduction - First observed
set_track_reverb - First observed
shift_clip_to_adjacent_track - First observed
skillbank_get - First observed
skillbank_search - First observed
slide_clip - First observed
slip_clip - First observed
split_clip_at - First observed
timeline_delete_all_caption_clips - First observed
timeline_delete_clips_bulk - First observed
timeline_get_transcript - First observed
timeline_set_color_grade - First observed
timgit_branch_from_saved_version - First observed
timgit_checkout_version - First observed
timgit_create_branch - First observed
timgit_declare_saved_version - First observed
timgit_delete_saved_version - First observed
timgit_delete_saved_version_branch - First observed
timgit_diff_versions - First observed
timgit_get_graph - First observed
timgit_get_saved_version_graph - First observed
timgit_list_saved_versions - First observed
timgit_list_versions - First observed
timgit_merge_branches - First observed
timgit_promote_saved_version - First observed
timgit_rename_saved_version - First observed
timgit_restore_saved_version - First observed
transitions_list - First observed
trim_clip_in_timeline - First observed
undo_timeline - First observed
update_caption_set - First observed
video_gen_generate - First observed
video_gen_get_job - First observed
video_gen_list_history - First observed
video_gen_list_jobs - First observed
video_gen_list_providers - First observed
voice_generate_music - First observed
voice_generate_sound_effect - First observed
voice_get_generation_job - First observed
voice_isolate_voice - First observed
voice_list_history - First observed
voice_list_models - First observed
voice_list_voices - First observed
voice_preview_music_composition_plan - First observed
voice_stream_generation_job - First observed
youtube_find_segments
Related MCP Connectors
Agentic AI video editor: edit a real timeline, generate clips, music and voice, then render.
Autonomous AI video editor over MCP: viral clips, captions, reframe, chroma key, MP4 export
- tonpitOAuthcom.tonpit
Video production studio for AI agents: AI media, motion graphics as code, timeline and export.
- VidmoatOAuthcom.vidmoat
AI video editor: create projects, edit timelines, add captions and effects, and render videos.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA real video editor for AI agents, served over MCP, enabling journaled timeline editing, rendering via FFmpeg/MLT, and deterministic CLI operation.1MIT
- AlicenseNot gradedqualityBmaintenanceAI-native timeline editor for short-form video. Your agent cuts, captions, adds motion graphics and renders against a real, editable timeline over MCP — not a render queue. Human-in-the-loop by design: it calls request_review and waits while you supervise in a browser. Local-first and AGPL; your footage never leaves your machine.2AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to edit videos through natural language, providing tools for timeline editing, audio management, rendering, and more.2MIT
- AlicenseNot gradedqualityBmaintenanceAn agentic AI video editor for Claude. It enables editing real video through MCP: cutting, captioning, reframing, scoring, and exporting finished MP4s from actual footage.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.