Skip to main content
Glama

Upload artwork

advertiser.artwork.upload

Upload the advert artwork from a public https image URL (PNG or JPEG) or base64. It is converted to the screen's 800 × 480 e-paper format in the 1,307 Wall Marketing colours (solid, no dithering), with a six-colour version for screens on older firmware (render), and checked for nudity and profanity. Returns a creative_id and an image of what the screen will show. Photos work; large, high-contrast words read best from a distance.

Input Schema

NameRequiredDescriptionDefault
fitNocover crops to fill (default), stretch distorts to fill.
nameNoA name to recognise the artwork by.
renderNoThe six-colour version, for screens on firmware before 0.16.0 only: bold (default): solid colours (graphics, text); smooth: dithered (photos); auto picks from the image. Every upload is also converted to the 1,307 colours.
image_urlNohttps:// address of a PNG or JPEG, up to 10 MB.
image_base64NoThe PNG or JPEG file as base64, if there is no URL.

Output Schema

NameRequiredDescriptionDefault
idNoThe creative_id to book with.
nameNoThe name given at upload.
errorNoPresent instead of the other fields when the call failed.
checksNoWhat was checked.
objectNoAlways "creative".
renderNobold or smooth: how the image was converted to the panel's colours.
sourceNoHow it arrived: image, or a ready-made panel file.
statusNoAlways "approved": artwork that fails the checks is refused at upload.
livemodeNoFalse in the sandbox.
created_atNoWhen it was uploaded. ISO 8601, UTC.
preview_urlNoPNG of exactly what the screen will show.
original_typeNoThe uploaded file's type.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / render / description
      Previous value: -"bold (default): solid panel colours, no dithering (graphics, text); smooth: dithered (photos); auto picks from the image."New value: +"The six-colour version, for screens on firmware before 0.16.0 only: bold (default): solid colours (graphics, text); smooth: dithered (photos); auto picks from the image. Every upload is also converted to the 1,307 colours."
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare the write/side-effect profile; the description goes further by disclosing automatic conversion to 800×480 e-paper with a fixed palette, a legacy six-colour render, and content moderation for nudity and profanity. It does not say what happens when moderation rejects the image (error vs. soft failure) or that re-uploading creates a new creative each time, which is the main residual gap.

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?

Dense but front-loaded: the accepted input sources come first, then processing, then return value, then practical content tips. Nearly every clause carries information; the firmware version note is slightly buried mid-sentence but no sentence is filler.

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 5-parameter, open-world write tool with an output schema, the description covers input forms, transformation, moderation, and returns adequately. The missing piece is failure semantics (moderation rejection, oversized/invalid URL) and the implicit either/or requirement on the two image sources.

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 already 100%, so the baseline is 3; the description adds semantic context above that by explaining that the six-colour 'render' path only matters for screens on firmware before 0.16.0 and that every upload is also converted to the 1,307-colour palette. It still doesn't clarify that exactly one of image_url / image_base64 must be supplied, despite zero required parameters.

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 advert artwork) and immediately narrows the accepted inputs (public https PNG/JPEG URL or base64). It also describes the downstream transformation pipeline, so an agent knows exactly what the tool produces and how it differs from every sibling, none of which handle creative assets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Useful practical guidance is given ('Photos work; large, high-contrast words read best from a distance') and the schema covers the fit/render trade-offs, but the description never states when to use this versus not, nor any prerequisites such as an existing booking or screen. With no competing sibling there is little to disambiguate, but the absence of preconditions keeps this at minimum-viable-plus.

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.