Lightroom经典MCP
代理专业照片编辑 macOS上的Adobe Lightroom Classic.
该项目结合了Lightroom Classic插件包和Python MCP服务器 因此,Codex、Claude和其他MCP客户可以通过以下方式操作Lightroom 光室本身。目标很简单:公开严肃的编辑和目录 工作流,而无需直接接触目录数据库。
此项目不隶属于Adobe或得到Adobe的认可。
2分钟内安装
如果你想在Codex或Claude中使用它,请从这里开始:
git clone https://github.com/4xiomdev/lightroom-classic-mcp.git
cd lightroom-classic-mcp
./scripts/install_for_ai.sh --client both这一个命令:
- 安装Lightroom插件包
- 引导Python运行时
- 向Codex注册MCP服务器
- 向Claude注册MCP服务器
默认情况下,注册的MCP命令要求Lightroom已经打开。 这避免了Codex或Claude探测服务器时意外启动应用程序。
Homebrew安装:
brew tap 4xiomdev/tap
brew install lightroom-classic-mcp
lightroom-classic-mcp-install --client both如果您更喜欢MCP命令为您打开Lightroom的旧行为, 使用 --auto-launch 在安装过程中。
与Codex一起使用
快速路径:
./scripts/install_for_ai.sh --client codex手动食品法典注册:
codex mcp add lightroom-classic -- bash -lc 'cd "/absolute/path/to/lightroom-classic-mcp" && ./scripts/start_managed_server.sh'与Claude一起使用
快速路径:
./scripts/install_for_ai.sh --client claude手动克劳德注册:
claude mcp add -s local lightroom-classic -- bash -lc 'cd "/absolute/path/to/lightroom-classic-mcp" && ./scripts/start_managed_server.sh'更多细节: docs/CLIENT_SETUP.md
发射行为
MCP包装器 不 默认情况下自动打开Lightroom。
这是故意的。在干净安装测试期间,应用程序自动启动 非常嘈杂和令人惊讶,尤其是当客户端探测MCP服务器时 背景。
默认行为:
- 自己打开Lightroom
- 然后让Codex或Claude通过MCP连接
如果您希望MCP包装器为您启动Lightroom,请使用以下方式安装:
./scripts/install_for_ai.sh --client both --auto-launch为什么存在
Lightroom Classic仍然是许多真实照片工作流程的中心,但它 很难从外部工具安全地自动化。该项目提供了一个AI代理 一种受控的方式来:
- 检查当前选择
- 读写元数据
- 读写开发设置
- 应用分组外观和预设
- 使用掩码、集合、快照、导出和虚拟副本
关键的设计选择是Lightroom仍然执行实际工作 Python端充当桥梁和验证层,而不是目录编辑器。
这是什么感觉
这是为了让人感觉像一个专业的照片编辑操作员 经典灯光房:
- 检查选定的照片和目录状态
- 直接从Lightroom提供的路径检查原始文件
- 安全地应用结构化编辑更改
- 通过Lightroom读写开发设置
- 自动化重复的编辑工作流程
- 保持本地性、确定性,并与真实的Lightroom使用兼容
检查第一工作流程
首选的工作流程是:
- 向Lightroom询问活动照片或当前选择
- 使用返回的绝对文件路径直接检查原始图像
- 决定你的编辑
- 通过MCP应用Lightroom更改
- 仅当需要渲染前/后或最终输出时才导出
新的检查工具:
get_active_photo_fileget_selected_photo_files
这些是只读MCP工具,返回Lightroom元数据和规范化的 检查有效载荷:
- 绝对文件路径
- 本地ID
- 文件名
- 可用时的尺寸
- 文件存在性/可读性/可检查性标志
- 基本文件元数据,如后缀、MIME类型和可读时的大小
代理提示示例
编辑前检查活动图像:
Use get_active_photo_file, inspect the image at the returned path, then tell me what edit you would make before changing anything in Lightroom.先快照,然后进行有针对性的编辑:
Use get_active_photo_file to inspect the active image, create a Lightroom snapshot, then lift the subject slightly without blowing out highlights.仅将导出用于验证:
Inspect the active image from its original file path, make the edit in Lightroom, then export a verification JPEG so we can compare before and after.必要时还原:
If the edit is not an improvement, restore the most recent Lightroom snapshot instead of trying to manually undo each slider.这是给谁的
- 摄影师围绕Lightroom Classic构建代理编辑工作流程
- 将Codex或Claude连接到真实编辑环境的创意技术人员
- 希望本地第一台可安装和可编写脚本的Lightroom MCP服务器的开发人员
运作原理
lightroom-classic-mcp 分为三个部分:
- Lightroom插件包
plugin/LightroomMCPCustom.lrplugin - Lightroom内部实现的localhost套接字桥
- Python MCP服务器
src/lightroom_mcp_custom/
当插件启动时,它会打开localhost套接字并写入网桥元数据 到 /tmp/lightroom_mcp_custom_ports.json。托管服务器启动器正在等待 然后通过stdio启动MCP服务器。
更多细节: docs/ARCHITECTURE.md
需求
- macOS
- Adobe Lightroom Classic已在本地安装
- python
3.10+ - 可以启动本地命令的MCP客户端
所得
- 非破坏性Lightroom SDK驱动的编辑
- 仅限本地主机的网桥
- 开发写入前的验证
- 单命令管理的启动路径
- 将Lightroom插件和MCP服务器保持在一起的仓库布局
- 用于活动和选定照片的直接文件路径检查助手
仓库的规划
plugin/LightroomMCPCustom.lrplugin/-Lightroom插件包src/lightroom_mcp_custom/-Python MCP服务器和网桥客户端scripts/install_plugin.sh-将插件包安装到Lightroom的插件文件夹中scripts/start_managed_server.sh-推荐日常使用的发射器scripts/run_server.sh-直接启动MCP服务器scripts/smoke_bridge.py-验证本地网桥连接scripts/print_mcp_config.sh-打印当前签出路径的MCP配置片段scripts/package_release.sh-在中构建源代码和插件zip包dist/
从版本安装
如果你下载了一个发布zip而不是克隆仓库:
- 将其解压缩到Mac上的任何位置。
- 跑
./scripts/install_for_ai.sh --client both.
如果你只想要一个客户端,请使用 --client codex 或 --client claude.
快速开始
- 在Mac上的任何位置克隆仓库。
git clone
cd lightroom-classic-mcp- 运行指导安装程序。
./scripts/install_for_ai.sh --client both- 如果Lightroom尚未加载插件:
- 打开
File -> Plug-in Manager - 添加或启用
~/Library/Application Support/Adobe/Lightroom/Modules/LightroomMCPCustom.lrdevplugin
- 核实一下桥。
PYTHONPATH=src python3 scripts/smoke_bridge.py- 打印实际签出路径的MCP配置片段。
./scripts/print_mcp_config.sh- 在MCP客户端中使用托管服务器命令。
./scripts/start_managed_server.sh建议的MCP客户端命令
打印的配置来自 scripts/print_mcp_config.sh 是最简单的方法 避免路径错误。生成的命令使用您当前的绝对结账 路径并启动托管服务器:
./scripts/start_managed_server.sh该脚本:
- 刷新插件安装
- 检查Lightroom桥是否带电
- 等待网桥端口文件
- 启动MCP服务器
为什么托管启动器很重要
托管启动器是该项目在正常情况下可靠运行的原因 本地Lightroom设置:
- 除非您选择退出,否则它会在每次运行前刷新插件包
- 如果Lightroom关闭,它会很快失败,除非您明确启用自动启动
- 它等待Lightroom发布网桥端口文件
- 它只在握手后启动MCP服务器
这保留了该项目在本地开发中成功使用的相同启动模式。
配置
可选环境变量:
LIGHTROOM_SKIP_INSTALL=1跳过插件重新安装LIGHTROOM_AUTO_LAUNCH=1托管服务器启动时自动打开LightroomLIGHTROOM_FORCE_RESTART=1部队在发射前重新启动LightroomLIGHTROOM_WAIT_SECONDS=180更改网桥等待超时LIGHTROOM_ROOT=/custom/path在安装过程中覆盖默认的Lightroom支持目录LIGHTROOM_WRITE_PREFS=0跳过自动Lightroom插件加载器首选项更新LIGHTROOM_VENV_DIR=/custom/venv/path覆盖Python运行时位置LIGHTROOM_BOOTSTRAP_PYTHON=python3.12选择用于创建venv的Python可执行文件
安全和范围
- Python端验证在无效的Develop设置到达Lightroom之前夹紧或拒绝这些设置
- Lightroom写入是通过Lightroom SDK进行的,而不是直接进行的
.lrcat突变 - 网桥仅限于本地主机
- 此项目是有意本地优先,目前仅限macOS
- 快照优先是推荐的非破坏性编辑模式,但它是文档指导,而不是强制包装模式
测试
使用plain运行单元测试 pytest.
实时集成测试需要一个正在运行的Lightroom网桥,并且可以选择加入:
LIGHTROOM_RUN_INTEGRATION=1 pytest -q如果没有该标志,默认情况下会跳过集成套件,因此CI和fresh 贡献者不需要安装Lightroom来进行贡献。
打包GitHub发布
要构建发布包,请执行以下操作:
./scripts/package_release.sh这会产生:
- repo的源zip
- 一个包含以下内容的插件压缩包
LightroomMCPCustom.lrplugin
Homebrew发布说明和包装指南上线 docs/DISTRIBUTION.md.
- 仅限Lightroom Classic
- 仅限macOS
- 需要在本地安装插件包
- 实时集成测试无法在通用CI中运行,因为它们需要Lightroom
