Skip to main content
Glama
NiimBlue Labels MCP

NiimBlue Labels MCP

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NIIMBLUE_CHROMENoPath to the Chrome, Chromium or Edge binary. Default is auto-detected: Linux: google-chrome(-stable), chromium(-browser), microsoft-edge(-stable) on PATH. macOS: Chrome, Chromium or Edge in /Applications or ~/Applications. Windows: Chrome, then Edge, in Program Files, Program Files (x86) and LocalAppData.
NIIMBLUE_APP_URLNoThe NiimBlue app URL. Must be http(s); any #hash is dropped.https://niim.blue/
NIIMBLUE_LOG_LEVELNoLog level: silent, error, info, or debug (stderr).info
NIIMBLUE_TEMPLATES_DIRNoWhere save_as writes templates; created on first save.~/Documents/NiimBlue Templates

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
render_labelA

Design a NIIMBOT label for NiimBlue and see exactly what the printhead burns. Returns the 1-bit PNG NiimBlue prints (threshold 140; each dot drawn zoom×zoom px), each object's rendered box, warnings that end with their fix, and a niim.blue #load= link that opens the label in NiimBlue for printing. Units are printer dots: 8 per mm at 203 dpi, 11.81 at 300 dpi; origin top-left; objects paint in array order and use NiimBlue/fabric property names. Floors at 203 dpi (×dpmm/8 at 300 dpi): text ≥16 px, or the font's min_px from list_fonts; weight ≥500 under 24 px; strokes ≥2 px; QR modules ≥3 px with 4 clear modules; Code 128 scaleFactor ≥2 with 10 clear modules; text and codes ≥1 mm from the edges. Colours: black, white, transparent. Fonts: Noto Sans Variable (Latin, Cyrillic) by default; any other fontFamily (list_fonts) travels by name only, so the user adds its file in NiimBlue (FONT_NOT_IN_LINK). Fix every warning and render again. Final call: include_json, for the .json export. The link replaces the label open in NiimBlue after a confirm: tell the user to save it first. {key} fields fill from rows (preview: row 1; more than 1 row travels as NiimBlue's CSV, one label per row). save_as writes the args and an importable .niimblue.json to the templates folder; template starts from saved args.

list_templatesA

List the templates render_label save_as stored: name (pass it as render_label template or get_template name), title, printer, size in mm, the {key} fields rows must fill, row count, last modified.

list_fontsA

List the fontFamily values render_label can draw: the default (Noto Sans Variable), the built-in fonts with notes and the smallest legible size, and the font files in the user's font folder (NIIMBLUE_FONTS_DIR; .woff2, .ttf or .otf, family = the name before the first dot). The link carries only the family name: the user adds each non-default font's file (path) in NiimBlue → Fonts once.

get_templateA

Return render_label args to edit: a saved template by name, or a NiimBlue .json label export (path + printer) converted to objects and rows. Images, ArUco markers, paths and groups can't be converted (BAD_INPUT); notes lists what else was dropped.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation4/5

render_label (design/render) and list_fonts (font enumeration) are clearly distinct, and list_templates vs get_template separate list-all from fetch-one. The only soft spot is get_template, which is named like a template getter but also converts arbitrary NiimBlue .json exports, a dual role that could momentarily confuse selection.

Naming Consistency5/5

All four names follow a clean verb_noun pattern (get_template, list_templates, render_label, list_fonts) in consistent snake_case. The naming scheme is predictable and easy to extend.

Tool Count4/5

Four tools is on the lean side for a label-design server, but each one is a heavyweight operation (rendering, template import, listing, font discovery) so nothing feels padded. A dedicated save/delete template tool would round it out.

Completeness4/5

The lifecycle is mostly covered: list_templates and get_template provide read/update paths, and render_label with save_as creates or overwrites templates. There is no delete/rename template operation, and saving is an implicit argument rather than its own tool, which are minor but real gaps.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues