Lightroom MCP Elite
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Lightroom MCP Elite Apply a cinematic teal-orange grade to the selected photos and sync the preset"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Lightroom MCP Elite (lightroom-mcp-elite)
A high-performance, native Python Model Context Protocol (MCP) server for Adobe Lightroom Classic on macOS, featuring Develop controls, batch preset syncing, catalog curation, and seamless round-trip handoff with Adobe Photoshop.
🌟 Key Features
Category | Features |
Develop & Grading | Full control over Lightroom Develop engine: Exposure, Highlights, Shadows, Whites, Blacks, Clarity, Dehaze, Vibrance, White Balance, HSL, and Tone Curves. |
Preset Management | Discover, inspect, apply, and save custom Develop presets. |
Photoshop Co-op | Round-trip handoff ( |
Catalog Curation | Search photos, star ratings (0–5), keywords, collections, and export. |
Robust Architecture | Python native socket client with automatic token retrieval from |
Related MCP server: Photoshop MCP Server
🚀 Quickstart
Prerequisites
macOS with Adobe Lightroom Classic (installed and running)
LightroomMCP.lrplugininstalled in Lightroom Classic (File > Plug-in Manager)uv or Python 3.12+
1. Clone the Repository
git clone https://github.com/baramesh/lightroom-mcp-elite.git
cd lightroom-mcp-elite2. Install Dependencies
Using uv:
uv sync⚙️ MCP Configuration
Add lightroom to your MCP configuration (~/.gemini/config/mcp_config.json or Claude Desktop):
{
"mcpServers": {
"lightroom": {
"command": "/Users/YOUR_USERNAME/.local/bin/uv",
"args": [
"run",
"--directory",
"/path/to/lightroom-mcp-elite",
"python",
"server.py"
]
}
}
}đź§ AI Agent Skill (SKILL.md)
This repository includes a ready-to-use Agent Skill in skill/SKILL.md with:
Non-destructive RAW development principles.
Golden Example for Lightroom + Photoshop round-trip retouching (
skill/examples/lightroom_photoshop_coop.md).
đź“„ License
MIT License. See LICENSE for details.
Available Tools
40 toolsadd_to_collectionB
Add photos to an existing collection.
Inputs: photo_ids (required), collection_id (required). Returns: object
apply_develop_presetC
Apply a Develop preset to a specified photo.
Inputs: photo_id (required), preset_name (required). Returns: object
compare_develop_presetsA
Compare two Develop presets and return a deterministic per-setting diff.
Inputs: base (required), candidate (required). Returns: object
copy_develop_settingsB
Sync all Develop adjustments from a source photo to multiple target photos.
Inputs: source_photo_id (required), target_photo_ids (required). Returns: object
create_collectionC
Create a new collection in the active catalog.
Inputs: name (required), parent_set_id. Returns: object
create_develop_presetC
Save specified Develop settings as a new preset in Lightroom Classic.
Inputs: name (required), folder (required), settings (required). Returns: object
export_develop_presetC
Export one exact custom or plugin-managed Develop preset backing file.
Inputs: destination_dir (required), filename, preset_name, preset_uuid, +2 more. Returns: object
export_photosC
Export selected photos to disk with specified format and quality.
Inputs: photo_ids (required), output_dir (required), quality, format_type. Returns: object
get_develop_presetA
Inspect internal adjustment parameters stored inside a Develop preset.
Inputs: preset_name (required). Returns: object
get_photo_metadataB
Get detailed metadata (EXIF, camera, lens, dimensions, and develop parameters) for a photo.
Inputs: photo_id (required). Returns: object
get_selected_photosA
Get currently selected photos in Lightroom Classic (or filmstrip if none selected).
Inputs: limit, offset. Returns: object
import_photosC
Import photos into Lightroom Classic catalog.
Inputs: source_path (required), copy_to, collection_name. Returns: object
import_retouched_photoB
Import a retouched master photo back into Lightroom Classic and organize into a collection.
Inputs: file_path (required), collection_name. Returns: object
lightroom_add_to_collectionC
Add photos to an existing collection.
Inputs: photo_ids (required), collection_id (required). Returns: object
lightroom_apply_develop_presetC
Apply a Develop preset to a specified photo.
Inputs: photo_id (required), preset_name (required). Returns: object
lightroom_compare_develop_presetsA
Compare two Develop presets and return a deterministic per-setting diff.
Inputs: base (required), candidate (required). Returns: object
lightroom_copy_develop_settingsB
Sync all Develop adjustments from a source photo to multiple target photos.
Inputs: source_photo_id (required), target_photo_ids (required). Returns: object
lightroom_create_collectionC
Create a new collection in the active catalog.
Inputs: name (required), parent_set_id. Returns: object
lightroom_create_develop_presetC
Save specified Develop settings as a new preset in Lightroom Classic.
Inputs: name (required), folder (required), settings (required). Returns: object
lightroom_export_develop_presetC
Export one exact custom or plugin-managed Develop preset backing file.
Inputs: destination_dir (required), filename, preset_name, preset_uuid, +2 more. Returns: object
lightroom_export_photosC
Export selected photos to disk with specified format and quality.
Inputs: photo_ids (required), output_dir (required), quality, format_type. Returns: object
lightroom_get_develop_presetA
Inspect internal adjustment parameters stored inside a Develop preset.
Inputs: preset_name (required). Returns: object
lightroom_get_photo_metadataB
Get detailed metadata (EXIF, camera, lens, dimensions, and develop parameters) for a photo.
Inputs: photo_id (required). Returns: object
lightroom_get_selected_photosA
Get currently selected photos in Lightroom Classic (or filmstrip if none selected).
Inputs: limit, offset. Returns: object
lightroom_import_photosC
Import photos into Lightroom Classic catalog.
Inputs: source_path (required), copy_to, collection_name. Returns: object
lightroom_import_retouched_photoA
Import a retouched master photo back into Lightroom Classic and organize into a collection.
Inputs: file_path (required), collection_name. Returns: object
lightroom_list_collectionsA
List all collections and collection sets in the catalog.
Inputs: no named parameters. Returns: object
lightroom_list_develop_presetsA
List all Lightroom Develop presets available in the catalog.
Inputs: no named parameters. Returns: object
lightroom_search_photosB
Search photos in Lightroom Classic by text, star rating, pick flag, or color label.
Inputs: flag, limit, query, rating, +1 more. Returns: object
lightroom_send_to_photoshopC
Send a photo from Lightroom Classic directly into Adobe Photoshop for advanced retouching or Firefly AI inpainting.
Inputs: photo_id (required). Returns: object
lightroom_set_develop_settingsA
Set Develop adjustments directly on a photo (Exposure2012, Highlights2012, Shadows2012, Clarity2012, Dehaze, Vibrance, etc.).
Inputs: photo_id (required), settings (required). Returns: object
lightroom_set_keywordsC
Add, remove, or replace keywords on specified photos.
Inputs: keywords (required), photo_ids (required), mode. Returns: object
lightroom_set_ratingB
Set star rating (0 to 5) on one or more photos.
Inputs: rating (required), photo_ids (required). Returns: object
list_collectionsA
List all collections and collection sets in the catalog.
Inputs: no named parameters. Returns: object
list_develop_presetsA
List all Lightroom Develop presets available in the catalog.
Inputs: no named parameters. Returns: object
search_photosB
Search photos in Lightroom Classic by text, star rating, pick flag, or color label.
Inputs: flag, limit, query, rating, +1 more. Returns: object
send_to_photoshopA
Send a photo from Lightroom Classic directly into Adobe Photoshop for advanced retouching or Firefly AI inpainting.
Inputs: photo_id (required). Returns: object
set_develop_settingsB
Set Develop adjustments directly on a photo (Exposure2012, Highlights2012, Shadows2012, Clarity2012, Dehaze, Vibrance, etc.).
Inputs: photo_id (required), settings (required). Returns: object
set_keywordsB
Add, remove, or replace keywords on specified photos.
Inputs: keywords (required), photo_ids (required), mode. Returns: object
set_ratingA
Set star rating (0 to 5) on one or more photos.
Inputs: rating (required), photo_ids (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 40 tools
Every tool has an exact duplicate with an identical description, one prefixed with lightroom_ and one without. An agent cannot distinguish between the two variants at all, causing severe misselection risk.
The underlying naming follows a consistent verb_noun snake_case pattern, but each tool appears twice—once with the lightroom_ prefix and once without. This dual naming is a notable inconsistency, though still readable and predictable.
40 tools is excessive for what is effectively 20 unique operations. The duplication inflates the surface area and violates the well-scoped 3-15 tool guideline.
The tool set covers core Lightroom workflows well: collections, photo search/metadata, develop settings and presets, ratings, keywords, import/export, and Photoshop round-tripping. Minor gaps exist such as no delete collection, remove from collection, or delete preset operations.
Maintenance
Related MCP Connectors
AI-cull, edit and export RAW photos locally with the imagic desktop app, from any MCP client.
Build and run visual creative-production workflows from your AI agent.
Connect your AI assistant to Blender for 3D modeling, Geometry Nodes, materials, lighting, animation, rendering and export. Inspect real scenes and viewport images, refine the result and restore checkpoints. OAuth connects your chat to Blender Bridge Desktop on an online Windows 10/11 x64 computer running Blender 4.2+. The chat can run on another device. Requires an active Blender Bridge account; 7-day trial available. AI model access is separate.
Image and video AI tools and your own pipelines, run from any AI assistant.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to control Adobe Lightroom Classic on macOS for professional photo editing and catalog management. It allows users to inspect photos, apply develop settings, and automate workflows through a secure local bridge without direct catalog database manipulation.2595MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to control Adobe Photoshop programmatically, supporting recipe workflows, state awareness, and generative AI features through natural language commands.1289,145 npm856MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to run cross-platform batch photo-processing workflows—including RAW decoding, adjustments, noise reduction, white balance, LOG restoration, EXIF tagging, deduplication, selection, HTML galleries, folder watching, and presets—through a unified versioned JSON contract. It also exposes MCP tools for processing, suggestions, autopilot, indexing, search, selection, HDR, face blurring, and more.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to drive Adobe Lightroom Classic directly — searching and organizing catalogs, reading and writing the full set of develop parameters, building geometric and AI-generated masks (sky, subject, mountains, water, people), applying presets, and rendering previews, histograms, and exports. All capabilities are exposed as 167 MCP tools over a Lua plugin bridge, with write-confirmation sentinels so silently dropped edits surface as explicit errors.Apache 2.0