ADB-MCP:AI驱动的Adobe创意工具控制协议

项目标题与描述

ADB-MCP (Adobe AI Control via MCP Protocol) 是一个概念验证项目,旨在通过MCP协议为大型语言模型(LLM)提供接口,实现对Adobe创意工具(如Photoshop和Premiere)的AI控制。

核心架构:

rust 复制代码
AI <-> MCP Server <-> Command Proxy Server <-> Photoshop/Premiere UXP Plugin <-> Photoshop/Premiere

功能特性

  • 多Adobe应用支持:目前支持Photoshop和Premiere,设计上支持扩展更多Adobe应用
  • AI对话式操作:通过自然语言指令控制Adobe软件
  • 自动化任务:支持从简单操作到复杂工作流的自动化执行
  • 教学辅助:AI可生成操作教程并实时演示
  • 跨平台:已在Mac和Windows平台测试通过
  • 多AI客户端支持:测试支持Claude Desktop和OpenAI Agent SDK

典型用例:

  • 通过对话指导Photoshop操作(特别适合新手)
  • 自动创建Instagram帖子模板(如宝丽来风格、双重曝光效果)
  • 生成自定义Photoshop教程并演示
  • 批量处理(如统一图层命名)
  • Premiere项目自动化(预置剪辑、转场、效果和音频)

安装指南

系统要求

  • Node.js环境
  • Adobe Photoshop/Premiere(最新版)
  • Python 3.x(部分组件)

安装步骤

  1. 克隆仓库:

    bash 复制代码
    git clone https://github.com/mikechambers/adb-mcp.git
  2. 安装依赖:

    bash 复制代码
    npm install
  3. 构建可执行文件:

    bash 复制代码
    npm install -g pkg
    pkg .
  4. 启动代理服务器:

    bash 复制代码
    node server.js
  5. 安装对应的Adobe插件

使用说明

基本使用示例

连接AI客户端到MCP服务器:

javascript 复制代码
const APPLICATION = "photoshop";
const PROXY_URL = "http://localhost:3001";

socket.on('command_packet', ({ application, command }) => {
    console.log(`Command from ${socket.id} for application ${application}:`, command);
    let packet = {
        senderId:socket.id,
        application:application,
        command:command
    }
    sendToApplication(packet)
});

Photoshop自动化示例

创建黑白调整图层:

javascript 复制代码
const addAdjustmentLayerBlackAndWhite = async (command) => {
    let options = command.options;
    let layerId = options.layerId;
    let layer = findLayer(layerId);
    
    await execute(async () => {
        selectLayer(layer, true);
        let commands = [
            {
                _obj: "make",
                _target: [{ _ref: "adjustmentLayer" }],
                using: { /* 参数配置 */ }
            }
        ];
        await action.batchPlay(commands, {});
    });
};

Premiere自动化示例

导入媒体文件:

javascript 复制代码
const importMedia = async (command) => {
    let paths = command.options.filePaths;
    let project = await app.Project.getActiveProject();
    let success = await project.importFiles(paths, true, await project.getRootItem());
    return { addedProjectItems: /* 新增项目项 */ };
};

核心代码

MCP服务器核心

javascript 复制代码
// server.js
const express = require('express');
const { Server } = require('socket.io');
const io = new Server(server, {
    transports: ["websocket"],
    maxHttpBufferSize: 50 * 1024 * 1024
});

io.on('connection', (socket) => {
    socket.on('register', ({ application }) => {
        if (!applicationClients[application]) {
            applicationClients[application] = new Set();
        }
        applicationClients[application].add(socket.id);
    });

    socket.on('command_packet', ({ application, command }) => {
        let packet = { senderId:socket.id, application, command };
        sendToApplication(packet);
    });
});

function sendToApplication(packet) {
    if (applicationClients[packet.application]) {
        applicationClients[packet.application].forEach(clientId => {
            io.to(clientId).emit('command_packet', packet);
        });
    }
}

Photoshop命令处理

python 复制代码
# photoshop_mcp.py
@mcp.tool()
def call_batch_play_command(commands: list):
    """
    通过MCP执行任意Photoshop batchPlay命令
    
    参数:
        commands: 表示batchPlay描述符列表的JSON字符串
    """
    command = createCommand("batchPlay", {"commands": commands})
    return sendCommand(command)

@mcp.resource("config://get_instructions")
def get_instructions() -> str:
    """返回Photoshop和API的使用说明"""
    return """
    你是一个富有创意的Photoshop专家,乐于帮助他人学习使用Photoshop。
    
    遵循规则:
    1. 深入思考如何解决问题
    2. 始终检查你的工作
    3. 阅读API调用信息确保理解需求参数
    """
相关推荐
小鸡吃米…10 小时前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫11 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)11 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan11 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维11 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS11 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd11 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
水如烟12 小时前
孤能子视角:“意识“的阶段性回顾,“感质“假说
人工智能
Carl_奕然12 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析
旅途中的宽~12 小时前
《European Radiology》:2024血管瘤分割—基于MRI T1序列的分割算法
人工智能·计算机视觉·mri·sci一区top·血管瘤·t1