Skip to main content
Glama

Rendreal

Request an artwork upload slot

order_request_artwork_upload

Step 1 of attaching the customer's finished artwork file to an order line: get a presigned upload URL.

Returns a presigned url, method (PUT), headers, and object_key. Get item_id from order_get_artwork_spec. PUT the raw file bytes straight to url with the headers verbatim (the bytes never pass through Compass), then call order_confirm_artwork_upload with the same object_key. Use for a line that has finished artwork and needs no design from us; prefer order_get_artwork_upload_page when the user has the file but you don't. Only works for orders created in this session. Refused with ItemDesignAttachedError when the item of a multi-item order already holds an attached design: that design is what prints, and changed artwork for the item needs a new order.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "session_id": "<session_id>",
      "order_id": "<order_id>",
      "item_id": "<item_id>",
      "filename": "<filename>",
      "content_type": "<content_type>"
    },
    "name": "order_request_artwork_upload"
  }
}

Input Schema

NameRequiredDescriptionDefault
item_idYes
filenameYes
order_idYes
session_idYes
content_typeYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only cover the safety profile (not read-only, not destructive, not idempotent). The description goes well beyond that by disclosing the return payload shape, the out-of-band upload path ('bytes never pass through Compass'), the session-scoped precondition, and the exact error class plus its cause and workaround. It does not mention expiration of the presigned URL or size/type limits, which would round this out.

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 action and the returned fields, then flows into sequencing, alternatives, and constraints — no filler. The final sentence about ItemDesignAttachedError is a long run-on that packs three ideas, but each earns its place.

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 five-parameter mutation-adjacent workflow step this is essentially complete: entry point, required follow-up call, alternative tool, session constraint, and failure mode are all present, and an output schema exists so return values need only be summarized, which it does.

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 0% across five required parameters, so the description must carry the load. It usefully pins down where item_id comes from (order_get_artwork_spec) and that object_key must be carried forward verbatim, but leaves filename, content_type, order_id, and session_id entirely unexplained — content_type in particular is unconstrained in both schema and text.

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 — 'get a presigned upload URL' — and frames it as step 1 of a three-step attach flow. It explicitly distinguishes itself from order_confirm_artwork_upload (the next step) and order_get_artwork_upload_page (the alternative when the file isn't in hand).

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 explicit selection criteria: use when the line has finished artwork and needs no design work; prefer order_get_artwork_upload_page when the user has the file but the agent doesn't. It also names two hard preconditions — orders must originate in this session, and multi-item orders with an attached design are refused with ItemDesignAttachedError — plus the required new-order remedy.

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