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/zplkitThe 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/mcpClaude 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
| Tool | Does |
|---|---|
render_zpl | Renders 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_zpl | Lists problems a printer won't report, with their line and column |
convert_zpl | Turns ZPL into @zplkit/core code, as JSX or builder calls |
lookup_command | What a command does: its format, parameters and defaults, an example, and how well zplkit supports it |
viewer_link | A 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_zpl | Sends 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