Skip to main content
Glama

Get upload

get_upload
Read-onlyIdempotent

What the user has uploaded through a request_image_upload link: the link's state (open, full or expired), how many images are still processing, and the finished creatives with their ids and pictures. An image the library already held is listed as that creative, with alreadyInLibrary, rather than as a copy. Pass a creative's id as creativeId to resize_creative, edit_creative, remove_background or any other tool.

Input Schema

NameRequiredDescriptionDefault
brandIdNoOptional: the brand it belongs to, by id or name. Read from the id when omitted.
uploadIdYesThe uploadId request_image_upload returned.

Output Schema

NameRequiredDescriptionDefault
idYes
mediaYes
statusYes
pendingYes
creativesYes
expiresAtYes
maxImagesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / brandId / description
      Previous value: -"Optional: the brand it belongs to. Read from the id when omitted."New value: +"Optional: the brand it belongs to, by id or name. Read from the id when omitted."
    • addedOutput schema / properties / creatives / items / properties / alreadyInLibrary
      Added value: +{
      +  "const": true,
      +  "description": "The brand's library already held this image, so no new creative was added: the id names that one.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / media / items / properties / previewUrl
      Added value: +{
      +  "description": "A small WebP of it to look at; url is the full size to hand over.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds real behavioral context: the three possible link states, the processing-count semantics, and the alreadyInLibrary dedupe rule (an existing library image is reported as that creative, not a copy). No contradiction with annotations.

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 what the tool returns, then the dedupe quirk, then the downstream handoff. Dense but every sentence carries information; nothing is padded.

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?

An output schema exists so return shape needs no prose, yet the description usefully flags the non-obvious alreadyInLibrary case and the link-state enum values an agent must branch on. Combined with read-only annotations and fully documented params, it is functionally complete.

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 coverage is 100%, so both params (brandId, uploadId) are already documented, and the description largely restates uploadId's origin. The creativeId mentioned is not a parameter of this tool, so it adds no per-parameter meaning here – baseline 3 applies.

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 – retrieving the upload behind a request_image_upload link – and enumerates exactly what comes back (link state, processing count, finished creatives with ids). It is clearly distinguishable from get_creative/list_creatives because it describes upload-session state rather than the creative library itself.

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?

Implies the use case (after request_image_upload, to check open/full/expired state and processing progress) and gives explicit downstream routing: take a creative id into resize_creative, edit_creative, remove_background. It lacks an explicit 'do not use X instead' exclusion against get_creative or list_creatives.

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