Model Context Protocol server for Adobe Firefly Services — exposes Firefly, Photoshop API, and Lightroom API endpoints as MCP tools. Built by FocusGTS.
Strong foundation with 19 well-named tools covering Adobe creative APIs. All tools have descriptions (avg 156 chars) and input schemas with typed parameters. Naming follows verb_noun convention consistently (firefly_generate_image, photoshop_apply_edits, lightroom_auto_tone). However, output schemas are not documented in the source, responses are inferred from Adobe SDK types but not explicitly shaped for LLM consumption. Parameter descriptions are present but often lack constraint details (ranges, enums, format specs). Error handling is minimal, no recovery guidance or actionable error messages visible. Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications in metadata.
Check authentication status and optionally force a token refresh
Expand an image canvas and fill the new areas with generative content
Remove or replace objects in an image using generative fill
Generate an image from a text prompt using Adobe Firefly
Composite generated objects into a background image
Generate variations of an image similar to an uploaded reference image
Generate a video from a text prompt or image using Adobe Firefly
Output schemas not documented. Response structures inferred from Adobe SDK types but not explicitly shaped for LLM consumption. LLMs cannot plan downstream tool calls without knowing what fields to expect.
Parameter descriptions lack constraint details. 'num_variations' has no min/max bounds; 'size' accepts arbitrary strings without format spec; 'style' has no enum of valid presets. LLMs will hallucinate invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications in metadata. Clients cannot determine which tools are safe to retry or require confirmation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Poll the status of an asynchronous Firefly job
Upload an image to Adobe Firefly Services for use in subsequent operations
Apply one or more manual Lightroom adjustments (exposure, contrast, highlights, shadows, whites, blacks, vibrance, saturation, clarity, dehaze, texture, sharpness, noise reduction, vignette, white balance) to an image using Adobe Lightroom API. Caller supplies pre-signed URLs for the source and output. Returns the Lightroom job id and a status URL the caller can poll until the job completes.
Apply one or more Lightroom XMP presets to an image using Adobe Lightroom API. Caller supplies pre-signed URLs for the source image, the .xmp preset file(s), and the output destination. Returns the Lightroom job id and a status URL the caller can poll until the job completes.
Automatically straighten and correct perspective in an image using Adobe Lightroom API
Automatically adjust tone and exposure in an image using Adobe Lightroom API
Run a Photoshop Actions (.atn) file against an input image (PSD, JPEG, PNG, or TIFF) and write the result to output_url. Provide pre-signed URLs for the input, the .atn action set, and the output. Optionally restrict execution to a single named action inside the set via action_name. Useful for applying brand-consistent filter / treatment pipelines created by designers in Photoshop.
Apply layer-level edits to a PSD and render the result. The 'edits' array handles the common cases of toggling visibility, locking, and renaming layers — each edit references a layer by name or id. For richer operations (adding adjustment layers, pixel layers, shapes), use 'raw_layers' to pass DocumentOperationLayer objects verbatim. Provide pre-signed URLs for the input PSD and the output destination.
Retrieve the layer tree and metadata of a PSD document
Edit text content in text layers of a PSD
Remove the background from an image using Adobe Photoshop API
Replace the contents of a smart object layer in a PSD with a new image
Error handling not visible in source. No recovery guidance, actionable error messages, or error classification (retryable vs user-fixable vs fatal). Agents cannot self-correct on failures.
Descriptions are generic and lack dependency hints. 'Generate an image from a text prompt' does not explain when to use this vs firefly_generate_similar, or that firefly_upload_image must be called first for reference-based operations.