Guides

AI assistants

The zplkit MCP server lets Claude, Cursor, VS Code and other assistants render, lint and convert ZPL labels, and look commands up.

@zplkit/mcp is an MCP server that gives AI assistants zplkit's tools, so they can check the ZPL they write: render it and look at the label, lint it, convert it to zplkit code, and look commands up instead of guessing their parameters.

It needs Node 22 or newer, and runs with npx, so there's nothing else to install.

Setup

Claude Code plugin. The zplkit plugin sets up this server and adds a skill that teaches Claude how to write labels with zplkit and check them:

/plugin install zplkit --marketplace ludwig-f/zplkit

The skill is also a single file, SKILL.md, which works on its own in ~/.claude/skills/zpl-labels/ or uploaded to Claude.

Claude Code, without the plugin:

claude mcp add zplkit -- npx -y @zplkit/mcp

Claude Desktop, Cursor and others take it in their MCP settings (claude_desktop_config.json, .cursor/mcp.json):

{
  "mcpServers": {
    "zplkit": { "command": "npx", "args": ["-y", "@zplkit/mcp"] }
  }
}

VS Code (.vscode/mcp.json):

{
  "servers": {
    "zplkit": { "command": "npx", "args": ["-y", "@zplkit/mcp"] }
  }
}

Tools

ToolDoes
render_zplRenders labels to PNG images the assistant can see, the way a printer prints them, and says the size, how many labels there are, what isn't drawn yet and what lint found. Returns the first 3 labels unless asked for up to 10.
lint_zplLists problems a printer won't report, with their line and column
convert_zplTurns ZPL into @zplkit/core code, as JSX or builder calls
lookup_commandWhat a command does: its format, parameters and defaults, an example, and how well zplkit supports it
viewer_linkA link that opens the ZPL in the viewer, formatted one field per line. The ZPL is in the link, so it isn't uploaded
print_zplSends labels to a network printer after checking it's ready. Only there when the server starts with --allow-print.

Printing

Printing makes real labels, so the server only offers print_zpl when you start it with --allow-print:

claude mcp add zplkit -- npx -y @zplkit/mcp --allow-print

On this page