@alisaitteke/photoshop-mcp 1.3.13 → 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.
- package/README.de.md +766 -0
- package/README.es.md +717 -0
- package/README.ja.md +712 -0
- package/README.md +135 -40
- package/README.tr.md +773 -0
- package/README.zh-CN.md +710 -0
- package/dist/api/extendscript.d.ts +17 -1
- package/dist/api/extendscript.d.ts.map +1 -1
- package/dist/api/extendscript.js +301 -3
- package/dist/api/extendscript.js.map +1 -1
- package/dist/api/photoshop-api.d.ts +1 -1
- package/dist/api/photoshop-api.d.ts.map +1 -1
- package/dist/api/photoshop-api.js +4 -4
- package/dist/api/photoshop-api.js.map +1 -1
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +8 -0
- package/dist/core/server.js.map +1 -1
- package/dist/errors/envelope.d.ts +1 -1
- package/dist/errors/envelope.d.ts.map +1 -1
- package/dist/errors/envelope.js +4 -0
- package/dist/errors/envelope.js.map +1 -1
- package/dist/platform/capabilities.d.ts +7 -0
- package/dist/platform/capabilities.d.ts.map +1 -1
- package/dist/platform/capabilities.js +23 -1
- package/dist/platform/capabilities.js.map +1 -1
- package/dist/platform/uxp-bridge-client.d.ts +13 -0
- package/dist/platform/uxp-bridge-client.d.ts.map +1 -0
- package/dist/platform/uxp-bridge-client.js +31 -0
- package/dist/platform/uxp-bridge-client.js.map +1 -0
- package/dist/platform/uxp-bridge-server.d.ts +16 -0
- package/dist/platform/uxp-bridge-server.d.ts.map +1 -0
- package/dist/platform/uxp-bridge-server.js +105 -0
- package/dist/platform/uxp-bridge-server.js.map +1 -0
- package/dist/prompts/instructions.d.ts.map +1 -1
- package/dist/prompts/instructions.js +21 -12
- package/dist/prompts/instructions.js.map +1 -1
- package/dist/prompts/registry.d.ts +2 -2
- package/dist/prompts/registry.d.ts.map +1 -1
- package/dist/prompts/registry.js +15 -0
- package/dist/prompts/registry.js.map +1 -1
- package/dist/prompts/templates/batch-watermark.d.ts +3 -0
- package/dist/prompts/templates/batch-watermark.d.ts.map +1 -0
- package/dist/prompts/templates/batch-watermark.js +67 -0
- package/dist/prompts/templates/batch-watermark.js.map +1 -0
- package/dist/prompts/templates/generative-expand.d.ts +3 -0
- package/dist/prompts/templates/generative-expand.d.ts.map +1 -0
- package/dist/prompts/templates/generative-expand.js +34 -0
- package/dist/prompts/templates/generative-expand.js.map +1 -0
- package/dist/prompts/templates/generative-fill.d.ts +3 -0
- package/dist/prompts/templates/generative-fill.d.ts.map +1 -0
- package/dist/prompts/templates/generative-fill.js +29 -0
- package/dist/prompts/templates/generative-fill.js.map +1 -0
- package/dist/prompts/templates/generative-remove.d.ts +3 -0
- package/dist/prompts/templates/generative-remove.d.ts.map +1 -0
- package/dist/prompts/templates/generative-remove.js +36 -0
- package/dist/prompts/templates/generative-remove.js.map +1 -0
- package/dist/prompts/templates/passport-photo.d.ts +3 -0
- package/dist/prompts/templates/passport-photo.d.ts.map +1 -0
- package/dist/prompts/templates/passport-photo.js +36 -0
- package/dist/prompts/templates/passport-photo.js.map +1 -0
- package/dist/prompts/templates/remove-distraction.d.ts.map +1 -1
- package/dist/prompts/templates/remove-distraction.js +4 -5
- package/dist/prompts/templates/remove-distraction.js.map +1 -1
- package/dist/prompts/templates/split-carousel.d.ts +3 -0
- package/dist/prompts/templates/split-carousel.d.ts.map +1 -0
- package/dist/prompts/templates/split-carousel.js +49 -0
- package/dist/prompts/templates/split-carousel.js.map +1 -0
- package/dist/tools/generative/_shared.d.ts +14 -0
- package/dist/tools/generative/_shared.d.ts.map +1 -0
- package/dist/tools/generative/_shared.js +79 -0
- package/dist/tools/generative/_shared.js.map +1 -0
- package/dist/tools/generative-tools.d.ts +8 -0
- package/dist/tools/generative-tools.d.ts.map +1 -0
- package/dist/tools/generative-tools.js +221 -0
- package/dist/tools/generative-tools.js.map +1 -0
- package/dist/tools/layer-properties-tools.d.ts.map +1 -1
- package/dist/tools/layer-properties-tools.js +2 -1
- package/dist/tools/layer-properties-tools.js.map +1 -1
- package/dist/tools/neural-tools.d.ts +8 -0
- package/dist/tools/neural-tools.d.ts.map +1 -0
- package/dist/tools/neural-tools.js +99 -0
- package/dist/tools/neural-tools.js.map +1 -0
- package/dist/tools/recipes/_shared.d.ts +8 -0
- package/dist/tools/recipes/_shared.d.ts.map +1 -1
- package/dist/tools/recipes/_shared.js +45 -0
- package/dist/tools/recipes/_shared.js.map +1 -1
- package/dist/tools/recipes/batch-watermark.d.ts +4 -0
- package/dist/tools/recipes/batch-watermark.d.ts.map +1 -0
- package/dist/tools/recipes/batch-watermark.js +283 -0
- package/dist/tools/recipes/batch-watermark.js.map +1 -0
- package/dist/tools/recipes/enhance-portrait.d.ts.map +1 -1
- package/dist/tools/recipes/enhance-portrait.js +47 -0
- package/dist/tools/recipes/enhance-portrait.js.map +1 -1
- package/dist/tools/recipes/index.d.ts +1 -1
- package/dist/tools/recipes/index.d.ts.map +1 -1
- package/dist/tools/recipes/index.js +9 -0
- package/dist/tools/recipes/index.js.map +1 -1
- package/dist/tools/recipes/passport-photo.d.ts +4 -0
- package/dist/tools/recipes/passport-photo.d.ts.map +1 -0
- package/dist/tools/recipes/passport-photo.js +202 -0
- package/dist/tools/recipes/passport-photo.js.map +1 -0
- package/dist/tools/recipes/remove-background.d.ts.map +1 -1
- package/dist/tools/recipes/remove-background.js +5 -0
- package/dist/tools/recipes/remove-background.js.map +1 -1
- package/dist/tools/recipes/remove-distraction.d.ts.map +1 -1
- package/dist/tools/recipes/remove-distraction.js +48 -8
- package/dist/tools/recipes/remove-distraction.js.map +1 -1
- package/dist/tools/recipes/sky-blend.d.ts.map +1 -1
- package/dist/tools/recipes/sky-blend.js +43 -1
- package/dist/tools/recipes/sky-blend.js.map +1 -1
- package/dist/tools/recipes/split-carousel.d.ts +4 -0
- package/dist/tools/recipes/split-carousel.d.ts.map +1 -0
- package/dist/tools/recipes/split-carousel.js +163 -0
- package/dist/tools/recipes/split-carousel.js.map +1 -0
- package/dist/tools/state-tools.js +2 -2
- package/dist/tools/state-tools.js.map +1 -1
- package/package.json +3 -2
- package/uxp-plugin/index.html +20 -0
- package/uxp-plugin/main.js +139 -0
- package/uxp-plugin/manifest.json +26 -0
- package/web/dist/assets/index-BN7ku4VU.css +1 -0
- package/web/dist/assets/index-uXgjjmy3.js +346 -0
- package/web/dist/index.html +2 -2
- package/dist/analytics/client-ip.d.ts +0 -5
- package/dist/analytics/client-ip.d.ts.map +0 -1
- package/dist/analytics/client-ip.js +0 -39
- package/dist/analytics/client-ip.js.map +0 -1
- package/dist/analytics/debug-log.d.ts +0 -3
- package/dist/analytics/debug-log.d.ts.map +0 -1
- package/dist/analytics/debug-log.js +0 -21
- package/dist/analytics/debug-log.js.map +0 -1
- package/dist/prompts/templates.d.ts +0 -8
- package/dist/prompts/templates.d.ts.map +0 -1
- package/dist/prompts/templates.js +0 -162
- package/dist/prompts/templates.js.map +0 -1
- package/dist/tools/recipe-tools.d.ts +0 -4
- package/dist/tools/recipe-tools.d.ts.map +0 -1
- package/dist/tools/recipe-tools.js +0 -265
- package/dist/tools/recipe-tools.js.map +0 -1
- package/web/dist/assets/index-BgiXf1Jy.css +0 -1
- package/web/dist/assets/index-DvGX0LLy.js +0 -346
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
</a>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
|
+
**Languages:** English · [简体中文](README.zh-CN.md) · [Español](README.es.md) · [Deutsch](README.de.md) · [日本語](README.ja.md) · [Türkçe](README.tr.md)
|
|
10
|
+
|
|
9
11
|
*v1.1+ — recipe workflows, fewer round-trips, snappier sessions. Standalone UI ships **Action Plan (beta)** for plan-then-execute runs.*
|
|
10
12
|
|
|
11
13
|
> **Note:** This is an unofficial, community-maintained project and is not affiliated with or endorsed by Adobe Inc.
|
|
@@ -150,15 +152,21 @@ requests into reliable Photoshop actions:
|
|
|
150
152
|
- **Server `instructions`** — workflow contract advertised on MCP `initialize`
|
|
151
153
|
(ping once, state-before-action, prefer recipes, error recovery). See
|
|
152
154
|
[`src/prompts/instructions.ts`](src/prompts/instructions.ts).
|
|
153
|
-
- **MCP `prompts` primitive** —
|
|
154
|
-
`ps.enhance_portrait`, `ps.remove_background`, `ps.
|
|
155
|
+
- **MCP `prompts` primitive** — 22 pre-engineered templates (15 recipe + 7 guide:
|
|
156
|
+
`ps.enhance_portrait`, `ps.remove_background`, `ps.generative_fill`, …)
|
|
155
157
|
via `prompts/list` and `prompts/get`.
|
|
156
|
-
- **Recipe tools** —
|
|
158
|
+
- **Recipe tools** — 15 outcome-oriented `photoshop_recipe_*` tools (remove
|
|
157
159
|
background, enhance portrait, prepare for web, export social variants, color
|
|
158
160
|
grade, frequency separation, batch mockup, organize layers, gradient fade,
|
|
159
|
-
sky blend, dodge & burn, remove distraction
|
|
160
|
-
|
|
161
|
-
|
|
161
|
+
sky blend, dodge & burn, remove distraction, split carousel, batch watermark,
|
|
162
|
+
passport photo). Each wraps steps in a single
|
|
163
|
+
Photoshop history state (one Undo reverts all). **89 tools total** (74 atomic
|
|
164
|
+
+ 15 recipe).
|
|
165
|
+
- **Generative AI** — `photoshop_generative_fill`, `photoshop_generative_remove`,
|
|
166
|
+
`photoshop_generative_expand`, `photoshop_generative_upscale`, `photoshop_sky_replacement`,
|
|
167
|
+
`photoshop_generate_image` (Firefly via ExtendScript; Adobe account + credits required).
|
|
168
|
+
- **Neural Filters** — `photoshop_neural_filter` via optional UXP bridge plugin (`uxp-plugin/`):
|
|
169
|
+
skin smoothing, harmonize, depth blur, super zoom, and colorize (B&W → color).
|
|
162
170
|
- **State & preview** — `photoshop_get_state` (cheap snapshot),
|
|
163
171
|
`photoshop_get_preview` (base64 JPEG for vision verification),
|
|
164
172
|
`photoshop_get_capabilities` (version-aware feature flags).
|
|
@@ -189,22 +197,13 @@ After each major recipe, get another preview to confirm the result.
|
|
|
189
197
|
|
|
190
198
|
</details>
|
|
191
199
|
|
|
192
|
-
|
|
193
|
-
<summary>👤 Portrait retouch (recipe)</summary>
|
|
200
|
+
### Recipes
|
|
194
201
|
|
|
195
|
-
|
|
196
|
-
Enhance the portrait on the active layer at medium intensity with skin smoothing.
|
|
197
|
-
Use the enhance-portrait recipe — I want frequency separation + auto-tone in one undoable step.
|
|
198
|
-
If the active layer is text or a Smart Object, rasterize first or pick a raster layer.
|
|
199
|
-
Show me a preview when done.
|
|
200
|
-
```
|
|
202
|
+
Every recipe wraps a multi-step outcome in a **single undo step** and maps 1:1 to a `ps.*` prompt template.
|
|
201
203
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
</details>
|
|
204
|
+
#### ✂️ Background removal
|
|
205
205
|
|
|
206
|
-
<
|
|
207
|
-
<summary>✂️ Background removal (recipe)</summary>
|
|
206
|
+
<img src="./images/recipe-remove-bg.svg" alt="Remove background: subject isolated on transparency via Select Subject + layer mask" width="640" />
|
|
208
207
|
|
|
209
208
|
```
|
|
210
209
|
Remove the background from the active portrait layer.
|
|
@@ -214,21 +213,45 @@ The subject must be on the active layer — not a flat color fill.
|
|
|
214
213
|
|
|
215
214
|
Equivalent MCP prompt template: `ps.remove_background` with `{ feather_px: "2", keep_shadow: "false" }`.
|
|
216
215
|
|
|
217
|
-
|
|
216
|
+
#### 🧹 Remove distraction
|
|
218
217
|
|
|
219
|
-
<
|
|
220
|
-
<summary>🎨 Color grade (recipe)</summary>
|
|
218
|
+
<img src="./images/recipe-remove-distraction.svg" alt="Remove distraction: content-aware fill on the current selection" width="640" />
|
|
221
219
|
|
|
222
220
|
```
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
221
|
+
There's a tourist photobombing my landscape on the active layer.
|
|
222
|
+
I'll rough-select him with the lasso — then run the remove-distraction recipe with a 1px feather.
|
|
223
|
+
Content-aware fill only; don't touch anything outside the selection.
|
|
226
224
|
```
|
|
227
225
|
|
|
228
|
-
|
|
226
|
+
Equivalent MCP prompt template: `ps.remove_distraction` with `{ feather_px: "1" }`.
|
|
229
227
|
|
|
230
|
-
|
|
231
|
-
|
|
228
|
+
#### 👤 Portrait retouch
|
|
229
|
+
|
|
230
|
+
<img src="./images/recipe-enhance-portrait.svg" alt="Enhance portrait: skin smoothing + auto tone in one undoable step" width="640" />
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
Enhance the portrait on the active layer at medium intensity with skin smoothing.
|
|
234
|
+
Use the enhance-portrait recipe — I want frequency separation + auto-tone in one undoable step.
|
|
235
|
+
If the active layer is text or a Smart Object, rasterize first or pick a raster layer.
|
|
236
|
+
Show me a preview when done.
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Equivalent MCP prompt template: `ps.enhance_portrait` with `{ intensity: "medium", skin_smoothing: "true" }`.
|
|
240
|
+
|
|
241
|
+
#### 🔥 Dodge & burn
|
|
242
|
+
|
|
243
|
+
<img src="./images/recipe-dodge-burn.svg" alt="Dodge and burn: 50% gray overlay for non-destructive light sculpting" width="640" />
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
Set up dodge & burn on the active portrait layer: a 50% gray layer in overlay blend mode.
|
|
247
|
+
I'll paint with a white/black brush myself — just prepare the non-destructive setup.
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Equivalent MCP prompt template: `ps.dodge_burn` with `{ blend_mode: "overlay" }`.
|
|
251
|
+
|
|
252
|
+
#### 🔬 Frequency separation setup
|
|
253
|
+
|
|
254
|
+
<img src="./images/recipe-frequency-separation.svg" alt="Frequency separation: split texture from color into Low and High layers" width="640" />
|
|
232
255
|
|
|
233
256
|
```
|
|
234
257
|
Set up frequency separation on the active raster layer with a 6px blur radius.
|
|
@@ -238,10 +261,45 @@ Tell me which layers to edit when the stack is ready.
|
|
|
238
261
|
|
|
239
262
|
Equivalent MCP prompt template: `ps.frequency_separation` with `{ radius_px: "6" }`.
|
|
240
263
|
|
|
241
|
-
|
|
264
|
+
#### 🌗 Gradient fade
|
|
242
265
|
|
|
243
|
-
<
|
|
244
|
-
|
|
266
|
+
<img src="./images/recipe-gradient-fade.svg" alt="Gradient fade: melt the subject into the background via a mask gradient" width="640" />
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
Fade the isolated subject into the background from the bottom up.
|
|
270
|
+
Apply a bottom_to_top gradient on the layer mask, 0 to 100%. Keep the mask editable.
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Equivalent MCP prompt template: `ps.gradient_fade` with `{ direction: "bottom_to_top" }`.
|
|
274
|
+
|
|
275
|
+
#### 🌤️ Sky blend
|
|
276
|
+
|
|
277
|
+
<img src="./images/recipe-sky-blend.svg" alt="Sky blend: replace a blown sky with your own sky image at the horizon" width="640" />
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
The sky in my landscape is blown out. Blend ~/skies/sunset.jpg in as the new sky,
|
|
281
|
+
horizon at 45% of the frame height, feathered so the treeline stays natural.
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Equivalent MCP prompt template: `ps.sky_blend` with `{ sky_image_path: "~/skies/sunset.jpg", horizon_pct: "45" }`.
|
|
285
|
+
|
|
286
|
+
#### 🎨 Color grade
|
|
287
|
+
|
|
288
|
+
<img src="./images/recipe-color-grade.svg" alt="Apply color grade: flat image to teal-orange via adjustment layers" width="640" />
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
Apply a warm film color grade to the open document as non-destructive adjustment layers.
|
|
292
|
+
Use the apply-color-grade recipe with preset warm_film.
|
|
293
|
+
Preview the result when finished.
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Equivalent MCP prompt template: `ps.apply_color_grade` with `{ preset: "warm_film" }`.
|
|
297
|
+
|
|
298
|
+
#### 🌐 Prepare for web + social export
|
|
299
|
+
|
|
300
|
+
<img src="./images/recipe-prepare-web.svg" alt="Prepare for web: sRGB, downscale, sharpen, optimized JPEG" width="640" />
|
|
301
|
+
|
|
302
|
+
<img src="./images/recipe-social-variants.svg" alt="Export social variants: one JPEG per platform at spec dimensions" width="640" />
|
|
245
303
|
|
|
246
304
|
```
|
|
247
305
|
Prepare the active document for web: sRGB, downscale, sharpen, export one optimized JPEG to ~/.photoshop-mcp/exports.
|
|
@@ -251,10 +309,9 @@ List the output paths in a table.
|
|
|
251
309
|
|
|
252
310
|
Equivalent templates: `ps.prepare_for_web`, `ps.export_social_variants`.
|
|
253
311
|
|
|
254
|
-
|
|
312
|
+
#### 📦 Batch mockup replace
|
|
255
313
|
|
|
256
|
-
<
|
|
257
|
-
<summary>📦 Batch mockup replace (recipe)</summary>
|
|
314
|
+
<img src="./images/recipe-mockup.svg" alt="Batch mockup replace: swap a Smart Object per asset, one render each" width="640" />
|
|
258
315
|
|
|
259
316
|
```
|
|
260
317
|
I have a mockup PSD open with a Smart Object layer named "Screen".
|
|
@@ -264,17 +321,54 @@ Do not place flat layers — swap the Smart Object so perspective is preserved.
|
|
|
264
321
|
|
|
265
322
|
Equivalent MCP prompt template: `ps.batch_mockup_replace`.
|
|
266
323
|
|
|
267
|
-
|
|
324
|
+
#### 🗂️ Organize layers
|
|
268
325
|
|
|
269
|
-
<
|
|
270
|
-
<summary>🗂️ Organize layers (recipe)</summary>
|
|
326
|
+
<img src="./images/recipe-organize-layers.svg" alt="Organize layers: messy stack renamed by kind and grouped into folders" width="640" />
|
|
271
327
|
|
|
272
328
|
```
|
|
273
329
|
Organize the layer stack: rename by kind, auto-group related layers, preserve originals.
|
|
274
330
|
Run the organize-layers recipe, then list layers so I can review the new structure.
|
|
275
331
|
```
|
|
276
332
|
|
|
277
|
-
|
|
333
|
+
Equivalent MCP prompt template: `ps.organize_layers`.
|
|
334
|
+
|
|
335
|
+
#### 🎞️ Seamless carousel split
|
|
336
|
+
|
|
337
|
+
<img src="./images/recipe-carousel.svg" alt="Split one wide document into numbered carousel slides" width="640" />
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
Split the active document into a 5-slide seamless Instagram carousel.
|
|
341
|
+
Each slide should be 1080x1350 — crop the slices, don't letterbox them.
|
|
342
|
+
Give me the exported file paths in swipe order so I can upload them as-is.
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
Equivalent MCP prompt template: `ps.split_carousel` with `{ slides: "5", size: "1080x1350" }`.
|
|
346
|
+
|
|
347
|
+
#### 💧 Batch watermark
|
|
348
|
+
|
|
349
|
+
<img src="./images/recipe-watermark.svg" alt="Watermark every image in a folder" width="640" />
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
Watermark every photo in ~/photos/portfolio with the text "© Jane Doe 2026".
|
|
353
|
+
Bottom-right corner, 40% opacity, small margin from the edges.
|
|
354
|
+
Export watermarked JPEGs — never touch the originals.
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Equivalent MCP prompt template: `ps.batch_watermark` with `{ assets_dir: "~/photos/portfolio", text: "© Jane Doe 2026", position: "bottom_right", opacity: "40" }`.
|
|
358
|
+
|
|
359
|
+
#### 🛂 Passport / ID photo
|
|
360
|
+
|
|
361
|
+
<img src="./images/recipe-passport.svg" alt="Turn a portrait into a passport photo at official size" width="640" />
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
Turn the open portrait into a US passport photo: white background, proper headroom,
|
|
365
|
+
exact 600x600 px at 300 DPI. Also give me a 10x15 cm print sheet with copies.
|
|
366
|
+
Note: framing is approximated from subject bounds — official acceptance is not guaranteed.
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
Equivalent MCP prompt template: `ps.passport_photo` with `{ spec: "us_2x2", make_sheet: "true" }`.
|
|
370
|
+
|
|
371
|
+
### More examples
|
|
278
372
|
|
|
279
373
|
<details>
|
|
280
374
|
<summary>🎨 Basic Design Creation</summary>
|
|
@@ -312,6 +406,7 @@ Open photo.jpg from my Desktop in Photoshop.
|
|
|
312
406
|
Get state, then run the enhance-portrait recipe at low intensity.
|
|
313
407
|
If I only need quick tone fixes, apply auto levels, auto contrast, and unsharp mask (120%, 1.5, 0) on the active layer instead.
|
|
314
408
|
Adjust hue +15 and saturation +15, or use prepare-for-web when I'm ready to export.
|
|
409
|
+
For old black-and-white scans, run the colorize neural filter first (requires the UXP bridge plugin).
|
|
315
410
|
Save as enhanced-photo.jpg with quality 12.
|
|
316
411
|
```
|
|
317
412
|
|
|
@@ -471,8 +566,8 @@ Never guess — read get_state after a failure and propose the next single step.
|
|
|
471
566
|
- **Supports Photoshop 2012-2025+**
|
|
472
567
|
- **ExtendScript API**: Universal compatibility via AppleScript/COM automation
|
|
473
568
|
- **Auto-Detection**: Automatically finds Photoshop installation on your system
|
|
474
|
-
- **
|
|
475
|
-
- **AI/Prompt Layer**:
|
|
569
|
+
- **89 Tools**: 74 atomic `photoshop_*` + 15 recipe `photoshop_recipe_*`
|
|
570
|
+
- **AI/Prompt Layer**: 22 MCP prompt templates (15 recipe + 7 guide), server instructions, state/preview/capabilities tools
|
|
476
571
|
- **Document Management**: Create, open, save, close, crop documents
|
|
477
572
|
- **Layer Operations**: Create, delete, duplicate, merge, transform layers
|
|
478
573
|
- **Layer Properties**: Opacity, blend modes, visibility, locking
|