Skip to main content
Glama

Convert printer language to ZPL

printer_language_to_zpl
Read-onlyIdempotent

Convert a SATO SBPL, Honeywell (Datamax) DPL or Honeywell (Intermec) IPL label stream to ZPL, so it can be checked with zpl_validate and rendered with zpl_preview. You must name the source language: language_detect does not recognise these three. Real control characters and the manuals' readable notation (, ) are both accepted. Commands outside the supported subset (printer settings, RFID, job management, some 2D symbologies) are skipped with a warning, never silently: non-empty warnings mean the conversion is not 1:1 and one_to_one is false — show the warnings to the user. The output follows each manufacturer's command reference and is not verified on physical printers; check a preview and a test print before production.

Input Schema

NameRequiredDescriptionDefault
codeYesRaw SBPL, DPL or IPL label stream
dpmmNoTarget printer density in dots per mm (8 = 203 dpi)
label_length_mmNoDPL only: label length in mm. DPL measures rows from the bottom edge, ZPL from the top; without it (or <STX>c in the stream) 6 inches is assumed and a warning is added.
source_languageYesLanguage of `code`: sbpl (SATO), dpl (Datamax / Honeywell) or ipl (Intermec / Honeywell)

Output Schema

NameRequiredDescriptionDefault
zplYesConverted ZPL, one ^XA...^XZ block per label
noteNo
warningsYesEverything not carried over, with the manual page
one_to_oneYesTrue only when warnings is empty
source_languageYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare a safe read-only, idempotent profile, and the description adds substantial non-obvious behavior: unsupported commands (printer settings, RFID, job management, some 2D symbologies) are skipped with warnings rather than silently, non-empty warnings imply one_to_one is false, and the output is not validated against physical printers. This is exactly the caveat context annotations cannot carry.

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-loads the conversion purpose, then layers constraints, warning semantics, and the production caveat in a logical order. It is on the longer side but nearly every clause carries actionable information; the workflow references and warning-handling rule justify their space.

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?

With an output schema present and rich annotations, the description supplies the missing pieces: supported/unsupported command scope, warning semantics, the one_to_one flag, and the recommendation to preview and test print. Nothing an agent needs to invoke or interpret the result is absent.

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 100% and each parameter already documents itself (including the DPL label_length_mm bottom-vs-top edge and the 6-inch fallback). The description only reinforces that source_language is mandatory and that readable notation like <STX>/<ESC> is accepted in `code`, adding marginal value over 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 ('Convert a SATO SBPL, Honeywell DPL or IPL label stream to ZPL') and enumerates exactly which source languages qualify. It also differentiates itself from the sibling language_detect by explaining that detect does not cover these three languages.

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?

Explicitly names the downstream tools (zpl_validate, zpl_preview) and the workflow order, and calls out the sibling alternative (language_detect) with the condition under which it fails. The instruction that the source language must be named is also given as a usage rule.

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.