Skip to main content
Glama

Create file upload

create_file_upload

Start an upload for a large file, or when file bytes cannot be inlined. Returns { fileId, uploadUrl }. PUT the raw file bytes to uploadUrl with NO Authorization header (it is a short-lived pre-signed URL). Then call get_file with { fileId, wait: true } to wait until processing finishes, and pass the returned fileId to workflows, tools, logos, or B-roll. For small files, prefer upload_file.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNoMedia or document kind to associate with the upload. Inferred after processing when omitted.
displayNameYesHuman-readable label used to identify the uploaded asset in the VideoGen library.
isTemporaryNoWhen true, the file is temporary (guaranteed available for 24 hours, not analyzed for search). Defaults to false.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileIdYesFile id to use after uploading bytes (vg_file_...).
uploadUrlYesPre-signed URL: PUT raw file bytes here with no Authorization header.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / displayName / description
      Previous value: -"Display name for the file."New value: +"Human-readable label used to identify the uploaded asset in the VideoGen library."
    • changedInput schema / properties / type / description
      Previous value: -"File type. Inferred after processing when omitted."New value: +"Media or document kind to associate with the upload. Inferred after processing when omitted."
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare the mutation safety profile, but the description adds critical non-obvious behavior: the return shape { fileId, uploadUrl }, the required PUT mechanics, the explicit warning that NO Authorization header must be sent to the short-lived pre-signed URL, and the post-upload wait step. This is exactly the operational context an agent cannot derive from structured fields.

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

Conciseness5/5

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

Four tight sentences, front-loaded with the trigger condition, then output shape, then required call mechanics, then the alternative. Every sentence carries distinct actionable content with no 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?

Complete for a multi-step upload tool: it covers the pre-signed URL protocol, the follow-up get_file call, and where the returned fileId can be consumed. The presence of an output schema means it needn't explain return values further, and it doesn't over-explain.

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

Parameters3/5

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

Schema description coverage is 100%, and all three params (type, displayName, isTemporary) are already well documented there. The description adds no parameter-level syntax or defaults beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb+resource ('start an upload for a large file') and immediately scopes it against the sibling upload_file ('For small files, prefer upload_file'). An agent can distinguish this from upload_file and open_uploader without opening either schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use conditions ('large file, or when file bytes cannot be inlined'), names the alternative for the opposite case, and lays out the follow-up sequence (PUT to uploadUrl, then get_file with wait:true). Nothing about selection 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.