@trishchuk/coolors-mcp 1.0.0

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.
Files changed (197) hide show
  1. package/.claude/settings.local.json +39 -0
  2. package/.env +2 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +73 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +71 -0
  5. package/.github/pull_request_template.md +97 -0
  6. package/.github/workflows/ci.yml +127 -0
  7. package/.github/workflows/deploy-docs.yml +56 -0
  8. package/.github/workflows/release.yml +99 -0
  9. package/.mcp.json +12 -0
  10. package/.prettierignore +1 -0
  11. package/CLAUDE.md +201 -0
  12. package/DOCUMENTATION.md +274 -0
  13. package/GEMINI.md +54 -0
  14. package/LICENSE +21 -0
  15. package/README.md +401 -0
  16. package/demo/content_based_color.png +0 -0
  17. package/demo/music-player.html +621 -0
  18. package/demo/podcast-player.html +903 -0
  19. package/dist/bin/coolors-mcp.d.ts +1 -0
  20. package/dist/bin/coolors-mcp.js +154 -0
  21. package/dist/bin/coolors-mcp.js.map +1 -0
  22. package/dist/bin/server.d.ts +1 -0
  23. package/dist/bin/server.js +3292 -0
  24. package/dist/bin/server.js.map +1 -0
  25. package/dist/chunk-IQ7NN26V.js +114 -0
  26. package/dist/chunk-IQ7NN26V.js.map +1 -0
  27. package/dist/chunk-P3ARRKLS.js +1214 -0
  28. package/dist/chunk-P3ARRKLS.js.map +1 -0
  29. package/dist/color/index.d.ts +716 -0
  30. package/dist/color/index.js +153 -0
  31. package/dist/color/index.js.map +1 -0
  32. package/dist/coolors-mcp.d.ts +136 -0
  33. package/dist/coolors-mcp.js +7 -0
  34. package/dist/coolors-mcp.js.map +1 -0
  35. package/docs/.vitepress/cache/deps/@braintree_sanitize-url.js +93 -0
  36. package/docs/.vitepress/cache/deps/@braintree_sanitize-url.js.map +7 -0
  37. package/docs/.vitepress/cache/deps/_metadata.json +127 -0
  38. package/docs/.vitepress/cache/deps/chunk-BUSYA2B4.js +9 -0
  39. package/docs/.vitepress/cache/deps/chunk-BUSYA2B4.js.map +7 -0
  40. package/docs/.vitepress/cache/deps/chunk-JD3CXNQ6.js +12683 -0
  41. package/docs/.vitepress/cache/deps/chunk-JD3CXNQ6.js.map +7 -0
  42. package/docs/.vitepress/cache/deps/chunk-SYPOPCWC.js +9719 -0
  43. package/docs/.vitepress/cache/deps/chunk-SYPOPCWC.js.map +7 -0
  44. package/docs/.vitepress/cache/deps/cytoscape-cose-bilkent.js +4710 -0
  45. package/docs/.vitepress/cache/deps/cytoscape-cose-bilkent.js.map +7 -0
  46. package/docs/.vitepress/cache/deps/cytoscape.js +30278 -0
  47. package/docs/.vitepress/cache/deps/cytoscape.js.map +7 -0
  48. package/docs/.vitepress/cache/deps/dayjs.js +285 -0
  49. package/docs/.vitepress/cache/deps/dayjs.js.map +7 -0
  50. package/docs/.vitepress/cache/deps/debug.js +468 -0
  51. package/docs/.vitepress/cache/deps/debug.js.map +7 -0
  52. package/docs/.vitepress/cache/deps/package.json +3 -0
  53. package/docs/.vitepress/cache/deps/prismjs.js +1466 -0
  54. package/docs/.vitepress/cache/deps/prismjs.js.map +7 -0
  55. package/docs/.vitepress/cache/deps/prismjs_components_prism-bash.js +228 -0
  56. package/docs/.vitepress/cache/deps/prismjs_components_prism-bash.js.map +7 -0
  57. package/docs/.vitepress/cache/deps/prismjs_components_prism-javascript.js +142 -0
  58. package/docs/.vitepress/cache/deps/prismjs_components_prism-javascript.js.map +7 -0
  59. package/docs/.vitepress/cache/deps/prismjs_components_prism-json.js +27 -0
  60. package/docs/.vitepress/cache/deps/prismjs_components_prism-json.js.map +7 -0
  61. package/docs/.vitepress/cache/deps/prismjs_components_prism-python.js +65 -0
  62. package/docs/.vitepress/cache/deps/prismjs_components_prism-python.js.map +7 -0
  63. package/docs/.vitepress/cache/deps/prismjs_components_prism-typescript.js +53 -0
  64. package/docs/.vitepress/cache/deps/prismjs_components_prism-typescript.js.map +7 -0
  65. package/docs/.vitepress/cache/deps/prismjs_components_prism-yaml.js +73 -0
  66. package/docs/.vitepress/cache/deps/prismjs_components_prism-yaml.js.map +7 -0
  67. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4507 -0
  68. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
  69. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +584 -0
  70. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
  71. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +1146 -0
  72. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +7 -0
  73. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +1667 -0
  74. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +7 -0
  75. package/docs/.vitepress/cache/deps/vitepress___minisearch.js +1814 -0
  76. package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +7 -0
  77. package/docs/.vitepress/cache/deps/vue.js +344 -0
  78. package/docs/.vitepress/cache/deps/vue.js.map +7 -0
  79. package/docs/.vitepress/components/ClientGrid.vue +125 -0
  80. package/docs/.vitepress/components/CodeBlock.vue +231 -0
  81. package/docs/.vitepress/components/ConfigModal.vue +477 -0
  82. package/docs/.vitepress/components/DiagramModal.vue +528 -0
  83. package/docs/.vitepress/components/TroubleshootingModal.vue +472 -0
  84. package/docs/.vitepress/config.js +162 -0
  85. package/docs/.vitepress/theme/FundingLayout.vue +251 -0
  86. package/docs/.vitepress/theme/Layout.vue +134 -0
  87. package/docs/.vitepress/theme/components/AdBanner.vue +317 -0
  88. package/docs/.vitepress/theme/components/AdPlaceholder.vue +78 -0
  89. package/docs/.vitepress/theme/components/FundingEffects.vue +322 -0
  90. package/docs/.vitepress/theme/components/FundingHero.vue +345 -0
  91. package/docs/.vitepress/theme/components/SupportSection.vue +511 -0
  92. package/docs/.vitepress/theme/custom-app.css +339 -0
  93. package/docs/.vitepress/theme/custom.css +699 -0
  94. package/docs/.vitepress/theme/index.js +25 -0
  95. package/docs/README.md +198 -0
  96. package/docs/concepts/accessibility.md +473 -0
  97. package/docs/concepts/color-spaces.md +222 -0
  98. package/docs/concepts/distance-metrics.md +384 -0
  99. package/docs/concepts/hct.md +261 -0
  100. package/docs/concepts/image-analysis.md +396 -0
  101. package/docs/concepts/material-design.md +306 -0
  102. package/docs/concepts/theme-matching.md +399 -0
  103. package/docs/examples/basic-colors.md +490 -0
  104. package/docs/examples/creating-themes.md +898 -0
  105. package/docs/examples/css-refactoring.md +824 -0
  106. package/docs/examples/image-extraction.md +882 -0
  107. package/docs/getting-started.md +366 -0
  108. package/docs/index.md +190 -0
  109. package/docs/installation.md +157 -0
  110. package/docs/tools/README.md +234 -0
  111. package/docs/tools/accessibility.md +614 -0
  112. package/docs/tools/color-operations.md +374 -0
  113. package/docs/tools/image-extraction.md +624 -0
  114. package/docs/tools/material-design.md +347 -0
  115. package/docs/tools/theme-matching.md +552 -0
  116. package/eslint.config.ts +14 -0
  117. package/examples/theme-matching.md +113 -0
  118. package/jsr.json +7 -0
  119. package/mcp-config.json +8 -0
  120. package/note.md +35 -0
  121. package/package.json +122 -0
  122. package/research_results.md +53 -0
  123. package/src/bin/coolors-mcp.ts +194 -0
  124. package/src/bin/server.ts +61 -0
  125. package/src/color/__tests__/conversions-argb.test.ts +198 -0
  126. package/src/color/__tests__/extract-colors.test.ts +360 -0
  127. package/src/color/__tests__/image-utils.test.ts +242 -0
  128. package/src/color/__tests__/reference-colors.test.ts +278 -0
  129. package/src/color/__tests__/round-trip.test.ts +197 -0
  130. package/src/color/conversions.test.ts +402 -0
  131. package/src/color/conversions.ts +393 -0
  132. package/src/color/dislike/__tests__/dislike-analyzer.test.ts +248 -0
  133. package/src/color/dislike/dislike-analyzer.ts +114 -0
  134. package/src/color/extract-colors.ts +228 -0
  135. package/src/color/hct/__tests__/hct-class.test.ts +232 -0
  136. package/src/color/hct/harmonization.ts +204 -0
  137. package/src/color/hct/hct-class.ts +109 -0
  138. package/src/color/hct/hct-solver.ts +168 -0
  139. package/src/color/hct/index.ts +39 -0
  140. package/src/color/hct/tonal-palette.ts +211 -0
  141. package/src/color/hct/types.ts +88 -0
  142. package/src/color/image-utils.ts +79 -0
  143. package/src/color/index.ts +87 -0
  144. package/src/color/material-theme.ts +157 -0
  145. package/src/color/metrics.test.ts +276 -0
  146. package/src/color/metrics.ts +281 -0
  147. package/src/color/quantize/__tests__/quantizer_celebi.test.ts +195 -0
  148. package/src/color/quantize/lab_point_provider.ts +55 -0
  149. package/src/color/quantize/point_provider.ts +27 -0
  150. package/src/color/quantize/quantizer_celebi.ts +51 -0
  151. package/src/color/quantize/quantizer_celebi_test.ts +71 -0
  152. package/src/color/quantize/quantizer_map.ts +47 -0
  153. package/src/color/quantize/quantizer_wsmeans.ts +232 -0
  154. package/src/color/quantize/quantizer_wu.ts +472 -0
  155. package/src/color/score/__tests__/score.test.ts +224 -0
  156. package/src/color/score/score.ts +175 -0
  157. package/src/color/types.ts +151 -0
  158. package/src/color/utils/color_utils.ts +292 -0
  159. package/src/color/utils/math_utils.ts +145 -0
  160. package/src/color/utils.test.ts +403 -0
  161. package/src/color/utils.ts +315 -0
  162. package/src/constants.ts +5 -0
  163. package/src/coolors-mcp.ts +37 -0
  164. package/src/examples/addition.ts +333 -0
  165. package/src/examples/color-demo.ts +125 -0
  166. package/src/examples/custom-logger.ts +201 -0
  167. package/src/examples/oauth-server.ts +113 -0
  168. package/src/examples/session-context.ts +269 -0
  169. package/src/session.ts +116 -0
  170. package/src/theme/__tests__/matcher.test.ts +180 -0
  171. package/src/theme/__tests__/parser.test.ts +148 -0
  172. package/src/theme/__tests__/refactor.test.ts +224 -0
  173. package/src/theme/index.ts +34 -0
  174. package/src/theme/matcher.ts +395 -0
  175. package/src/theme/parser.ts +392 -0
  176. package/src/theme/refactor.ts +360 -0
  177. package/src/theme/types.ts +152 -0
  178. package/src/tools/__tests__/gradient-generator.test.ts +206 -0
  179. package/src/tools/__tests__/palette-with-locks.test.ts +109 -0
  180. package/src/tools/color-conversion.tool.ts +54 -0
  181. package/src/tools/color-distance.tool.ts +41 -0
  182. package/src/tools/colors.ts +31 -0
  183. package/src/tools/contrast-checker.tool.ts +37 -0
  184. package/src/tools/dislike-analyzer.tool.ts +247 -0
  185. package/src/tools/gradient-generator.tool.ts +250 -0
  186. package/src/tools/image-extraction.tools.ts +289 -0
  187. package/src/tools/index.ts +39 -0
  188. package/src/tools/material-theme.tools.ts +250 -0
  189. package/src/tools/palette-generator.tool.ts +135 -0
  190. package/src/tools/palette-with-locks.tool.ts +221 -0
  191. package/src/tools/registry.ts +142 -0
  192. package/src/tools/simple-tools.ts +37 -0
  193. package/src/tools/theme-matching.tools.ts +334 -0
  194. package/src/types.ts +182 -0
  195. package/src/utils.ts +22 -0
  196. package/tsconfig.json +8 -0
  197. package/vitest.config.js +15 -0
