Skip to main content
Glama

Tapercraft — VHS Label Maker

compose_design

Build a label design and return a URL the user opens to finish it. Designing and previewing are free; exporting a print-ready file requires a membership, so present the URL as a starting point the user completes in their browser. Fields listed in the response as "unsupported" were NOT applied — tell the user rather than reporting them as done. The user's own image files cannot be attached through this tool: uploads happen in the browser, so for a design around their own photos compose from the nearest match (or just format + title) and tell them to drag their images in after opening the URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textNoOverrides for the fetched metadata (video formats only — on audio formats these come back as unsupported). Omit a field to keep the provider value.
styleNo
formatYesWhich packaging format
layoutNo
contentNoWhat the design is of. Provide a query, or an id from search_content. Video formats take movie/tv; audio formats (cassette, jcard, cd*, vinyl*, minidisc*) take album. For audio, the album alone builds the complete design — cover art, tracklist sides, QR code — and style.font / labelColor / background restyle it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / format / enum
      Previous value: -[
      -  "slipcover",
      -  "side-load-vhs",
      -  "doublevhs",
      -  "betamax",
      -  "compact-tape",
      -  "bluray-cover",
      -  "bluray-slipcover",
      -  "dvd-cover",
      -  "clamshell",
      -  "polycase",
      -  "cardbox",
      -  "disc",
      -  "cassette",
      -  "cassingle",
      -  "jcard",
      -  "cd",
      -  "cd-tray",
      -  "cd-insert",
      -  "vinyl-label",
      -  "vinyl-jacket",
      -  "vinyl-sleeve",
      -  "minidisc-label",
      -  "minidisc-cover",
      -  "minidisc-jcard",
      -  "minidisc-tray",
      -  "minidisc-full-labels"
      -]New value: +[
      +  "slipcover",
      +  "side-load-vhs",
      +  "doublevhs",
      +  "betamax",
      +  "compact-tape",
      +  "bluray-cover",
      +  "bluray-slipcover",
      +  "dvd-cover",
      +  "clamshell",
      +  "polycase",
      +  "cardbox",
      +  "disc",
      +  "cassette",
      +  "cassingle",
      +  "jcard",
      +  "cd",
      +  "cd-tray",
      +  "cd-insert",
      +  "vinyl-label",
      +  "vinyl-jacket",
      +  "vinyl-sleeve",
      +  "minidisc-label",
      +  "minidisc-full-labels",
      +  "minidisc-jcard",
      +  "minidisc-cover",
      +  "minidisc-tray"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / format / enum
      Previous value: -[
      -  "slipcover",
      -  "side-load-vhs",
      -  "doublevhs",
      -  "betamax",
      -  "bluray-cover",
      -  "bluray-slipcover",
      -  "dvd-cover",
      -  "clamshell",
      -  "polycase",
      -  "cardbox",
      -  "disc",
      -  "cassette",
      -  "cassingle",
      -  "jcard",
      -  "cd",
      -  "cd-tray",
      -  "cd-insert",
      -  "vinyl-label",
      -  "vinyl-jacket",
      -  "vinyl-sleeve",
      -  "minidisc-label",
      -  "minidisc-cover",
      -  "minidisc-jcard",
      -  "minidisc-tray",
      -  "minidisc-full-labels"
      -]New value: +[
      +  "slipcover",
      +  "side-load-vhs",
      +  "doublevhs",
      +  "betamax",
      +  "compact-tape",
      +  "bluray-cover",
      +  "bluray-slipcover",
      +  "dvd-cover",
      +  "clamshell",
      +  "polycase",
      +  "cardbox",
      +  "disc",
      +  "cassette",
      +  "cassingle",
      +  "jcard",
      +  "cd",
      +  "cd-tray",
      +  "cd-insert",
      +  "vinyl-label",
      +  "vinyl-jacket",
      +  "vinyl-sleeve",
      +  "minidisc-label",
      +  "minidisc-cover",
      +  "minidisc-jcard",
      +  "minidisc-tray",
      +  "minidisc-full-labels"
      +]
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so well: it discloses the return shape (a URL), the free-vs-membership gating of export, the 'unsupported' field semantics and how to report them, and the hard limitation that user image uploads cannot happen through this tool. These are exactly the non-obvious behaviors an agent would otherwise get wrong.

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?

Four sentences, purpose front-loaded, and each sentence adds an actionable constraint (free vs paid, unsupported fields, image upload workaround). Slightly dense but no filler; the third and fourth sentences are both operative caveats, not padding.

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 5-parameter nested tool with no output schema and no annotations, the description covers the deliverable (URL), the completion workflow, the failure mode (unsupported fields), and the one capability the tool lacks (file uploads). Nothing an agent needs to call it correctly is missing.

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 60%, and the description meaningfully compensates: text overrides apply only to video formats (unsupported on audio), finish values and their jcard special case, useLogo's default when text.title is set, and that audio builds a full design from the album alone. It adds real semantics beyond the schema, though a few parameters (layout.hide details beyond the enum, background.color) are left to the schema.

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 ('Build a label design') and the concrete deliverable ('return a URL the user opens to finish it'). This is clearly distinguishable from list_formats and search_content, which enumerate formats and resolve content ids respectively.

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?

Gives clear operating context: designing/previewing are free, exporting a print-ready file requires a membership, and the URL is a starting point completed in the browser. It does not, however, route the agent to sibling tools (e.g., search_content for an id, list_formats for a format) — that routing lives only in the schema, so exclusions/alternatives are not fully covered in the description itself.

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