Skip to main content
Glama

Render ZPL label

zpl_preview
Read-onlyIdempotent

Render ZPL label code and return the label as a PNG image. Use this to SEE what ZPL output looks like — LLMs can write ZPL but cannot otherwise verify the visual result. One call renders one label (use index to pick a label from a multi-label stream). The result also carries an 'Open this label in the Labelixa editor' link the user can click to edit, save or share the label.

Input Schema

NameRequiredDescriptionDefault
zplYesZPL source, non-empty, from ^XA to ^XZ. Send real line breaks, not the two characters \n.
dpmmNoPrinter density (8 = 203 dpi)
indexNoLabel index in the stream
width_inNoLabel width, inches
height_inNoLabel height, inches

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / zpl / description
      Previous value: -"ZPL source (^XA...^XZ)"New value: +"ZPL source, non-empty, from ^XA to ^XZ. Send real line breaks, not the two characters \\n."
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

The annotations already cover the safety profile: readOnly, idempotent and non-destructive. The definition adds real behavioral context beyond them: the return is a PNG image, each call renders exactly one label from a stream and index selects which label, and the response includes an editor link the user can act on. It does not mention behavior on invalid ZPL, which keeps it below a 5.

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?

It is four sentences, with the core action front-loaded and the parameter and output notes following in a logical order. Every sentence carries information, though the em-dash rationale sentence is slightly longer than needed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the definition must describe the return value, and it does mention both the PNG image and the editor link. For a five-parameter, read-only rendering tool, the definition leaves little ambiguous, with only error responses and rendering fidelity left unspecified.

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?

The schema coverage is 100%, so a baseline of 3 applies. The definition earns a 4 by explaining that index picks one label from a multi-label stream, so the parameter becomes meaningful even though the schema only describes it as 'Label index in the stream'. The other four parameters are left entirely to the schema, which is adequate.

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?

The definition opens with a specific verb and resource ('Render ZPL label code and return the label as a PNG image'), which cleanly separates it from the validating and explaining siblings such as zpl_validate and explain_zpl. The reason for the call — to visually verify the label — is stated up front.

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 definition explains clearly when to use this tool: an LLM can write ZPL but cannot otherwise see the rendered result. It also notes the one-call-per-label rule and explains how to traverse multi-label streams. It never names an alternative such as zpl_validate for syntax-only checks, so it does not give explicit exclusions.

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.