NiimBlue Labels MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NIIMBLUE_CHROME | No | Path 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_URL | No | The NiimBlue app URL. Must be http(s); any #hash is dropped. | https://niim.blue/ |
| NIIMBLUE_LOG_LEVEL | No | Log level: silent, error, info, or debug (stderr). | info |
| NIIMBLUE_TEMPLATES_DIR | No | Where 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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; 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. Only Noto Sans Variable (Latin, Cyrillic) + Material Icons survive the 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. |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
The three tools have clearly distinct purposes: render_label handles design/rendering, list_templates enumerates saved templates, and get_template retrieves template args for editing. There is no meaningful overlap in their intended actions, so an agent can easily select the right tool.
All names use a consistent snake_case verb_noun convention: render_label, list_templates, get_template. The pattern is predictable and readable across the set.
Three tools are well scoped for a focused label-rendering and template-management server. Each operation (render, list, get) earns its place without redundancy or obvious over-fragmentation.
The surface covers rendering, saving, listing, and retrieving templates, which supports the main label workflow. However, template lifecycle operations such as delete or rename are absent, leaving minor gaps an agent must work around.