Skip to main content
Glama

upload_media

Store a photo or video the human wants in a post, from an https URL or base64. Returns a workspace-owned URL to put in any media slot of a film body (describe_film lists the slots) — the renderer reads it directly. Images: PNG/JPG/WebP up to 15 MB. Videos: MP4/MOV/WebM up to 200 MB. The same bytes are stored once (content-hashed).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPublic https URL of the photo or video to store. Pass this or base64.
kindNoauto (default), image, or video. Detected from the bytes when auto.auto
nameNoHuman-readable name for the file.
base64NoThe media bytes as base64, if you have no URL. Pass this or url.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the minimal annotations, the description discloses content-hashing/deduplication, workspace-owned URL output, direct renderer consumption, and strict format/size limits. This gives the agent meaningful behavioral expectations that annotations alone do not provide.

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?

Five compact sentences deliver the core action, output, usage context, format limits, and deduplication behavior with no redundancy. The most important fact (what the tool stores and returns) appears immediately.

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

Completeness4/5

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

The description, combined with fully documented parameters and an output schema, covers the essential invocation details: accepted input forms, limits, and where the result belongs. It omits edge cases like passing both url and base64, but the schema already hints at the either/or relationship.

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, but the description adds value by clarifying the url/base64 mutual-exclusion and the practical format and size constraints that apply to media bytes. This goes beyond mere restatement of parameter names.

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?

The description states a specific verb/resource: storing a photo or video from https or base64. It also situates the tool within the workflow by noting the returned URL goes into film-body media slots, distinguishing it from sibling upload/render tools.

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?

The description gives clear context for when to use the tool — preparing media for a film body — and even points to describe_film for slot names. It does not explicitly name sibling tools like upload_product_screen or render_asset to state when not to use them, so it misses full exclusion guidance.

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.