Skip to main content
Glama

create_upload

Upload a local image or video to VerseIn. In chat apps, call it with no filename or size_bytes: it shows an upload card where the user picks the file, and the card uploads it and returns media_url. Agents that hold the file and have network access pass its filename and exact size_bytes instead, then PUT it to the returned upload_url with the returned headers. Pass media_url to generation tools.

Input Schema

NameRequiredDescriptionDefault
modelNomodel the file is for. An image model (for an image) or a video upscaler (for a video) applies its own size limit; any other model, such as the video model a first frame is for, is accepted and changes nothing
filenameNoname of a file you hold, with extension: .jpg, .jpeg, .png, .webp, .mp4 or .mov. Omit it to just show the upload card; never invent one
size_bytesNoexact size in bytes of a file you hold and will PUT yourself. Omit it to just show the upload card; never estimate it

Output Schema

NameRequiredDescriptionDefault
errorNopresent only when the call failed
methodNo
headersNoheaders the PUT must send, every one of them exactly as given
media_urlNopass this to generation tools after the upload succeeds
upload_urlNoPUT the raw file bytes here
expires_in_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: the two-phase flow (create → PUT → media_url), the network requirement for direct uploads, and the fact that the chat-app path delegates to a user-driven card. These are non-obvious behavioral traits for a tool with readOnlyHint=false and no idempotency (idempotentHint=false is meaningfully reinforced by the one-shot upload semantics). Nothing here contradicts the declared annotations.

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 sentences, front-loaded with the action, then the two modes, then the follow-up step. Every sentence carries decision-relevant information with no filler or repetition of schema text.

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?

Despite an output schema existing, the description covers the return contract that matters for callers (upload_url, headers, media_url) and tells the agent what to do next. For a three-parameter, non-destructive creation tool with an open-world PUT step, nothing essential 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 goes further by explaining that filename and size_bytes are a paired mode switch — omitting them shows the card, supplying them means the caller does the PUT itself. This adds operative meaning about when to supply them, though it does not elaborate on the model parameter's size-limit behavior beyond what the schema says.

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 and resource ("Upload a local image or video to VerseIn") and immediately scopes it to local files, which implicitly separates it from import_media_from_url and pick_media. It also names the two operational modes and the downstream consumer ("generation tools"), so an agent knows exactly what the tool produces.

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?

Gives explicit conditional guidance: chat apps call it with no filename/size_bytes to show the upload card, while agents holding the file and with network access pass filename plus exact size_bytes. The follow-up action ("PUT it to the returned upload_url with the returned headers") and next step ("Pass media_url to generation tools") are stated. It stops short of naming alternatives like import_media_from_url or pick_media for the cases this tool does not cover.

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