Skip to main content
Glama

Printdash

Get an upload link for artwork

request_artwork_upload

For a client that holds the file (Claude Code, Cursor, a script): returns a signed upload_url to PUT the file's bytes to, and an upload_id for attach_artwork. target says where it goes: a cart line (line_id from get_cart), a saved quote's line (line_id from get_quote) or an order job (item_id from get_order), plus design (1 to N, on a job with several designs) and side (front or back). Give the file name with its extension (pdf is best; ai, eps, psd, jpg, png and tif are accepted) and its size in bytes, up to 700 MB. Refused when the line's artwork can no longer change. A chat client that cannot send a file should use attach_artwork_from_url or get_artwork_uploader_link instead. Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.

Input Schema

NameRequiredDescriptionDefault
targetYesWhere the artwork goes.
file_nameYesThe file's name with its extension: business-card.pdf. PDF is best.
size_bytesYesThe file's size in bytes (up to 700 MB).
content_typeNoOptional; the type is decided by the extension, as the site's uploaders do.

Output Schema

NameRequiredDescriptionDefault
nextYes
sideYes
designYes
methodYes
targetYes
headersYes
file_nameYes
max_bytesYes
upload_idYesPass to attach_artwork once the PUT succeeded.
expires_atYes
upload_urlYesPUT the file's bytes here, with the Content-Type in headers.
content_typeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false), which only say it is a non-destructive write. The description adds the two-step mechanics (connection returns a link, the file is PUT elsewhere, upload_id is what attach_artwork consumes), a hard 700 MB cap, the refusal condition, and the sign-in handshake behavior 'the connection asks the customer to sign in on printdash.io'.

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 decisive qualifier ('For a client that holds the file') before any mechanics. Dense and largely waste-free, though it is one long paragraph with several parenthetical asides that cost some readability.

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 4-parameter nested-target tool with an output schema, nothing an agent needs is missing: it knows who should call it, what it returns (upload_url, upload_id), where to send the bytes, the size cap, the refusal case, and the follow-up tool (attach_artwork).

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 real meaning: it maps each target kind to its source tool (get_cart, get_quote, get_order), explains design and side usage in situ, and supplies the accepted format list (pdf best; ai, eps, psd, jpg, png, tif) that the schema does not.

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 concrete verb+resource: returns a signed upload_url to PUT bytes to plus an upload_id for attach_artwork. It also names the audience ('a client that holds the file'), which separates it from every sibling that attaches artwork by URL or inline.

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

Usage Guidelines5/5

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

Gives an explicit selection rule for the whole family: use this when the client holds the file, use attach_artwork_from_url or get_artwork_uploader_link when a chat client cannot send a file. It also states a precondition/refusal condition ('refused when the line's artwork can no longer change') and the auth requirement.

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