Skip to main content
Glama

Save an uploaded image to the media library

save_media_image
Destructive

Persists an uploaded image in the media library after the client has PUT it to the signed URL.

Instructions

Rate limit: 100 requests / 10 seconds per shop. See Rate limiting.

Persists an uploaded image in the media library after the client has PUT it to the signed URL

Input Schema

NameRequiredDescriptionDefault
widthNo
heightNo
accountNoExact private shop profile label; not a provider identity or authorization proof.
confirmNoSet true only when the user asked for exactly this action.
fileUrlNo
payloadNoComplete current native JSON body; cannot mix with native body flags or payload_file.
payload_fileNoAbsolute regular non-symlink native JSON body file, at most1MiB. Cannot mix with payload or body flags.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.0.0
    • changedInput schema / properties / confirm / description
      Previous value: -"Explicit approval for this exact provider effect or local private-file operation."New value: +"Set true only when the user asked for exactly this action."
  2. First observedv2.0.0

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare it as a non-readonly, destructive, non-idempotent, open-world write. The description adds genuinely new context beyond that: a concrete rate limit (100 requests / 10 seconds per shop) and the prerequisite that the client must have already PUT the file to the signed URL. It still doesn't say what happens on failure or duplicate submission, but the additions are substantive.

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?

Very brief and free of padding, with two purposeful sentences. Mild deduction: the boilerplate rate-limit line is front-loaded ahead of the actual purpose statement, so the tool's function is not the first thing the agent reads.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with a nested payload, no output schema, and no required fields, the description covers the workflow entry point and rate limit but omits the payload shape, the meaning of 'confirm', and any return behavior. It is adequate but leaves real gaps that the schema only partially fills.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 57%, and the description explains no parameters at all — width, height, fileUrl, and the payload/payload_file mutual exclusion are left entirely to the schema. With zero required parameters and a nested payload object, the description should clarify what actually needs to be supplied, but contributes nothing here.

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?

States a specific verb+resource: 'Persists an uploaded image in the media library.' The reference to 'after the client has PUT it to the signed URL' places the tool at a precise point in the upload workflow, which implicitly separates it from siblings like request_media_upload_url, though that sibling is never named.

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?

Usage timing is implied by the phrase 'after the client has PUT it to the signed URL', which tells the agent this is the final step following a signed-URL upload. However, no alternative tool is named and no explicit when-not-to-use condition is given, so the agent must infer the sequencing from the upload pipeline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools