Skip to main content
Glama

Upload asset

upload_asset

Upload an image into the asset library so it can go on ads. Send the bytes base64-encoded in data (with an optional file_name), or a url to copy from — fetched once and stored, so a link that expires keeps working. JPEG, PNG, WebP or GIF up to 10 MB; Growomat reads the type, width and height from the file itself and counts it against the plan's storage. Returns the asset: url is its stable address (bind that), previewUrl a short-lived link you can open. Then attach it with attach_asset_to_ad (role MARKETING_IMAGE puts it on a card) or attach_asset_to_campaign. A chat card needs one image of at least 640 × 640. Scoped to the active Space — see set_active_space to switch, or pass space_id to override for this one call.

Input Schema

NameRequiredDescriptionDefault
urlNoA public http(s) URL to copy the image from. Send this or data.
dataNoThe image, base64-encoded (a data: URL is accepted). Send this or url.
nameNoDisplay name in the library.
tagsNoFree-form tags for finding the asset later.
typeNoWhat the asset is used as. Default IMAGE.
alt_textNoAlternative text describing the image.
space_idNoOverride the active Space for this one call. Defaults to the active Space set via set_active_space (or GROWOMAT_SPACE_ID on the server). Pass to read/write a different Space without changing the session binding.
file_nameNoThe stored file's name (with data). Defaults to image.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/destructiveHint annotations: it discloses that a URL is fetched once and stored so expiring links keep working, that type/width/height are read from the file itself, that the image counts against the plan's storage quota, and that url is the stable address while previewUrl is short-lived. These are real operational consequences an agent would otherwise have to guess.

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-loaded with the core action and the two payload options before limits, return shape, and follow-up steps. Dense but almost every sentence carries information; the space-scoping sentence at the end is slightly tacked-on but still necessary.

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?

No output schema exists, yet the description explains the returned asset fields (url vs previewUrl) and their intended use, plus the constraints and next steps an agent needs. Missing only failure behavior such as duplicate names, quota exhaustion, or unsupported-format errors.

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: file_name pairs with data, url is copied once rather than hot-linked, and space_id overrides the session binding for a single call. It says nothing about the IMAGE vs LOGO type enum, tags, or alt_text, so it does not cover the full surface.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource ('Upload an image into the asset library so it can go on ads') with scope and downstream use stated. It does not distinguish itself from close siblings like create_asset, start_asset_upload, or complete_asset_upload, which an agent could easily confuse with this one.

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?

Gives clear operating context: two mutually exclusive input paths (base64 data vs url), the 10 MB / JPEG-PNG-WebP-GIF envelope, the 640x640 minimum for chat cards, and the follow-up tools (attach_asset_to_ad with role MARKETING_IMAGE, or attach_asset_to_campaign). It does not state when to use this over create_asset or the multi-step start/complete_asset_upload flow.

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