Skip to main content
Glama
Lightroom MCP Elite

Lightroom MCP Elite

by baramesh

Lightroom MCP Elite (lightroom-mcp-elite)

License: MIT Python 3.12+ Model Context Protocol

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 (lightroom_send_to_photoshop and lightroom_import_retouched_photo) for surgical AI inpainting and multi-layer compositing.

Catalog Curation

Search photos, star ratings (0–5), keywords, collections, and export.

Robust Architecture

Python native socket client with automatic token retrieval from ~/.config/lightroom-mcp/token.


Related MCP server: Photoshop MCP Server

🚀 Quickstart

Prerequisites

  • macOS with Adobe Lightroom Classic (installed and running)

  • LightroomMCP.lrplugin installed 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-elite

2. 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 tools
add_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

    C2.7/5.0

    Scored across 40 tools

    Disambiguation1/5

    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.

    Naming Consistency3/5

    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.

    Tool Count2/5

    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.

    Completeness4/5

    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

    ActivityStale
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables 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.
      2
      59
      5
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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