Skip to main content
Glama

image_upload_link

Issues presigned URLs (1 h) to PUT WebP images over HTTP, and returns each one's path. That path works for gallery (the answer states the minimum, in gallery.min), for bannerUrl and inside the description as . Ask for several at once with count. WHAT IS EXPECTED OF EACH IMAGE comes in the answer (aspectRatio): 4:3 ratio with a 4 % tolerance, recommended dimensions, real WebP and maximum size, plus the exact command to convert and reframe it. It is the same ratio the /vender assistant crops to, and whatever does not fit is REJECTED on submit ([IMAGEN_PROPORCION], saying which dimensions it had): the server neither converts nor crops, because framing the product is the seller's job. Inside the description the ratio is not enforced. Videos do NOT go through here: they are YouTube links in youtubeLinks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoHow many links to issue in this call (1-21; 1 by default).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
ruleYesThe image rule in one sentence.
linksYesThe links issued, one per image. It can carry FEWER than you asked for if the upload budget ran out halfway.
issuedYesHow many links were actually issued.
galleryYesHow many gallery images the current configuration requires and allows.
maxBytesYesMaximum size of each image, in bytes.
expiresAtYesWhen the links expire, in ISO 8601.
expiresInYesThe same thing in plain language (e.g. 1 hour).
aspectRatioYesWhat is expected of every gallery image and of the banner; anything that does not fit is REJECTED on submit.
howToConvertYesThe exact command to convert and re-crop.
instructionsYesWhat to do now with these links.
recommendedMaxPxYesNo side may go over this many pixels.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed23 schema fields changed
    • changedInput schema / properties / count / description
      Previous value: -"Cuántos enlaces emitir en esta llamada (1-21; por defecto 1)."New value: +"How many links to issue in this call (1-21; 1 by default)."
    • changedOutput schema / properties / aspectRatio / description
      Previous value: -"Lo que se espera de cada imagen de galería y del banner; lo que no encaje se RECHAZA al enviar."New value: +"What is expected of every gallery image and of the banner; anything that does not fit is REJECTED on submit."
    • changedOutput schema / properties / aspectRatio / properties / enforcedAt / description
      Previous value: -"Dónde se comprueba la proporción."New value: +"Where the aspect ratio is checked."
    • changedOutput schema / properties / aspectRatio / properties / format / description
      Previous value: -"El único formato admitido: image/webp."New value: +"The only accepted format: image/webp."
    • changedOutput schema / properties / aspectRatio / properties / maxBytes / description
      Previous value: -"El mismo tamaño máximo por imagen."New value: +"The same maximum size per image."
    • changedOutput schema / properties / aspectRatio / properties / ratio / description
      Previous value: -"La proporción exigida, en texto (p. ej. «4:3»)."New value: +"The required aspect ratio, as text (e.g. 4:3)."
    • changedOutput schema / properties / aspectRatio / properties / recommendedHeight / description
      Previous value: -"Alto recomendado en píxeles."New value: +"Recommended height in pixels."
    • changedOutput schema / properties / aspectRatio / properties / recommendedWidth / description
      Previous value: -"Ancho recomendado en píxeles."New value: +"Recommended width in pixels."
    • changedOutput schema / properties / aspectRatio / properties / tolerance / description
      Previous value: -"Cuánto se admite desviarse de esa proporción."New value: +"How far you may deviate from that aspect ratio."
    • changedOutput schema / properties / expiresAt / description
      Previous value: -"Cuándo caducan los enlaces, en ISO 8601."New value: +"When the links expire, in ISO 8601."
    • changedOutput schema / properties / expiresIn / description
      Previous value: -"Lo mismo dicho en lenguaje llano (p. ej. «1 hora»)."New value: +"The same thing in plain language (e.g. 1 hour)."
    • changedOutput schema / properties / gallery / description
      Previous value: -"Cuántas imágenes de galería pide y admite la configuración vigente."New value: +"How many gallery images the current configuration requires and allows."
    • changedOutput schema / properties / gallery / properties / max / description
      Previous value: -"Máximo de imágenes de galería."New value: +"Maximum number of gallery images."
    • changedOutput schema / properties / gallery / properties / min / description
      Previous value: -"Mínimo de imágenes de galería para poder enviar."New value: +"Minimum number of gallery images needed to be able to submit."
    • changedOutput schema / properties / howToConvert / description
      Previous value: -"El comando exacto para convertir y reencuadrar."New value: +"The exact command to convert and re-crop."
    • changedOutput schema / properties / instructions / description
      Previous value: -"Qué hacer ahora con estos enlaces."New value: +"What to do now with these links."
    • changedOutput schema / properties / issued / description
      Previous value: -"Cuántos enlaces se emitieron de verdad."New value: +"How many links were actually issued."
    • changedOutput schema / properties / links / description
      Previous value: -"Los enlaces emitidos, uno por imagen. Puede traer MENOS de los pedidos si el presupuesto de subidas se agotó a mitad."New value: +"The links issued, one per image. It can carry FEWER than you asked for if the upload budget ran out halfway."
    • changedOutput schema / properties / links / items / properties / path / description
      Previous value: -"La ruta que vale para `gallery`, `bannerUrl` o un <img src> de la descripción."New value: +"The path that works for `gallery`, `bannerUrl` or an <img src> inside the description."
    • changedOutput schema / properties / links / items / properties / presignedUrl / description
      Previous value: -"URL prefirmada: sube la imagen con un PUT HTTP y Content-Type image/webp."New value: +"Presigned URL: upload the image with an HTTP PUT and Content-Type image/webp."
    • changedOutput schema / properties / maxBytes / description
      Previous value: -"Tamaño máximo de cada imagen, en bytes."New value: +"Maximum size of each image, in bytes."
    • changedOutput schema / properties / recommendedMaxPx / description
      Previous value: -"Ningún lado puede pasar de estos píxeles."New value: +"No side may go over this many pixels."
    • changedOutput schema / properties / rule / description
      Previous value: -"La regla de las imágenes en una frase."New value: +"The image rule in one sentence."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it does so thoroughly: presigned URLs expire in 1 hour, the HTTP method is PUT, the server rejects non-conforming images on submit, the server neither converts nor crops, dimension/ratio tolerance is specified, and the description's ratio is not enforced. This goes well beyond the input schema and gives an agent an accurate mental model of the behavior.

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?

