illustrator-mcp-server 1.3.2 → 1.5.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 (194) hide show
  1. package/README.de.md +539 -0
  2. package/README.es.md +539 -0
  3. package/README.fr.md +539 -0
  4. package/README.ja.md +120 -10
  5. package/README.ko.md +539 -0
  6. package/README.md +119 -10
  7. package/README.pt-BR.md +539 -0
  8. package/README.zh-CN.md +539 -0
  9. package/dist/bundle.cjs +621 -328
  10. package/dist/executor/file-transport.d.ts.map +1 -1
  11. package/dist/executor/file-transport.js +11 -1
  12. package/dist/executor/file-transport.js.map +1 -1
  13. package/dist/jsx/helpers/common.jsx +63 -6
  14. package/dist/tools/export/export-pdf.d.ts.map +1 -1
  15. package/dist/tools/export/export-pdf.js +2 -1
  16. package/dist/tools/export/export-pdf.js.map +1 -1
  17. package/dist/tools/export/export.d.ts.map +1 -1
  18. package/dist/tools/export/export.js +54 -3
  19. package/dist/tools/export/export.js.map +1 -1
  20. package/dist/tools/modify/align-objects.d.ts.map +1 -1
  21. package/dist/tools/modify/align-objects.js +4 -5
  22. package/dist/tools/modify/align-objects.js.map +1 -1
  23. package/dist/tools/modify/apply-color-profile.d.ts.map +1 -1
  24. package/dist/tools/modify/apply-color-profile.js +2 -1
  25. package/dist/tools/modify/apply-color-profile.js.map +1 -1
  26. package/dist/tools/modify/apply-graphic-style.d.ts.map +1 -1
  27. package/dist/tools/modify/apply-graphic-style.js +3 -2
  28. package/dist/tools/modify/apply-graphic-style.js.map +1 -1
  29. package/dist/tools/modify/apply-text-style.d.ts.map +1 -1
  30. package/dist/tools/modify/apply-text-style.js +3 -2
  31. package/dist/tools/modify/apply-text-style.js.map +1 -1
  32. package/dist/tools/modify/close-document.d.ts.map +1 -1
  33. package/dist/tools/modify/close-document.js +2 -1
  34. package/dist/tools/modify/close-document.js.map +1 -1
  35. package/dist/tools/modify/convert-to-outlines.d.ts.map +1 -1
  36. package/dist/tools/modify/convert-to-outlines.js +2 -1
  37. package/dist/tools/modify/convert-to-outlines.js.map +1 -1
  38. package/dist/tools/modify/create-crop-marks.d.ts.map +1 -1
  39. package/dist/tools/modify/create-crop-marks.js +34 -3
  40. package/dist/tools/modify/create-crop-marks.js.map +1 -1
  41. package/dist/tools/modify/create-document.d.ts.map +1 -1
  42. package/dist/tools/modify/create-document.js +2 -1
  43. package/dist/tools/modify/create-document.js.map +1 -1
  44. package/dist/tools/modify/create-ellipse.js +1 -1
  45. package/dist/tools/modify/create-gradient.d.ts.map +1 -1
  46. package/dist/tools/modify/create-gradient.js +2 -1
  47. package/dist/tools/modify/create-gradient.js.map +1 -1
  48. package/dist/tools/modify/create-line.js +1 -1
  49. package/dist/tools/modify/create-path-text.d.ts.map +1 -1
  50. package/dist/tools/modify/create-path-text.js +2 -1
  51. package/dist/tools/modify/create-path-text.js.map +1 -1
  52. package/dist/tools/modify/create-path.js +1 -1
  53. package/dist/tools/modify/create-rectangle.js +1 -1
  54. package/dist/tools/modify/create-text-frame.d.ts.map +1 -1
  55. package/dist/tools/modify/create-text-frame.js +4 -6
  56. package/dist/tools/modify/create-text-frame.js.map +1 -1
  57. package/dist/tools/modify/duplicate-objects.d.ts.map +1 -1
  58. package/dist/tools/modify/duplicate-objects.js +17 -3
  59. package/dist/tools/modify/duplicate-objects.js.map +1 -1
  60. package/dist/tools/modify/group-objects.d.ts.map +1 -1
  61. package/dist/tools/modify/group-objects.js +2 -1
  62. package/dist/tools/modify/group-objects.js.map +1 -1
  63. package/dist/tools/modify/import-svg-as-editable.d.ts +3 -0
  64. package/dist/tools/modify/import-svg-as-editable.d.ts.map +1 -0
  65. package/dist/tools/modify/import-svg-as-editable.js +247 -0
  66. package/dist/tools/modify/import-svg-as-editable.js.map +1 -0
  67. package/dist/tools/modify/manage-artboards.d.ts.map +1 -1
  68. package/dist/tools/modify/manage-artboards.js +9 -2
  69. package/dist/tools/modify/manage-artboards.js.map +1 -1
  70. package/dist/tools/modify/manage-datasets.d.ts.map +1 -1
  71. package/dist/tools/modify/manage-datasets.js +2 -1
  72. package/dist/tools/modify/manage-datasets.js.map +1 -1
  73. package/dist/tools/modify/manage-layers.d.ts.map +1 -1
  74. package/dist/tools/modify/manage-layers.js +2 -1
  75. package/dist/tools/modify/manage-layers.js.map +1 -1
  76. package/dist/tools/modify/manage-linked-images.d.ts.map +1 -1
  77. package/dist/tools/modify/manage-linked-images.js +2 -1
  78. package/dist/tools/modify/manage-linked-images.js.map +1 -1
  79. package/dist/tools/modify/manage-swatches.d.ts.map +1 -1
  80. package/dist/tools/modify/manage-swatches.js +2 -1
  81. package/dist/tools/modify/manage-swatches.js.map +1 -1
  82. package/dist/tools/modify/modify-object.d.ts.map +1 -1
  83. package/dist/tools/modify/modify-object.js +22 -17
  84. package/dist/tools/modify/modify-object.js.map +1 -1
  85. package/dist/tools/modify/move-to-layer.d.ts.map +1 -1
  86. package/dist/tools/modify/move-to-layer.js +2 -1
  87. package/dist/tools/modify/move-to-layer.js.map +1 -1
  88. package/dist/tools/modify/open-document.d.ts.map +1 -1
  89. package/dist/tools/modify/open-document.js +2 -1
  90. package/dist/tools/modify/open-document.js.map +1 -1
  91. package/dist/tools/modify/place-color-chips.d.ts.map +1 -1
  92. package/dist/tools/modify/place-color-chips.js +4 -5
  93. package/dist/tools/modify/place-color-chips.js.map +1 -1
  94. package/dist/tools/modify/place-image.d.ts.map +1 -1
  95. package/dist/tools/modify/place-image.js +22 -8
  96. package/dist/tools/modify/place-image.js.map +1 -1
  97. package/dist/tools/modify/place-style-guide.d.ts.map +1 -1
  98. package/dist/tools/modify/place-style-guide.js +4 -5
  99. package/dist/tools/modify/place-style-guide.js.map +1 -1
  100. package/dist/tools/modify/place-symbol.d.ts.map +1 -1
  101. package/dist/tools/modify/place-symbol.js +2 -1
  102. package/dist/tools/modify/place-symbol.js.map +1 -1
  103. package/dist/tools/modify/replace-color.d.ts.map +1 -1
  104. package/dist/tools/modify/replace-color.js +2 -1
  105. package/dist/tools/modify/replace-color.js.map +1 -1
  106. package/dist/tools/modify/resize-for-variation.d.ts.map +1 -1
  107. package/dist/tools/modify/resize-for-variation.js +4 -5
  108. package/dist/tools/modify/resize-for-variation.js.map +1 -1
  109. package/dist/tools/modify/save-document.d.ts.map +1 -1
  110. package/dist/tools/modify/save-document.js +2 -1
  111. package/dist/tools/modify/save-document.js.map +1 -1
  112. package/dist/tools/modify/select-objects.d.ts.map +1 -1
  113. package/dist/tools/modify/select-objects.js +2 -1
  114. package/dist/tools/modify/select-objects.js.map +1 -1
  115. package/dist/tools/modify/set-z-order.d.ts.map +1 -1
  116. package/dist/tools/modify/set-z-order.js +2 -1
  117. package/dist/tools/modify/set-z-order.js.map +1 -1
  118. package/dist/tools/modify/undo.d.ts.map +1 -1
  119. package/dist/tools/modify/undo.js +2 -1
  120. package/dist/tools/modify/undo.js.map +1 -1
  121. package/dist/tools/modify/ungroup-objects.d.ts.map +1 -1
  122. package/dist/tools/modify/ungroup-objects.js +2 -1
  123. package/dist/tools/modify/ungroup-objects.js.map +1 -1
  124. package/dist/tools/read/check-contrast.d.ts.map +1 -1
  125. package/dist/tools/read/check-contrast.js +14 -27
  126. package/dist/tools/read/check-contrast.js.map +1 -1
  127. package/dist/tools/read/convert-coordinate.d.ts.map +1 -1
  128. package/dist/tools/read/convert-coordinate.js +2 -1
  129. package/dist/tools/read/convert-coordinate.js.map +1 -1
  130. package/dist/tools/read/extract-design-tokens.d.ts.map +1 -1
  131. package/dist/tools/read/extract-design-tokens.js +2 -1
  132. package/dist/tools/read/extract-design-tokens.js.map +1 -1
  133. package/dist/tools/read/find-objects.d.ts.map +1 -1
  134. package/dist/tools/read/find-objects.js +3 -7
  135. package/dist/tools/read/find-objects.js.map +1 -1
  136. package/dist/tools/read/get-artboards.js +1 -1
  137. package/dist/tools/read/get-colors.d.ts.map +1 -1
  138. package/dist/tools/read/get-colors.js +2 -1
  139. package/dist/tools/read/get-colors.js.map +1 -1
  140. package/dist/tools/read/get-document-info.d.ts.map +1 -1
  141. package/dist/tools/read/get-document-info.js +2 -3
  142. package/dist/tools/read/get-document-info.js.map +1 -1
  143. package/dist/tools/read/get-document-structure.d.ts.map +1 -1
  144. package/dist/tools/read/get-document-structure.js +3 -7
  145. package/dist/tools/read/get-document-structure.js.map +1 -1
  146. package/dist/tools/read/get-effects.d.ts.map +1 -1
  147. package/dist/tools/read/get-effects.js +3 -7
  148. package/dist/tools/read/get-effects.js.map +1 -1
  149. package/dist/tools/read/get-groups.d.ts.map +1 -1
  150. package/dist/tools/read/get-groups.js +3 -7
  151. package/dist/tools/read/get-groups.js.map +1 -1
  152. package/dist/tools/read/get-guidelines.d.ts.map +1 -1
  153. package/dist/tools/read/get-guidelines.js +3 -7
  154. package/dist/tools/read/get-guidelines.js.map +1 -1
  155. package/dist/tools/read/get-images.d.ts.map +1 -1
  156. package/dist/tools/read/get-images.js +40 -13
  157. package/dist/tools/read/get-images.js.map +1 -1
  158. package/dist/tools/read/get-layers.js +1 -1
  159. package/dist/tools/read/get-overprint-info.d.ts.map +1 -1
  160. package/dist/tools/read/get-overprint-info.js +2 -3
  161. package/dist/tools/read/get-overprint-info.js.map +1 -1
  162. package/dist/tools/read/get-path-items.d.ts.map +1 -1
  163. package/dist/tools/read/get-path-items.js +11 -9
  164. package/dist/tools/read/get-path-items.js.map +1 -1
  165. package/dist/tools/read/get-separation-info.d.ts.map +1 -1
  166. package/dist/tools/read/get-separation-info.js +2 -3
  167. package/dist/tools/read/get-separation-info.js.map +1 -1
  168. package/dist/tools/read/get-symbols.d.ts.map +1 -1
  169. package/dist/tools/read/get-symbols.js +3 -7
  170. package/dist/tools/read/get-symbols.js.map +1 -1
  171. package/dist/tools/read/get-text-frame-detail.d.ts.map +1 -1
  172. package/dist/tools/read/get-text-frame-detail.js +2 -1
  173. package/dist/tools/read/get-text-frame-detail.js.map +1 -1
  174. package/dist/tools/read/list-fonts.d.ts.map +1 -1
  175. package/dist/tools/read/list-fonts.js +2 -1
  176. package/dist/tools/read/list-fonts.js.map +1 -1
  177. package/dist/tools/read/list-text-frames.d.ts.map +1 -1
  178. package/dist/tools/read/list-text-frames.js +3 -5
  179. package/dist/tools/read/list-text-frames.js.map +1 -1
  180. package/dist/tools/registry.d.ts.map +1 -1
  181. package/dist/tools/registry.js +2 -0
  182. package/dist/tools/registry.js.map +1 -1
  183. package/dist/tools/session.d.ts.map +1 -1
  184. package/dist/tools/session.js +5 -1
  185. package/dist/tools/session.js.map +1 -1
  186. package/dist/tools/utility/check-text-consistency.d.ts.map +1 -1
  187. package/dist/tools/utility/check-text-consistency.js +14 -20
  188. package/dist/tools/utility/check-text-consistency.js.map +1 -1
  189. package/dist/tools/utility/preflight-check.d.ts.map +1 -1
  190. package/dist/tools/utility/preflight-check.js +48 -20
  191. package/dist/tools/utility/preflight-check.js.map +1 -1
  192. package/dist/tools/utility/set-workflow.js +1 -1
  193. package/dist/tools/utility/set-workflow.js.map +1 -1
  194. package/package.json +1 -1
