Skip to main content
Glama
printshop-mcp

printshop-mcp

by ildargiv

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PRINTSHOP_DRYRUNNoSet to 1 to never touch the printer (dry run mode).
PRINTSHOP_MAX_SHEETSNoCaps paper use: maximum number of sheets allowed per print job (default 50).50

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_printersA

Installed printers with their saved profiles. The first printer is the Windows default.

describe_printerC

Papers, trays, media types, resolutions and printable area (A4) of a printer, plus its saved profiles.

list_profilesB

All remembered print profiles (optionally for one printer) and the default profile of each printer.

save_profileA

Create or update a remembered print profile. Only the given fields change.

paper: "sheet" (paper size follows the HTML sheet, default) or "driver" (keep the paper set in the driver). tray / media: name (or part of it) or code from describe_printer. quality: draft|low|medium|high. color: color|mono. duplex: simplex|long_edge|short_edge. icc: path to a printer ICC profile, intent: perceptual|relative|saturation|absolute. dpi: render resolution (default 300). scale_x/scale_y (0.97-1.03) and offset_x_mm/offset_y_mm (-5..5): calibration applied to every job. mirror: print every sheet mirrored (sublimation / heat-transfer paper for mugs, T-shirts). Proofs stay readable. paper_price: cost of one sheet; ink_price_5pct: ink cost of one A4 page at 5% coverage of one colour (bottle or cartridge price / ISO page yield printed on the box); currency: e.g. "RUB", "USD". With these, every proof includes a cost estimate. tags/notes: what this profile is for ("business cards", "cardstock 300g") so it can be found later. open_driver_dialog: shows the printer driver's own settings window to the user; everything they choose there, including vendor-only options, is stored in the profile.

delete_profileC

Forget a print profile.

set_default_profileB

Make a profile the default for its printer (and that printer the default for printing).

proofA

Render printable HTML exactly as it will print and check it. Returns a job (job_id, errors, warnings, per-sheet geometry, estimate: sheets, ink coverage measured on the pixels, cost if the profile has prices) and proof images: grey = area the printer cannot print, red/orange frames = problems. Give either html (a string) or path: an .html file (images resolve relative to it) or a .pdf (every page becomes a sheet of the page's size - use this to print PDFs made by other tools). Without printer/profile the default profile of the last used printer is taken.

layoutA

Automatically pack many items onto sheets (imposition) and write printable HTML, one file per paper group.

items: [{"name": "badge", "width_mm": 90, "height_mm": 55, "copies": 1, "group": "plain", "html": "<div ...>..." OR "src": "card.pdf" | "photo.jpg", "page": 1, "rotate": true, "fit": "fill"|"contain"}]

  • html: the item's design, filling its box (use position:absolute children, mm units, data-fit). Shared styles go into css. One entry per distinct item (e.g. one per guest), copies for identical ones.

  • src: a PDF page or image (e.g. a business card PDF from another tool), path relative to out's folder.

  • group: items that need different paper (cardstock vs plain) must have different groups; each group becomes its own file to proof and print with its own profile. sheet: A4, A3, A5, Letter, Legal, Tabloid or [width_mm, height_mm]. margin_mm: keep >= printer margin (~4). gap_mm: space between items (0 = shared cut lines). Items rotate automatically when that saves paper. out: .html path (or folder) for the result; must contain any src files. Returns files, sheet counts, paper use.

print_jobA

Send a proofed job to the printer. Requires a job_id from proof. If the proof had warnings, tell the user first and pass accept_warnings=true only after they agree.

printer_statusC

Printer state (offline, out of paper, jammed...) and its print queue.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
guideHow to write printable HTML.

TDQS

A3.5/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target clearly distinct actions (save/delete/set-default profile, proof, layout, print_job, printer_status). The only soft overlap is the trio list_printers, list_profiles, and describe_printer, which all return profile information, though the descriptions differentiate them (installed printers vs. profiles vs. detailed capabilities).

Naming Consistency4/5

The set mostly follows a verb_noun convention (list_profiles, describe_printer, save_profile, set_default_profile, print_job, printer_status). The bare names proof and layout break the pattern slightly but are still readable and unambiguous in context.

Tool Count5/5

Around 10 tools is well-scoped for a print workflow: discovery, profile management, proofing, imposition, printing, and status. Each tool earns its place with no redundant entries.

Completeness4/5

The surface covers the full lifecycle from printer inspection through profiling, proofing, layout, and printing, including cost estimation and driver access. Minor gaps remain: printer_status exposes the queue but there is no tool to cancel or pause a job, and no job history listing beyond the current queue.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues