Photoshop控制服务器

一个通过MCP协议让AI助手能够控制Adobe Photoshop的服务器,适用于自动化图像处理和设计场景。

  • by airtaxi
  • C#
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 airtaxi/PhotoshopMcpServer

使用说明

Photoshop MCP服务器

🌐 语言: 英语 | 韩语

A. 模型上下文协议(MCP) 该服务器使AI助手能够通过Windows COM自动化控制Adobe Photoshop。用。NET 10和C#14使用官方 MCP C#SDK.

概述

此MCP服务器将Photoshop自动化作为一组工具公开,任何兼容MCP的AI客户端(Claude Desktop、GitHub Copilot等)都可以调用。主要工具是 ExecuteJavaScript,这使AI能够完全访问Photoshop的脚本引擎,使其能够灵活地决定在运行时做什么。

需求

  • 视窗 (COM自动化仅适用于Windows)
  • Adobe Photoshop (支持COM自动化和 DoJavaScript)
  • .NET 10 SDK 或以后

安装

1.克隆存储库

git clone https://github.com/airtaxi/PhotoshopMcpServer.git
cd PhotoshopMcpServer

2.建造

dotnet build

3.(可选)发布为自包含的可执行文件

dotnet publish PhotoshopMcpServer/PhotoshopMcpServer.csproj -c Release -r win-x64 --self-contained

可执行文件将位于 PhotoshopMcpServer/bin/Release/net10.0-windows/win-x64/publish/.

MCP服务器配置

克劳德桌面

将以下内容添加到您的Claude Desktop配置文件中:

  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

选项A:从源代码运行(需要.NET SDK)

{
  "mcpServers": {
    "photoshop": {
      "command": "dotnet",
      "args": ["run", "--project", "C:\\path\\to\\PhotoshopMcpServer\\PhotoshopMcpServer"]
    }
  }
}

选项B:运行已发布的可执行文件

{
  "mcpServers": {
    "photoshop": {
      "command": "C:\\path\\to\\PhotoshopMcpServer.exe"
    }
  }
}

GitHub副本(VS代码)

添加到您的 .vscode/mcp.json 或VS代码设置:

{
  "servers": {
    "photoshop": {
      "command": "dotnet",
      "args": ["run", "--project", "C:\\path\\to\\PhotoshopMcpServer\\PhotoshopMcpServer"]
    }
  }
}

光标

添加到光标MCP设置(~/.cursor/mcp.json):

{
  "mcpServers": {
    "photoshop": {
      "command": "dotnet",
      "args": ["run", "--project", "C:\\path\\to\\PhotoshopMcpServer\\PhotoshopMcpServer"]
    }
  }
}

备注:替换 C:\path\to\PhotoshopMcpServer 使用克隆存储库的实际路径。

可用工具

工具 说明
ExecuteJavaScript 主要工具 --在Photoshop的脚本引擎中执行任意JavaScript
IsPhotoshopRunning 检查Photoshop是否正在运行且可访问
LaunchPhotoshop 启动Photoshop或连接到正在运行的实例
GetPhotoshopVersion 获取Photoshop版本字符串
GetActiveDocumentInfo 获取有关活动文档的信息(名称、大小、颜色模式、分辨率)
GetOpenDocuments 列出所有打开的文档名称
OpenDocument 按路径打开图像文件
SaveActiveDocument 保存当前文档
CreateNewDocument 创建具有指定尺寸的新文档
ExportAsPng 将活动文档导出为PNG
ExportAsJpeg 将活动文档导出为JPEG格式,并设置质量
GetLayerInfo 获取活动文档中所有层的摘要

ExecuteJavaScript——强大的工具

这 ExecuteJavaScript 该工具故意具有灵活性。它允许人工智能构建和执行任何有效的Photoshop JavaScript,使其能够完全控制Photoshop。示例脚本:

// Get document name
app.activeDocument.name

// Create a new document
app.documents.add(1920, 1080, 72, "My Canvas")

// Resize the active document
app.activeDocument.resizeImage(800, 600)

// Flatten all layers
app.activeDocument.flatten()

// Apply Gaussian blur to the active layer
app.activeDocument.activeLayer.applyGaussianBlur(5.0)

// Get all layer names
var names = [];
for (var i = 0; i < app.activeDocument.layers.length; i++)
    names.push(app.activeDocument.layers[i].name);
names.join(", ");

项目结构

PhotoshopMcpServer/
├── .github/
│   └── copilot-instructions.md          # C# code style rules for Copilot
├── PhotoshopMcpServer/
│   ├── Program.cs                       # MCP server entry point (stdio transport)
│   ├── Models/
│   │   └── PhotoshopModels.cs           # Record types for results and document info
│   ├── Services/
│   │   ├── IPhotoshopService.cs         # Photoshop COM service interface
│   │   └── PhotoshopService.cs          # COM automation implementation
│   └── Tools/
│       └── PhotoshopTools.cs            # MCP tool definitions (13 tools)
├── PhotoshopMcpServer.Tests/
│   ├── PhotoshopToolsTests.cs           # Tool unit tests (28 tests)
│   └── PhotoshopServiceTests.cs         # Model tests (7 tests)
├── PhotoshopMcpServer.slnx
├── LICENSE
└── README.md

运行测试

dotnet test

运作原理

  1. MCP服务器启动并通过以下方式进行通信 标准 (标准输入/输出)
  2. AI客户端连接并发现可用工具
  3. 当AI调用工具时,服务器使用 Windows COM自动化 向Photoshop发送命令
  4. Photoshop执行命令(通常通过 DoJavaScript)并返回结果
  5. 结果被发送回AI客户端
AI Client ←→ MCP (stdio) ←→ PhotoshopMcpServer ←→ COM ←→ Adobe Photoshop

许可证

该项目根据 MIT许可证.

致谢

作者

Howon Lee (@空中出租车)