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.
- mcp_print-0.2.0/.claude/skills/print-workflow/SKILL.md +41 -0
- mcp_print-0.2.0/.github/workflows/ci.yml +45 -0
- mcp_print-0.2.0/.gitignore +7 -0
- mcp_print-0.2.0/LICENSE +21 -0
- mcp_print-0.2.0/PKG-INFO +205 -0
- mcp_print-0.2.0/README.md +180 -0
- mcp_print-0.2.0/pyproject.toml +38 -0
- mcp_print-0.2.0/scripts/generate_pantone_db.py +555 -0
- mcp_print-0.2.0/src/mcp_print/__init__.py +3 -0
- mcp_print-0.2.0/src/mcp_print/__main__.py +5 -0
- mcp_print-0.2.0/src/mcp_print/data/__init__.py +0 -0
- mcp_print-0.2.0/src/mcp_print/data/pantone_colors.json +19322 -0
- mcp_print-0.2.0/src/mcp_print/server.py +296 -0
- mcp_print-0.2.0/src/mcp_print/tools/__init__.py +1 -0
- mcp_print-0.2.0/src/mcp_print/tools/barcode.py +114 -0
- mcp_print-0.2.0/src/mcp_print/tools/colors.py +423 -0
- mcp_print-0.2.0/src/mcp_print/tools/cost.py +132 -0
- mcp_print-0.2.0/src/mcp_print/tools/icc.py +156 -0
- mcp_print-0.2.0/src/mcp_print/tools/ink.py +78 -0
- mcp_print-0.2.0/src/mcp_print/tools/paper.py +49 -0
- mcp_print-0.2.0/src/mcp_print/tools/spot.py +111 -0
- mcp_print-0.2.0/tests/__init__.py +0 -0
- mcp_print-0.2.0/tests/test_barcode.py +41 -0
- mcp_print-0.2.0/tests/test_colors.py +128 -0
- mcp_print-0.2.0/tests/test_cost.py +66 -0
- mcp_print-0.2.0/tests/test_icc.py +78 -0
- mcp_print-0.2.0/tests/test_ink.py +40 -0
- mcp_print-0.2.0/tests/test_paper.py +35 -0
- mcp_print-0.2.0/tests/test_spot.py +44 -0
|
@@ -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/
|
mcp_print-0.2.0/LICENSE
ADDED
|
@@ -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.
|
mcp_print-0.2.0/PKG-INFO
ADDED
|
@@ -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"]
|