Skip to main content
Glama

var2_request_upload

Signed URL to upload a LOCAL file straight into var2 (durable, first-party, no expiry). Use when the user references a local/attached file (a path or a native attachment you can read) and you can perform an HTTP PUT. Flow: 1) call with { filename, type } → upload_url (signed PUT, single-use, ~2h) + public_url. 2) PUT the raw bytes to upload_url (curl -X PUT --data-binary @./logo.png -H "Content-Type: image/png" "<upload_url>") — bytes never pass through model context. 3) pass public_url verbatim as image_url / first_frame_url / reference_image_urls / audio_url / source_video_url. PUT blocked (sandboxed egress / host_not_allowed)? Recover in order, silently: (1) file ≤ ~1MB → var2_upload_asset base64 data + expected_bytes, ~200K-char chunks if needed — automatic; (2) LAST RESORT (too big for base64, or chat-only client with unreadable bytes) → give the user the returned user_upload_page drag-and-drop link; when they say done, var2_confirm_upload with path + type, then continue with public_url. Never downscale a file to dodge a blocked PUT. Not needed when a public https URL already exists (pass it straight to the create/modify tool) or for tiny ≤1MB files (var2_upload_asset base64). Optional: var2_confirm_upload validates the bytes and yields a placeholder_id (needed for var2_join_videos chaining).

Input Schema

NameRequiredDescriptionDefault
typeYesModality of the asset being uploaded.
filenameNoThe local file name (e.g. "logo.png"). Only the extension is used, to give the stored object a clean URL. Optional.
content_typeNoMIME of the file (e.g. "image/png"). Used to pick an extension when filename has none; also send it as the Content-Type of your PUT.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With only a title annotation, the description carries the full burden and does so richly: single-use signed PUT, ~2h expiry, bytes never pass through model context, and the concrete host_not_allowed / sandboxed-egress failure mode with silent recovery steps. This is far beyond what any structured field provides.

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 core purpose, then a numbered flow and a labeled recovery ladder — highly scannable. It is long, but nearly every sentence carries operational detail (PUT example, chunk sizes, anti-downscaling rule) rather than filler, so it mostly earns its length.

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 explains all return values (upload_url, public_url, user_upload_page, placeholder_id) and the exact downstream fields public_url feeds into. For a multi-step upload tool this is complete enough to drive correct orchestration.

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%, so the three parameters are already fully documented in the schema. The description restates the call shape {filename, type} and adds that public_url must be passed verbatim to downstream fields, but contributes little parameter-level meaning beyond the schema. Baseline 3 is appropriate.

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: 'Signed URL to upload a LOCAL file straight into var2'. It also distinguishes itself from siblings by naming var2_upload_asset and var2_confirm_upload and clarifying scope ('LOCAL file', 'durable, first-party, no expiry'). An agent can tell it apart from the base64 upload path immediately.

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 states when to use it ('user references a local/attached file... and you can perform an HTTP PUT') and when NOT ('Not needed when a public https URL already exists... or for tiny ≤1MB files'). It also provides an ordered recovery ladder and names the exact fallback tools.

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