Photoshop控制服务器

通过MCP协议控制Adobe Photoshop的服务器实现,支持文档操作、图层管理、滤镜应用等功能,适用于自动化图像处理和AI集成。

  • by luoxixuan
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 luoxixuan/photoshop-mcp-server

使用说明

Photoshop MCP服务器

这是一个通过MCP(Model Context Protocol)协议控制Adobe Photoshop的服务器实现。它使用ExtendScript API与Photoshop通信,允许AI助手和其他MCP客户端以编程方式控制Photoshop。

功能特性

  • ✅ 打开、创建、保存文档
  • ✅ 获取文档信息
  • ✅ 图层操作(创建、查询、设置可见性)
  • ✅ 应用滤镜
  • ✅ 执行自定义ExtendScript脚本
  • ✅ 通过MCP协议与AI助手集成

系统要求

  • Node.js 18+
  • Adobe Photoshop(支持ExtendScript的版本,通常CS6及以上)
  • Windows系统(当前实现针对Windows,可修改为跨平台)

安装步骤

1. 安装依赖

cd photoshop-mcp-server
npm install

2. 配置Photoshop路径

设置环境变量 PHOTOSHOP_PATH,指向你的Photoshop安装路径:

Windows PowerShell:

$env:PHOTOSHOP_PATH = "C:\Program Files\Adobe\Adobe Photoshop 2024\Photoshop.exe"

Windows CMD:

set PHOTOSHOP_PATH=C:\Program Files\Adobe\Adobe Photoshop 2024\Photoshop.exe

或者直接在代码中修改 index.js 中的默认路径。

3. 配置MCP客户端

在你的MCP配置文件(如 ~/.cursor/mcp.json 或 %APPDATA%\Cursor\mcp.json)中添加:

{
  "mcpServers": {
    "photoshop": {
      "command": "node",
      "args": [
        "YourPath\\photoshop-mcp-server\\index.js"
      ],
      "env": {
        "PHOTOSHOP_PATH": "C:\\Program Files\\Adobe\\Adobe Photoshop 2024\\Photoshop.exe"
      }
    }
  }
}

注意: 将路径替换为你实际的路径。

4. 重启MCP客户端

重启Cursor或其他MCP客户端以加载新的服务器配置。

使用方法

通过MCP客户端使用

配置完成后,你可以在AI助手中直接使用Photoshop功能,例如:

  • "在Photoshop中创建一个1920x1080的文档"
  • "打开图片文件 C:\Users...\image.jpg"
  • "获取当前文档的所有图层"
  • "隐藏名为'背景'的图层"

可用的工具(Tools)

  1. ps_open_document - 打开文档
  2. ps_create_document - 创建新文档
  3. ps_save_document - 保存文档
  4. ps_get_active_document - 获取活动文档信息
  5. ps_create_layer - 创建图层
  6. ps_get_layers - 获取所有图层
  7. ps_set_layer_visibility - 设置图层可见性
  8. ps_apply_filter - 应用滤镜
  9. ps_execute_script - 执行自定义ExtendScript脚本

工作原理

  1. MCP服务器:Node.js实现的MCP服务器,通过stdio与MCP客户端通信
  2. ExtendScript执行:服务器生成ExtendScript代码并通过Photoshop执行
  3. 结果返回:执行结果通过JSON格式返回给MCP客户端

高级配置

使用文件通信方式(推荐)

如果直接执行ExtendScript遇到问题,可以使用文件通信方式:

  1. 在Photoshop中安装并运行 ps_bridge.jsx 脚本(作为事件监听器)
  2. 服务器通过文件系统与Photoshop通信
  3. 更稳定可靠,但需要Photoshop保持运行

自定义ExtendScript

你可以通过 ps_execute_script 工具执行任何ExtendScript代码,实现自定义功能。

故障排除

问题:无法执行ExtendScript

解决方案:

  1. 确认Photoshop路径正确
  2. 检查Photoshop是否支持ExtendScript(CS6+)
  3. 尝试使用文件通信方式

问题:脚本执行超时

解决方案:

  1. 增加超时时间(在代码中修改 timeout 参数)
  2. 检查Photoshop是否响应
  3. 确保没有其他进程占用Photoshop

问题:权限错误

解决方案:

  1. 确保有写入 communication 和 ps_scripts 目录的权限
  2. 以管理员身份运行(如果需要)

开发

添加新功能

  1. 在 ListToolsRequestSchema 处理器中添加新工具定义
  2. 在 CallToolRequestSchema 处理器中添加对应的处理逻辑
  3. 编写相应的ExtendScript代码

测试

npm test

许可证

MIT

贡献

欢迎提交Issue和Pull Request!

注意事项

  • 此实现依赖于Photoshop的ExtendScript功能
  • 某些操作可能需要Photoshop处于活动状态
  • 建议在测试环境中先验证功能
  • 生产环境使用前请充分测试