The description is dense and front-loaded, starting with the core action before moving to requirements, constraints, and exclusions. Every sentence conveys a distinct requirement and none is filler, though the paragraph is long and the all-caps phrases make it less polished than it could be.

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?

For a nuanced upload tool with no annotations, this description is remarkably complete: it covers URL expiry, HTTP method, accepted format, aspect ratio tolerance, recommended dimensions, maximum size, conversion command, rejection behavior and error code, where the path is valid, where constraints are not enforced, and the alternative for videos. An output schema is present, so the return-value description is sufficient without enumerating fields.

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?

The only parameter, count, is already fully documented in the schema with type, range (1-21), and default (1), and schema coverage is 100%. The description merely repeats 'Ask for several at once with count', adding no meaningful semantic detail beyond the schema, so the baseline score of 3 is appropriate.

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 opens with a precise verb and resource: it issues presigned URLs for PUT-ing WebP images and returns each one's path. It further narrows the purpose by stating which fields the path works in (gallery, bannerUrl, inline description) and by explicitly excluding videos, which differentiates it from sibling upload tools like evidence_upload_link and zip_upload_link.

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: for WebP images intended for gallery, banner, or description placement, with the count parameter for batching. It also provides a when-not case ('Videos do NOT go through here') and points to the alternative mechanism (YouTube links in youtubeLinks). It does not explicitly contrast with the other upload sibling tools, but the domain is sufficiently clear.

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