Skip to main content
Glama

Start a media upload

create_upload_url

Starts an upload of your own image, video or audio for use in generate_video (for example a clip to edit with Gemini Omni), generate_image, frame_chain or compose_scene. Returns a short-lived upload_url: send the raw file bytes with an HTTP PUT and the returned upload_headers, then pass asset_url as-is to a generation tool (it is verified automatically). Limits: images 20 MB, video 200 MB and 30 s, audio 50 MB.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
size_bytesNoOptional file size in bytes, so an oversized file is refused before you send it.
content_typeYesThe file type: image/jpeg, image/png, image/webp, video/mp4, video/quicktime, video/webm, audio/mpeg, audio/wav or audio/mp4 (m4a).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only mark this as non-read-only, non-idempotent and non-destructive; the description adds substantial behavior beyond that — the URL is short-lived, bytes go via HTTP PUT with the returned upload_headers, and asset_url is verified automatically. It still omits how long the URL lives and whether repeated calls create duplicate uploads.

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

Conciseness4/5

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

Purpose, downstream tools, return usage, and limits are packed into one front-loaded paragraph with no filler. It is dense but every clause carries operational information; a small readability cost for the run-on handoff sentence.

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

Completeness5/5

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

There is no output schema, yet the description names the returned fields (upload_url, upload_headers, asset_url) and explains exactly how to use each, plus size/duration limits. Nothing needed to complete the upload-then-generate flow 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% and both parameters are documented, so the baseline would be 3. The description earns extra credit by giving per-type limits (images 20 MB, video 200 MB/30 s, audio 50 MB), which supplies meaning to size_bytes and constrains content_type beyond the enum list.

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?

Opens with a specific verb plus resource ('Starts an upload of your own image, video or audio') and immediately names the downstream consumers. It is clearly distinguishable from the other upload siblings (upload_from_url, upload_media_data, confirm_upload) because it produces a URL to PUT bytes to rather than accepting an existing URL or inline data.

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

Usage Guidelines4/5

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

It gives a concrete usage context (own media for generate_video, generate_image, frame_chain, compose_scene) and the full handoff sequence to a generation tool. What is missing is explicit routing versus upload_from_url and upload_media_data, which an agent must otherwise infer from names alone.

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.

Resources