mcp-print 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: print-workflow
3
+ description: Professional print and color workflow assistance. Use when user mentions printing, CMYK, Pantone, ICC profiles, ink consumption, barcodes, or color management.
4
+ ---
5
+
6
+ # Print Workflow Skill
7
+
8
+ You have access to the mcp-print MCP server with professional printing tools.
9
+
10
+ ## Available tools:
11
+
12
+ | Tool | Purpose |
13
+ |---|---|
14
+ | `pantone_to_cmyk_tool` | Look up Pantone color → CMYK + HEX (fuzzy matching, 2400+ colors) |
15
+ | `pantone_search_tool` | Find closest Pantone by HEX or CMYK proximity (top N matches) |
16
+ | `cmyk_to_rgb_tool` | Convert CMYK → RGB + HEX |
17
+ | `color_delta_e_tool` | Delta E (CIE76) between two CMYK colors |
18
+ | `ink_consumption_tool` | Estimate ink grams/kg/cost for a print run |
19
+ | `print_cost_estimator_tool` | Full job cost: ink + plates + makeready + run |
20
+ | `icc_profile_info_tool` | Parse ICC/ICM profile metadata from file |
21
+ | `spot_color_separator_tool` | Recommend spot vs process for a color list |
22
+ | `barcode_ink_coverage_tool` | Ink coverage % for Code128/EAN13/QR/DataMatrix |
23
+ | `paper_weight_converter_tool` | Convert GSM ↔ lb text ↔ lb cover |
24
+
25
+ ## When to use each tool:
26
+ - User asks about Pantone colors → `pantone_to_cmyk_tool`, `pantone_search_tool`
27
+ - User asks about color accuracy or matching → `color_delta_e_tool`
28
+ - User asks about ink usage → `ink_consumption_tool`
29
+ - User asks about print job cost → `print_cost_estimator_tool`
30
+ - User mentions ICC profile → `icc_profile_info_tool`
31
+ - User asks about spot vs process colors → `spot_color_separator_tool`
32
+ - User asks about barcodes → `barcode_ink_coverage_tool`
33
+ - User asks about paper weight → `paper_weight_converter_tool`
34
+
35
+ ## Response style:
36
+ - Always show color values as HEX codes in backticks (e.g. `#DA291C`)
37
+ - Round ink weights to 2 decimal places
38
+ - For cost estimates, show a breakdown table
39
+ - Suggest print method when relevant
40
+ - When showing Pantone matches, include the Delta E score for context
41
+ - For spot/process recommendations, explain the reasoning clearly
@@ -0,0 +1,45 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python ${{ matrix.python-version }}
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: ${{ matrix.python-version }}
23
+
24
+ - name: Install dependencies
25
+ run: |
26
+ python -m pip install --upgrade pip
27
+ pip install -e ".[dev]" 2>/dev/null || pip install -e .
28
+ pip install pytest
29
+
30
+ - name: Run tests
31
+ run: pytest tests/ -v
32
+
33
+ lint:
34
+ runs-on: ubuntu-latest
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: "3.12"
41
+
42
+ - name: Install and run ruff
43
+ run: |
44
+ pip install ruff
45
+ ruff check src/
@@ -0,0 +1,7 @@
1
+ __pycache__/
2
+ *.pyc
3
+ *.egg-info/
4
+ dist/
5
+ build/
6
+ .pytest_cache/
7
+ .claude/settings.local.json
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 mcp-print contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,205 @@
1
+ Metadata-Version: 2.4
2
+ Name: mcp-print
3
+ Version: 0.2.0
4
+ Summary: MCP server for professional print and color workflows — 2400+ Pantone colors, CMYK/RGB conversion, ink/cost estimation, ICC profiles, spot color separation, and more.
5
+ Project-URL: Homepage, https://github.com/mcp-print/mcp-print
6
+ Project-URL: Repository, https://github.com/mcp-print/mcp-print
7
+ Project-URL: Issues, https://github.com/mcp-print/mcp-print/issues
8
+ Author: mcp-print contributors
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: cmyk,color,ink,mcp,pantone,prepress,printing
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Multimedia :: Graphics
21
+ Classifier: Topic :: Printing
22
+ Requires-Python: >=3.10
23
+ Requires-Dist: mcp>=1.0.0
24
+ Description-Content-Type: text/markdown
25
+
26
+ # mcp-print
27
+
28
+ MCP server for professional print and color workflows. Gives AI assistants the ability to work with 2400+ Pantone colors, CMYK/RGB conversion, ink and cost estimation, ICC profile analysis, spot color separation, barcode coverage, Delta E color difference, and paper weight conversion — all offline, no API keys needed.
29
+
30
+ ## Who is this for?
31
+
32
+ - **Print designers** checking Pantone-to-CMYK conversions without leaving their editor
33
+ - **Prepress engineers** estimating ink costs, verifying color accuracy, and analyzing ICC profiles
34
+ - **Packaging teams** converting paper weights, comparing spot colors, and costing print runs
35
+
36
+ ## Install
37
+
38
+ ```bash
39
+ pip install mcp-print
40
+ ```
41
+
42
+ ## Configure with Claude Code
43
+
44
+ Add to your Claude Code MCP config (`~/.claude/settings.json` or project `.mcp.json`):
45
+
46
+ ```json
47
+ {
48
+ "mcpServers": {
49
+ "print": {
50
+ "command": "python",
51
+ "args": ["-m", "mcp_print"]
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
57
+ Restart Claude Code — all ten tools below will be available immediately.
58
+
59
+ ## Tools
60
+
61
+ | Tool | Description |
62
+ |---|---|
63
+ | `pantone_to_cmyk_tool` | Convert a Pantone name to CMYK + HEX (2400+ colors, fuzzy matching) |
64
+ | `pantone_search_tool` | Find closest Pantone colors by HEX or CMYK proximity |
65
+ | `cmyk_to_rgb_tool` | Convert CMYK values to RGB + HEX |
66
+ | `color_delta_e_tool` | Calculate Delta E (CIE76) between two CMYK colors |
67
+ | `ink_consumption_tool` | Estimate ink usage and cost for a print run |
68
+ | `print_cost_estimator_tool` | Full job cost: ink + plates + makeready + run |
69
+ | `icc_profile_info_tool` | Parse ICC/ICM profile metadata from a file |
70
+ | `spot_color_separator_tool` | Recommend spot vs process colors for a design |
71
+ | `barcode_ink_coverage_tool` | Ink coverage % for Code128, EAN-13, QR, DataMatrix |
72
+ | `paper_weight_converter_tool` | Convert between GSM, lb text, and lb cover |
73
+
74
+ ## Usage Examples
75
+
76
+ Once configured, just ask Claude naturally:
77
+
78
+ ### 1. Pantone lookup (with fuzzy matching)
79
+
80
+ > "What's the CMYK breakdown for Pantone 485 C?"
81
+
82
+ Works with any format: `"485C"`, `"pantone 485"`, `"485 coated"`, `"Warm Red"`.
83
+
84
+ ```json
85
+ { "name": "Pantone 485 C", "c": 0, "m": 95, "y": 100, "k": 0, "hex": "#FF0D0D" }
86
+ ```
87
+
88
+ ### 2. Find closest Pantone to a HEX color
89
+
90
+ > "What Pantone colors are closest to #DA291C?"
91
+
92
+ ```json
93
+ {
94
+ "matches": [
95
+ { "name": "Pantone 485 C", "c": 0, "m": 95, "y": 100, "k": 0, "hex": "#FF0D0D" },
96
+ { "name": "Pantone 485 M", "c": 1, "m": 93, "y": 99, "k": 2, "hex": "#FA0E03" }
97
+ ],
98
+ "search_type": "hex #DA291C"
99
+ }
100
+ ```
101
+
102
+ ### 3. Color conversion
103
+
104
+ > "Convert CMYK 100/44/0/0 to RGB"
105
+
106
+ ```json
107
+ { "r": 0, "g": 143, "b": 255, "hex": "#008FFF" }
108
+ ```
109
+
110
+ ### 4. Ink estimation
111
+
112
+ > "How much ink do I need for 10,000 A4 flyers at 35% coverage on an offset press?"
113
+
114
+ ```json
115
+ { "ink_grams": 327.44, "ink_kg": 0.3274, "cost_estimate_usd": 8.19 }
116
+ ```
117
+
118
+ ### 5. Full print job costing
119
+
120
+ > "Cost estimate: 5000 copies of an A4 flyer, 4-color offset, 120gsm, double-sided"
121
+
122
+ ```json
123
+ {
124
+ "total_cost_usd": 628.14,
125
+ "cost_per_unit_usd": 0.1256,
126
+ "breakdown": { "ink": 11.34, "plates": 280.0, "makeready": 200.0, "run_cost": 136.8 }
127
+ }
128
+ ```
129
+
130
+ ### 6. Color matching QC
131
+
132
+ > "Compare our brand blue (100/72/0/18) against the proof (98/70/2/20) — is the Delta E acceptable?"
133
+
134
+ ```json
135
+ { "delta_e": 3.41, "interpretation": "fair — noticeable difference" }
136
+ ```
137
+
138
+ ### 7. Spot vs process recommendation
139
+
140
+ > "Should these colors be spot or process?" (with a list of CMYK values)
141
+
142
+ ```json
143
+ {
144
+ "spot_colors": [{ "nearest_pantone": "Pantone 485 C", "delta_e": 0.0, "reason": "Close match..." }],
145
+ "process_colors": [{ "nearest_pantone": "Pantone 375 C", "delta_e": 8.2, "reason": "No close match..." }]
146
+ }
147
+ ```
148
+
149
+ ### 8. ICC profile inspection
150
+
151
+ > "What color space is this ICC profile using?"
152
+
153
+ ```json
154
+ {
155
+ "profile_name": "ISOcoated_v2",
156
+ "color_space": "CMYK",
157
+ "device_class": "Output (Printer)",
158
+ "version": "2.4.0"
159
+ }
160
+ ```
161
+
162
+ ### 9. Barcode ink coverage
163
+
164
+ > "What's the ink coverage for an EAN-13 barcode at 37mm x 26mm?"
165
+
166
+ ```json
167
+ {
168
+ "coverage_percent": 52.0,
169
+ "recommended_ink": "Process Black (K: 100)",
170
+ "print_method_suggestion": "offset — good resolution for medium modules"
171
+ }
172
+ ```
173
+
174
+ ### 10. Paper weight conversion
175
+
176
+ > "What's 80 lb text in GSM?"
177
+
178
+ ```json
179
+ { "value": 118.42, "from_unit": "lb_text", "to_unit": "gsm" }
180
+ ```
181
+
182
+ ## Pantone Database
183
+
184
+ The built-in database contains **2400+ Pantone colors** covering:
185
+
186
+ - **Numeric series** (100-699): Yellows, oranges, reds, pinks, purples, blues, greens, grays, browns
187
+ - **7000 series** (7400-7547): Extended gamut colors
188
+ - **Special named colors**: Black, White, Warm Red, Reflex Blue, Process Blue, Cool/Warm Grays 1-11, Hexachrome series, and more
189
+ - **Three finishes per color**: Coated (C), Uncoated (U), and Matte (M)
190
+
191
+ Fuzzy matching handles typos and format variations — `"485C"`, `"pantone 485"`, `"485 coated"` all find the right color.
192
+
193
+ ## Development
194
+
195
+ ```bash
196
+ git clone https://github.com/mcp-print/mcp-print.git
197
+ cd mcp-print
198
+ pip install -e .
199
+ pip install pytest
200
+ pytest tests/ -v
201
+ ```
202
+
203
+ ## License
204
+
205
+ MIT
@@ -0,0 +1,180 @@
1
+ # mcp-print
2
+
3
+ MCP server for professional print and color workflows. Gives AI assistants the ability to work with 2400+ Pantone colors, CMYK/RGB conversion, ink and cost estimation, ICC profile analysis, spot color separation, barcode coverage, Delta E color difference, and paper weight conversion — all offline, no API keys needed.
4
+
5
+ ## Who is this for?
6
+
7
+ - **Print designers** checking Pantone-to-CMYK conversions without leaving their editor
8
+ - **Prepress engineers** estimating ink costs, verifying color accuracy, and analyzing ICC profiles
9
+ - **Packaging teams** converting paper weights, comparing spot colors, and costing print runs
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ pip install mcp-print
15
+ ```
16
+
17
+ ## Configure with Claude Code
18
+
19
+ Add to your Claude Code MCP config (`~/.claude/settings.json` or project `.mcp.json`):
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "print": {
25
+ "command": "python",
26
+ "args": ["-m", "mcp_print"]
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ Restart Claude Code — all ten tools below will be available immediately.
33
+
34
+ ## Tools
35
+
36
+ | Tool | Description |
37
+ |---|---|
38
+ | `pantone_to_cmyk_tool` | Convert a Pantone name to CMYK + HEX (2400+ colors, fuzzy matching) |
39
+ | `pantone_search_tool` | Find closest Pantone colors by HEX or CMYK proximity |
40
+ | `cmyk_to_rgb_tool` | Convert CMYK values to RGB + HEX |
41
+ | `color_delta_e_tool` | Calculate Delta E (CIE76) between two CMYK colors |
42
+ | `ink_consumption_tool` | Estimate ink usage and cost for a print run |
43
+ | `print_cost_estimator_tool` | Full job cost: ink + plates + makeready + run |
44
+ | `icc_profile_info_tool` | Parse ICC/ICM profile metadata from a file |
45
+ | `spot_color_separator_tool` | Recommend spot vs process colors for a design |
46
+ | `barcode_ink_coverage_tool` | Ink coverage % for Code128, EAN-13, QR, DataMatrix |
47
+ | `paper_weight_converter_tool` | Convert between GSM, lb text, and lb cover |
48
+
49
+ ## Usage Examples
50
+
51
+ Once configured, just ask Claude naturally:
52
+
53
+ ### 1. Pantone lookup (with fuzzy matching)
54
+
55
+ > "What's the CMYK breakdown for Pantone 485 C?"
56
+
57
+ Works with any format: `"485C"`, `"pantone 485"`, `"485 coated"`, `"Warm Red"`.
58
+
59
+ ```json
60
+ { "name": "Pantone 485 C", "c": 0, "m": 95, "y": 100, "k": 0, "hex": "#FF0D0D" }
61
+ ```
62
+
63
+ ### 2. Find closest Pantone to a HEX color
64
+
65
+ > "What Pantone colors are closest to #DA291C?"
66
+
67
+ ```json
68
+ {
69
+ "matches": [
70
+ { "name": "Pantone 485 C", "c": 0, "m": 95, "y": 100, "k": 0, "hex": "#FF0D0D" },
71
+ { "name": "Pantone 485 M", "c": 1, "m": 93, "y": 99, "k": 2, "hex": "#FA0E03" }
72
+ ],
73
+ "search_type": "hex #DA291C"
74
+ }
75
+ ```
76
+
77
+ ### 3. Color conversion
78
+
79
+ > "Convert CMYK 100/44/0/0 to RGB"
80
+
81
+ ```json
82
+ { "r": 0, "g": 143, "b": 255, "hex": "#008FFF" }
83
+ ```
84
+
85
+ ### 4. Ink estimation
86
+
87
+ > "How much ink do I need for 10,000 A4 flyers at 35% coverage on an offset press?"
88
+
89
+ ```json
90
+ { "ink_grams": 327.44, "ink_kg": 0.3274, "cost_estimate_usd": 8.19 }
91
+ ```
92
+
93
+ ### 5. Full print job costing
94
+
95
+ > "Cost estimate: 5000 copies of an A4 flyer, 4-color offset, 120gsm, double-sided"
96
+
97
+ ```json
98
+ {
99
+ "total_cost_usd": 628.14,
100
+ "cost_per_unit_usd": 0.1256,
101
+ "breakdown": { "ink": 11.34, "plates": 280.0, "makeready": 200.0, "run_cost": 136.8 }
102
+ }
103
+ ```
104
+
105
+ ### 6. Color matching QC
106
+
107
+ > "Compare our brand blue (100/72/0/18) against the proof (98/70/2/20) — is the Delta E acceptable?"
108
+
109
+ ```json
110
+ { "delta_e": 3.41, "interpretation": "fair — noticeable difference" }
111
+ ```
112
+
113
+ ### 7. Spot vs process recommendation
114
+
115
+ > "Should these colors be spot or process?" (with a list of CMYK values)
116
+
117
+ ```json
118
+ {
119
+ "spot_colors": [{ "nearest_pantone": "Pantone 485 C", "delta_e": 0.0, "reason": "Close match..." }],
120
+ "process_colors": [{ "nearest_pantone": "Pantone 375 C", "delta_e": 8.2, "reason": "No close match..." }]
121
+ }
122
+ ```
123
+
124
+ ### 8. ICC profile inspection
125
+
126
+ > "What color space is this ICC profile using?"
127
+
128
+ ```json
129
+ {
130
+ "profile_name": "ISOcoated_v2",
131
+ "color_space": "CMYK",
132
+ "device_class": "Output (Printer)",
133
+ "version": "2.4.0"
134
+ }
135
+ ```
136
+
137
+ ### 9. Barcode ink coverage
138
+
139
+ > "What's the ink coverage for an EAN-13 barcode at 37mm x 26mm?"
140
+
141
+ ```json
142
+ {
143
+ "coverage_percent": 52.0,
144
+ "recommended_ink": "Process Black (K: 100)",
145
+ "print_method_suggestion": "offset — good resolution for medium modules"
146
+ }
147
+ ```
148
+
149
+ ### 10. Paper weight conversion
150
+
151
+ > "What's 80 lb text in GSM?"
152
+
153
+ ```json
154
+ { "value": 118.42, "from_unit": "lb_text", "to_unit": "gsm" }
155
+ ```
156
+
157
+ ## Pantone Database
158
+
159
+ The built-in database contains **2400+ Pantone colors** covering:
160
+
161
+ - **Numeric series** (100-699): Yellows, oranges, reds, pinks, purples, blues, greens, grays, browns
162
+ - **7000 series** (7400-7547): Extended gamut colors
163
+ - **Special named colors**: Black, White, Warm Red, Reflex Blue, Process Blue, Cool/Warm Grays 1-11, Hexachrome series, and more
164
+ - **Three finishes per color**: Coated (C), Uncoated (U), and Matte (M)
165
+
166
+ Fuzzy matching handles typos and format variations — `"485C"`, `"pantone 485"`, `"485 coated"` all find the right color.
167
+
168
+ ## Development
169
+
170
+ ```bash
171
+ git clone https://github.com/mcp-print/mcp-print.git
172
+ cd mcp-print
173
+ pip install -e .
174
+ pip install pytest
175
+ pytest tests/ -v
176
+ ```
177
+
178
+ ## License
179
+
180
+ MIT
@@ -0,0 +1,38 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "mcp-print"
7
+ version = "0.2.0"
8
+ description = "MCP server for professional print and color workflows — 2400+ Pantone colors, CMYK/RGB conversion, ink/cost estimation, ICC profiles, spot color separation, and more."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ { name = "mcp-print contributors" },
14
+ ]
15
+ keywords = ["mcp", "printing", "cmyk", "pantone", "prepress", "color", "ink"]
16
+ classifiers = [
17
+ "Development Status :: 4 - Beta",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Topic :: Multimedia :: Graphics",
26
+ "Topic :: Printing",
27
+ ]
28
+ dependencies = [
29
+ "mcp>=1.0.0",
30
+ ]
31
+
32
+ [project.urls]
33
+ Homepage = "https://github.com/mcp-print/mcp-print"
34
+ Repository = "https://github.com/mcp-print/mcp-print"
35
+ Issues = "https://github.com/mcp-print/mcp-print/issues"
36
+
37
+ [tool.hatch.build.targets.wheel]
38
+ packages = ["src/mcp_print"]