Professional print & color workflow tools for AI assistants
2400+ Pantone colors • CMYK/RGB conversion • Ink & cost estimation • ICC profiles • Spot color separation • Barcode coverage • Delta E • Paper weights • Preflight checks • Substrate simulation
Works 100% offline — no API keys needed
Install • Configure • Tools • Examples • Contributing
| Role | Use case |
|---|---|
| Print designers | Check Pantone-to-CMYK conversions without leaving your editor |
| Prepress engineers | Estimate ink costs, verify color accuracy (Delta E), analyze ICC profiles, run preflight checks |
| Packaging teams | Convert paper weights, separate spot vs process colors, cost entire print runs, simulate substrate shifts |
| Brand managers | Find the closest Pantone match to any HEX color |
pip install mcp-printRequires Python 3.10+. Zero external dependencies beyond the MCP SDK.
Add to your Claude Code MCP config (~/.claude/settings.json or project .mcp.json):
{
"mcpServers": {
"print": {
"command": "python",
"args": ["-m", "mcp_print"]
}
}
}Restart Claude Code — all twelve tools will be available immediately.
| Tool | Description |
|---|---|
pantone_to_cmyk_tool |
Convert a Pantone name to CMYK + HEX. Fuzzy matching — "485C", "pantone 485", "Warm Red" all work |
pantone_search_tool |
Find the closest Pantone colors to any HEX or CMYK value (top N matches by Delta E) |
cmyk_to_rgb_tool |
Convert CMYK values (0-100) to RGB (0-255) + HEX |
color_delta_e_tool |
Calculate Delta E (CIE76) between two CMYK colors with quality interpretation |
spot_color_separator_tool |
Given a list of design colors, recommend which should be spot vs process |
| Tool | Description |
|---|---|
ink_consumption_tool |
Estimate ink grams/kg and cost for a print run (offset, flexo, gravure, screen, digital) |
print_cost_estimator_tool |
Full job cost breakdown: ink + plates + makeready + run cost |
barcode_ink_coverage_tool |
Ink coverage % for Code 128, EAN-13, QR, and Data Matrix barcodes |
preflight_check_tool |
Pre-press file validation — checks color mode, resolution, bleed, fonts, ink coverage, and transparency |
substrate_simulator_tool |
Simulate CMYK color shifts on different paper substrates (dot gain, absorption, tint) |
| Tool | Description |
|---|---|
icc_profile_info_tool |
Parse ICC/ICM profile metadata (color space, device class, version, PCS) from any .icc file |
paper_weight_converter_tool |
Convert between GSM, lb text, and lb cover |
Once configured, just ask Claude naturally:
"What's the CMYK breakdown for Pantone 485 C?"
Fuzzy matching accepts any format: "485C", "pantone 485", "485 coated", "Warm Red"
{ "name": "Pantone 485 C", "c": 0, "m": 95, "y": 100, "k": 0, "hex": "#FF0D0D" }"What Pantone colors are closest to #DA291C?"
{
"matches": [
{ "name": "Pantone 485 C", "c": 0, "m": 95, "y": 100, "k": 0, "hex": "#FF0D0D" },
{ "name": "Pantone 485 M", "c": 1, "m": 93, "y": 99, "k": 2, "hex": "#FA0E03" }
],
"search_type": "hex #DA291C"
}"Convert CMYK 100/44/0/0 to RGB"
{ "r": 0, "g": 143, "b": 255, "hex": "#008FFF" }"How much ink for 10,000 A4 flyers at 35% coverage on offset?"
{ "ink_grams": 327.44, "ink_kg": 0.3274, "cost_estimate_usd": 8.19 }"Cost estimate: 5,000 A4 flyers, 4-color offset, 120gsm, double-sided"
{
"total_cost_usd": 628.14,
"cost_per_unit_usd": 0.1256,
"breakdown": {
"ink": 11.34,
"plates": 280.00,
"makeready": 200.00,
"run_cost": 136.80
}
}"Compare brand blue (100/72/0/18) vs proof (98/70/2/20) — is the Delta E acceptable?"
{ "delta_e": 3.41, "interpretation": "fair — noticeable difference" }| Delta E | Quality |
|---|---|
| < 1 | Excellent — imperceptible |
| 1 - 3 | Good — barely perceptible |
| 3 - 6 | Fair — noticeable |
| > 6 | Poor — obvious difference |
"Should these colors be spot or process?"
{
"spot_colors": [
{ "nearest_pantone": "Pantone 485 C", "delta_e": 0.0, "reason": "Close match — use spot for accuracy" }
],
"process_colors": [
{ "nearest_pantone": "Pantone 375 C", "delta_e": 8.2, "reason": "No close match — reproduce as CMYK" }
]
}"What color space does this ICC profile use?"
{
"profile_name": "ISOcoated_v2",
"color_space": "CMYK",
"device_class": "Output (Printer)",
"version": "2.4.0",
"pcs": "XYZ"
}"Ink coverage for an EAN-13 barcode at 37mm x 26mm?"
{
"coverage_percent": 52.0,
"recommended_ink": "Process Black (K: 100)",
"print_method_suggestion": "offset — good resolution for medium modules"
}"What's 80 lb text in GSM?"
{ "value": 118.42, "from_unit": "lb_text", "to_unit": "gsm" }"Validate my file for offset printing: CMYK, 300 DPI, 3mm bleed, fonts embedded"
{
"status": "pass",
"checks": [
{ "name": "color_mode", "status": "pass", "message": "CMYK is correct for offset." },
{ "name": "resolution", "status": "pass", "message": "300 DPI meets the minimum of 300 DPI for offset." },
{ "name": "bleed", "status": "pass", "message": "3.0 mm bleed meets the 3.0 mm minimum for offset." },
{ "name": "fonts", "status": "pass", "message": "All fonts are embedded." },
{ "name": "ink_coverage", "status": "pass", "message": "Total ink coverage 280% is within safe limits." },
{ "name": "transparency", "status": "pass", "message": "No transparency detected." }
],
"summary": "6 passed, 0 warnings, 0 failed out of 6 checks.",
"recommendation": "File is ready for production."
}Checks color mode, resolution, bleed, font embedding, total ink coverage, and transparency against the target print method (offset, digital, flexo, gravure, screen).
| Check | Fail | Warning |
|---|---|---|
| Color mode | RGB/spot for offset/flexo/gravure/screen | RGB for digital |
| Resolution | Below 75% of method minimum | Below method minimum |
| Bleed | No bleed | Below method minimum |
| Fonts | Not embedded | — |
| Ink coverage | > 340% | > 300% |
| Transparency | — | Present (needs flattening) |
"How will CMYK 50/30/20/10 look on newsprint vs glossy coated?"
{
"original": { "c": 50, "m": 30, "y": 20, "k": 10, "hex": "#73A1B8" },
"simulated": { "c": 57.5, "m": 38.3, "y": 29.8, "k": 31.9, "hex": "#4A6B7A" },
"substrate": "newsprint",
"print_method": "offset",
"adjustments": { "dot_gain_applied": 30, "absorption_k_added": 16.2 },
"delta_e_from_original": 21.11,
"warning": "Severe color shift — this substrate may not be suitable for color-critical work."
}Six substrate profiles with different dot gain, absorption, and paper tint characteristics:
| Substrate | Dot gain (offset) | Tint | Typical use |
|---|---|---|---|
glossy_coated |
12% | None | Magazines, brochures |
matte_coated |
18% | Slight warm | Art books, reports |
uncoated |
22% | Warm | Letterheads, books |
newsprint |
30% | Yellow/gray | Newspapers, flyers |
kraft |
25% | Strong brown | Packaging, bags |
recycled |
25% | Slight gray | Eco-friendly prints |
The built-in database contains 2,415 Pantone colors:
| Series | Range | Description |
|---|---|---|
| Numeric | 100–699 | Yellows, oranges, reds, pinks, purples, blues, greens, grays, browns |
| 7000 series | 7400–7547 | Extended gamut colors |
| Named | — | Black, White, Warm Red, Reflex Blue, Process Blue, Cool/Warm Grays 1–11, Hexachrome series |
Every color is available in three finishes: Coated (C), Uncoated (U), and Matte (M).
Fuzzy matching handles format variations — "485C", "pantone 485", "485 coated" all resolve correctly.
git clone https://github.com/kcgdz/mcp-print.git
cd mcp-print
pip install -e .
pip install pytest
pytest tests/ -v108 passed in 0.19s
MIT

