Skip to main content
Glama
labelixa-mcp

labelixa-mcp

Official

labelixa-mcp

Labelixa is an MCP (Model Context Protocol) server and API platform for thermal label development. It gives AI assistants and developer tools the ability to render, validate, debug, inspect and convert thermal printer labels — ZPL, EPL, TSPL and CPCL — through MCP.

There are two ways to connect:

Remote server (recommended)

This npm package

Endpoint

https://api.labelixa.com/mcp

local process over stdio

Tool set

full set: rendering, validation, debugging, conversion, barcode analysis, printer compatibility, templates, bulk jobs

core subset (table below); each tool calls the Labelixa REST API

Install

nothing to install

npx -y labelixa-mcp or npm install -g labelixa-mcp

Authentication

optional lbx_ API key

optional lbx_ API key

The live tool list of the remote server is at labelixa.com/mcp.

Remote server (no install)

Transport: Streamable HTTP, stateless JSON-RPC over POST. Anonymous use is free and rate-limited per IP; an API key uses the account's own quota. Keys: labelixa.com.

Claude Code:

claude mcp add --transport http labelixa https://api.labelixa.com/mcp

With an API key:

claude mcp add --transport http labelixa https://api.labelixa.com/mcp \
  --header "Authorization: Bearer lbx_..."

Generic MCP client configuration (Claude Desktop, Cursor and other clients that accept a url entry):

{
  "mcpServers": {
    "labelixa": {
      "url": "https://api.labelixa.com/mcp",
      "headers": {"Authorization": "Bearer lbx_..."}
    }
  }
}

Drop the headers block for anonymous use.

Related MCP server: barcode-mcp

Local server (this package)

npm install -g labelixa-mcp

Or skip installing and run it with npx straight from your MCP client config:

{
  "mcpServers": {
    "labelixa": {
      "command": "npx",
      "args": ["-y", "labelixa-mcp"],
      "env": {"LABELIXA_API_KEY": "lbx_..."}
    }
  }
}

Environment variables:

  • LABELIXA_API_KEY — optional lbx_ API key. Without it the anonymous quota applies.

  • LABELIXA_BASE_URL — optional; defaults to https://api.labelixa.com.

Requests never follow redirects, so a server cannot forward your key to another host. Numeric inputs are checked before a request is made: dpmm is 6, 8, 12 or 24, label sides are finite, above 0 and at most 15 inches, and DPI values are 152, 203, 300 or 600.

Tools in this package

Tool

What it does

zpl_preview

Renders ZPL to a PNG image for inspection. Server-side render — not a guarantee of how a specific physical printer will output the label.

zpl_validate

Lints ZPL and returns the structured diagnostics report (unknown commands, parameter ranges, layout overflow) as JSON. Pass the real label size — checks depend on it.

barcode_generate

Generates a standalone barcode (SVG or PNG): code128, code39, ean13, upca, upce, itf14, msi, qrcode, datamatrix, pdf417.

language_detect

Detects the printer language of raw label code (ZPL/EPL/TSPL/CPCL). Heuristic — returns a confidence tier, not a probability.

epl_validate

Lints EPL/EPL2 code; positioned findings with severity, as JSON.

tspl_validate

Lints TSPL/TSPL2 code; positioned findings with severity, as JSON.

cpcl_validate

Lints CPCL code; positioned findings with severity, as JSON.

zpl_compatibility

Compatibility RISK analysis of ZPL against a printer model. Not an emulator — reports language posture with evidence level; never says "it works".

zpl_command_help

Looks up one ZPL command in the maintained catalog: name, syntax, parameters and whether the preview engine actually renders it — printer-side commands are marked as not rendered. Optional locale (en default, tr, de) translates the name and descriptions only; command codes, syntax strings, examples and parameter names are protocol and never change.

convert_zpl_dpi

Rescales ZPL coordinates between printer resolutions (203/300/600 dpi). Embedded ^GF/~DG bitmaps are NOT rescaled — a warnings block precedes the output when present.

explain_zpl

Full sectioned health report (syntax, size/DPI, orientation, barcodes, fonts, memory) with an honest score — sections it cannot assess say "not assessed" instead of counting.

EPL, TSPL and CPCL previews, label templates, bulk generation, image-to-ZPL conversion, SBPL / DPL / IPL to ZPL conversion (printer_language_to_zpl) and barcode reading from photos are on the remote server only.

Directory listings

  • Official MCP Registry: com.labelixa/zpl (remote server + this npm package).

  • Smithery: labelixa/zpl. Smithery routes calls through its own gateway; the canonical endpoint is https://api.labelixa.com/mcp.

Honesty notes

  • Errors carry the server's own message verbatim; quota exhaustion is reported with the server's Retry-After rather than a made-up delay.

  • zpl_preview is a render, not a print: physical output depends on the printer, media and darkness settings.

Source of this package: github.com/Labelixa/labelixa-mcp. Docs: labelixa.com/docs/api. License: MIT.

Available Tools

11 tools
barcode_generateAInspect

Generate a standalone barcode (SVG text or PNG image). Supported types include code128, code39, ean13, upca, upce, itf14, msi, qrcode, datamatrix, pdf417.

Inputs: data (required), type (required), format.

convert_zpl_dpiAInspect

Rescale ZPL coordinates between printer resolutions (203/300/600 dpi). Embedded ^GF/~DG bitmap data is NOT rescaled — when present, a Warnings block precedes the output instead of silently passing.

Inputs: zpl (required), source, target.

cpcl_validateAInspect

Lint/validate CPCL label code and return the structured diagnostics report (findings with positions and severity) as JSON.

Inputs: cpcl (required).

epl_validateAInspect

Lint/validate EPL/EPL2 label code and return the structured diagnostics report (findings with positions and severity) as JSON.

Inputs: epl (required).

explain_zplAInspect

Human-readable health REPORT for a finished ZPL label with a 0-100 score, sectioned (syntax, size/DPI, orientation, barcodes, fonts, memory): only assessable sections count, the rest say 'not assessed'. Use it to review or explain a label to a person; for a quick pass/fail check while editing use zpl_validate. Pass the real label size — findings depend on it.

Inputs: zpl (required), dpmm, model, width_in, +1 more.

language_detectAInspect

Detect which printer language raw label code is written in (ZPL, EPL, TSPL or CPCL). Heuristic: returns the language plus a confidence TIER (high/medium/low) and signal codes — not a probability.

Inputs: code (required).

tspl_validateAInspect

Lint/validate TSPL/TSPL2 label code and return the structured diagnostics report (findings with positions and severity) as JSON.

Inputs: tspl (required).

zpl_command_helpAInspect

Look up one ZPL command in the maintained catalog: name, syntax, parameters (types, ranges, defaults) and whether the preview engine actually renders it — printer-side commands are honestly marked as not rendered.

Inputs: command (required), locale.

zpl_compatibilityAInspect

Compatibility RISK analysis of ZPL code against a specific printer model, given as manufacturer/model (e.g. 'zebra/zd421'). NOT an emulator and never says 'it works': reports the model's language posture with evidence level, size-rule findings and the scope of our preview.

Inputs: zpl (required), model (required).

zpl_previewAInspect

Render ZPL label code to a PNG image via the Labelixa API. This is a SERVER-SIDE render for inspection — it is not a guarantee of how a specific physical printer will output the label.

Inputs: zpl (required), dpmm, index, width_in, +1 more.

zpl_validateAInspect

Pass/fail lint for ZPL: machine-readable diagnostics with line/column, code and severity (unknown commands, parameter range errors, layout overflow). Fast; run it before zpl_preview whenever you generate or edit ZPL. For a human-readable report with a score use explain_zpl instead. Pass the real label size — checks depend on it.

Inputs: zpl (required), dpmm, width_in, height_in.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 11 tools

    Disambiguation4/5

    Most tools target clearly distinct actions/resources: preview, validate, explain, compatibility, command help, DPI conversion, barcode generation, and language detection. The main overlap is between zpl_validate and explain_zpl, but descriptions explicitly distinguish a fast pass/fail lint from a human-readable scored report. The parallel epl/tspl/cpcl validators are unambiguous because of their language prefixes.

    Naming Consistency3/5

    The vocabulary is readable and mostly snake_case, but ordering conventions vary: zpl_validate (prefix_action), convert_zpl_dpi (verb_object_detail), language_detect and barcode_generate (noun_verb), and zpl_command_help (prefix_noun_noun). The language-prefixed validators are consistent with each other, but the set as a whole mixes patterns.

    Tool Count5/5

    Eleven tools is well-scoped for a label-code validation/rendering utility. Each tool covers a distinct operation: rendering, validation, explanation, compatibility, lookup, conversion, detection, and barcode generation. No tool appears redundant or gratuitous.

    Completeness4/5

    ZPL workflows are well covered end-to-end: preview, lint, explain, compatibility, command lookup, DPI conversion, and barcode generation. EPL, TSPL, and CPCL are only supported for validation, with no preview/explain equivalents, and there is no cross-language conversion or label-generation tool. These are notable but workable gaps for the stated purpose.

    Maintenance

    ActivityActive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to decode and render barcodes/QR codes and validate GTINs via the Model Context Protocol, with both hosted and self-hosted deployment options.
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI clients to prepare and preview labels, then safely submit physical print jobs to an Xprinter XP-330B through local stdio or authenticated remote access, with status, cancellation, and retry receipts.
      MIT