# Toolbox POD

> Design custom shirts and hoodies, make mockups, publish to Shopify or WooCommerce, and order prints.

- name: com.toolboxpod/mcp
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 94/100
- quality: 94/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.toolboxpod%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/com.toolboxpod%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "toolboxpod": {
      "type": "http",
      "url": "https://mcp.toolboxpod.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 96
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-89% +updated-2d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 24 of 24 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 6,398 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 2 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 24, about 6,398 tokens to load them all
- tool set hash: 132778524183ffe8c24e16efaed1e408
- badge: [![protogrid quality](https://protogrid.dev/badge/com.toolboxpod/mcp.svg)](https://protogrid.dev/servers/com.toolboxpod/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.toolboxpod.com/mcp (streamable-http, auth none, reachable true, uptime30d 0.8888889)

## Packages

_none_

## Tools (24)

- `activate_design`: Approve a design for printing so it can be ordered (its print files go to production). First show the person the design (get_mockup) and ask; call this only after they say yes. Owner or Manager only; free.
- `create_design`: Make a NEW design: uploaded artwork placed on the front and/or back of a garment. To show or order a design that already exists, find it with list_designs first; don't create a new design for the same artwork. Ask the person what to call it (title) and list every warning code in acknowledgedWarnings. A new design is not approved for printing until activate_design.
- `create_estimate`: A quick nonbinding price for approved designs (design, size, quantity), shipping included. Creates nothing: when the person asks for an order, use create_order instead (drafting is free).
- `create_order`: Create a draft order for one US recipient and get its total (offer.totalCents, shipping included). Drafting is free, so no need to ask first; nothing is charged: tell the person the total and ask before paying (nextStep says how). Leave out storeId (the direct-order store is used) and externalReference (one is made) unless you have them.
- `create_support_request`: Send support a message about an order; you get a reference back. Support replies by email to the person on the account, not here.
- `discard_order`: Throw away an order that was never paid (no payment tried). Cannot be undone.
- `generate_design`: Draw a design with AI. With reference ids (upload_design_reference) it recreates it closely and brief says only what to change; without, brief describes the design (what it shows, exact words, style). Uses 1 of the account's 20 free AI images a month (at most 15 a day); nothing is charged. Then poll get_generation_job until status is review. Only use images and text the person owns or may use (Toolbox POD Terms of Service).
- `get_checkout_link`: A link to the Toolbox POD website where the person, signed in, reviews an order's total and pays for it (a draft, quoted or payment-held order). Changes nothing and charges nothing; only the account Owner can pay there.
- `get_design`: One design: its sides and placement, warnings, whether it is approved for printing and whether production has its print files. withHashes adds its exact print spec and two hashes. The client shows these pictures to the person: refer to each by its label, and never write a preview link as a markdown image. Give it as a plain link only if the person asks to open or download it, or can't see it, and do not generate, draw or edit your own version of the shirt, design or product.
- `get_generation_job`: An AI design job: its status, versions and nextStep. Judge versions once it is in review: then use_design_version, try_another_version or request_design_changes. When ready, artworkId goes to create_design.
- `get_mockup`: Show a design on a shirt in one color and side, as a picture the client shows to the person: call it by its label. To show an existing design, find it with list_designs first. For a model wearing it, pass look: a model look from list_mockup_looks, in a color it has. Give previews[].url as a plain link, only if they ask to open or download it (it expires in 24 hours); never write it as a markdown image. Free: our own photos. If a look or color is refused, offer the ones that exist; never generate a picture of the design yourself.
- `get_order`: One order, by its id or its number (#1042): its lines, quote (quoteId and totalCents), status and hold reason, packages and tracking, the latest payment attempt and its production state.
- `get_rates`: The price list in cents: one shirt per garment and size, one- or two-sided, plus one flat shipping fee per order. Ships to the 50 US states and DC only. For a total, don't add it up yourself: use create_estimate or create_order.
- `list_artwork`: Uploaded artwork, newest first (also files uploaded on the website), each with its artwork id for create_design and its warnings. search matches part of the filename; artworkId gives one file with how large it prints.
- `list_designs`: The account's designs, newest first, each with its id (for get_mockup and create_order), name, garment, sides and approved (true = can be ordered). query finds one by name. Look here before creating a design: a new design starts unapproved. The client shows these pictures to the person: refer to each by its label, and never write a preview link as a markdown image. Give it as a plain link only if the person asks to open or download it, or can't see it, and do not generate, draw or edit your own version of the shirt, design or product.
- `list_garments`: What you can print on (GD64, CC17, …), with their color codes and names, sizes, print areas in inches and artwork rules. code gives just one.
- `list_mockup_looks`: Our real photo looks for one garment, model shots first, with the colors each has. For "a model wearing it": get_mockup with look set to the model look modelLookFor names for that color. No tool generates a model photo with AI. With designId, the first few show that design. Free. The client shows these pictures to the person: refer to each by its label, and never write a preview link as a markdown image. Give it as a plain link only if the person asks to open or download it, or can't see it, and do not generate, draw or edit your own version of the shirt, design or product.
- `list_orders`: Orders, newest first (limit 1 gives the latest), each with its status and a plain-words progress note. get_order has the lines, tracking and payment.
- `purchase_order`: Pay for an order with the account's card: real money. BEFORE calling it, tell the person the total (shipping included) and ask them to confirm; call it only after they say yes, unless they clearly asked to pay right now ("buy it now", "go ahead and pay"). "Order", "make an order" or "order these" alone is NOT that: create the order, show the total, and ask. Pass the quoteId and totalCents of the order's offer (create_order, update_order or get_order). The same idempotencyKey never charges twice. If paying is not set up (Owner only, a spending limit, a card), the order is held, nothing is charged, and the result says what the person must do.
- `retry_order`: Try paying for a held order again (an earlier attempt is checked first, so nothing is charged twice). BEFORE calling it, tell the person the total and ask them to confirm, unless they clearly asked to pay for this order right now. Needs an idempotencyKey; a refusal charges nothing.
- `update_order`: Change the recipient or lines of an order that was never paid (no payment tried). It is quoted again: offer has the new quoteId and total, nextStep how to pay. The lines given replace all the lines.
- `upload_artwork`: Upload a PNG and get an artwork id for create_design, with how large it can print. Pass pngUrl (a public HTTPS link; preferred) or pngBase64, not both. A file on the person's computer: ask them to upload it at https://toolboxpod.com/app/library?tab=artwork, then find it with list_artwork.
- `use_design_version`: Chooses this version as the design and makes its print file (free). Once the job is ready, its artworkId goes to create_design.
- `whoami`: Call this first. Returns the account, the person's role, its stores and readiness: whether orders can be paid now and, if not, nextSteps, each with the website link that fixes it. Call it again after the person has done a step.