@@ -0,0 +1,539 @@
1
+ [🇺🇸 English](README.md) | [🇯🇵 日本語](README.ja.md) | [🇨🇳 简体中文](README.zh-CN.md) | [🇰🇷 한국어](README.ko.md) | [🇪🇸 Español](README.es.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | **🇵🇹 Português (BR)**
2
+
3
+ # Illustrator MCP Server
4
+
5
+ [![npm](https://img.shields.io/npm/v/illustrator-mcp-server.svg?style=flat-square&colorA=18181B&colorB=18181B)](https://www.npmjs.com/package/illustrator-mcp-server)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-18181B.svg?style=flat-square&colorA=18181B)](LICENSE)
7
+ [![Platform](https://img.shields.io/badge/Platform-macOS%20%7C%20Windows-18181B.svg?style=flat-square&colorA=18181B)]()
8
+ [![Illustrator](https://img.shields.io/badge/Illustrator-CC%202024%2B-18181B.svg?style=flat-square&colorA=18181B)](https://www.adobe.com/products/illustrator.html)
9
+ [![MCP](https://img.shields.io/badge/MCP-Compatible-18181B.svg?style=flat-square&colorA=18181B)](https://modelcontextprotocol.io/)
10
+ [![Ko-fi](https://img.shields.io/badge/Ko--fi-FF5E5B?style=flat&logo=ko-fi&logoColor=white)](https://ko-fi.com/cyocun)
11
+
12
+ Um servidor [MCP (Model Context Protocol)](https://modelcontextprotocol.io/) para ler, manipular e exportar dados de design do Adobe Illustrator — com 63 ferramentas integradas.
13
+
14
+ Controle o Illustrator diretamente a partir de assistentes de IA como o Claude — extraia informações de design para implementação web, verifique dados prontos para impressão e exporte assets.
15
+
16
+ [![illustrator mcp server MCP server](https://glama.ai/mcp/servers/ie3jp/illustrator-mcp-server/badges/card.svg)](https://glama.ai/mcp/servers/ie3jp/illustrator-mcp-server)
17
+
18
+ ---
19
+
20
+ ## 🎨 Galeria
21
+
22
+ Todas as artes abaixo foram criadas inteiramente pelo Claude por meio de conversa em linguagem natural — sem qualquer operação manual no Illustrator.
23
+
24
+ <table>
25
+ <tr>
26
+ <td align="center"><img src="docs/images/example-event-poster.png" width="300" alt="Pôster de evento — SYNC TOKYO 2026" /><br><b>Pôster de Evento</b></td>
27
+ <td align="center"><img src="docs/images/example-logo-concepts.png" width="300" alt="Conceitos de logo — Slow Drip Coffee Co." /><br><b>Conceitos de Logo</b></td>
28
+ </tr>
29
+ <tr>
30
+ <td align="center"><img src="docs/images/example-business-card.png" width="300" alt="Cartão de visita — KUMO Studio" /><br><b>Cartão de Visita</b></td>
31
+ <td align="center"><img src="docs/images/example-twilight-geometry.png" width="300" alt="Twilight Geometry — paisagem geométrica abstrata" /><br><b>Twilight Geometry</b></td>
32
+ </tr>
33
+ </table>
34
+
35
+ > Veja os [detalhamentos completos](#exemplo-padrão-de-teste-smpte) abaixo para prompts, uso de ferramentas e estrutura de pranchetas.
36
+
37
+ ---
38
+
39
+ > [!TIP]
40
+ > Desenvolver e manter esta ferramenta consome tempo e recursos.
41
+ > Se ela ajuda no seu fluxo de trabalho, seu apoio significa muito — [☕ me pague um café!](https://ko-fi.com/cyocun)
42
+
43
+ ---
44
+
45
+ ## 🚀 Início Rápido
46
+
47
+ ### 🛠️ Claude Code
48
+
49
+ Requer [Node.js 20+](https://nodejs.org/).
50
+
51
+ ```bash
52
+ claude mcp add illustrator-mcp -- npx illustrator-mcp-server
53
+ ```
54
+
55
+ ### 🖥️ Claude Desktop
56
+
57
+ 1. Baixe o **`illustrator-mcp-server.mcpb`** em [GitHub Releases](https://github.com/ie3jp/illustrator-mcp-server/releases/latest)
58
+ 2. Abra o Claude Desktop → **Settings** → **Extensions**
59
+ 3. Arraste e solte o arquivo `.mcpb` no painel de Extensions
60
+ 4. Clique no botão **Install**
61
+
62
+ <details>
63
+ <summary><strong>Alternativa: configuração manual (sempre atualizada via npx)</strong></summary>
64
+
65
+ > [!NOTE]
66
+ > A extensão `.mcpb` não se atualiza automaticamente. Para atualizar, baixe a nova versão e reinstale. Se preferir atualizações automáticas, use o método npx abaixo.
67
+
68
+ Requer [Node.js 20+](https://nodejs.org/). Abra o arquivo de configuração e adicione as definições de conexão.
69
+
70
+ #### 1. Abra o arquivo de configuração
71
+
72
+ Na barra de menu do Claude Desktop:
73
+
74
+ **Claude** → **Settings...** → **Developer** (na barra lateral esquerda) → clique no botão **Edit Config**
75
+
76
+ #### 2. Adicione as configurações
77
+
78
+ ```json
79
+ {
80
+ "mcpServers": {
81
+ "illustrator": {
82
+ "command": "npx",
83
+ "args": ["illustrator-mcp-server"]
84
+ }
85
+ }
86
+ }
87
+ ```
88
+
89
+ > [!NOTE]
90
+ > Se você instalou o Node.js por meio de um gerenciador de versões (nvm, mise, fnm, etc.), o Claude Desktop pode não encontrar o `npx`. Nesse caso, use o caminho completo:
91
+ > ```json
92
+ > "command": "/caminho/completo/ate/npx"
93
+ > ```
94
+ > Execute `which npx` no terminal para encontrar o caminho.
95
+
96
+ #### 3. Salve e reinicie
97
+
98
+ 1. Salve o arquivo e feche o editor de texto
99
+ 2. **Saia completamente** do Claude Desktop (⌘Q / Ctrl+Q) e reabra
100
+
101
+ </details>
102
+
103
+ > [!CAUTION]
104
+ > A IA pode cometer erros. Não dependa excessivamente do resultado — **sempre tenha uma pessoa fazendo a verificação final dos dados de envio**. O usuário é responsável pelos resultados.
105
+
106
+ > [!NOTE]
107
+ > **macOS:** Na primeira execução, permita o acesso de automação em Ajustes do Sistema > Privacidade e Segurança > Automação.
108
+
109
+ > [!NOTE]
110
+ > As ferramentas de modificação e exportação trarão o Illustrator para o primeiro plano durante a execução.
111
+
112
+ ### Múltiplas versões do Illustrator
113
+
114
+ Se você tem várias versões do Illustrator instaladas, pode dizer ao Claude qual versão usar durante a conversa. Basta dizer algo como "Use o Illustrator 2024" e a ferramenta `set_illustrator_version` direcionará para essa versão.
115
+
116
+ > [!NOTE]
117
+ > Se o Illustrator já estiver em execução, o servidor se conecta à instância em execução independentemente da configuração de versão. A versão só é usada para iniciar a versão correta quando o Illustrator ainda não está em execução.
118
+
119
+ ---
120
+
121
+ ## 🎬 O Que Você Pode Fazer
122
+
123
+ ```
124
+ Você: Mostre-me todas as informações de texto deste documento
125
+ Claude: → list_text_frames → get_text_frame_detail
126
+ Existem 12 frames de texto no documento.
127
+ O título "My Design" usa Noto Sans JP Bold 48px, cor #333333 ...
128
+ ```
129
+
130
+ ```
131
+ Você: Execute uma verificação preflight de pré-impressão
132
+ Claude: → preflight_check
133
+ ⚠ 2 avisos:
134
+ - Imagem de baixa resolução: image_01.jpg (150dpi) — recomendado 300dpi ou mais
135
+ - Fontes não convertidas em curvas: 3 frames de texto
136
+ ```
137
+
138
+ ```
139
+ Você: Verifique inconsistências no texto
140
+ Claude: → check_text_consistency
141
+ 📝 Relatório de Consistência:
142
+ ⚠ "Contact Us" vs "Contact us" — diferença de capitalização
143
+ ❌ "Lorem ipsum" (2 locais) — texto placeholder ainda presente
144
+ ```
145
+
146
+ ```
147
+ Você: Crie variações de tamanho de banner a partir deste panfleto A4
148
+ Claude: → get_document_info → resize_for_variation
149
+ Criadas 3 variações de tamanho:
150
+ - 728×90 / 300×250 / 160×600
151
+ ```
152
+
153
+ ---
154
+
155
+ ## 📖 Receitas
156
+
157
+ <details>
158
+ <summary><b>Extrair cores e fontes para CSS</b></summary>
159
+
160
+ ```
161
+ Você: Resuma as cores e a tipografia deste design
162
+
163
+ Claude: → get_colors → list_text_frames → get_text_frame_detail
164
+
165
+ ■ Paleta de Cores
166
+ - Primária: #1A73E8 (CMYK: 85,50,0,0)
167
+ - Secundária: #34A853
168
+ - Texto: #202124
169
+ - Fundo: #FFFFFF
170
+
171
+ ■ Tipografia
172
+ - Títulos: Noto Sans JP Bold / 32px
173
+ - Corpo: Noto Sans JP Regular / 16px / line-height: 1.75
174
+ - Legendas: Noto Sans JP Medium / 12px
175
+ ```
176
+
177
+ </details>
178
+
179
+ <details>
180
+ <summary><b>Exportar pranchetas como SVG / PNG</b></summary>
181
+
182
+ ```
183
+ Você: Exporte todas as pranchetas como SVG com texto convertido em curvas
184
+
185
+ Claude: → get_artboards → convert_to_outlines → export (repetido)
186
+
187
+ 4 pranchetas exportadas:
188
+ - /output/header.svg
189
+ - /output/hero.svg
190
+ - /output/feature.svg
191
+ - /output/footer.svg
192
+ ```
193
+
194
+ </details>
195
+
196
+ <details>
197
+ <summary><b>Verificar conformidade PDF/X-1a antes do envio</b></summary>
198
+
199
+ ```
200
+ Você: Verifique se este documento está em conformidade com PDF/X-1a
201
+
202
+ Claude: → preflight_check (target_pdf_profile: "x1a")
203
+
204
+ ❌ Erros de conformidade PDF/X-1a:
205
+ - Transparência em 3 objetos (X-1a proíbe transparência)
206
+ - Cores RGB encontradas em 2 locais (X-1a requer apenas CMYK/cores especiais)
207
+
208
+ ⚠ Avisos:
209
+ - 5 fontes não convertidas em curvas (incorporação recomendada)
210
+ - Imagem "photo_02.jpg" a 150dpi (300dpi recomendado)
211
+ ```
212
+
213
+ </details>
214
+
215
+ <details>
216
+ <summary><b>Verificar qualidade de imagem para impressão</b></summary>
217
+
218
+ ```
219
+ Você: Verifique a qualidade das imagens inseridas para impressão
220
+
221
+ Claude: → get_images (include_print_info: true)
222
+
223
+ ■ Relatório de Qualidade de Imagem:
224
+ ✅ hero.psd — CMYK, 350dpi, escala 98%
225
+ ⚠ icon_set.png — RGB (incompatível com documento CMYK), 300dpi, escala 100%
226
+ ❌ photo_bg.jpg — CMYK, 72dpi, escala 400% (ampliada em excesso)
227
+ → Substituir por imagem de 300dpi+ em tamanho real
228
+ ```
229
+
230
+ </details>
231
+
232
+ <details>
233
+ <summary><b>Verificar razões de contraste de cor WCAG</b></summary>
234
+
235
+ ```
236
+ Você: Verifique as razões de contraste do texto
237
+
238
+ Claude: → check_contrast (auto_detect: true)
239
+
240
+ ■ Relatório de Contraste WCAG:
241
+ ❌ "Caption" sobre "cinza claro" — 2.8:1 (AA reprovado)
242
+ ⚠ "Subheading" sobre "branco" — 4.2:1 (AA Large OK, AA Normal reprovado)
243
+ ✅ "Body text" sobre "branco" — 12.1:1 (AAA aprovado)
244
+ ```
245
+
246
+ </details>
247
+
248
+ ---
249
+
250
+ ## Templates de Fluxo de Trabalho
251
+
252
+ Templates de fluxo de trabalho pré-construídos, disponíveis no seletor de prompts do Claude Desktop.
253
+
254
+ | Template | Descrição |
255
+ |----------|-----------|
256
+ | `quick-layout` | Cole o conteúdo de texto e o Claude o organiza na prancheta como títulos, corpo e legendas |
257
+ | `print-preflight-workflow` | Verificação completa de pré-impressão em 7 passos (documento → preflight → sobreimpressão → separações → imagens → cores → texto) |
258
+
259
+ ---
260
+
261
+ ## Referência de Ferramentas
262
+
263
+ ### Ferramentas de Leitura (21)
264
+
265
+ <details>
266
+ <summary>Clique para expandir</summary>
267
+
268
+ | Ferramenta | Descrição |
269
+ |---|---|
270
+ | `get_document_info` | Metadados do documento (dimensões, modo de cor, perfil, etc.) |
271
+ | `get_artboards` | Informações de pranchetas (posição, tamanho, orientação) |
272
+ | `get_layers` | Estrutura de camadas em formato de árvore |
273
+ | `get_document_structure` | Árvore completa: camadas → grupos → objetos em uma única chamada |
274
+ | `list_text_frames` | Lista de frames de texto (fonte, tamanho, nome do estilo) |
275
+ | `get_text_frame_detail` | Todos os atributos de um frame de texto específico (kerning, configurações de parágrafo, etc.) |
276
+ | `get_colors` | Informações de cores em uso (amostras, gradientes, cores especiais). `include_diagnostics` para análise de impressão |
277
+ | `get_path_items` | Dados de paths/formas (preenchimento, traço, pontos de ancoragem) |
278
+ | `get_groups` | Grupos, máscaras de recorte e estrutura de paths compostos |
279
+ | `get_effects` | Efeitos e informações de aparência (opacidade, modo de mesclagem) |
280
+ | `get_images` | Informações de imagens incorporadas/vinculadas (resolução, detecção de links quebrados). `include_print_info` para incompatibilidade de espaço de cor e fator de escala |
281
+ | `get_symbols` | Definições e instâncias de símbolos |
282
+ | `get_guidelines` | Informações de guias |
283
+ | `get_overprint_info` | Configurações de sobreimpressão + detecção de K100/preto rico e classificação de intenção |
284
+ | `get_separation_info` | Informações de separação de cores (placas de processo CMYK + placas de cores especiais com contagem de uso) |
285
+ | `get_selection` | Detalhes dos objetos atualmente selecionados |
286
+ | `find_objects` | Busca por critérios (nome, tipo, cor, fonte, etc.) |
287
+ | `check_contrast` | Verificação de razão de contraste de cor WCAG (manual ou detecção automática de pares sobrepostos) |
288
+ | `extract_design_tokens` | Extrai design tokens como CSS custom properties, JSON ou configuração do Tailwind |
289
+ | `list_fonts` | Lista as fontes disponíveis no Illustrator (não requer documento aberto) |
290
+ | `convert_coordinate` | Converte pontos entre os sistemas de coordenadas de prancheta e documento |
291
+
292
+ </details>
293
+
294
+ ### Ferramentas de Modificação (38)
295
+
296
+ <details>
297
+ <summary>Clique para expandir</summary>
298
+
299
+ | Ferramenta | Descrição |
300
+ |---|---|
301
+ | `create_rectangle` | Cria um retângulo (suporta cantos arredondados) |
302
+ | `create_ellipse` | Cria uma elipse |
303
+ | `create_line` | Cria uma linha |
304
+ | `create_text_frame` | Cria um frame de texto (ponto ou área) |
305
+ | `create_path` | Cria um path customizado (com alças Bezier) |
306
+ | `place_image` | Insere um arquivo de imagem como vinculado ou incorporado |
307
+ | `modify_object` | Modifica propriedades de um objeto existente |
308
+ | `convert_to_outlines` | Converte texto em curvas |
309
+ | `assign_color_profile` | Atribui (marca) um perfil de cor (não converte os valores de cor) |
310
+ | `create_document` | Cria um novo documento (tamanho, modo de cor) |
311
+ | `close_document` | Fecha o documento ativo |
312
+ | `resize_for_variation` | Cria variações de tamanho a partir de uma prancheta de origem (escala proporcional) |
313
+ | `align_objects` | Alinha e distribui múltiplos objetos |
314
+ | `replace_color` | Localiza e substitui cores em todo o documento (com tolerância) |
315
+ | `manage_layers` | Adiciona, renomeia, mostra/esconde, bloqueia/desbloqueia, reordena ou exclui camadas |
316
+ | `place_color_chips` | Extrai cores únicas e posiciona amostras de color chips fora da prancheta |
317
+ | `save_document` | Salva ou salva como do documento ativo |
318
+ | `open_document` | Abre um documento a partir de um caminho de arquivo |
319
+ | `group_objects` | Agrupa objetos (suporta máscaras de recorte) |
320
+ | `ungroup_objects` | Desagrupa um grupo, liberando os filhos |
321
+ | `duplicate_objects` | Duplica objetos com deslocamento opcional |
322
+ | `set_z_order` | Muda a ordem de empilhamento (frente/fundo) |
323
+ | `move_to_layer` | Move objetos para outra camada |
324
+ | `manage_artboards` | Adiciona, remove, redimensiona, renomeia, reorganiza pranchetas |
325
+ | `manage_swatches` | Adiciona, atualiza ou exclui amostras de cor |
326
+ | `manage_linked_images` | Re-vincula ou incorpora imagens inseridas |
327
+ | `manage_datasets` | Lista/aplica/cria datasets, importa/exporta variáveis |
328
+ | `apply_graphic_style` | Aplica um estilo gráfico aos objetos |
329
+ | `list_graphic_styles` | Lista todos os estilos gráficos do documento |
330
+ | `apply_text_style` | Aplica estilo de caractere ou parágrafo ao texto |
331
+ | `list_text_styles` | Lista todos os estilos de caractere e parágrafo |
332
+ | `create_gradient` | Cria gradientes e aplica aos objetos |
333
+ | `create_path_text` | Cria texto ao longo de um path |
334
+ | `place_symbol` | Insere ou substitui instâncias de símbolos |
335
+ | `select_objects` | Seleciona objetos por UUID (seleção múltipla suportada) |
336
+ | `create_crop_marks` | Cria marcas de corte com detecção automática de estilo por locale (linha dupla japonesa / linha única ocidental) |
337
+ | `place_style_guide` | Posiciona um guia de estilo visual fora da prancheta (cores, fontes, espaçamentos, margens, distâncias entre guias) |
338
+ | `undo` | Operações de undo/redo (múltiplos passos) |
339
+
340
+ </details>
341
+
342
+ ### Ferramentas de Exportação (2)
343
+
344
+ <details>
345
+ <summary>Clique para expandir</summary>
346
+
347
+ | Ferramenta | Descrição |
348
+ |---|---|
349
+ | `export` | Exportação SVG / PNG / JPG (por prancheta, seleção ou UUID) |
350
+ | `export_pdf` | Exportação de PDF pronto para impressão (marcas de corte, sangria, downsampling seletivo, output intent) |
351
+
352
+ </details>
353
+
354
+ ### Utilitários (3)
355
+
356
+ <details>
357
+ <summary>Clique para expandir</summary>
358
+
359
+ | Ferramenta | Descrição |
360
+ |---|---|
361
+ | `preflight_check` | Verificação preflight de pré-impressão (mistura de RGB, links quebrados, baixa resolução, sobreimpressão branca, interação transparência+sobreimpressão, conformidade PDF/X, etc.) |
362
+ | `check_text_consistency` | Verificação de consistência de texto (detecção de placeholders, padrões de variação de grafia, listagem completa de texto para análise por LLM) |
363
+ | `set_workflow` | Define o modo de fluxo de trabalho (web/print) para sobrescrever o sistema de coordenadas detectado automaticamente |
364
+
365
+ </details>
366
+
367
+ ---
368
+
369
+ ## Sistema de Coordenadas
370
+
371
+ O servidor detecta automaticamente o sistema de coordenadas a partir do documento:
372
+
373
+ | Tipo de documento | Sistema de coordenadas | Origem | Eixo Y |
374
+ |---|---|---|---|
375
+ | CMYK / Impressão | `document` | Inferior esquerdo | Para cima |
376
+ | RGB / Web | `artboard-web` | Superior esquerdo da prancheta | Para baixo |
377
+
378
+ - **Documentos CMYK** usam o sistema de coordenadas nativo do Illustrator, coincidindo com o que designers de impressão esperam
379
+ - **Documentos RGB** usam um sistema de coordenadas estilo web, mais fácil para a IA trabalhar
380
+ - Use `set_workflow` para sobrescrever o sistema detectado automaticamente, se necessário
381
+ - Todas as respostas das ferramentas incluem um campo `coordinateSystem` indicando qual sistema está ativo
382
+
383
+ ---
384
+
385
+ ## Exemplo: Padrão de Teste SMPTE
386
+
387
+ Um padrão de teste de barras de cor SMPTE 1920×1080, criado inteiramente por meio de instruções em linguagem natural ao Claude.
388
+
389
+ **Prompt:**
390
+
391
+ > Faça um padrão de teste de vídeo em 1920x1080
392
+
393
+ **Resultado:**
394
+
395
+ <img src="docs/images/example-smpte-test-pattern.png" width="720" alt="Padrão de teste de barras de cor SMPTE gerado pelo Claude via illustrator-mcp-server" />
396
+
397
+ **Estrutura da prancheta** (via `get_document_structure`):
398
+
399
+ <details>
400
+ <summary>Clique para expandir</summary>
401
+
402
+ ```
403
+ Labels
404
+ ├── title-safe-label (text) — "TITLE SAFE (10%)"
405
+ ├── action-safe-label (text) — "ACTION SAFE (5%)"
406
+ ├── credit-label (text) — "Generated by illustrator-mcp-server"
407
+ ├── test-label (text) — "SMPTE COLOR BARS — TEST PATTERN"
408
+ ├── format-label (text) — "Full HD — 16:9"
409
+ └── resolution-label (text) — "1920 x 1080"
410
+
411
+ Center Cross
412
+ ├── title-safe (path) — 1536×864 stroke rectangle
413
+ ├── action-safe (path) — 1728×972 stroke rectangle
414
+ ├── cross-circle (path) — 150×150 center circle
415
+ ├── cross-v (path) — vertical crosshair
416
+ └── cross-h (path) — horizontal crosshair
417
+
418
+ Color Bars
419
+ ├── pluge-black … pluge-navy (path ×9) — PLUGE / grayscale bottom strip
420
+ ├── rev-white … rev-blue (path ×7) — reverse color middle strip
421
+ └── bar-white … bar-blue (path ×7) — 75% SMPTE color bars
422
+ ```
423
+
424
+ </details>
425
+
426
+ > Ferramentas utilizadas: `create_document`, `manage_layers`, `create_rectangle` ×23, `create_line` ×2, `create_ellipse`, `create_text_frame` ×6, `modify_object` ×4, `save_document`, `export`
427
+
428
+ ---
429
+
430
+ ## Exemplo: Twilight Geometry
431
+
432
+ Uma arte de paisagem geométrica abstrata — criada inteiramente pelo Claude, sem qualquer direção de design humana além de "faça a arte que quiser".
433
+
434
+ **Prompt:**
435
+
436
+ > Crie uma obra de arte a partir da sua própria imaginação no Illustrator. Não tenha pressa. Faça o que quiser.
437
+
438
+ **Processo do Claude:**
439
+
440
+ > Vou criar "Twilight Geometry" — uma paisagem abstrata com elementos celestes geométricos. Um céu crepuscular com gradiente profundo, silhuetas de montanhas em camadas, uma lua crescente com anéis decorativos e estrelas espalhadas pela tela.
441
+
442
+ > Estrelas em formato de diamante em diferentes cores — brancos quentes, azuis frios, lavandas — cada uma sutilmente diferente para sugerir diferentes tipos de estrelas. Linhas de constelações conectando-as. Triângulos em wireframe e um hexágono flutuando no céu para um clima místico.
443
+
444
+ > Uma superfície de água na parte inferior com a luz da lua refletida em linhas onduladas cintilantes, que vão se desvanecendo à medida que descem.
445
+
446
+ **Reflexão do Claude:**
447
+
448
+ > Ficou melhor do que eu esperava. Acho que o mundo híbrido entre geometria e natureza foi bem transmitido.
449
+
450
+ **Resultado:**
451
+
452
+ <img src="docs/images/example-twilight-geometry.png" width="720" alt="Twilight Geometry — arte de paisagem geométrica abstrata gerada pelo Claude via illustrator-mcp-server" />
453
+
454
+ > Ferramentas utilizadas: `create_document`, `manage_layers` ×4, `create_rectangle` ×2, `create_gradient` ×2, `create_path` ×11, `create_ellipse` ×14, `create_line` ×4, `create_text_frame` ×2, `modify_object`, `set_z_order`, `export`
455
+
456
+ ---
457
+
458
+ ## Limitações Conhecidas
459
+
460
+ | Limitação | Detalhes |
461
+ |---|---|
462
+ | Suporte ao Windows | Windows usa automação COM via PowerShell (ainda não testado em hardware real) |
463
+ | Live effects | Parâmetros de sombra projetada e outros efeitos podem ser detectados, mas não lidos |
464
+ | Perfis de cor | Apenas atribuição de perfil de cor — conversão completa não está disponível |
465
+ | Configurações de sangria | Configurações de sangria não podem ser lidas (limitação da API do Illustrator) |
466
+ | Exportação WebP | Não suportado — use PNG ou SVG em vez disso |
467
+ | Marcas de corte japonesas | A exportação em PDF usa automaticamente a abordagem via comando TrimMark: gera as marcas como paths do documento, exporta e depois as remove via undo |
468
+ | Incorporação de fontes | O modo de incorporação (full/subset) não pode ser controlado diretamente — use PDF presets |
469
+ | Variações de tamanho | Apenas escala proporcional — o texto pode precisar de ajuste manual posteriormente |
470
+
471
+ ---
472
+
473
+ <br>
474
+
475
+ # Para Desenvolvedores
476
+
477
+ ## Arquitetura
478
+
479
+ ```mermaid
480
+ flowchart LR
481
+ Claude <-->|MCP Protocol| Server["MCP Server\n(TypeScript/Node.js)"]
482
+
483
+ Server -.->|generate| Runner["run-{uuid}.scpt / .ps1"]
484
+ Server -.->|generate| JSX["script-{uuid}.jsx\n(BOM UTF-8)"]
485
+ Server -.->|write| PF["params-{uuid}.json"]
486
+
487
+ Runner -->|execFile| osascript
488
+ Runner -->|execFile| PS["powershell.exe"]
489
+
490
+ osascript -->|do javascript| AI["Adobe Illustrator\n(ExtendScript/JSX)"]
491
+ PS -->|DoJavaScript| AI
492
+
493
+ JSX -.->|execute| AI
494
+ PF -.->|read| AI
495
+ AI -.->|write| RF["result-{uuid}.json"]
496
+ RF -.->|read| Server
497
+ ```
498
+
499
+ ---
500
+
501
+ ## Build a partir do código-fonte
502
+
503
+ ```bash
504
+ git clone https://github.com/ie3jp/illustrator-mcp-server.git
505
+ cd illustrator-mcp-server
506
+ npm install
507
+ npm run build
508
+ claude mcp add illustrator-mcp -- node /path/to/illustrator-mcp-server/dist/index.js
509
+ ```
510
+
511
+ ### Verificação
512
+
513
+ ```bash
514
+ npx @modelcontextprotocol/inspector npx illustrator-mcp-server
515
+ ```
516
+
517
+ ### Testes
518
+
519
+ ```bash
520
+ # Testes unitários
521
+ npm test
522
+
523
+ # Smoke test E2E (requer Illustrator em execução)
524
+ npx tsx test/e2e/smoke-test.ts
525
+ ```
526
+
527
+ O teste E2E cria documentos novos (RGB + CMYK), insere objetos de teste, executa 182 casos de teste em 10 fases que cobrem todas as ferramentas registradas e a detecção automática do sistema de coordenadas, e faz a limpeza automaticamente.
528
+
529
+ ---
530
+
531
+ ## Aviso Legal
532
+
533
+ Esta ferramenta automatiza muitas operações do Illustrator, mas a IA pode cometer erros. Dados extraídos, resultados de preflight e modificações de documento devem sempre ser revisados por uma pessoa. **Não confie nesta ferramenta como sua única verificação de qualidade.** Use-a como assistente junto com sua própria verificação manual, especialmente para envios a gráficas e entregas a clientes. Os autores não se responsabilizam por quaisquer danos ou perdas decorrentes do uso deste software ou de seus resultados.
534
+
535
+ ---
536
+
537
+ ## Licença
538
+
539
+ [MIT](LICENSE)