Skip to main content
Glama

Upload Media

upload_media

Kept for apps that already use it; new work uses upload_reference_asset. Same checks either way: a picture of a real person's face is protected automatically when it is used. Upload one image into your Switch library in a single call. Pass url (any public https) OR base64 + mime. Switch fetches/decodes it server-side, stores it, and returns a clean public URL plus the new asset id. This is THE way to use a photo the user attached in chat as a reference: pass the returned url directly into generate_image's reference_image_urls, OR into generate_video's image_url (image-to-video) or reference_image_urls (reference / omni video). The returned URL is provider-fetchable as-is — no presigned PUT, no curl, no confirm-upload step. Do NOT call get_my_active_references for a chat-attached photo; that strip only holds Studio-managed refs.

Input Schema

NameRequiredDescriptionDefault
urlNoAny public https URL — Switch fetches it server-side.
mimeNoMIME type when sending base64. Default image/png.
base64NoBase64-encoded image bytes (use this when there is no public URL).

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?

Goes well beyond the annotations by describing side effects: server-side fetch/decode, storage, return of a public URL plus asset id, provider-fetchable output with no presigned PUT or confirm step, and automatic face protection for real people. The main omission is behavior on repeat uploads, which matters given idempotentHint=false (a duplicate upload presumably creates a second asset, but that is not stated).

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-loads the deprecation and the core behavior, then usage details. Dense and mostly waste-free, though the get_my_active_references prohibition and repeated URL-passthrough guidance take more space than the core instruction needs.

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, and the description covers the return value (public URL + asset id) and downstream consumption. With annotations carrying the safety profile and the schema carrying parameter shapes, an agent has everything needed to call this correctly.

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 baseline is 3. The description does add the either/or semantics ('url OR base64 + mime') that the schema alone leaves implicit since no parameters are required, but it adds no format, size, or validation detail.

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 one image into your Switch library in a single call') and immediately distinguishes itself from its successor upload_reference_asset via the legacy notice. An agent knows exactly what this does and which sibling overlaps it.

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 names the replacement tool for new work, gives the positive use case (chat-attached photo as a reference), tells where to pass the returned URL (generate_image reference_image_urls, generate_video image_url / reference_image_urls), and includes a hard exclusion: do NOT use get_my_active_references for chat photos.

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