Skip to main content
Glama

katto_upload_video

Begins uploading a local video for clipping: validates filename, MIME type and byte size, then returns an upload URL, headers and expiry.

Instructions

Step 1 of clipping a LOCAL file (when the user has a file, not a public link). Pass the exact filename, MIME type and size in bytes; the size is checked against the plan's upload limit and the monthly quota is checked (not yet spent). Returns { upload_id, upload_url, headers, expires_in, next_steps }. Then: (2) HTTP PUT the raw file bytes to upload_url with exactly the returned Content-Type header (e.g. curl -X PUT -H 'Content-Type: video/mp4' --upload-file ./file.mp4 '<upload_url>'), before expires_in seconds; (3) call katto_create_clip_job with upload_id: that verifies the file arrived, spends 1 video of quota and starts clipping; (4) poll katto_get_job with id = upload_id. You need a tool that can make an HTTP PUT with a file body (shell, code execution); if you have none, give the user the upload_url and the curl command.

Input Schema

NameRequiredDescriptionDefault
sizeYesExact file size in bytes. Checked against your plan's upload limit before anything is reserved.
filenameYesThe file's name, e.g. episode-12.mp4 (display only).
content_typeYesMIME type of the file: mp4, mov (quicktime), webm or mkv (x-matroska).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.6.1

TDQS

A4.8/5.0
Behavior5/5

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

With annotations covering only safety hints, the description carries the operational burden well: it discloses that size is validated against the plan limit and the monthly quota is checked but not yet spent, that the file must be PUT before expires_in seconds with an exact Content-Type, and that quota is actually spent later in create_clip_job. This is behavioral context far 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.

Conciseness4/5

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

Front-loaded with the discriminator ('Step 1 of clipping a LOCAL file'), and every sentence carries actionable content: inputs, validation, return shape, and the numbered follow-up steps. It is dense and long, with the inline curl example adding some bulk, but no sentence is pure filler.

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

Completeness5/5

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

No output schema exists, yet the description enumerates the returned keys (upload_id, upload_url, headers, expires_in, next_steps) and explains how upload_id flows into create_clip_job and polling. For a multi-step, quota-sensitive workflow, nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description adds value by stating that filename and MIME type are passed exactly and that size is checked against the plan's upload limit before anything is reserved, reinforcing the meaning of the size field beyond its schema text.

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

Purpose5/5

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

States a specific verb (upload) and resource (a LOCAL video file) and immediately distinguishes the case from the sibling alternative: 'when the user has a file, not a public link'. An agent can tell apart local-file upload from link-based source ingestion 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.

Usage Guidelines5/5

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

Explicitly scopes when to use it (local file, not public link) and lays out the surrounding workflow, naming the exact follow-up tools katto_create_clip_job and katto_get_job. It also states the capability prerequisite (a tool able to HTTP PUT a file body) and the fallback when that prerequisite is absent.

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