@@ -0,0 +1,234 @@
1
+ # Tools Overview
2
+
3
+ Coolors MCP provides 15 tools organized into 5 categories for comprehensive color manipulation and theme management.
4
+
5
+ ## Available Tools
6
+
7
+ ### Color Operations
8
+
9
+ Basic color manipulation and analysis tools.
10
+
11
+ | Tool | Description | Primary Use Case |
12
+ | ------------------------------------------------------------ | ------------------------------- | -------------------- |
13
+ | [`convert_color`](./color-operations.md#convert_color) | Convert between color formats | Format compatibility |
14
+ | [`color_distance`](./color-operations.md#color_distance) | Calculate perceptual difference | Color similarity |
15
+ | [`check_contrast`](./color-operations.md#check_contrast) | WCAG contrast ratio | Accessibility |
16
+ | [`generate_palette`](./color-operations.md#generate_palette) | Create color schemes | Design systems |
17
+
18
+ ### Material Design
19
+
20
+ Google's Material Design 3 implementation.
21
+
22
+ | Tool | Description | Primary Use Case |
23
+ | ------------------------------------------------------------------------- | ----------------- | ----------------- |
24
+ | [`generate_material_theme`](./material-design.md#generate_material_theme) | Complete M3 theme | App theming |
25
+ | [`generate_tonal_palette`](./material-design.md#generate_tonal_palette) | Tonal variations | Component states |
26
+ | [`harmonize_colors`](./material-design.md#harmonize_colors) | Blend colors | Color consistency |
27
+
28
+ ### Theme Matching
29
+
30
+ CSS refactoring and design system integration.
31
+
32
+ | Tool | Description | Primary Use Case |
33
+ | -------------------------------------------------------------------------- | --------------------- | --------------------- |
34
+ | [`match_theme_color`](./theme-matching.md#match_theme_color) | Find closest variable | Single color matching |
35
+ | [`match_theme_colors_batch`](./theme-matching.md#match_theme_colors_batch) | Match multiple colors | Bulk processing |
36
+ | [`refactor_css_with_theme`](./theme-matching.md#refactor_css_with_theme) | Automate CSS updates | Legacy migration |
37
+ | [`generate_theme_css`](./theme-matching.md#generate_theme_css) | Create CSS variables | New projects |
38
+
39
+ ### Image Extraction
40
+
41
+ Color extraction from images.
42
+
43
+ | Tool | Description | Primary Use Case |
44
+ | ------------------------------------------------------------------------------ | ----------------------- | ---------------- |
45
+ | [`extract_image_colors`](./image-extraction.md#extract_image_colors) | Get dominant colors | Color analysis |
46
+ | [`generate_theme_from_image`](./image-extraction.md#generate_theme_from_image) | Create theme from photo | Dynamic theming |
47
+
48
+ ### Color Psychology
49
+
50
+ Analysis based on color perception research.
51
+
52
+ | Tool | Description | Primary Use Case |
53
+ | ------------------------------------------------------------------------------ | ------------------------- | ------------------ |
54
+ | [`analyze_color_likability`](./color-psychology.md#analyze_color_likability) | Detect problematic colors | Quality assurance |
55
+ | [`fix_disliked_colors_batch`](./color-psychology.md#fix_disliked_colors_batch) | Fix multiple colors | Palette correction |
56
+
57
+ ## Tool Selection Guide
58
+
59
+ ### By Task
60
+
61
+ **Converting colors between formats:**
62
+
63
+ - Use `convert_color` for single conversions
64
+ - Supports hex, rgb, hsl, lab, hct formats
65
+
66
+ **Checking color accessibility:**
67
+
68
+ - Use `check_contrast` for WCAG compliance
69
+ - Returns AA/AAA pass/fail for normal and large text
70
+
71
+ **Creating a color palette:**
72
+
73
+ - Use `generate_palette` for basic schemes (monochromatic, analogous, etc.)
74
+ - Use `generate_material_theme` for complete Material Design themes
75
+ - Use `generate_tonal_palette` for Material Design tonal variations
76
+
77
+ **Matching colors to theme variables:**
78
+
79
+ - Use `match_theme_color` for single colors
80
+ - Use `match_theme_colors_batch` for multiple colors
81
+ - Use `refactor_css_with_theme` for entire CSS files
82
+
83
+ **Working with images:**
84
+
85
+ - Use `extract_image_colors` to get dominant colors
86
+ - Use `generate_theme_from_image` for complete themes
87
+
88
+ **Fixing problematic colors:**
89
+
90
+ - Use `analyze_color_likability` to check single colors
91
+ - Use `fix_disliked_colors_batch` for entire palettes
92
+
93
+ ### By Input Type
94
+
95
+ **Single color input:**
96
+
97
+ - `convert_color` - format conversion
98
+ - `generate_tonal_palette` - create variations
99
+ - `analyze_color_likability` - check perception
100
+
101
+ **Two color input:**
102
+
103
+ - `color_distance` - calculate difference
104
+ - `check_contrast` - check accessibility
105
+
106
+ **Multiple colors input:**
107
+
108
+ - `harmonize_colors` - blend together
109
+ - `match_theme_colors_batch` - find matches
110
+ - `fix_disliked_colors_batch` - fix problems
111
+
112
+ **CSS input:**
113
+
114
+ - `refactor_css_with_theme` - update to use variables
115
+ - `match_theme_color` - with themeCSS parameter
116
+
117
+ **Image input:**
118
+
119
+ - `extract_image_colors` - get colors
120
+ - `generate_theme_from_image` - create theme
121
+
122
+ ## Common Workflows
123
+
124
+ ### 1. Design System Setup
125
+
126
+ ```
127
+ 1. generate_material_theme (create base theme)
128
+ 2. generate_theme_css (export as CSS variables)
129
+ 3. refactor_css_with_theme (update existing CSS)
130
+ ```
131
+
132
+ ### 2. Accessibility Audit
133
+
134
+ ```
135
+ 1. extract colors from CSS
136
+ 2. check_contrast for each color pair
137
+ 3. suggest alternatives for failures
138
+ ```
139
+
140
+ ### 3. Image-Based Theming
141
+
142
+ ```
143
+ 1. extract_image_colors (analyze image)
144
+ 2. generate_theme_from_image (create theme)
145
+ 3. generate_theme_css (export for use)
146
+ ```
147
+
148
+ ### 4. Color Palette Creation
149
+
150
+ ```
151
+ 1. generate_palette (create base palette)
152
+ 2. harmonize_colors (ensure consistency)
153
+ 3. fix_disliked_colors_batch (fix problems)
154
+ 4. check_contrast (verify accessibility)
155
+ ```
156
+
157
+ ## Parameter Patterns
158
+
159
+ Most tools follow consistent parameter patterns:
160
+
161
+ ### Color Parameters
162
+
163
+ - Accept hex (#ffffff), rgb(255,255,255), or hsl(0,0%,100%)
164
+ - Case-insensitive
165
+ - With or without # prefix for hex
166
+
167
+ ### Optional Parameters
168
+
169
+ - `metric` - for distance calculations (default: deltaE2000)
170
+ - `context` - for theme matching (text, background, border, etc.)
171
+ - `minConfidence` - threshold for matching (0-100)
172
+ - `quality` - for image processing (low, medium, high)
173
+
174
+ ### Return Formats
175
+
176
+ - Single values return strings
177
+ - Multiple values return JSON objects
178
+ - Batch operations return arrays
179
+ - Errors return descriptive messages
180
+
181
+ ## Performance Tips
182
+
183
+ 1. **Use batch operations** when processing multiple colors
184
+ 2. **Set appropriate quality** for image processing (low for previews, high for final)
185
+ 3. **Cache theme CSS** when doing multiple matches
186
+ 4. **Use confidence thresholds** to control matching strictness
187
+
188
+ ## Error Handling
189
+
190
+ All tools handle common errors:
191
+
192
+ - Invalid color format → Returns error message
193
+ - Out of range values → Automatically clamped
194
+ - Missing parameters → Clear error description
195
+ - Malformed input → Validation feedback
196
+
197
+ ## Integration Examples
198
+
199
+ ### With Claude Desktop
200
+
201
+ ```json
202
+ {
203
+ "mcpServers": {
204
+ "coolors": {
205
+ "command": "node",
206
+ "args": ["/path/to/coolors-mcp/dist/bin/server.js"]
207
+ }
208
+ }
209
+ }
210
+ ```
211
+
212
+ ### With MCP Inspector
213
+
214
+ ```bash
215
+ npx fastmcp inspect src/bin/server.ts
216
+ ```
217
+
218
+ ### Programmatic Usage
219
+
220
+ ```typescript
221
+ import { colorConversionTool } from "coolors-mcp/tools";
222
+
223
+ const result = await colorConversionTool.execute({
224
+ color: "#6750a4",
225
+ to: "hct",
226
+ });
227
+ ```
228
+
229
+ ## Next Steps
230
+
231
+ - [Color Operations](./color-operations.md) - Detailed documentation for basic color tools
232
+ - [Material Design](./material-design.md) - Material Design 3 theme generation
233
+ - [Theme Matching](./theme-matching.md) - CSS refactoring and variable matching
234
+ - [API Reference](../api/README.md) - Complete API documentation