Skip to main content
Glama

Showoff.dev – AI Mockup Generator

Upload a screenshot or song

upload_media

Adds an image from a public URL (or small base64) to the project's media library, analyzes its colors and aspect, and optionally puts it on a device screen. A song (MP3, M4A, WAV …) is analyzed for tempo and drops; in a launch video it becomes the music. For files on your own disk use get_upload_link instead — never pipe base64 through a shell into this tool, it is slow and gets cut off.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPublic http(s) URL of a PNG/JPEG/WebP/AVIF image.
nameNoOptional file name for the media library, e.g. "home.png".
assign_toNoDevice id whose screen should show it.
project_idYesProject id (from create_project or list_projects).
data_base64NoOnly for tiny images or clients without a shell. A screenshot is ~100 000 base64 characters and takes minutes to write — for files on disk use the curl commands from create_project / get_upload_link.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare write (readOnlyHint=false), openWorldHint=true, destructiveHint=false, so the safety profile is mostly covered. The description still adds real behavioral context the annotations don't: analysis side effects, the optional device-screen assignment, that base64 writes are minutes-slow and get truncated, and that songs become music in a launch video.

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?

Three sentences, front-loaded with the primary behavior and ending with the routing warning. It is on the dense side and repeats some base64 warnings already in the schema, but every sentence carries actionable information.

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?

For a mutation tool with no output schema, the description covers what gets created and what analysis happens, but says nothing about the return value (e.g. a media id to reference later) or whether re-uploading the same URL deduplicates. These are minor gaps against an otherwise complete definition.

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 meaning the schema lacks: the url parameter is documented for images only in the schema, yet the description clarifies it also accepts audio (MP3, M4A, WAV) and explains the url-vs-data_base64 tradeoff (small base64 only, minutes-slow, truncated). That is genuine added semantic value.

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 (adds image/audio to the project's media library) and enumerates the resulting behaviors (color/aspect analysis, tempo/drop analysis, optional device assignment). It also explicitly distinguishes itself from the sibling get_upload_link, so an agent can tell them apart without opening either schema.

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?

Gives explicit routing: use this tool for public URLs or tiny base64, use get_upload_link for files on your own disk, and never pipe base64 through a shell. The when-to-use and when-not-to-use conditions are both spelled out with the alternative named.

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