Skip to main content
Glama

Printdash

Attach artwork from a link

attach_artwork_from_url
Destructive

Fetches the file at an https link (a Canva, Figma or design tool export, Dropbox or Drive download link, a signed storage URL) up to 700 MB and attaches it like attach_artwork: target (cart_line, quote_line or order_item with its id, design, side), url, and file_name when the link's own name has no extension. A link that opens a web page instead of the file is refused, and so is a file whose contents do not match its extension. For a Canva export, name it canva-.pdf with the Canva design id: Printdash recognises Canva files by that name (they arrive at finished size by design, so the bleed notice is dropped and the studio checks bleed). Needs a signed-in Printdash account: called without one, the connection asks the customer to sign in on printdash.io.

Input Schema

NameRequiredDescriptionDefault
urlYesAn https link that downloads the file itself (not a page showing it).
targetYesWhere the artwork goes.
file_nameNoThe name to store it under, with its extension, when the link's own name has none. For a Canva export: canva-<designId>.pdf.

Output Schema

NameRequiredDescriptionDefault
fileYes
nextYes
sideYes
filesYes
totalYes
checksYes
designYes
targetYes
designsYesWhich file and page is each design's front and back, as the site resolves them.
previewYes
attachedYes
completeYesDesigns with every face they need.
replacedYes
uploader_urlYes
order_item_statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior the annotations don't carry: a 700 MB limit, refusal of HTML pages and mismatched content/extension, the auth requirement that prompts the customer to sign in on printdash.io, and the Canva-specific bleed handling. These are exactly the traits an agent needs before invoking a destructive, open-world operation.

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 purpose and target semantics, then constraints, then the Canva special case, then auth – a sensible order. It is a single dense paragraph, which costs a little readability, but no sentence is redundant.

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 destructive mutation with an output schema and fully documented nested params, this covers everything an agent needs: source format constraints, size cap, failure modes, auth requirement, and the exception that applies to Canva exports.

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?

With 100% schema coverage the baseline is 3, but the description adds genuine meaning: when file_name is required (link's own name has no extension) and the mandatory canva-<designId>.pdf convention Printdash uses to recognise Canva exports. That naming rule is not derivable from the schema and materially affects correct invocation.

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 ('fetches the file at an https link ... and attaches it') and explicitly differentiates from the sibling attach_artwork by being URL-based. An agent can tell this apart from attach_artwork_inline (local bytes) and attach_artwork without opening a schema.

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 https-link constraint plus the 'like attach_artwork' reference routes the agent: use this when the artwork lives at a URL. It also explains the rejection cases (page link instead of file, extension mismatch), which is real usage guidance. It stops short of naming attach_artwork_inline explicitly as the alternative for local files, so routing to that sibling relies on inference.

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