🚀 adb-mcp
adb-mcp 是一个概念验证项目,旨在通过 MCP 协议为大语言模型(LLM)提供接口,为 Adobe 工具(Adobe Photoshop 和 Adobe Premiere)创建 AI 代理。
该项目未得到 Adobe 的认可或支持。
它已经通过 Anthropic 的 Claude 桌面端(Mac 和 Windows)进行了测试,并且允许 Claude 控制 Adobe Photoshop 和 Adobe Premiere。从理论上讲,它应该可以与任何支持 MCP 协议的 AI 应用程序 / 大语言模型配合使用,并且其构建方式支持多个 Adobe 应用程序。
示例用例包括
- 逐步指导 Claude 在 Photoshop 中执行操作,提供基于对话的界面(如果您是 Photoshop 新手,这特别有用)。
- 给 Claude 分配任务(创建一个看起来像宝丽来照片的 Instagram 帖子、创建双重曝光效果),让它从头到尾完成创建,用作模板。
- 让 Claude 为您生成自定义的 Photoshop 教程,方法是创建一个示例文件,然后逐步说明如何重现。
- 作为 Photoshop 实用工具(让 Claude 将您所有的图层重命名为一致的格式)。
- 让 Claude 创建预填充了剪辑、转场、效果和音频的新 Premiere 项目。
查看视频示例
目前,对于 Photoshop,AI 代理可以从 Photoshop 获取一些信息,从而能够检查其工作。但是,它不能自动查看其工作成果(即从 Photoshop 获取图像)。这应该是可行的,但尚未实现。在此期间,您可以将内容从 Photoshop 复制并粘贴到 Claude 桌面端。
由于 Premiere 插件 API 当前的限制,与 Photoshop 代理相比,Premiere 代理的功能更有限。
🚀 快速开始
工作原理
概念验证通过以下方式实现:
- 一个 MCP 服务器,为大语言模型提供访问 Adobe Photoshop 功能的接口。
- 一个基于 Node 的命令代理服务器,位于 MCP 服务器和 Adobe 应用程序插件之间。
- 一个 Adobe 应用程序(Photoshop 和 Premiere)插件,用于监听命令并驱动程序。
AI <-> MCP 服务器 <-> 命令代理服务器 <-> Photoshop / Premiere UXP 插件 <-> Photoshop / Premiere
需要代理服务器是因为基于 UXP 的 JavaScript 插件的公共 API 不允许它作为服务器监听套接字连接(它只能作为客户端连接到套接字)。
要求
要运行此项目,需要满足以下条件:
- 支持 MCP 协议的大语言模型(已在 Mac 和 Windows 上的 Claude 桌面端进行测试)。
- Python 3,用于运行本项目提供的 MCP 服务器。
- NodeJS,用于在 MCP 服务器和 Photoshop 之间提供代理。
- Adobe UXP 开发者工具(可通过 Creative Cloud 获取),用于安装和调试连接到代理的 Photoshop / Premiere 插件。
- 安装了 MCP 插件的 Adobe Photoshop(26.0 或更高版本)或 Adobe Premiere Beta(25.3 Build 46 或更高版本)。
📦 安装指南
本项目是使用 Claude 桌面端进行开发和测试的,因此假设使用的是该应用程序。理论上,它应该可以与其他支持 MCP 的 AI 应用程序配合使用。
下载 adp-mcp
下载 adp-mcp 项目,并将其解压到您想要保存的位置。
Claude 桌面端
下载并安装 Claude 桌面端。安装完成后,启动该应用程序以确保一切正常。
MCP 服务器
确保您的系统上已安装并配置了 Python3(已添加到系统路径)。这里假设您使用 uv 进行包管理,并且已经在系统上进行了设置和配置。
切换到 mcp 目录并启动开发服务器:
Photoshop
$cd mcp
$uv run mcp dev ps-mcp.py
Premiere
$cd mcp
$uv run mcp dev pr-mcp.py
现在,您可以在 http://localhost:5173 上加载开发界面,点击“连接”,然后在“资源”下点击“config://get_instructions”。这应该会列出一堆 JSON 信息。如果成功列出,说明一切正常并已正确配置。
现在,我们可以将其安装到 Claude 桌面端。
Photoshop
uv run mcp install --with fonttools --with python-socketio --with mcp --with requests --with websocket-client ps-mcp.py
Premiere
uv run mcp install --with fonttools --with python-socketio --with mcp --with requests --with websocket-client pr-mcp.py
如果您正在运行 Claude 桌面端,请关闭它(确保它没有在后台运行),然后重新启动。如果它没有出现任何错误,则说明安装成功。
此时,您还需要安装一些其他的东西。
命令代理 Node 服务器
确保您的系统上已安装并配置了 NodeJS(已添加到系统路径)。
切换到 adb-proxy-socket 目录。安装依赖项,然后启动服务器:
$cd adb-proxy-socket
$npm install
$node proxy.js
您应该会看到一条类似于“Photoshop MCP 命令代理服务器正在 ws://localhost:3001 上运行”的消息。
为了让 Claude 与插件进行通信,此代理服务器必须正在运行。
Adobe 应用程序插件
Photoshop
在 Photoshop 中启用开发者模式:
- 启动 Photoshop(26.0 或更高版本)。
- 选择“设置”>“插件”,并勾选“启用开发者模式”。
- 重新启动 Photoshop。
从 Creative Cloud 桌面端安装并启动“UXP 开发者工具”。当提示时,启用开发者模式。
安装插件:
- 选择“文件”>“添加插件”。
- 导航到 uxp/ps 目录,并选择 manifest.json 文件。
- 当插件列出后,点击“加载”按钮。
这应该会在 Photoshop 中加载插件。如果您没有看到它,可以通过 Photoshop 中的插件菜单打开它。
Premiere
- 启动 Premiere Pro Beta(25.3)。
从 Creative Cloud 桌面端安装并启动“UXP 开发者工具”。当提示时,启用开发者模式。
安装插件:
- 选择“文件”>“添加插件”。
- 导航到 uxp/pr 目录,并选择 manifest.json 文件。
- 当插件列出后,点击“加载”按钮。
这应该会在 Premiere 中加载插件。如果您没有看到它,可以通过 Premiere 中的插件菜单打开它。
💻 使用示例
启动相关应用和服务
- 启动 Claude 桌面端。
- 启动 adb-proxy-socket Node 服务器。
- 启动 Photoshop 和 / 或 Premiere。
连接 Photoshop
- 启动 UXP 开发者工具,并点击“Photoshop MCP 代理”的“加载”按钮。
- 在 Photoshop 中,如果 MCP 代理面板未打开,请选择“插件”>“Photoshop MCP 代理”>“Photoshop MCP 代理”。
- 在 Photoshop 的代理面板中点击“连接”。
现在,您可以切换到 Claude 桌面端。在开始会话之前,您应该加载指令资源,这将为 Claude 提供指导和信息。方法是点击套接字图标(从 MCP 附加),然后选择“选择集成”>“Adobe Photoshop”>“config://get_instructions”。
连接 Premiere
- 启动 UXP 开发者工具,并点击“Premiere MCP 代理”的“加载”按钮。
- 在 Premiere 中,如果 MCP 代理面板未打开,请选择“窗口”>“UXP 插件”>“Premiere MCP 代理”>“Premiere MCP 代理”。
- 在 Premiere 的代理面板中点击“连接”。
现在,您可以切换到 Claude 桌面端。在开始会话之前,您应该加载指令资源,这将为 Claude 提供指导和信息。方法是点击套接字图标(从 MCP 附加),然后选择“选择集成”>“Adobe Premiere”>“config://get_instructions”。
注意事项
每次重新启动 Photoshop 和 Premiere 后,您必须通过 UCP 开发者应用程序重新加载插件。
设置会话
在聊天输入字段中,点击“从 MCP 附加”按钮(看起来像两个套接字)。然后点击“选择集成”,并在“Adobe Photoshop”或“Adobe Premiere”下选择 config://get_instructions。这将把指令加载到提示框中。将其提交给 Claude,处理完成后,您就可以开始使用了。
提示示例
在任何时候,您都可以提出以下问题:
Can you list what apis / functions are available for working with Photoshop / Premiere?
它将列出所有可用的功能。
在提出提示时,您不需要引用 API,只需使用自然语言给出指令即可。
例如:
Create a new Photoshop file with a blue background, that is 1080 width by 720 height at 300 dpi
Create a new Photoshop file for an instagram post
Create a double exposure image in Photoshop of a woman and a forest
Generate an image of a forest, and then add a clipping mask to only show the center in a circle
Make something cool with photoshop
Add cross fade transitions between all of the clips on the timeline in Premiere
使用提示
通用提示
- 提出提示时,要求 AI 思考并检查其工作。
- 您提供的指导越多(例如“考虑使用剪贴蒙版”),结果就越好。
- 模型越高级,或者为模型提供的资源越多,AI 的表现就越好、越有创意。
- 一般来说,在 AI 工作时,不要在 Adobe 应用程序中进行更改。如果您确实进行了更改,请务必告知 AI。
- AI 会从错误中学习,但一旦开始新的聊天,它将失去记忆。您可以指导它以不同的方式做事,然后要求它重新开始,它应该会遵循新的方法。
目前,AI 可以访问 Photoshop / Premiere 的部分功能。一般来说,该项目的做法是提供底层工具,让 AI 具备完成更复杂任务的基础能力。
Photoshop 插件的功能比 Premiere 插件更多。
默认情况下,AI 不能直接访问文件。不过,如果您安装了 Claude 文件系统 MCP 服务器,它就可以访问并将文件加载到 Photoshop / Premiere 中(打开文件并嵌入图像)。
Photoshop 提示
- 您可以将图像从 Photoshop 复制并粘贴到 AI 中,以便它更好地了解情况。
- 目前,AI 在正确调整文本大小和位置方面存在问题,因此为它提供字体大小的指导,以及告知它如何相对于画布对齐文本会有所帮助。
- AI 可以访问系统上的所有 PostScript 字体。如果您想指定字体,必须使用其 PostScript 名称(您可以向 AI 询问)。
- 您可以向 AI 寻求建议。有时它会提出非常有用的想法和反馈。
Premiere 提示
故障排除
MCP 在 Claude 中无法运行
如果在运行 Claude 时出现 MCP 无法工作的错误,您可能需要编辑 Claude 配置文件,并为 UV 命令指定绝对路径。更多信息请参考 此处。
插件无法安装或连接
- 确保在尝试加载插件之前应用程序正在运行。
- 在 UXP 开发者工具中,点击“加载”旁边的“调试”按钮,查看是否有任何错误。
- 确保 Node / 代理服务器正在运行。如果插件连接成功,您应该会看到类似以下的输出:
adb-mcp Command proxy server running on ws://localhost:3001
User connected: Ud6L4CjMWGAeofYAAAAB
Client Ud6L4CjMWGAeofYAAAAB registered for application: photoshop
- 当您按下“连接”按钮时,如果仍然显示“连接”,则表示存在错误,或者无法连接到代理服务器。
AI 客户端出现错误
- 如果 AI 端出现故障,它通常会告知您问题所在。如果您点击命令 / 代码框,可以查看错误信息。
- 如果出现问题,首先要检查的是确保 Photoshop / Premiere 中的插件已连接,并且 Node 代理服务器正在运行。
- 如果响应时间变得非常慢,请检查 AI 服务器是否负载过高,以及当前对话中的文本是否过多(有时重新开始新的聊天可以加快速度,但您将丢失上下文)。
如果您仍然遇到问题,请在 Discord 上发布 问题。请尽可能提供详细的信息(操作系统、应用程序、应用程序版本以及调试信息或错误)。
🔧 技术细节
添加新功能相对容易,需要:
- 在 mcp/ps-mcp.py / mcp/pr-mcp.py 文件中添加 API 和参数(供 AI 使用)。
- 在 uxp/ps/commands/index.js / uxp/pr/commands/index.js 文件中实现 API。
待完成
📚 详细文档
提问、功能请求和反馈
如果您有任何问题、功能请求、需要帮助或只是想聊天,请加入 Discord。
您也可以在 问题页面 上记录错误和功能请求。
📄 许可证
本项目根据 MIT 许可证 发布。