Skip to main content
Glama

LrC-AVG — Lightroom Classic Autonomous Vision Gateway

A Lightroom Classic plugin (Lua) plus a Node.js/TypeScript MCP server that let Claude (via Claude Desktop) edit raw photos the way a photographer does: apply an adjustment, look at the rendered result, adjust again — up to a capped number of passes, using only native Develop settings. A local metrics engine (sharp) handles clipping, histograms and pass-to-pass deltas; Claude's vision handles the aesthetic judgment. Every edit is non-destructive, visible on the Develop sliders, and reversible through History and Snapshots.

Status: Phase 0 — feasibility spikes. Nothing here is usable as a product yet. The repo holds the project scaffold, the Phase 0 spike harnesses (spikes/, plugin/spikes/) and their report templates (docs/reports/phase0/). See docs/PHASE0_HANDOVER.md.

Architecture (target)

Claude Desktop ──stdio MCP──► lrc-avg engine (Node/TS) ──LrSocket (127.0.0.1)──► Lightroom Classic plugin (Lua)
                                 metrics (sharp), session state,                 applyDevelopSettings, previews,
                                 guardrails, intents, provenance logs            snapshots, virtual copies, HUD

The loop is Claude-orchestrated (lr_begin_sessionlr_step … → lr_end_session); the engine is a stateful step function that enforces a pass cap, step decay and clipping guardrails server-side.

Related MCP server: rawtherapee-mcp-server

Repository layout

Path

Contents

engine/

Node/TS MCP server (strict ESM TypeScript, vitest)

plugin/LrC-AVG.lrplugin/

Lightroom plugin (Phase 0: Info.lua stub)

plugin/spikes/, spikes/

Phase 0 spike plugins and scripts (throwaway)

docs/

Automaat survey, environment and dependency records, handover, reports

vendor/automaat/

Upstream reference snapshot (read-only; see NOTICE)

Requirements

Windows 10/11, Lightroom Classic 15.5.1 (Camera Raw 18.5.1), Node.js ≥ 22 (developed on 24.11.1). No Python anywhere in the project.

npm install        # engine + spikes workspaces
npm run build      # tsc -> engine\dist
npm test           # vitest
npm run typecheck

License

MIT — see LICENSE. Copyright (c) 2026 Jim Beebe.

NOTICE — third-party code

This project vendors and builds on Automaat/lightroom-mcp (npm @mskalski/lightroom-mcp):

  • Upstream: https://github.com/Automaat/lightroom-mcp

  • Vendored commit: a160e7aa250b3264694d88e51418f7f512f417de (2026-09-22)

  • License: MIT, Copyright (c) 2026 Marcin Skalski. The full license text ships unmodified at vendor/automaat/LICENSE (identical copy at vendor/automaat/server/LICENSE).

  • Vendored as a snapshot, not a GitHub fork: the upstream .git was removed and the files are otherwise unmodified; the two upstream Python files under vendor/automaat/skills/ are excluded from this repository's git (project rule: no Python).

  • Code ported from Automaat into engine/ or plugin/ will keep Automaat's copyright and permission notice (a THIRD_PARTY_NOTICES.md ships with each packaged half), as the MIT license requires.

Details and file-level provenance: docs/AUTOMAAT_SURVEY.md §1–2.

Adobe, Lightroom and Camera Raw are trademarks of Adobe Inc. This project is not affiliated with or endorsed by Adobe or Anthropic.

Related MCP Connectors

Related MCP Servers